newsmode
search
Меню
arrow_back Назад

Why Have a Data Science Portfolio and What It Shows

auto_awesomeКраткое саммари

Юджин Ян объясняет, зачем дата-сайентисту нужно личное портфолио и что оно показывает помимо технических навыков. Главный тезис: получение работы не должно быть единственной мотивацией — внутренние причины (учиться, помогать другим, получать удовольствие) делают проекты устойчивыми. Портфолио бывают двух видов: код (например, проекты Винсента Вармердама и Лилинга Тана) и контент (иллюстрированные гайды Джея Аламмара, еженедельные посты Амита Чаудхари, креативные эксперименты Элль О'Брайен). Помимо технических навыков, портфолио демонстрирует soft skills и черты характера: любопытство, способность учиться и упорство (grit), которые при найме автор ценит выше чистых tech-skills. Главный вывод: фокусируйтесь не на портфолио как артефакте, а на процессе — на интересных, личностно значимых проектах, которые растягивают ваши способности.

Зачем нужно портфолио по data science и что оно показывает

[ datascience learning career ] · 15 мин чтения

Думаете о том, чтобы собрать портфолио по data science? Если погуглить «data science portfolio», мы получим множество результатов о том, «как» его построить.

Результаты поиска Google по запросу «data science portfolio». Многие из них связаны с поиском работы.

Однако в большинстве материалов недостаточно обсуждаются «зачем» и «что». Зачем работать над личными проектами и собирать портфолио? Что демонстрирует портфолио помимо технических навыков?

Начинаете ли вы свой первый или пятый личный проект — я надеюсь, эта статья поможет вам найти осмысленное «зачем» и сделать проекты более приятными и устойчивыми. Мы также услышим от замечательных авторов об их мотивации создавать и писать (нажмите на 👉). Кроме того, мы обсудим различные навыки (технические и нетехнические) и черты характера, которые демонстрируют проекты, чтобы вы могли выбирать проекты, лучше отражающие ваши сильные стороны.

(Примечание: я буду говорить о портфолио и личных проектах как о взаимозаменяемых понятиях. Тем не менее, портфолио может выходить за рамки личных проектов и включать также рабочие проекты.)

Получение работы не должно быть единственным «зачем»

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

Поэтому, помимо получения работы, нам также следует найти внутренние причины для работы над личными проектами. Эти причины сделают проект естественно приносящим удовлетворение, где работа сама по себе является наградой.

Одна из причин — учиться и практиковаться. Возможно, нас увлекает какая-то ветвь deep learning. Или мы хотим получить больше практического опыта, чтобы отточить свои навыки. В любом случае, полученные знания и навыки часто переносятся в работу и делают нас более эффективными дата-сайентистами. Это также согласуется с одним из ключевых факторов мотивации: Мастерство, желание совершенствоваться.

«Учение — это сокровище, которое будет следовать за своим хозяином повсюду». — Китайская пословица (学习是永远跟随主人的宝物)

Другая причина — помогать другим. Это включает волонтёрство в некоммерческих организациях, таких как DataKind, разработку и публикацию полезного пакета или обмен тем, что мы узнали (через статьи или доклады). Это согласуется с другим ключевым фактором мотивации: Цель, желание внести вклад в нечто большее.

«Если хочешь возвыситься, возвысь кого-то другого». — Booker T. Washington

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

«Трудно победить того, кто получает удовольствие».

В следующем разделе мы увидим несколько потрясающих личных проектов и услышим от их авторов об их «зачем». Часто это желание почесать зуд, способ учиться и помогать другим.

Портфолио бывают в двух вариантах: Код и Контент

Чаще всего обсуждения портфолио по data science относятся к коду. Такие проекты включают получение публичных данных, выполнение статистического анализа, построение визуализаций или обучение моделей machine learning. Сюда также может входить вклад в open-source библиотеки, а также участие в соревнованиях по data science. Некоторые люди могут зацикливаться на том, сколько кода они пишут, но не переживайте, если не коммитите ежедневно.

Для тех, кто переживает о своём вкладе:Я работаю в Google. Один мой друг из команды получил отличие как самый плодовитый кодер в Google за квартал.🤯🥇🏆 Топ-кодер. Номер 1.Две вещи1) Никому нет дела! Даже ему самому.2) Его GitHub-аккаунт пуст. Даже аватарки нет https://t.co/VSZ2g46TDl— Mekka *My Mask Protects You* Okereke (@mekkaokereke) 28 мая 2020

