How To Make a Portpolio (1)
들어가면서..
본격적으로 강의를 시작하면서, 수강생들에게 도움이 되는 글을 작성하고 싶었다. 아쉽지만, 본 포스팅에서 코딩과 관련된 글을 제공되지 않는다. 다만, 필자 역시 블로그를 시작하면서 하나의 포트폴리오를 만들어가는 것처럼, 부족한 나의 강의를 듣는 사람들에게도 도움이 될만한 글을 제공하고 싶었다.
원문: How to Build a Data Science Portfolio
원문을 번역하지만, 기타 필자의 개인적인 의견도 섞어서 개진하였음을 밝힌다.
데이터 과학분야에 어떻게 취직을 할 수 있을까? 신입의 입장에서, 통계, 기계학습, 프로그래밍, IT 기술, 클라우드 전반에 대해 모두 아는 것은 어렵다. 또한, 취업에 필요한 포트폴리오는 어떻게 만들어야 할지 취준생 입장에서는 이 또한 난감하다. 대학교에서, 직업훈련기관에서, 또는 독학으로. 열심히 공부해 왔다고 해도, 역시 포트폴리오를 만들어가는 것은 쉽지 않다. 그러나, 포트폴리오는 매우 중요하며
, 포트폴리오
가 있음으로 얻는 이점은 무궁무진하다. 그런데, 인사담당자 & 현업(사수가 될 사람)과의 미팅에서 눈을 사로잡으려면 포트폴리오는 강력한 무기가 될 수 있다.
I. 포트폴리오의 중요성
DataCamp
라는 유명한 E-Learning
웹싸이트가 있습니다. 강사도 여기에서 꾸준히 공부하고 있는 싸이트입니다. 여기에서 Chief Data Scientist
를 맡고 있는 David Robinson
의 인터뷰를 읽어봅시다. 물론 국내의 현실과는 조금 맞지 않을 수 있습니다.
The most effective strategy for me was doing public work. I blogged and did a lot of open source development late in my PhD, and these helped give public evidence of my data science skills. But the way I landed my first industry job was a particularly noteworthy example of the public work. During my PhD I was an active answerer on the programming site Stack Overflow, and an engineer at the company came across one of my answers (one explaining the intuition behind the beta distribution). He was so impressed with the answer that he got in touch with me [through Twitter], and a few interviews later I was hired.
짧게 요약하면, 그가 박사과정일 때, Stack Overflow
라는 웹 싸이트에서 여러 문제에 대해 꾸준히 답변을 달았는데, 그중의 한 엔지니어가 그 대답에 감명을 받아 그에게 연락을 취했고, 취업을 했다는 얘기입니다. 국내 정서와는 조금 맞지 않을 수 있지만, 명제는 분명합니다, Public Work
. 즉, 다른 사람에게 도움을 주는 사람이어야 한다는 것입니다. 왜 Public Work
가 중요할까요?
위 그림에서 보는 것처럼, 신입이나, 베테랑이나, 모두 구글의 도움 없이는 프로젝트를 완수할 수가 없습니다. 사실상 불가능하다고 봐도 무방합니다. 신입이나 베테랑이나 구글 검색을 통해서 문제를 해결하는데, 결국엔 Stack Overflow
에서 해결 방안을 찾아서 도움을 얻게 됩니다. 즉, Public Work
를 통해서, 다른 사람들이 도움을 받는다면, 그것만큼 좋은 포트폴리오는 없다는 뜻이기도 합니다. 블로그를 만들거나, 또는 stackoverflow
에 꾸준히 글을 남기면서 public work
을 하는 것이 매우 중요합니다.
II. 실제 경험에서 우러나오는 포트폴리오의 중요성
회사 입장을 고려합시다. 모든 회사가 나이가 어린 경력자
를 선호합니다. 모든 회사는 이윤을 창출하는 집단이고, 나이가 어리다는 것은 급여를 조금 덜 줄 수 있으니, 즉 고정비가 절감되는 효과가 있고, 경력자를 좋아하는 것은 즉시 업무에 투입되어 회사에게 이윤을 가져다 줄 수 있는 기대감이 있기 때문입니다. 나이가 어리면서 경력이 있다는 것 만큼 회사 입장에서는 매우 좋은 구직자입니다. (물론, 비현실적이지만요)
문제는 신입과 경력이 없는 분들입니다. 늘 똑같이 반복적으로 하는 얘기이지만, 대부분의 회사들도 신입에게 기대하는 것은 실제 직장 생활에서 일어날 법한 프로젝트
를 수행해봤느냐는 뜻입니다. 만약에 데이터 싸이언스 경력이 없다면, 무조건적으로 독립적인 데이터 싸이언스 프로젝트를 수행하는 것이 중요합니다. 그러면 어떤 프로젝트를 해야할까요?
III. Include and Do Not Include Project
(1) Include Project
Quora에서 데이터 싸이언티스트 매니저를 맡고 있는 William Chen
은 2018년 Kaggle’s CareerCon에서 다음과 같이 설명합니다. Video
I love projects where people show that they are interested in data in a way that goes beyond homework assignments. Any sort of class final project where you explore an interesting dataset and find interesting results… Put effort into the writeup… I really like seeing really good writeups where people find interesting and novel things…have some visualizations and share their work.
- 짧게 줄이면, 흥미로운 데이터를 가지고 결과를 도출하여 적정한 시각화와 함께 의미있는 문서로 만들어서 공유하는 것이 프로젝트라고 할 수 있습니다.
- 관심 있는 분야와 업종의 데이터를 꾸준히 Web Scrapping 하는 것도 도움이 됩니다.
- 학위 과정에 있는 사람들이라면 Term Paper 또는 논문이 매우 중요한 포트폴리오가 될 수 있습니다.
- (추가) 직업훈련기관에 있는 사람이라면, 국비교육을 듣는 와중에 다양한 공모전에 꾸준히 참여하는 것이 중요합니다.
(2) Do Not Include Project
프로젝트에 포함시키지 말아야 하는 주요 데이터셋은 Titanic
, MNIST
, Iris
데이터를 활용한 프로젝트입니다. 사실, 이 부분은 공부용으로 학습하는 것이지, 프로젝트는 아닙니다. 공공데이터 또는 Kaggle
대회에 있는 데이터를 활용한 것을 포트폴리오로 만들었다면 그것 역시 좋은 포트폴리오가 될 수 있습니다.
위 데이터가 나쁘다는 뜻은 아닙니다. 다만, 대부분의 사람들이 아는 데이터이기 때문에 어떻게 데이터를 수집했는지 흥미롭게 생각하지 않기 때문입니다. 보통 실무에서는 데이터 수집부터가 가장 큰 난관이고, 이를 해결하는 것부터가 데이터 분석 프로젝트의 과정입니다. 작은 데이터부터 큰 데이터까지 데이터 수집 및 처리하는 과정이 분석가에게는 매우 중요한 직무가 됩니다. 이러한 관점에서 볼 때, 쉽게 얻을 수 있는 데이터는 현업 담당자에게는 관심을 끌기에는 부족한 감이 있습니다.
IV. 포트폴리오의 재 사용성
공모전 및 캐글대회에 참여하는 것도 좋지만, 데이터의 수집 및 처리의 관점에서는 여전히 아쉬운 부분이 있습니다. 특히, 분석보다도 더 중요한 것은 데이터 전처리기의 개발, 문자열 처리의 개발 등 원시 데이터(Raw 데이터)
를 정규표현식이나 속도를 고려한 사용자 정의 함수를 직접 구현하면 현업에서도 매우 쓸만한 코드를 비교적 짧은 시일안에 짤 수 있습니다. 강사는 가끔, Medium
이나, 캐글의 코드를 볼 때, 모델링 영역 보다는 데이터 전처리 코드를 조금 더 주의 깊게 보는 편입니다. 이유는 간단합니다. 현업에서 신입에게 주어지는 일상적으로 주어지는 업무는 데이터 전처리, 시각화가 주를 이룹니다. 특히 데이터 전처리를 얼마나 빠른 시일안에 할 수 있느냐에 따라 시각화 분석 보고서
와 분석 Modeling
에 보다 더 많은 시간을 할애할 수 있습니다.
그런데, 이러한 코드를 Github
를 통해서 공유하는데 조금더 망설임이 없어야 합니다. 코드 리뷰는 매우 중요하며, 다른 사람의 코드를 통해서 보다 더 나은 코드를 구현할 수 있기 때문에 그렇습니다. 이렇게 공유된 코드를 지속적으로 꾸준히 보완할 때 진정한 의미로써 가치가 있는 코드가 될 수 있습니다.
데이터 싸이언티스트라면 참고할만한 블로그 글이라면 아래와 같습니다.
- Cleaning and Visualizing Genomic Data: A Case Study in Tidy Analysis
- Benchmarking Python Distributed AI Backends with Wordbatch
한국 사람이라면, 위와 같은 글을 번역하여 제공하는 것만으로도 매우 큰 무기가 될 수 있습니다.
V. 결론
지금까지 간단하게 포트폴리오의 개념과 중요성, 그리고 활용방안에 대해 의견을 드렸다. 취업준비생에게 가장 좋은 것은 Public Work
를 하는 것이고, 이는 결국 블로그와 포트폴리오와 연관이 깊다. 포트폴리오는 인사담당자와 현업 담당자에게 매우 좋은 인상을 심어줄 수 있고, 꾸준하게 작성하여 올리는 것 만큼 차별화를 줄 만한 것은 없다. 또한 포트폴리오를 잘 만들어가는 것은 일종의 코드 재 사용성과도 연관도 있다. 다음 장에서는 이력서 작성에 관한 얘기를 나눈다. 원문을 최대한 살려서 작성하되, 국내 실정에 맞게 조금 변형을 주려고 한다.
인프런 강의
- 취준생을 위한 강의를 제작하였습니다.
- 본 블로그를 통해서 강의를 수강하신 분은 게시글 제목과 링크를 수강하여 인프런 메시지를 통해 보내주시기를 바랍니다.
스타벅스 아이스 아메리카노를 선물
로 보내드리겠습니다.
- [비전공자 대환영] 제로베이스도 쉽게 입문하는 파이썬 데이터 분석 - 캐글입문기
Reference
Galarnyk, M. (2018, July 9). How to Build a Data Science Portfolio. Retrieved May 10, 2020, from https://towardsdatascience.com/how-to-build-a-data-science-portfolio-5f566517c79c