Data Science – область очень перспективная. За прошлый год мы в ЕРАМ получили 210 резюме от людей, которые хотят заниматься Data Science. Из них на техническое интервью мы пригласили 43 человека, а предложили работу семи. Если спрос большой, почему так?

Мы поговорили с техническими интервьюерами и выяснили: проблема многих кандидатов в том, что они плохо представляют, чем занимаются аналитики данных. Поэтому их знания и навыки не всегда релевантны для работы. Кто-то считает, что опыта работы с Big Data достаточно, чтобы работать в Data Science, кто-то уверен, что хватит просмотра нескольких курсов по машинному обучению, некоторые думают, что хорошо разбираться в алгоритмах необязательно.

Дмитрий Никитко и Михаил Камалов – аналитики данных и технические интервьюеры из ЕРАМ – рассказали, чего ждут на собеседованиях от кандидатов, какие вопросы задают, что ценится в резюме и как подготовиться к собеседованию.



В разных компаниях понимание того, что делают аналитики данных, разное. Кто-то понимает это понятие шире, кто-то – уже. Вот что делают такие специалисты в ЕРАМ:

  • Занимаются предобработкой данных
  • Ищут закономерности в данных и проверяют гипотезы
  • Создают предсказательные модели, используя алгоритмы машинного обучения
  • Оценивают качество полученных моделей
  • Визуализируют данные
  • Помогают интегрировать решение

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

В ЕРАМ сделали тест, который рекрутеры присылают кандидатам до собеседования. Часть, где нужно выбрать верный вариант, проверяется автоматически. Часть, в которой содержатся развернутые ответы на вопросы, читают технические интервьюеры.

Что нужно уметь


Если коротко, аналитик данных – это человек, который умеет программировать (в большинстве случаев на Python), разбирается в статистике, математике, алгоритмах и владеет английским.
Английский нужен не только для того, чтобы читать специализированную литературу и разбираться с документацией. Многие аналитики напрямую общаются с иностранными заказчиками. Кстати, здесь пригодится еще и умение переводить с языка дата-сайентиста на тот, что понятен бизнесу.

Обязательно ли профильное образование?


Важно хорошо знать математику, и высшее техническое образование – большой плюс. Большинство дата-сайентистов в ЕРАМ по образованию математики, программисты или физики. Но это не жесткое требование – у нас есть сотрудник-лингвист, а недавно мы взяли еще и социолога, который после окончания университета обрабатывал результаты социологических исследований, создавал модели, занимался прогнозированием и анализом социальных графов. Такой опыт – релевантный для работы в Data Science, поэтому кандидат был нам интересен.

В общем, нельзя сказать, что человек с техническим образованием нам подойдет, а с гуманитарным – нет. Все зависит от навыков и опыта. Например, компьютерный лингвист, который научился писать код, – более интересный кандидат, чем Big Data-инженер, работавший с MapReduce и Hadoop, но не разбирающийся в алгоритмах, или чем обладатель научной степени по статистике без опыта работы.

Что ценится в резюме


Больше всего ценится опыт работы. Если вы уже работали в Data Science, подробно напишите, что делали, какие алгоритмы использовали и какие навыки у вас есть.
Если у вас нет опыта работы, большим плюсом в резюме станет:

  • Краткий рассказ о пет-проектах. Важно, чтобы кандидат не только знал теорию, но и успел попрактиковаться.
  • Участие в хакатонах. Это говорит как минимум о том, что вы работали в команде и (скорее всего) создали работающее решение в ограниченный срок. Участие в хакатонах хорошо еще и тем, что на них вас могут заметить работодатели. Тогда отправлять резюме, возможно, вообще не потребуется.
  • Участие в соревнованиях по машинному обучению (Kaggle, DrivenData). Если вы участвовали или даже победили в соревновании Instacart на Kaggle, где нужно было создать рекомендательную систему, вы сможете решить бизнес-задачу с похожими целями быстрее. Но, по нашему опыту, победа в таких соревнованиях не всегда значит, что кандидат знает, например, как работают алгоритмы, которые он использовал.

Что спрашивают на собеседовании


Цель собеседования по Data Science, как и везде, – понять, насколько хорошо человек разбирается в своей предметной области. Сначала интервьюер задает вопросы по основам машинного обучения и статистики. По ответам можно понять глубину и ширину знаний кандидата по базовым вопросам. После этого задают специфические вопросы, например, по обработке естественного языка, работе с временными рядами или рекомендательными системами. Если кандидат говорит, что умеет работать с графами, изображениями или другими данными, его спросят и об этом.

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

Вот какие вопросы могут задать на собеседовании:

Нейросети

— Какие методы предотвращения переобучения (регуляризации) для нейронных сетей вы знаете? Как они работают? Куда вставлять batch normalization?

— Чем отличается нейронная сеть с одним выходом и сигмоидальной функции активации и такая же нейронная сеть, но с двумя выходами и softmax?