У Vincent Warmerdam несколько проектов перечислены на его сайте, и большая часть кода открыта. Проекты — это сочетание полезных (например, визуализации word embeddings, scikit-lego) и забавных (например, cron-планировщик), и у них отличная документация. Вот его мнение о том, почему он создаёт и делится этими проектами:

«Некоторые из этих инструментов (в основном whatlies) написаны в рамках моей работы. Так что должен признать, мне немного повезло. Многие другие инструменты родились скорее из ощущения «это должно существовать». Я многому научился, создавая эти инструменты, но причина их существования в том, что они почесали зуд».

Другой отличный пример — работа Liling Tan по NLP. Он создаёт корпуса и инструменты для NLP. Сюда входит многоязычный корпус, разрешение лексической многозначности и «character vomiting». Есть смесь странного и полезного, и много обучения. Вот почему он их создавал и его совет о публичном размещении кода (без стеснения):

«Обычно всё начинается с того, что я чешу свой собственный зуд или удовлетворяю любопытство. Например, инструмент «character vomiting» был создан для идентификации всех возможных юникод-символов, которые могут быть сгенерированы для конкретных языков в задаче NLP. Поэтому я углубился в спецификацию Unicode и узнал очень много о сходствах и особенностях языков и о том, как Unicode классифицирует разные наборы символов.

Как и с вирусными TikTok-видео, никогда не узнаешь, какой open source станет популярным, поэтому часто открывать исходники — хороший способ получить обратную связь и иногда отличные идеи из запросов на новые функции. А для тех, кто боится, что их код будут публично критиковать, мои два цента: никогда не стесняйтесь кода, который вы пишете/публикуете, мы все начинали с нуля, и все постоянно учатся в мире computing/data, посмотрите как соединять строки».

У Made With ML (MWML) есть тред с личными проектами, представленными на их платформе. Он включает применение исследований к продукту, создание ML-приложений, а также обучение и обмен опытом о пути в data science. Команда MWML рассказала, что нескольких из этих людей наняли в computer vision и они присоединились к Weights and Biases. (Также вот отличная коллекция проектов из их DS Incubator.)

👶 Нам сегодня 4 месяца! 1.9K проектов, 3K DAU, 5K MAU, 1.7K в Slack (50K сообщений) и продолжаем расти!Но что для нас ВАЖНЕЕ всего — это то, что сообщество строит, и мы стали местом, где это можно показать! Посмотрите подборку разных видов портфолио 🔥⬇️ Тред pic.twitter.com/ZA58KlTbOO— Made With ML (@madewithml) 18 июля 2020

Контентные проекты обсуждаются реже. Это (технический) контент, которым вы делитесь через статьи или публикации онлайн, или доклады, которые вы делаете на конференциях и митапах. Сюда входят хорошо написанные README в git-репозиториях, а также видео-разборы (например, how-to, summary и т.д.). После завершения проекта на основе кода мы должны написать о нём и поделиться, чтобы другие тоже могли извлечь из него пользу.

Сайт Jay Alammar — отличный пример удивительных контентных проектов. Практически никто не изучает Transformers или BERT, ELMo и компанию без иллюстрированных гайдов Джея. Ясно, что ему нравится демистифицировать техники NLP для остального мира, и он вкладывает заботу и усилия в создание своего контента. Это связано с его любопытством и желанием помочь другим легче понимать исследования.

«Моя ML-работа мотивирована:

Сильным любопытством к темам, о которых я пишу, и увлечённостью развитием NLP. Написание, визуализация и публикация моей работы заставляют меня учиться гораздо глубже, чем если бы я просто читал статью. Чтение передовых работ в области часто пугает, как я обнаружил. Но я нашёл, что если уделить определённой концепции достаточно времени и внимания, я могу понять её в более простых терминах, чем если бы извлекал из оригинальных статей. Излагая своё новообретённое понимание визуально, я надеюсь облегчить другим быстрое усвоение этих концепций. Я люблю совместное и открытое распространение кода и концепций в области software и ML. Я извлёк пользу из невероятного программного обеспечения, документации и исследований, которые люди добровольно выложили в открытый доступ для всех. Я хочу быть частью этого добродетельного цикла».

В том же духе Amit Chaudhary пишет еженедельно, чтобы объяснять концепции machine learning с помощью диаграмм, анимаций и интуиции. Это часть его подхода — делать маленькие шаги, чтобы становиться лучше в своём ремесле. Мне понравился его разбор поведенческого тестирования NLP-моделей и метрик оценки information retrieval. Это началось как хобби и с тех пор помогло ему завести новых друзей.

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

