Как создать Data Science портфолио

Как получить работу в сфере Data Science? Сложно обзавестись достаточными знаниями статистики, машинного обучения, программирования и т.д., чтобы иметь возможность устроиться на работу. Кроме того, зачастую можно увидеть людей со всеми необходимыми навыками, но без портфолио. Хотя резюме имеет значение, наличие портфолио с публичными подтверждениями ваших навыков в Data Science может сотворить чудо с вашими перспективами. Даже если вы устраиваетесь по рекомендации, возможность показать, а не рассказать потенциальным нанимателям, что вы можете сделать, дорогого стоит.

Значимость портфолио

Помимо того, что вы многому научитесь, создавая портфолио, оно также может помочь вам при трудоустройстве. В этой статье под портфолио подразумевается публичное подтверждение ваших навыков. Такое определение было упомянуто главным data scientist’ом в DataCamp Дэвидом Робинсоном, когда у него брали интервью. Его спросили о том, как он получил первую работу в этой сфере, и вот что он сказал:

Наиболее эффективной стратегией для меня была публичная работа. Я писал в блог и занимался open-source разработкой в конце аспирантуры, что стало публичным подтверждением моих навыков в Data Science. Но то, как я получил свою первую работу, является ещё более примечательным примером публичной работы. В аспирантуре я часто отвечал на вопросы на StackOverflow, и инженер из одной компании наткнулся на мой ответ, в котором я объяснял бета-распределение. Он был так впечатлён ответом, что связался со мной через Twitter, и после нескольких собеседований меня взяли на работу.

Можете считать это случайностью, но чем активнее вы себя будете проявлять, тем скорее вы обнаружите, что такие случайности происходят всё чаще. Как написал Дэвид в своём блоге:

Чем больше публичной работы вы делаете, тем выше шанс, что кто-то заметит ваши труды и предложит работу или что кто-то, кто вас собеседует, будет наслышан о ваших успехах.

Люди часто забывают, что программисты и data scientist’ы тоже гуглят свои проблемы. Если они их решат с помощью вашей публичной работы, они могут стать лучшего мнения о вас и связаться с вами.

Требуется опыт работы: как обойти проблему

Даже для вакансий начального уровня большинство компаний хотят нанять человека с хотя бы небольшим реальным опытом. Вы наверняка видели мемы в таком духе:

ОТКРЫТА ВАКАНСИЯ СТАЖЁРА:

Нанимаем вчерашних выпускников.

ТРЕБОВАНИЯ:

5 лет опыта, 6 золотых Олимпийских медалей и суперспособности.

Вопрос в том, как получить опыт работы, если для получения работы нужен опыт? Если и есть ответ на этот вопрос, то это — проекты. Возможно, проекты — лучшая замена опыту работы или, как сказал Уилл Стантон:

Если у вас как у data scientist’а нет никакого опыта, то вам совершенно необходимо работать над независимыми проектами.

А вот, что хочет слышать Джонатан Нолис, когда собеседует людей:

Я хочу услышать о проекте, над которым они недавно работали. Я спрашиваю, как начинался проект, как они определили, что на него стоит тратить время и силы, спрашиваю о процессе и результатах. Также я интересуюсь, чему они в итоге научились.Ответы на этот вопрос дают мне многое: могут ли кандидаты рассказать историю, понимают ли, как проблема была связана с общей картиной, и были ли они упорны в преодолении возникших проблем.

Если вы не работали data scientist’ом, то лучшим вариантом в такой ситуации будет рассказать о Data Science-проекте, которым вы занимались самостоятельно.

Типы проектов, которые стоит включать в портфолио

Поле Data Science настолько обширно, что сложно предугадать, какие проекты хотят видеть наниматели. Уильям Чен, data scientist из Quora, поделился своими мыслями по этому поводу на CareerCon 2018, который проводит Kaggle:

Мне нравятся проекты, в которых люди выражают свой интерес к данным, выходящий за рамки обычного домашнего задания. Это проекты, в которых вы исследуете интересный датасет и получаете интересные результаты. Мне нравится читать хорошо написанные статьи, в которых люди пишут о интересных и новых вещах, добавляют визуализации и делятся своей работой.

Многие люди понимают важность создания проектов, но не все знают, где взять интересный датасет и что с ним делать. Джейсон Гудман, data scientist в Airbnb, в одном из своих постов рассказывает о множестве идей для проектов и даёт хороший совет по поводу того, какие датасеты стоит использовать:

