Хабр, привет! Меня зовут Вячеслав Демин, я больше четырёх лет работаю в сфере Data Science. Сейчас руковожу направлением аналитики данных в Сбере и преподаю на курсе «Специалист по Data Science» в Яндекс Практикуме. Начинал с этого же курса в 2020 году, после чего работал в сфере страхования и нефтехимии.
В этом материале расскажу, чем стажёр отличается от джуниора, а джуниор от джуниора-плюс — и какие требования к дата-сайентистам начальных грейдов предъявляют работодатели.
Набор грейдов (уровней) может различаться от компании к компании, но везде есть три главные: джуниор, мидл и синьор. Главная характеристика каждого грейда — это стек необходимых навыков, уровень ответственности и самостоятельности.
В первые годы карьеры дата-сайентист может поработать на трёх позициях: стажёр, джуниор и джуниор-плюс. Разберём их подробнее.
Стажёр: математика, базовый Python и софтскилы
Стажёр — это, как правило, студент или вчерашний выпускник, который владеет базовыми навыками, но ещё не готов к самостоятельной работе. Стажёрам необходимо декомпозировать задачи и ставить подробные ТЗ, а затем следить за ходом выполнения работы и помогать при необходимости. Стажёров не всегда называют дата-сайентистами, иногда компании нанимают их как аналитиков данных, хотя их задачи лежат в поле Data Science.
Время стажировки обычно ограничено, а по её завершении работодатель принимает решение о найме стажёра на джуниорскую позицию.
От стажёров ожидают относительно немногого. По замыслу, ключевым навыкам они должны научиться непосредственно на месте работы. Но вот что желательно знать, чтобы успешно поступить и пройти стажировку.
Математика и статистика
Необходимый минимум — хорошее понимание университетской математики и статистики. Важно знать все основные теоремы, понимать теорию вероятностей, уметь применить знания при проверке пусть даже простых гипотез. В принципе этого может быть даже достаточно, а остальных навыков, включая работу с кодом, от стажёров часто не требуют.
Программирование
Программирование — это скорее nice to have навык, но он даёт хороший плюс. Обычно дата-сайентисты пишут код на Python, поэтому, если вы знаете синтаксис языка, работали с Pandas и NumPy и понимаете, как работают матричные преобразования, на стажировке будет проще. Ещё лучше, если умеете, например, реализовывать t-критерий Стьюдента и функцию Манна-Уитни через SciPy и выводить результаты на графиках с помощью Matplotlib и Seaborn.
Основная среда разработки в Data Science — это Jupyter Notebook, но при желании IDE можно освоить уже на стажировке.
Кроме Python, в работе с данными используется SQL. Стажёру достаточно знать основы, например, уметь выгрузить необходимые данные из таблицы.
Софтскилы
Софтскилы — отдельная сфера, которой часто не уделяют достаточного внимания. Без «мягких навыков» никуда, причём на любом из грейдов.
Ключевые «мягкие навыки» стажёра: проактивность, коммуникабельность, желание разбираться в материале и докапываться до сути.
Также я отдельно отмечу английский с минимальным уровнем владения Intermediate (B1). Это соответствует школьному или университетскому уровню на непрофильных специальностях. Да, стажёр может не работать с англоязычной документацией и вряд ли будет пробовать себя в международных командах, но язык нужен буквально везде — хотя бы чтобы читать всплывающие подсказки в Jupyter Notebook, VS Code или другом редакторе.
Получить некоторые навыки стажёрской позиции можно на бесплатных курсах Практикума — на них вы освоите основы Python и SQL для работы с данными, разберёте ключевые математические концепции, погрузитесь в статистику и проведение A/B-тестов. |
Джуниор: самостоятельность и уверенное владение инструментами
Джуниор — это ещё начинающий, но уже самостоятельный дата-сайентист, который выполняет многие задачи от и до без помощи старших коллег. От таких специалистов ожидают ответственности, так как от их задач может зависеть успех всей команды. Но контроль на этой стадии ещё есть, он помогает избежать серьёзных последствий ошибок, которые могут возникнуть от нехватки опыта.
Математика
Джуниоры проводят первые A/B-тесты, а чтобы делать это качественно, необходимо уметь объяснять вероятностные события и работать с гипотезами как математик. Поэтому к математическому «стеку» у джуниора добавляются сложные концепции — такие, как закон больших чисел, метод максимального правдоподобия и закон Байеса.
Программирование
На этом этапе сложно выделить программирование как отдельную область знаний — по сути, работа джуниора с кодом проникает во все его задачи в аналитике, машинном обучении и воспроизведении экспериментов. Базой также остаётся Python, но растёт количество используемых библиотек, меняются требования к глубине понимания кода.
Последнее касается и SQL. Если стажёру было достаточно знать SELECT и FROM, то джуниор должен уметь писать подзапросы разного уровня вложенности, создавать агрегирующие функции, фильтровать данные, создавать столбцы и не только. Будет плюсом умение работать в CTE, потому что чаще всего джуниоры самостоятельно собирают все данные из разных баз для своих таблиц.
Анализ данных
Основную часть стека джуниор-дата-сайентиста составляют навыки, связанные с аналитическим мышлением. Это и работа с Pandas и NumPy в матричных и нематричных представлениях, и навык обработки данных (например, заполнения пропусков и удаления дубликатов) и их трансформации под поставленные цели.
Аналитическое мышление лежит за плоскостью простого использования инструментов — также джуниору важно уметь делать и обосновывать выводы, самостоятельно находить корреляции и взаимные связи в данных.
Машинное обучение
В ML-инжиниринге джуниору в Data Science пригодится знание Python-библиотек Scikit-learn, PyTorch и TensorFlow, бустингов XGBoost, LightGBM и CatBoost. Основа стека в Machine Learning — это Scikit-learn, потому что в ней уже есть все трансформаторы, преобразователи и препроцессоры, а также поддерживаются модели машинного обучения: линейная и логистическая регрессия, дерево решений, случайный лес, метод опорных векторов и градиентные бустинги.
Важно понимать, как работают те или иные модели машинного обучения, какие данные для них требуются, какой результат они могут выдать и какие из них выбирать в той или иной ситуации. Нужно уметь создавать свои конвейерные модели, в которые можно передавать разные наборы данных.
Также плюсом в машинном обучении будет умение работать с LLM не просто на уровне «могу написать код с помощью ChatGPT», а на уровне промптов-инструкций начального уровня. В работе джуниора могут встретиться задачи, связанные с NLP. В таком случае важно понимать, как любой текст превратить в числа, построить на этой основе эмбеддинги, пользоваться BERT-подобными решениями, векторизаторами, TF-IDF, fastText.
В машинном обучении много моделей и инструментов, и джуниору, конечно, не нужно уметь работать со всеми. Поверхностного понимания разных концепций достаточно, чтобы с лёгкостью погрузиться в конкретную ветку под руководством опытного дата-сайентиста.
Воспроизведение экспериментов
Следующая зона джуниора — работа с воспроизведением экспериментов и отправкой результатов. Необязательно уметь отправлять в продакшн модели, готовые к интеграции, но уже стоит знать Airflow, MLFlow или их аналоги, ну и понимать, как устроен процесс воспроизведения экспериментов.
На этом этапе к стеку добавляется Git, с помощью которого джуниор сможет обновлять и контролировать версии своего проекта.
Софтскилы
Джуниору, как и любому другому дата-сайентисту, важно быть проактивным и коммуникабельным, постоянно учиться новому и знать английский хотя бы на уровне B1.
К этому списку можно добавить навык аргументации и объяснения выводов, так как джуниор может участвовать во встречах с людьми вне команды, например, с представителями бизнеса.
Джуниор-плюс: продакшн и работа с большими данными
Джуниор-плюс — особенная категория, которую могут присвоить человеку, который ближе к мидл-позиции, но по каким-то причинам ещё не может её занять. Например, если он показал себя как самостоятельный и ответственный специалист, но ему всё ещё недостаёт опыта работы с конкретными инструментами.
Работа с большими данными
Продвинутый джуниор должен уметь работать с действительно объёмными таблицами. Для этого к его стеку можно добавить знание инструментов для работы с большими данными, таких как Hadoop, Spark и Hive.
Машинное обучение
Если джуниор знает направления и модели «по верхушкам», то почти-мидл должен уже иметь две-три экспертные области, например регрессию на бустингах, NLP или нейронные сети.
Продакшн
Джуниор-плюс может не только создавать конвейерные модели от и до, но и интегрировать их в локальный продакшн, то есть писать простые Windows или Bash-скрипты, чтобы запустить модель, которая соберёт данные и создаст файл, который можно отправить другому человеку. Тут к стеку прибавляются такие инструменты, как Docker и Kubernetes. Уметь разрабатывать интеграцию в рабочую систему компании не нужно — за это отвечают другие ML-специалисты.
Программирование
В набор инструментов продвинутого джуниора могут входить:
библиотеки Shap и Shapash для интерпретации результатов модели, например, взаимосвязи с входными столбцами. Полезны, когда нужно дать более подробный ответ о конкретных факторах или экспериментах;
библиотека Phik — для расширенного поиска корреляции. Не только линейные, но и нелинейные связи;
библиотека Optuna — оптимизатор поиска лучших параметров модели, работает лучше встроенных в Scikit-learn;
Jupyter Hub или VS Code — те же привычные IDE, но уже с обращением к файлам не на компьютере, а на серверах компании.
Кроме этого, от джуниора-плюс могут ожидать не просто работающего, но и оптимизированного кода, написанного и оформленного по всем правилам. Например, полезно уметь создавать отдельные файлы (допустим, tools.py или utils.py) с необходимым набором функций и инструментов, организовывать программное пространство в соответствии с правилами ООП или функционального программирования. Код должен быть оптимален с точки зрения алгоритмической сложности — задачки уровня Medium или Hard с условного LeetCode могут давать на собеседованиях.
Если вы попробовали бесплатные курсы и готовы освоить профессию, присмотритесь к программе «Специалист по Data Science». За 13 месяцев вы получите необходимую базу — изучите Python и его библиотеки, SQL и другие упомянутые в статье инструменты, а также соберёте портфолио и пройдёте подготовку к трудоустройству. |
Навыки, о которых говорили в статье, мы собрали в одну карту, чтобы можно было свериться, каких знаний и умений может не хватать для перехода на следующий уровень.
→ Скачать карту