Другой интересный пример — работы Elle O'Brien. Её контент — это data science с долей странности. Мне понравился её материал об использовании machine learning, чтобы испечь самое среднее печенье и визуализировать большие данные о больших причёсках (наведите курсор на визуализации!). Они выходят за рамки шаблонного контента, который мы видим на Medium. Вот её процесс использования сайд-проектов для обучения и «передачи дальше», что также привело к её текущей роли.

«Я использую сайд-проекты как способ мотивировать себя по-настоящему тщательно изучать техники data science. Например, когда я однажды поняла, что нейросети можно научить генерировать совершенно нелепый контент, я подумала, что наконец-то могу узнать, как компьютер придумал бы названия любовных романов. И это побудило меня захотеть использовать deep learning.

Мой процесс — начать с вопроса, пойти туда, куда этот вопрос ведёт, а затем поделиться проектом. Делиться своей работой важно. Всё, что я узнала о практических, hands-on аспектах data science, я узнала от людей, которые делились своим программным обеспечением, своими датасетами и своим мышлением. Так что делиться — это «передавать дальше». Это также помогает создавать репутацию и сеть; я получила свою текущую работу через Twitter после того, как поделилась проектом с использованием generative adversarial network.

Стоит отметить: когда я делала эти сайд-проекты, я занималась докторской диссертацией, которая многому учила, но не очень — современному machine learning (всё то, что происходило в последние годы в deep learning, например). Сайд-проекты гарантировали, что я создаю там некоторую репутацию, чтобы суметь получить желаемые работы, когда выпущусь. И также чтобы не «упустить» всё происходящее :)»

Портфолио демонстрируют не только технические навыки

Большинство портфолио демонстрируют навыки и черты характера. Что касается навыков, и технические, и soft skills важны для нанимающих менеджеров.

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

Получение и подготовку данных (например, спарсить данные, отформатировать и очистить их) Сторителлинг данных (например, рассказать историю на основе данных со статистикой и визуализациями) Machine learning (например, обучить и развернуть модель с валидацией и метриками) Развёртывание (например, выложить ML-приложение онлайн, чтобы другие могли им пользоваться) Software engineering (например, читаемость, поддерживаемость, unit-тесты, документация)

Портфолио также демонстрируют soft skills. В долгосрочной перспективе они влияют на результаты не меньше, а может и больше. Их эффект очевиден при решении расплывчатых задач и работе с другими людьми. Они включают:

Решение задач с нуля: формулирование проблемы и определение правильных метрик Публикации и доклады: способность к коммуникации, ключевой навык эффективного дата-сайентиста Преподавание: понимание предмета и способность объяснять его просто Вклад в проект: работа в команде и способность удалённо совместно работать над кодом

«В пуле работ с высоким IQ soft skills — такие как дисциплина, драйв и эмпатия — отмечают тех, кто становится выдающимся». — Daniel Goleman

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

Наличие личных проектов демонстрирует любопытство и страсть. Это показывает, что вам любопытно изучать что-то самостоятельно. А работа над этим в свободное время демонстрирует, что у вас больше страсти, чем у 99% людей. Учитывая быстрый темп, с которым развиваются tech — особенно data и machine learning — это любопытство необходимо, чтобы оставаться эффективным.

Это также показывает готовность и способность учиться. Работа над проектами выявляет вызовы, с которыми не сталкиваешься на MOOC. Как очистить данные. Как исследовать пространство поиска для подготовки данных, feature engineering и machine learning. Как построить базовый фронтенд. Как обучить и развернуть в облаке. Этому не учат на MOOC; способ научиться — через практический опыт. Личные проекты показывают самостоятельное обучение за пределами обычных MOOC.

Наконец, портфолио — это свидетельство упорства. Большинство проектов по data science расплывчаты и сложны. Если вы новичок в программировании, вас могут расстраивать баги и синтаксические ошибки, или вы в 128-й раз сломаете своё виртуальное окружение. Вы также столкнётесь с менее очевидными проблемами, такими как:

Как работать с данными, которые не помещаются в память (например, изображения, click-логи) Как заставить модели сходиться быстрее, если они вообще сходятся Как быстро и дёшево запускать эксперименты в облаке