Я считаю, что лучшие проекты для портфолио считаются таковыми не из-за моделирования, а благодаря работе с интересными данными. Многие люди используют в своих проектах финансовые данные или данные Twitter; они могут подойти, но по своей сути они не так интересны, поэтому с ними будет сложнее кого-то удивить.

Ещё одна его мысль в этом посте заключается в том, что веб-скрапинг — отличный способ получить интересные данные.

Например, вот проект, в котором был проанализирован дорожный трафик:

Типы проектов, которые не стоит включать в портфолио

Многие статьи с советами по составлению портфолио/резюме рекомендуют не включать туда обычные проекты. Вот один из них:

Сложно представить более быстрый способ отправить ваше резюме в стопку «определённо нет», чем упоминание работы над банальными proof-of-concept датасетами среди ваших избранных проектов. Если у вас есть сомнения в выборе, то вот некоторые проекты, которые навредят больше, чем принесут пользы:

  • классификация выживших с помощью датасета Titanic;
  • самописный классификатор цифр на примере датасета MNIST;
  • классификация видов цветов с помощью датасета ирисов.

На картинке ниже представлены примеры классификации на датасетах Titanic, MNIST и ирисов. С их помощью не так просто выделить себя среди других кандидатов. Упоминайте только оригинальные проекты.

Создание портфолио — итеративный процесс

У Фавио Васкеса есть отличная статья, в которой он говорит о том, как получил работу data scientist’а. Само собой, один из его советов — обзавестись портфолио:

Имейте портфолио. Если вы ищете высокооплачиваемую работу в Data Science, займитесь проектами с реальными данными. Если можете, выложите их на GitHub. Кроме соревнований на Kaggle найдите что-нибудь, что вам нравится, или проблему, которую вы хотите решить, и используйте ваши знания, чтобы сделать это.

Ещё одна мысль заключается в том, чтобы продолжать совершенствоваться в процессе поиска работы:

Я пытался устроиться в почти 125 мест (возможно, у вас это число гораздо больше) и получил только 25–30 ответов. Некоторые из них были чем-то в духе «Спасибо, но нет». Меня пригласили почти на 15 собеседований. Из каждого я извлекал урок. Становился лучше. Мне пришлось столкнуться с большим количеством отказов — тем, к чему я на самом деле не готовился. Но мне нравился процесс собеседования (не всегда, если честно). Я многое изучил, программировал каждый день, прочёл много статей. Они мне очень помогли.

По мере изучения новых вещей и самосовершенствования, ваше портфолио также должно обновляться. Эта мысль отражена во многих других подобных статьях. Как сказал Джейсон Гудман:

Проект не завершён после его размещения в открытом доступе. Не бойтесь продолжать редактировать или добавлять что-то новое в ваши проекты после публикации!

Этот совет особенно применим для случаев, когда вы ищете работу. Есть множество историй от успешных людей вроде Келли Пенг, data scientist в Airbnb, которая упорно трудилась и продолжала совершенствоваться. В одной из своих статей она рассказала о количестве мест, в которые она посылала резюме, и в скольких случаях её позвали на собеседование:

Отослано резюме: 475

Собеседований по телефону: 50

Законченных проектов по Data Science: 9

Собеседований вживую: 8

Предложений о работе: 2

Потрачено времени: 6 месяцев

Она отправила резюме действительно много раз и не остановилась на полпути. В своей статье она также говорит о том, что нужно извлекать опыт из собеседований:

Берите на заметку все вопросы, которые вам задают, особенно те, на которые вы не смогли ответить. Вы можете снова наступить на грабли, но не наступайте на одни и те же. Вы должны всегда учиться и совершенствоваться.

Умещаем портфолио на одностраничном резюме

Люди могут найти ваше портфолио через резюме, поэтому его стоит упомянуть. Резюме — это место, где вы можете акцентировать внимание на своих технических навыках. Это возможность кратко изложить свою квалификацию и соответствие желаемой должности. Рекрутеры и менеджеры по найму очень быстро просматривают резюме, поэтому у вас очень мало времени на то, чтобы произвести впечатление. Вы должны убедиться, что каждая строка и каждый раздел вашего резюме имеет значение.

Уильям Чен составил 9 советов по созданию Data Science резюме. Ниже вы найдете краткую выжимку из них. Обратите внимание, проекты и портфолио относятся к пунктам 6, 7, 8 и, возможно, 9.

