July 5, 2021

Ну вот взяли тебя дата саентистом. Дальше-то что?

Этот пост - продолжение материала о том, как я вкатывался в аналитику и прочую биг дату. Первую часть я закончил на том, что к концу 2018 года мне удалось взять крейсерскую скорость в самообразовании, походах на собеседования и погружении в около-DS среду. Всё это в итоге закончилось офером на позицию Junior Data Scientist-а.

Вместо вступления

Сегодня хочется поделиться своим опытом и ощущениями, которые испытал в первое время работы “официальным” дата саентистом. Даже несмотря на то, что к успешному оферу я шел почти два года, первые месяцы преподнесли несколько сюрпризов, местами - не совсем приятных.

Нулевой сюрприз случился уже на моменте получения офера - зарплата на новой позиции была ненамного, на 5000р, но всё-таки меньше моей текущей. Да, начинать в новой области нелегко :). Разницу удалось наверстать достаточно быстро, у джунов в IT везде зп растет бодро (при наличии рук и головы из нужных мест).

Следующее откровение, о котором я знал, но не осознавал - под Дата Саентистом понимают в настоящее время очень разных специалистов - от дата инженеров до математиков, включая по пути программистов на самых разных языках, от C++ до Экселя. Сейчас этот зоопарк мне знаком и понятен, а три года назад я искренне считал, что настоящие дата саентисты - это те, кто нейронки обучает да прочие случайные леса выращивает. А все остальное, где нет Machine Learning-а как бы и не считается. И поэтому был слегка обескуражен, когда выяснил, что мне НА САМОМ ДЕЛЕ на новой работе большую часть времени придется ковыряться SQL запросами в бесконечных табличках с данными, чтобы выудить из них крупицы информации. На первой неделе коллега бросил что-то вроде "ну там такой небольшой запрос, строк на 500", я подумал, что он преувеличивает. Но через два дня уже сам писал полотна на 100+ строк :)
А на обучение машин и смежные с ним задачи хорошо если 5% времени придётся. Первоначальное уныние достаточно быстро сменилось позитивными вибрациями - понял, что мне очень даже нравится тип работы, в котором много общения, в котором из маленьких кубиков информации составляешь общую картину, а потом ещё и споришь о ней с заказчиком. Достаточно быстро я также узнал, что вот это вот рисование графиков, изучение когорт и прочие A/B тесты называется “продуктовая аналитика”. И да, это тоже дата саенс.

И это тоже дата саенс

И тут появилась следующая дилемма. С одной стороны, работа продуктовым аналитиком мне пришлась по душе. С другой - “я же как бы не настоящий дата саентист, как же глубокие нейронные машины?”. И решение вроде бы простое - продолжать то, что делал до вкатывания в ДС - учиться и тренироваться на кошках, благо “кошки” под рукой у продуктового аналитика более чем подходящие. Это всё в теории. На практике столкнулся с тем, что в первые полгода не было ни сил, ни возможностей изучать что-то дополнительно. Дивный новый мир практического анализа данных заставил в спешном порядке осваивать множество самых разных инструментов, от Гугл Аналитики и Tableau до экспресс-курса по R. Последний вообще оказался для меня неожиданным сюрпризом - на собеседовании ребята из команды мельком упомянули, что часть из них пишет на R, но в плане выбора языка никто никого ни к чему не обязывает… В реальности оказалось, что почти половина кода написана на R, но свой, действительно, можно писать на питоне. Но ведь читать и осознавать написанное тоже как-то нужно, поэтому пришлось разбираться :) Кроме новых технологий нужно было разбираться и с особенностями новой компании - от того, как бизнес и продукт устроены и до того, как откуда данные берутся, как складываются и до каких можно дотянуться. На то, чтобы закрыть пробелы в знаниях и разобраться на необходимом уровне в данных, ушло где-то полгода. Устроился в конце 2018, к июлю 2019 получилось более-менее выдохнуть и начать учить что-то “для себя”. Кстати, такое положение вещей можно считать очередным “сюрпризом” - времени и/или энергии на дополнительное самообразование при смене работы, и уж тем более - профессии, практически не будет.

Увидел твит как раз во время изучения R!

Итак, я решил продолжить обучение. На горизонте у меня виднелось два эпика. Во-первых, много раз упомянутая в прошлом посте специализация от Яндекса и МФТИ. Во-вторых, mlcourse.ai от известного в кругах дата саентистов сообщества ods.ai. (Забавно, что узнал и вступил в сообщество только после того, как сам начал работать настоящим дата саентистом). Решил начать со второго, осенью 2019 у курса была последняя очная сессия, с рейтингами, проверками домашек и прочими атрибутами настоящего обучения. Курс доступен и сейчас, но уже полностью в self-paced режиме. Я и еще один мой коллега вписались в эту движуху… И оба бросили обучение буквально после первого модуля. Впечатления у нас были похожие - началось все за здравие, хорошей разминочной главой про EDA - исследование данных. Но уже следующая часть с размаха кидала в матан и прочую теорию и выглядела примерно так - “вот вам огромная статья с теорией, вот “необязательные” лекции (по часу+ каждая), немножко примеров кода, в вот куча тестов и заданий, дедлайн через две недели”. Куски большие, и теории, и домашки, требуют приличного количества времени на “разогрев”, поэтому максимально неудобно было их совмещать с основной работой. А лично мне еще не понравилось, что изначально русский курс перевели на английский. Текст еще ничего, а вот лекции от этого очень сильно пострадали. Короче, этот курс я бросил, не зашло. Вам, возможно, подойдет, если получается на учебу выделять “жирные” блоки времени - несколько раз в неделю по 1.5-3 часа.