Наличие портфолио с проектами не для новичков и способность рассказать о вызовах, с которыми вы столкнулись в процессе работы над ними, демонстрирует grit (упорство), который является хорошим предиктором успеха.

Когда я выбираю между двумя похожими кандидатами начального/среднего уровня — одним, который менее технически квалифицирован, но силён в любопытстве, grit и способности учиться («черты»), и другим, который только силён в технических навыках («tech-skills»), — я с большей вероятностью найму по чертам характера.

Я наблюдал, как нанимались кандидаты обоих типов — и tech-skills, и traits, — и их прогресс со временем. Кандидат tech-skills начнёт приносить пользу раньше. Но при правильном окружении, вызовах и менторстве кандидат traits будет быстро учиться, превзойдёт других и в итоге даст превосходные результаты.

«Нанимайте за отношение, обучайте навыкам». — Herb Kelleher

По опыту и анекдотам, найм по чертам характера и отношению ведёт к более сильной команде. Найм по сильным сторонам тоже. Если так, почему tech-найм так сильно делает акцент на технических навыках? (например, leetcode-задачи, знания machine learning и т.д.).

Я думаю, это потому, что большинство нанимающих менеджеров и рекрутеров начинают с заполнения вакансии (вместо найма человека). Таким образом, они фокусируются на описании работы (JD) вместо сильных сторон человека. А JD склонны фокусироваться на жёстких, технических навыках; легче измерить программистскую компетентность, чем формулирование проблем, коммуникацию или grit.

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

Например, Max Howell, автор Homebrew. Ему отказали в Google, потому что он не смог инвертировать двоичное дерево. Он признаёт, что не имеет образования в области computer science (он не очень понимал, что такое двоичное дерево). Вместо этого он фокусируется на пользовательском опыте и создаёт потрясающие приложения. Тем не менее, он не соответствовал требованиям computer science и не подходил под категорию работы.

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

Отличное портфолио vs. черты и навыки для его создания

Получение оффера иногда приписывают наличию отличного портфолио. Это неудивительно, поскольку артефакты портфолио непосредственно наблюдаемы относительно навыков и черт характера. (И иногда это буткемпы, рекламирующие сами себя.) Однако, я думаю, трудно отличить, получил ли кто-то работу из-за потрясающего портфолио или потому, что у него были навыки и черты для его создания.

По моему скромному мнению, черты и навыки являются предпосылкой для создания отличного портфолио. И они усиливают друг друга. По мере работы над проектом мы получаем практический опыт и улучшаем наши технические и soft skills. Это также оттачивает наше упорство и способность учиться. Затем рост отражается в следующем проекте — это добродетельный цикл.

Что с большей вероятностью поможет получить работу? Отличное портфолио? Или навыки и черты для его создания? Портфолио поможет резюме выделиться в море резюме и попасть на первое собеседование. Но именно черты и навыки обеспечат оффер и приведут к высокой производительности в роли.

Не фокусируйтесь на портфолио; фокусируйтесь на процессе

Портфолио — это просто артефакт наших навыков, черт характера и рабочего процесса. Это пункт назначения; он сам о себе позаботится, если мы сфокусируемся на пути.

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

Большинство статей о портфолио по data science фокусируются на том, как его построить и получить работу.Здесь я поделюсь другой перспективой:• Зачем работать над личными проектами• Что они демонстрируютУ нас также будут отличные авторы, которые поделятся мотивацией, стоящей за их работой.https://t.co/6MacdxS5DR— Eugene Yan (@eugeneyan) 21 октября 2020

Спасибо Vincent Warmerdam, Liling Tan, Jay Alammar, Amit Chaudhary и Elle O'Brien за щедрый обмен своей работой и процессом.

Спасибо Yang Xinyi, David Golden, Kyla Scanion, Robert Cobb, Ross Richey и Compound за чтение черновиков этой статьи.

Если вы нашли это полезным, пожалуйста, цитируйте эту работу как:

Yan, Ziyou. (Oct 2020). Why Have a Data Science Portfolio and What It Shows. eugeneyan.com. https://eugeneyan.com/writing/data-science-portfolio-how-why-what/.

или

@article{yan2020portfolio, title = {Why Have a Data Science Portfolio and What It Shows}, author = {Yan, Ziyou}, journal = {eugeneyan.com}, year = {2020}, month = {Oct}, url = {https://eugeneyan.com/writing/data-science-portfolio-how-why-what/} }



Присоединяйтесь к 11 800+ читателей, получающих обновления по machine learning, RecSys, LLM и инженерии.