1. Длина

Резюме должно быть простым и занимать максимум одну страницу. Во время беглого просмотра такое резюме принесёт лучший результат. Достаточно простого резюме без разделения на столбцы, так как его легко просмотреть.

2. Цель

Не указывайте её. Она не поможет выделить вас среди остальных. Цели отнимают драгоценное место у более важных вещей вроде навыков, проектов и т.д. Сопроводительные письма крайне не желательны, только если вы их действительно персонализируете.

3. Курсы

Перечисляйте пройденные курсы, применимые к описанию работы.

4. Оценка навыков

Не надо численно оценивать свои навыки, как на картинке ниже. Если очень хочется, лучше используйте слова вроде «опытный» или «знаком» и всё в таком духе. Вы даже можете исключить оценки как таковые.

5. Перечисление навыков

Перечислите технические навыки, которые требуются в описании вакансии. Порядок перечисления навыков может помочь предположить, в чём вы разбираетесь лучше всего.

6. Оригинальные проекты

Не перечисляйте обычные проекты или домашние задания. Они не выделяют вас среди других кандидатов. Упоминайте оригинальные проекты.

7. Результаты проектов

Покажите результаты и приложите ссылки. Если вы участвовали в соревновании Kaggle, укажите своё место, чтобы человек, который будет читать ваше резюме, понял, каковы были ваши успехи. В разделе проектов всегда есть место для ссылок на записи и доклады, которые помогут рекрутеру копнуть глубже.


Обратите внимание, что в разделе проектов на картинке выше есть дополнительная ссылка на блог, что даёт возможность рекрутеру узнать о вас больше. Это один из способов привести людей к разным частям портфолио с помощью резюме.

8. Портфолио

Сделайте себе профессиональный профиль в сети. Например, с помощью профиля в LinkedIn. Это своего рода расширенное резюме. Профили на GitHub и Kaggle могут помочь похвастаться вашей работой. Заполните каждый профиль и включите ссылки на другие сайты. Заполните описания ваших репозиториев на GitHub. Не забудьте про ссылки на сайты вроде Medium и Quora, где вы делитесь своими знаниями. Data Science во многом связана с общением и представлением результатов. Вам не нужно присутствовать на всех площадках, просто выберите какую-нибудь из них (подробнее об этом чуть позже).

9. Опыт

Подгоните ваш опыт к требованиям вакансии. Опыт — основа вашего резюме, но что делать, если у вас нет опыта? Сделайте в резюме упор на независимые проекты вроде дипломной работы, независимого исследования или соревнования на Kaggle. Это заменители опыта работы, которые вы можете включить в резюме. Избегайте упоминания опыта, не имеющего отношения к вакансии.

Значимость соцсетей

Это похоже на раздел «Значимость портфолио», только разделённый на подразделы. Наличие профиля на GitHub, Kaggle, StackOverflow и т.д. пригодится в резюме. Заполненные профили могут быть хорошим сигналом для рекрутеров.

Как говорит Дэвид Робинсон:

Обычно при оценке кандидата мне интересно взглянуть на то, что он выставил на обозрение публики, даже в незаконченном состоянии. Показывать что-то лучше, чем не показывать ничего.

По словам Уилла Стантона, причина, по которой data scientist’ы любят смотреть на опубликованные работы, заключается в следующем:

Data scientist’ы используют эти инструменты, чтобы поделиться своей работой и найти ответы на вопросы. Если вы используете те же инструменты, вы даёте понять, что вы один из них, даже если вы никогда не работали data scientist’ом.

Data Science во многом связана с общением и представлением данных, поэтому будет полезно иметь эти онлайн-профили. Помимо того, что эти платформы помогают делиться ценным опытом, они также могут помочь вам не остаться незамеченным и привести людей к вашему резюме. Люди могут найти и часто находят резюме онлайн в разных источниках вроде LinkedIn, GitHub, Kaggle, Quora и других. Вы даже обнаружите, что разные типы соцсетей «подпитывают» друг друга.

GitHub


Профиль GitHub может быть убедительным признаком того, что вы компетентный data scientist. В резюме в разделе проектов люди часто указывают ссылку на свой GitHub, где хранится код для проектов. Здесь также могут быть различные записи.  GitHub даёт людям возможность увидеть, что и как вы создали. В некоторых компаниях рекрутеры смотрят на GitHub профиль соискателя. Это ещё один способ показать нанимателям, что вы не просто мимо проходили. Если вы потратите время на развитие своего профиля, то вас могут оценить выше, чем других кандидатов.