Ощущения от курса, когда можешь посвящать ему всего 20-30 минут в день

Следующий заход в ML случился в начале 2020, когда удалось на работе получить оплаченный доступ к Курсере. Наконец-то получил доступ к специализации “Машинное Обучение и Анализ Данных”, и начал потихоньку проходить ее курсы - всего пять штук + дипломный проект. И закрывать гештальт, открытый аж в 2017 году. Что могу сказать… По состоянию на 2020/2021 не могу рекомендовать эту специализацию к прохождению. Причем, самая засада в том, что качество курсов идет по наклонной - первые два (вводный, с математикой и питоном и про основы машинного обучения) сделаны хорошо, нормальные задания, качественные лекции. А вот с третьего курса (про обучение без учителя) специализация начинает скатываться. Выглядит это так - практические задания становится все сложнее запихать в грейдер, код из примеров перестает работать на актуальных версиях библиотек, а людей на форуме становится все меньше и меньше. Преподаватели так и вообще последний раз там мелькали в 2018 :). Пятый курс выглядит как жалкая попытка максимально сжато рассказать про все темы, которые ещё есть в области ML - недельку на предсказания, недельку на computer vision, немножко про тексты, чуток про ранжирование. Получается максимально сжато с откровенно тупыми заданиями, которые уже делаешь лишь бы пройти дальше. Венец всего - дипломный проект, который делается по инструкции, а проверяется такими же страдальцами, дошедшими до конца. Я на этом моменте специализацию бросил, понял, что электронный диплом затраченных усилий не оправдает, а получение новых знаний закончилось на четвертом курсе специализации (раздел про статистику и а/б тесты).

Специализацию проходил большую часть 2020" года. Начал в конце января, закончил в октябре. Я к тому моменту уже достаточно повзрослел, чтобы не сильно переживать из-за “незаконченных” или “брошенных” дел, но вот одна вещь меня начала напрягать. Раньше мне казалось, что задачи, связанные с обучением машин, я начну лихо делать, как только прокачаюсь в теории и разберусь как оно там все внутри устроено. Практика показала, что даже получив реальные ML задачи на работе, я как-то не испытывал от них особого энтузиазма. Объяснять продактам, что они неправы, и как ЦИФРЫ ЭТО ПОДТВЕРЖДАЮТ, было намного веселее, даже по зуму вместо личных встреч. Опять стал вырисовываться паттерн, о который я уже спотыкался ранее, еще до того, как начал заниматься аналитикой (об этом - в первой части). Повзрослевшему мне даже пришло небольшое озарение - вещи, на которые ты осознанно потратил приличное количество времени могут не зацепить или даже разонравиться.

Примерно так раньше представлял себе "настоящего дата саентиста за работой

А окончательно на свои места всё расставила вот эта статья, про роль “дата аналитиков” в компаниях. Если вкратце - есть несколько типов Дата Саентистов:

  • ML-инжинеры. Хорошо пишут код вообще и ML модельки в частности, доводят их до совершенства и выводят в продакшн, в обеденные перерывы выигрывают медальки на Kaggle. Таких товарищей я считал “настоящими” дата саентистами и сам пытался таким стать (см иллюстрацию выше)
  • Статистики и математики. От и до знают, как правильно проверять гипотезы, на какие метрики смотреть с какими поправками и как при обсчете результатов не наступить на грабли с одновременным выстрелом в ногу).
  • Аналитики данных. Мастера на все руки, которые очень быстро проверяют абстрактные идеи и хотелки от продактов, разработчиков, маркетологов и других важных и уважаемых людей. Результатом “проверки” является либо сразу готовый ответ на вопрос (отчётик там, дэшборд или презентация), либо отказ от идеи, либо задача одному из спецов выше - на правильную организацию эксперимента или создание ML-модели. Аналитик данных/продуктовый аналитик - то чем я по факту сейчас занимаюсь 95% времени на работе.

Первые два типа дата саентистов отлично владеют хардскиллами и прекрасно справляются со своими “нишевыми” задачами. Третий тип, “просто аналитик” не так хорош в технической части, но намного лучше понимает, что вообще происходит и как всё со всем связано. Вполне логично, что именно аналитикам такого типа прямая дорога на следующую ступеньку бизнеса, в “решалы”. Как красиво сказано в статье - Of the three breeds, analysts are the most likely heirs to the decision throne. И вот такая перспектива меня вполне устроила, думать, как заработать побольше $$ не только для себя, но и для компании мне, в целом, нравится больше, чем скрещивать очередного ужа с ежом в зоопарке питоновских ML/DS библиотек. На этом моменте я обрел внутренний дзен относительно своих дальнейших карьерных перспектив и стал меньше смотреть в сторону технических нюансов и больше - в сторону всяких софт скиллов и методов заработка денег. Чтобы, как аналитик, прибыль не только считать, но и помогать её приносить. Посмотрим, что из этого выйдет дальше!

Аналитика + Деньги = ...