В чем нужно разобраться, чтобы найти первую работу в Data Science
Образование
6K
Фотография — Laurence Dutton / iStock

В чем нужно разобраться, чтобы найти первую работу в Data Science

5
Аватар автора

Владислав Бояр

эксперт Центра непрерывного образования ФКН НИУ ВШЭ

Страница автора

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

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

Python

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

На языке написано большое количество библиотек и фреймворков для анализа данных и машинного обучения: pandas, numpy, scikit-learn. Эти инструменты упрощают и ускоряют работу дата-сайентистов.

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

Что важно знать

Область знанияКонкретные навыки и понятия
Типы данныхИзменяемые и неизменяемые типы данных, их различия
Основные конструкцииЦиклы, условия, функции, классы, регулярные выражения
Структуры данныхМассив, связный список, стек, очередь, множество, словарь, граф, дерево
Алгоритмы и оценка их сложности по времени и памятиСортировки, поиск, алгоритмы на графах, динамическое программирование
Библиотеки для анализа данныхpandas для табличных данных;
NumPy для работы с массивами и для математических вычислений в целом
Библиотеки для машинного обученияsklearn для обучения моделей;
statsmodels для анализа статистики;
xgboost, lightgbm и catboost для градиентного бустинга
Библиотеки и фреймворки для глубинного обученияkeras, tensorflow и pytorch
Библиотеки для визуализации данныхplotly, matplotlib и seaborn для визуализации данных

Что важно знать

Область знанияКонкретные навыки и понятия
Типы данныхИзменяемые и неизменяемые типы данных, их различия
Основные конструкцииЦиклы, условия, функции, классы, регулярные выражения
Структуры данныхМассив, связный список, стек, очередь, множество, словарь, граф, дерево
Алгоритмы и оценка их сложности по времени и памятиСортировки, поиск, алгоритмы на графах, динамическое программирование
Библиотеки для анализа данныхpandas для табличных данных; NumPy для работы с массивами и для математических вычислений в целом
Библиотеки для машинного обученияsklearn для обучения моделей; statsmodels для анализа статистики; xgboost, lightgbm и catboost для градиентного бустинга
Библиотеки и фреймворки для глубинного обученияkeras, tensorflow и pytorch
Библиотеки для визуализации данныхplotly, matplotlib и seaborn для визуализации данных

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

Где научиться

📂 «Поколение Python»: курс для начинающих от Stepik. Бесплатная программа обучения с базовыми навыками работы с языком.

📂 Открытый онлайн-интенсив «Введение в Data Science: от Python до машинного обучения» от факультета компьютерных наук НИУ ВШЭ познакомит с синтаксисом Python, структурами данных и конструкциями, а также с базовыми алгоритмами машинного обучения. Еще интенсив содержит домашние задания с автоматической проверкой.

📂 Программирование на Python от НИУ ВШЭ. Курс на два месяца учит писать код, работать с ключевыми библиотеками, собирать и визуализировать данные. Бесплатно доступен первый модуль из восьми, общая стоимость — 27 000 ₽.

📂 Книга «Грокаем алгоритмы» Бхаргавы Адитьи знакомит с основными алгоритмами и структурами данных, помогает закрепить знания на практике. Книга написана просто, с примерами кода, который можно повторить самостоятельно. Стоит 500—600 ₽.

SQL

Зачем знать. SQL — язык структурированных запросов, который помогает взаимодействовать с базами данных: добавлять, извлекать, изменять и удалять информацию, управлять таблицами и другими объектами.

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

Что важно знать

Область знанияКонкретные навыки и понятия
Виды баз данных, их различияPostgreSQL, Clickhouse, GreenPlum, S3 и Hadoop
Основные операторыselect, from, where, group by, having, order by, limit, offset
Виды объединений и их особенностиjoin: inner, left, right, full, crossunion, intersect, except
Агрегирующие и оконные функцииcount, sum, avg, min, maxrow_number, rank, dense_rank, lag, lead
Библиотеки для работы с БД через Pythonpsycopg2, sqlalchemy, pandas
DDL-операторы  create, alter, drop
DML-операторы  insert, update, delete, truncate
Объекты и особенности БДИндексы, партиции, дистрибьюция, представления, внешние таблицы, функции, триггеры, план запроса, транзакции, блокировки

Что важно знать

