В чем нужно разобраться, чтобы найти первую работу в Data Science
Дата-сайентисты нужны в корпорациях, стартапах, научных организациях — везде, где работают с большими объемами данных.
При этом даже для первой работы нужно накопить знания и умения на стыке математики, программирования и машинного обучения. Собрали основные области в науках о данных, которые следует изучить или повторить, прежде чем идти на собеседование.
Что понадобится для работы в Data Science
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 |
Библиотеки для работы с БД через Python | psycopg2, 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 |
Библиотеки для работы с БД через Python | psycopg2, 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