— Представим, что у нас есть многослойная полносвязанная сеть с нелинейной функцией активации. Что будет с нейронной сетью, если мы уберём нелинейность?

— Для чего используют global pooling?


Распознавание изображений

— Как оценивают качество в задачах object detection?
— Какие архитектуры нейронных сетей для семантической сегментации вы знаете?
— Как и зачем использовать transfer learning?


Временные ряды

— Как правильно тестировать качество моделей в работе с временными рядами?
— Что мы должны делать с сезонностью в данных?
— Как искать аномалии во временных рядах?


Обработка естественного языка

— Что лежит в основе моделирования тематик? Как работает этот алгоритм? Как вы выберете число тематик, которые будут обучаться этим алгоритмом?

— У вас есть текст отзывов и рейтинг, пользователи используют 5-балльную шкалу. Как бы вы построили систему, которая сможет предсказывать оценку по тексту отзыва? Как оценивать качество этой системы?


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

«Что вы будете делать, если дата-сет несбалансированный?»
«Как вы будете решать проблему, если есть пропуски в данных?»
«Как поступите, если будут выбросы в данных?»


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

Типичные ошибки на собеседованиях


Кандидат не понимает, как работают алгоритмы, которые он использовал
Интервьюеры всегда спрашивают об алгоритмах, которые использовали кандидаты: какие параметры в них есть, как их настроить. Если ответа нет, или кандидат отвечает, что настроил алгоритм «по наитию» – это плохо. Если вы берете алгоритм, стоит потратить время, чтобы понять, как его настроить.

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

Кандидат не может рассуждать самостоятельно
Если человек слишком часто отвечает на вопрос: «Я погуглю» – это нехороший знак. Конечно, дата-сайентисты гуглят, но уметь рассуждать самостоятельно тоже важно: иногда встречаются проблемы, для которых нет готового решения, и нужно придумывать что-то свое.

Кандидат выдумывает, как работает система
Иногда люди не могут ответить на вопрос, как работает та или иная система, и начинают придумывать, надеясь попасть пальцем в небо. Так делать не рекомендуется: интервьюер это заметит. Лучше честно сказать: «Я не знаю», тогда останется больше времени на другие вопросы. Вероятность, что вас спросят о том, в чем разбираетесь, вырастет.

Список литературы


Всем, кто хочет заниматься Data Science, советуем посмотреть/прочитать:

• Курс «Программирование на Python» на Stepik
• Курс «Введение в машинное обучение» на Coursera
• Курс «Машинное обучение и анализ данных» на Coursera
• Курс «Машинное обучение» Константина Воронцова
Курсы по deep learning на Coursera
• Курс «Нейронные сети» на Stepik
• Книга Deep Learning Book
• Книга «Глубокое обучение: погружение в мир нейронных сетей» – первая книга о глубоком обучении на русском языке
• Книга по NLP Speech and Language Processing
• Книга по информационному поиску и NLP «Introduction to Information Retrieval»
• Статьи на opendatascience
• Курс «Алгоритмы и структуры данных» Максима Бабенко

Комментарии (7)


  1. osipov_dv
    07.03.2018 12:34

    EPAM, как раз вспомнилось адовое видео


    1. dim2r
      07.03.2018 18:06

      на рунглише уже песни поют :)


    1. QtRoS
      08.03.2018 16:14

      Прямо хочется процитировать Мэддисона — даже если мне приставят к голове пистолет, то я все равно не смогу объяснить, что сейчас увидел...


  1. PMVyatkin
    07.03.2018 13:11
    +1

    Спасибо, статья интересная и очень актуальная для многих!
    Обязательно надо рекомендовать ее к распространению в ВУЗах, в которых готовятся будущие разработчики и аналитики.

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

    Про степени и статистику — согласен, знаю кучу людей, со степенями (КТН и КФМН), которые защищались по релевантным темам, однако от разработки современного ПО они очень далеки, и не пройдут даже на джуниора.
    В то же время, человек со степенью приходит в компанию с ожиданием признания его заслуг и быстрого карьерного роста, чего как правило не бывает, т.к. талантливый студент, отработав в компании три года совмещая такую работу с учебой, будет на голову выше любого кандидата наук без опыта работы в ИТ.


    1. dim2r
      07.03.2018 18:18

      Эпам занял допольно специфицескую нишу проектов. Очень много «кровавого энтерпрайза», от которого мозги перегружаются всякой ерундой.


  1. masai
    08.03.2018 14:44

    Куда вставлять batch normalization?
    Вопрос с подвохом. Немало я видел споров на эту тему. :)


  1. Marui
    08.03.2018 14:57
    +1

    Как показывает практика, такие вопросы ничего не показывают. Либо спрашивайте сразу проекты показать рабочие с кодом, либо общие вопросы по computer science и software engineering. Большинство кандидатов будут пытаться подзубрить или погуглить соответствующие вопросы. Лучше брать перспективных джуниоров, чем зубрилок.
    Синьер вам сам всё расскажет.
    Джуниоров пытать на собеседованиях бессмысленно.