Область знанияКонкретные навыки и понятия
Виды баз данных, их различияPostgreSQL, Clickhouse, GreenPlum, S3 и Hadoop
Основные операторыselect, from, where, group by, having, order by, limit, offset
Виды объединений и их особенностиjoin: inner, left, right, full, cross union, intersect, except
Агрегирующие и оконные функцииcount, sum, avg, min, max row_number, rank, dense_rank, lag, lead
Библиотеки для работы с БД через Pythonpsycopg2, sqlalchemy, pandas
DDL-операторы  create, alter, drop
DML-операторы  insert, update, delete, truncate
Объекты и особенности БДИндексы, партиции, дистрибьюция, представления, внешние таблицы, функции, триггеры, план запроса, транзакции, блокировки

Как проверяют на собеседовании. Задают теоретические вопросы вроде «чем различаются операторы where и having» и дают практические задачи, скажем, на написание SQL-запросов.

Где научиться

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

📂 SQL 50 — раздел LeetCode, где собрали 50 тематических задач, разбитых по уровню сложности.

📂 SQL Academy — на сайте есть курс по основным конструкциям SQL и практические задания.

📂 SQL-EX.ru — еще одна платформа для наработки опыта.

Математические навыки

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

Еще, если вы понимаете принципы работы моделей, вы будете выделяться среди других кандидатов на интервью.

Что важно знать

Область знанияКонкретные навыки и понятия
Математический анализФункция, предел, производная, интеграл, градиент
Линейная алгебраМатрица, определитель, собственные значения
Дискретная математикаМножества, логика, графы
Теория вероятностей и математическая статистикаСлучайные величины и их распределения, формула Байеса, проверка статистических гипотез

Что важно знать

Область знанияКонкретные навыки и понятия
Математический анализФункция, предел, производная, интеграл, градиент
Линейная алгебраМатрица, определитель, собственные значения
Дискретная математикаМножества, логика, графы
Теория вероятностей и математическая статистикаСлучайные величины и их распределения, формула Байеса, проверка статистических гипотез

Как проверяют на собеседовании. Могут попросить объяснить значение ключевых понятий, например «что такое градиент и какой у него геометрический смысл».

Иногда предлагают задачи на вероятность какого-то события или проверку статистической гипотезы. Часто встречаются логические задачи — примеры можно посмотреть на Tproger.

Где научиться

📂 Книга «Статистика и котики» Владимира Савельева — замечательная работа, в которой сложные статистические формулировки объясняют на котиках. Отлично подойдет для знакомства со статистикой. Стоит около 600 ₽.

📂 Бесплатный курс «Математика для Data Science» от Karpov.Courses — базовая программа по линейной алгебре и матанализу.

📂 Курс по прикладной статистике от Академии аналитиков «Авито» — бесплатный, проведет и по основам области, и по тонкостям.

Машинное обучение

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

Что важно знать

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

Обучение без учителя: кластеризация, понижение размерности, оценка плотности, визуализация, поиск аномалий, генерация
Классические алгоритмыЛинейная регрессия, регуляризации и их особенности

Классификация, логистическая регрессия, метод опорных векторов

Деревья решений, критерий информативности

Ансамблевые методы: случайный лес, бэггинг, бустинг

Градиентный бустинг: XGBoost, CatBoost, LIghtGBM

Кластеризация, понижение размерности, рекомендательные системы, анализ временных рядов

Что важно знать

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

Обучение без учителя: кластеризация, понижение размерности, оценка плотности, визуализация, поиск аномалий, генерация
Классические алгоритмыЛинейная регрессия, регуляризации и их особенности

Классификация, логистическая регрессия, метод опорных векторов

Деревья решений, критерий информативности

Ансамблевые методы: случайный лес, бэггинг, бустинг

Градиентный бустинг: XGBoost, CatBoost, LIghtGBM

Кластеризация, понижение размерности, рекомендательные системы, анализ временных рядов

Как проверяют на собеседовании. Проверяют и по теоретическим вопросам, и по практическим заданиям.

Часто оценивают знание классических алгоритмов и принципов их работы. К примеру, могут попросить рассказать про метод опорных векторов: как он устроен, в каких задачах его применяют, какие у него параметры и гиперпараметры.

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

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

Где научиться

📂 mlcourse.ai — курс по машинному обучению от OpenDataScience сочетает теорию классического машинного обучения и практические задания, в том числе в формате соревнований Kaggle.

📂 «Разработка ML-сервиса: от идеи к прототипу» от Stepik — на этом интенсиве учат проводить разведочный анализ данных, строить модели машинного обучения и представлять результаты работы.

📂 Мегаинтенсив по анализу данных от НИУ ВШЭ — в четыре занятия включены основы программирования на Python и создание модели машинного обучения.