Стоит упомянуть, что у вас должно быть что-то вроде файла README.md с описанием проекта, так как Data Science во многом связана с представлением результатов. Убедитесь, что файл README.md понятно описывает, что из себя представляет проект, что он делает и как запустить ваш код.

Kaggle

Участие в соревнованиях Kaggle, создание kernel’ов и вклад в обсуждения покажут, что вы компетентны как data scientist. Важно подчеркнуть, что задачи на Kaggle и процесс их решения сильно отличается от того, что вы встретите в продакшне. Kaggle берёт на себя составление условия задачи, сбор и очистку данных. Вы же должны проанализировать эти данные и создать модель. У Решамы Шейх есть статья, в которой она говорит о ценности соревнований Kaggle:

Не секрет, что участие в соревнованиях Kaggle не сделает из вас data scientist’а. То же самое можно сказать про один курс, посещение одной конференции, анализ одного датасета или чтение одной книги по теме. Соревнования дают вам опыт и расширяют ваше портфолио. Это лишь дополнение к остальным вашим проектам, а не лакмусовая бумажка, выявляющая навыки в Data Science.

LinkedIn

В отличие от резюме, ограниченного длиной, профиль LinkedIn позволяет описать проекты и рабочий опыт в подробностях. На Udacity есть гайд по созданию хорошего профиля. Важной частью LinkedIn является инструмент для поиска, поэтому, чтобы вас кто-то заметил, в вашем профиле должны быть релевантные ключевые слова. Рекрутеры часто используют LinkedIn для поиска людей. С его помощью вы можете увидеть, какие компании искали вас и кто просматривал ваш профиль.

Помимо поиска людей и отправки им сообщений LinkedIn предлагает функции вроде Ask for a Referral. Джейсон Гудман в своей статье рассказывает, как он использует LinkedIn для того, чтобы выйти на сотрудников компании и стать рефералом обходным путём:

Я никогда, никогда не пытался устроиться в компанию без знакомства с кем-либо, работающим там. Будучи заинтересованным в компании, я использую LinkedIn для поиска человека из компании или очень близкого к ней. Я пишу этому человеку с просьбой рассказать о его опыте работы в компании и спрашиваю, может ли он связать меня с кем-нибудь из отдела Data Science. По возможности я лично встречаюсь с людьми (за кофе или обедом) вместо телефонного звонка. Я никогда не прошу напрямую устроить меня на работу, вместо этого я жду, пока у меня попросят резюме и предложат стать рефералом или пока не свяжут с менеджером по найму. Если такой вариант не для них, тогда я просто благодарю их за потраченное время и продолжаю свои поиски.

Заметьте, он не просил сделать его рефералом сразу же. Хотя когда вы хотите устроиться в компанию, обычный совет — сделать так, чтобы вас порекомендовал сотрудник этой компании, очень важно отметить, что вам всё ещё нужно портфолио, опыт и какие-то доказательства того, что вы способны выполнять свою работу.

Аман Далмия извлекла похожий опыт из множества собеседований:

Налаживание связей это не отправка сообщений людям с просьбой сделать вас рефералом. Когда я только начинала, я часто совершала эту ошибку, пока не наткнулась на эту замечательную статью, где говорится о важности создания реальных связей между людьми, предлагая им свою помощь первыми.

Также в этой статье говорится о том, что LinkedIn можно использовать для того, чтобы показать ваш контент/портфолио:

Ещё один важный шаг в установлении связей — показ контента. Например, если вы хороши в чём-то, напишите об этом в блог и поделитесь этой записью в Facebook и LinkedIn. Это помогает не только другим, но и вам.

Medium и/или другие платформы для блогов

Иметь какое-то подобие блога может быть весьма полезно. Ведение блога — хороший способ попрактиковаться в общении и представлении данных. Когда вы пишете о своем проекте или о какой-то теме из Data Science, это не только даёт вам возможность поделиться с сообществом своим опытом, но и помогает зафиксировать ваш рабочий процесс и мысли. На собеседовании это будет полезным навыком.

Как сказал Дэвид Робинсон:

Блог — ваш шанс попрактиковать релевантные навыки:

  • Очистка данных. Одно из преимуществ работы с множеством датасетов заключается в том, что вы учитесь принимать данные такими, какие они есть, будь они в форме дополнительного файла из статьи или сценария фильма.
  • Статистика. Работа с неизвестными данными позволяет применить статистические методы, а написание постов, через которые вы общаетесь с читателем и чему-то учите его, помогает вам самому лучше разобраться в теме.
  • Машинное обучение. Существует большая разница между использованием алгоритма прогнозирования в одной задаче или во множестве других, учитывая, что вы понимаете, почему вы используете тот или иной алгоритм в каждой ситуации.
  • Визуализация. Когда у вас есть аудитория, это вдохновляет на полировку визуализаций и создание собственного стиля.
  • Коммуникация. Вы практикуетесь в написании статей и аргументации, основанной на данных. Это, вероятно, самый важный навык, развиваемый ведением блога, так как развить его ещё где-либо сложно, а он является неотъемлемой частью карьеры любого data scientist’а.

Когда вы ведёте блог, вы учитесь делиться своими открытиями с другими. Также это можно считать ещё одной формой саморекламы. Одно из главных преимуществ ведения блога — это критика ваших проектов и предложения улучшений. Таким образом рекрутеры не будут первыми людьми, которые укажут вам на те же ошибки. Более очевидное преимущество заключается в том, что, когда вы ведёте блог, вы волей-неволей читаете больше статей по теме и, следовательно, узнаете что-то новое.
В качестве платформы для блога можно выбрать что-нибудь вроде Medium. Манали Шинде в своей статье описывает хорошую причину, по которой она остановилась на Medium:

Я думала о создании собственного сайта на платформе вроде WordPress или Squarespace. Они хороши для размещения портфолио, но мне нужно было место, где меня смогли бы заметить и где есть хорошая система тегов, чтобы контент доходил до большего количества людей. К счастью, Meduim обладает всеми этими чертами (ещё и бесплатно).

Если вы не знаете о чём писать, можете почерпнуть идей в статье Дэвида Робинсона.

Если вы написали один и тот же код три раза, напишите функцию.

Если вы дали людям один и тот же совет три раза, напишите об этом в блоге.

Twitter

Активность в Twitter может помочь найти людей из вашей сферы и пообщаться с ними. Также вы можете прорекламировать свой блог, чтобы ваше резюме стало ещё более заметным. Twitter предлагает большое количество возможностей для общения с людьми. Например, Дэвид Робинсон предлагает ретвитнуть ваш первый пост. От такого предложения нельзя отказаться, учитывая, что у него более 25 тысяч подписчиков.

Twitter можно использовать не только для саморекламы. У Data Science Renee есть статья, в которой она говорит, как Twitter помог наладить связи и какие возможности предстали перед ней:

Меня звали принять участие в интервью и подкастах, предлагали работу по контракту и предлагали бесплатное посещение конференции, на которую, к сожалению, я не могла прийти, но всё равно была рада такой возможности. «Известные» люди в этой сфере теперь приходят ко мне для совместной работы.

Tableau Public

Не для каждой работы в Data Science требуется Tableau или другие BI-инструменты. Тем не менее, если вы устраиваетесь на работу, где такие инструменты используются, нужно знать, что есть сайты, на которых вы можете публично разместить дашборд. Например, если вы указываете в резюме, что вы учитесь или умеете работать с Tableau, разместите несколько дашбордов на Tableau Public. Хотя многие компании нормально отнесутся к факту, что вы учитесь работать с Tableau по ходу дела, свидетельство ваших навыков работы с ним может помочь. Если вам нужны примеры хороших профилей Tableu Public, взгляните на этот и вот этот.

Заключение

Наличие хорошего резюме долгое время является главным инструментом для демонстрации своих навыков потенциальным работодателям. Сегодня существует много способов показать, на что вы способны, и получить работу. Портфолио даст вам такие возможности, о которых без него обычно можно не мечтать. Важно подчеркнуть, что создание портфолио — итеративный процесс. По мере накопления знаний ваше портфолио будет увеличиваться. Никогда не прекращайте учиться и развиваться.

Перевод статьи «How to Build a Data Science Portfolio»

Ещё интересное для вас:
— Биты, байты, Ада Лавлейс — тест на знание околоIT.
— Level Up — события и курсы, на которых можно поднять свой уровень.
— Работа мечты — лучшие IT-вакансии для вас.