📂 «Введение в Data Science и машинное обучение» от Stepik — на курсе преподают классические алгоритмы машинного обучения и закрепляют знания на практике.

Глубинное обучение

Зачем знать. Хотя не каждый дата-сайентист работает с моделями глубинного обучения, перед поиском работы все же важно понимать, какие задачи хотелось бы решать и какие инструменты для них понадобятся. Тем более этот раздел информатики набирает все большую популярность благодаря прикладной ценности продуктов, основанных на генеративных моделях: вспомним ChatGPT или MidJourney.

Что важно знать

Область знанияКонкретные навыки и понятия
Основные терминыАлгоритм обратного распространения ошибки, функции активации, нормализация по батчам
Компьютерное зрениеСвертка, сверточные нейронные сети, или CNN, детекция, сегментация
Обработка естественного языкаЛемматизация, стемминг, векторные представления текстов, их еще называют эмбеддинги, word2vec, fasttext
Ключевые алгоритмы и архитектурыАвтокодировщики, генеративные модели

Рекуррентные нейронные сети, или RNN, Attention, BERT, трансформеры

Что важно знать

Область знанияКонкретные навыки и понятия
Основные терминыАлгоритм обратного распространения ошибки, функции активации, нормализация по батчам
Компьютерное зрениеСвертка, сверточные нейронные сети, или CNN, детекция, сегментация
Обработка естественного языкаЛемматизация, стемминг, векторные представления текстов, их еще называют эмбеддинги, word2vec, fasttext
Ключевые алгоритмы и архитектурыАвтокодировщики, генеративные модели

Рекуррентные нейронные сети, или RNN, Attention, BERT, трансформеры

Как проверяют на собеседовании. Разберитесь, подразумевает ли позиция знание и применение нейронных сетей. Как правило, специалисты по ним фокусируются на одном направлении, например разрабатывают модели обработки естественного языка.

Проверить практические навыки в нейронных сетях в рамках собеседования довольно трудно, поэтому, если нужно знание именно этой области, вопросы будут в основном теоретические вроде «расскажите об архитектуре типа „трансформер“».

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

Где научиться

📂 Дистанционные занятия ФКН ВШЭ на различные темы в сфере анализа данных и машинного обучения.

📂 Курс «Глубокое обучение (Deep Learning)» математик Александр Дьяконов читал в МГУ в 2019—2022 годах: по ссылке будут записи лекций.

📂 «Deep Learning: базовый поток» — программа от МФТИ с теорией и практикой: и узнаете, что такое вообще нейронные сети, и закрепите знания практикой на PyTorch  .

📂 «Прикладные нейросети» — на курсе учат использовать готовые нейросети для генерации текстов, поиска объектов на картинках, автоматического распознавания речи.

Дополнительные инструменты для работы с кодом и данными

Почему важно знать. Помимо основных инструментов, которые определяют Data Science как направление в ИТ, начинающему исследователю не обойтись без знаний по управлению процессами, командной работы и так далее. Ниже перечислим базовые направления.

Что важно знать

Область знанияКонкретные навыки и понятия
Работа с большими даннымиMPP-СУБД, Hadoop, PySpark
Работа с кодом в командеGit: GitLab, BitBucket
КонтейнеризацияDocker
Оркестрация процессовAirflow, MLFlow

Что важно знать

Область знанияКонкретные навыки и понятия
Работа с большими даннымиMPP-СУБД, Hadoop, PySpark
Работа с кодом в командеGit: GitLab, BitBucket
КонтейнеризацияDocker
Оркестрация процессовAirflow, MLFlow

Как проверяют на собеседовании. Как правило, на интервью не будут на практике проверять, умеет ли кандидат пользоваться этими инструментами, но могут спросить, доводилось ли с ними работать на учебе или работе.

Например, интервьюер может задать такие вопросы: «какие бывают схемы работы с ветками в Git» или «что такое оркестратор и для чего он нужен».

Где научиться

📂 «Бесплатный курс по Docker с нуля» от karpov.courses даст базовые навыки работы с контейнерами.

📂 «Hadoop. Система для обработки больших объемов данных» от Stepik познакомит с экосистемой хранения и обработки больших данных Hadoop и даст практические навыки во фреймворке PySpark.

📂 «Основы работы с Git»: обучение для начинающих от «Яндекс Практикума» — на курсе осваивают работу с терминалом, учатся Git и знакомятся с основными командами в нем.

Новости из мира образования, советы по карьере и учебе, вдохновляющие истории — в нашем телеграм-канале: @t_obrazovanie

Владислав БоярЧем бы дополнили список?