Data Scientist
Вызов настоящего времени – обработка больших данных или Big Data. Данные генерируются в результате работы различных компаний и организаций, а также их информационных систем. Одной из профессий, представители которой занимаются реализацией и выработкой подходов и методов обработки больших данных, является Data Scientist. Мы обратились к экспертам и представителям различных компаний, чтобы выяснить, каких кандидатов они видят на этой позиции
1. Какими знаниями и навыками должен обладать Data Scientist?
2. Каков инструментарий Data Scientist?
3. Каковы требования компании к уровню образования потенциальных сотрудников?
4. Какие требования предъявляются к опыту работы?
5. Есть ли особые требования, которые обусловлены спецификой деятельности компании?
Илья Шутов, к.ф.-м.н., руководитель направления Data Science в «Медиа-Тел», Группа Devoteam
1. Основная прикладная задача Data Science сводится к применению различных цифровых показателей и математических методов для получения дополнительных выгод для бизнеса. Делается ли это на больших данных или не очень – вопрос второй, главное – иметь измеряемый положительный результат. Исходя из этого определения вытекают необходимость в хороших коммуникативных навыках (стыковка желаний и возможностей между производственным процессом и бизнесом), умение презентовать результаты, умение работать с любого вида информацией, полученной из практически любых видов источников (база данных, файлы, веб-страницы, API...), практическое знание высшей математики и хорошие навыки в программировании.
Однако, на мой взгляд, одним из ключевых моментов является умение детально и всесторонне разобраться в предметной области, применительно к которой и используются методы Data Sciene. Решение 90% задач в области Data Science начинается с постановки задачи в терминах предметной области и заканчивается апробацией результатов «в поле». А для этого как раз будет необходим ранее полученный багаж знаний по физике, химии, математике, биологии, инженерии, географии и многим другим наукам и навыки быстрого обучения новым областям.
2. Специфика деятельности позволяет достаточно четко составить список минимально необходимых инструментов. Большинство из них связано с обработкой и визуализацией данных. Но на первое место я бы поставил источники знаний по предметной области. Именно понимание истинных задач и проблем позволяет четко ставить задачу и получать результат, который важен для бизнеса.
Итак, минимально необходимый инструментарий:
- фундаментальная литература по конкретной предметной области;
- гибкие Оpen Source ИТ-средства для работы с любым объемом данных и любыми видами источников (R и/или Python, лучше оба);
- подобранный набор хорошо знакомых библиотек для указанных языков в части обработки (включая импорт/экспорт/математические алгоритмы), взаимодействия с внешним окружением и визуализации;
- хорошо знакомые и проверенные средства для хранения данных (SQL+NoSQL);
- различные средства визуализации (PowerPoint, Shiny/Dash, PowerBI, Tableau/Qlik)
- github как система контроля версий и коллаборативная платформа.
Я бы отметил, что большинство Оpen Source-систем в области Data Science работает на базе Linux, что автоматически требует наличия хотя бы минимальных навыков по администрированию и работы в *nix.
3. Желательны высшее образование (обеспечивает широкий кругозор) естественно-научного направления; опыт участия в исследовательских проектах, включая написание различных отчетов; опыт программирования на указанных выше языках; практические навыки отладки, оптимизации производительности, валидации полученных численных результатов.
4. Предпочтения вытекают из ответа на предыдущий вопрос.
5. По факту необходимо прекрасно разбираться в предметной области, иначе будет пустое жонглирование цифрами.
Андрей Лукьяненко, Data Scientist в Frumatic
1. Data Scientist – это профессия, которая требует весьма широкого набора знаний и навыков: математика, статистика, машинное обучение, программирование, навыки работы с базами данных, умение обрабатывать и чистить данные, умение анализировать и визуализировать данные и многое другое. Кроме того, обычно необходимо знание специфики бизнеса и наличие soft skills.
2. Инструментарий сильно зависит от специфики бизнеса и уровня профессионала. Это языки программирования и релевантные библиотеки – Python, R, Java, Scala, SQL; различные базы данных и платформы; возможно, отдельные инструменты для визуализации.
3. Обычно специфичных требований к уровню образования нет, поскольку в настоящее время почти нет вузов, которые полноценно готовят специалистов в этом направлении. Большую роль играют пройденные курсы и реальные навыки/опыт работы.
4. Зависит от уровня позиции (middle, senior и т.д.). Обычно нужен релевантный опыт работы или наличие завершенных проектов по Data Science или машинному обучению.
5. В данной компании желателен опыт работы в консалтинге.
Александр Крот, руководитель направления Data Science, ПАО «Сбербанк»
1. В первую очередь математический склад ума, в большинстве случаев от человека не требуется доказывать различные теоремы, но понимать, почему так или иначе работают используемые им алгоритмы, требуется. Далее, навыки программирования, чтобы быстро прототипировать свои идеи. Немаловажным является знание предметной области, в которой работает человек, чтобы не делать сферического коня в вакууме.
2. Инструментарий, как правило, определяется доступным в компании и личными пожеланиями самого Data Scientist. Как правило, для задач аналитики люди используют Python-стек для гибкого анализа данных (особенно, если дело касается работы с неструктурированными данными вроде текстов, картинок и др.), но для простых задач бизнеса во многих случаях подойдет и Excel.
3. В первую очередь это хороший математический склад ума, который обычно формируется после обучения в техническом вузе. Это условие необходимое, но недостаточное. Самое ценное – опыт решения индустриальных задач, который можно получить только практикой и стажировками. Важен также soft-skills, который обычно можно приобрести, поработав в консалтинге.
4. Самые успешные Data Scientist обычно появляются из классических аналитиков (в том смысле, который в это вкладывали лет пять – семь назад) в сочетании с консалтинговым опытом.
5. Человек должен хорошо разбираться в предметной области задачи, которую решает. Большинство математических методов анализа данных универсальны, но постановка задач требует глубоких знаний в процессах компании. Обычно в интернет-компаниях знание предметной области не так критично (потому что все с ней более-менее знакомы), но когда мы говорим о телеком-операторах, банках или заводах, то там без этого никуда.
Дмитрий Сергеев, Data Scientist в компании Zeptolab
1. Data Scientist, по большому счету, – «прикладной исследователь», его ос-новная задача – заниматься нестандартными проблемами, с которыми обычно не сталкиваются продуктовые аналитики. Нужно уметь работать в условиях большой неопределенности и со значительной долей автономии – готовых решений, которые можно сразу использовать, часто нет, поэтому очень ценятся инициативность, желание исследовать и находить новые работающие методы. Также пригодятся хорошие коммуникативные навыки – для решения той или иной задачи крайне необходимо собрать разрозненную информацию от многих людей, работающих над продуктом.
Основные требования к знаниям – машинное обучение, статистика и, конечно же, программирование на хорошем уровне. Data Scientist должен уметь создавать не только прототипы, но и доводить свои решения до уровня готовых к употреблению и внедрению систем, поэтому способность написать эффективный пайплайн по сбору и обработке данных, построению моделей и интерпретации результатов просто необходима.
Наконец, Data Scientist должен четко понимать бизнес-цели своей деятельности, чтобы грамотно формализовать задачу, выбирать корректные методы и метрики, задавать верные вопросы и вовремя останавливаться в своих исследованиях.
2. В плане используемых языков ничего необычного, пожалуй, назвать не могу, стек самый стандартный: Python, SQL + немного bash для работы с серверами.
Со стороны технологий – конечно, навыки Data Scientist должны позволять ему эффективно решать все основные типы задач – классификации, кластеризации и регрессии. И «эффективно» – здесь ключевое слово. Стакать xgboost и добавлять слои в сетки – это очень здорово, но если логистическая регрессия после грамотной предобработки данных решает задачу с таким же успехом – хороший Data Scientist должен это найти и использовать.
3. Как такового, требования профильного образования нет, в отделе аналитики работают люди с самым разным бэкграундом, в том числе непрофильным. Однако большое внимание уделяется дополнительному обучению и самообразованию – насколько потенциальный сотрудник способен постоянно развиваться в своей области, любит учиться новому и, конечно, насколько умеет использовать полученные самостоятельно знания.
4. Замечательно, если есть аналогичный опыт работы в других игровых компаниях – это сильно облегчает понимание бизнес-процессов, метрик, основных задач и направлений исследований. Однако предвзятого отношения к кандидатам без опыта нет, если его отсутствие компенсируется наличием своих pet-projects, успешными выступлениями на хакатонах и решенными задачками с соревнований.
5. Мы делаем игры, поэтому понимание игровых процессов, конечно же, является одним из основных требований к кандидату. Для успешного анализа, построения гипотез и моделей здорово помогает представление, почему те или иные игровые элементы могут работать, быть интересны или скучны игроку. Знакомство со спецификой рынка мобильных игр, его глобальными тенденциями – тоже плюс.
Дмитрий Бабаев, эксперт по наукам о данных, ПАО «МТС»
1. Иногда говорят, что Data Scientist – это лучший статистик, чем разработчики и лучший разработчик, чем статистики. Минимальный необходимый набор знаний: по математике это математический анализ, линейная алгебра, теория вероятности, математическая статистика и, конечно, методы машинного обучения. Также необходим достаточно хороший уровень в программировании. Важно умение работать с источниками данных, например с базами данных. Еще один компонент успеха – знание бизнес-специфики области работы компании.
2. Инструментарий сильно зависит от задачи, например, для задач AI используются библиотеки нейросетей, такие как Tensorflow или PyTorch. Для более традиционного анализа данных и машинного обучения есть два популярных стека технологий. Это Python Data-стек и R-стек. Основные библиотеки Python-стека – numpy, scipy, pandas, matplotlib, statmodels, scikit-learn. Для задач, связанных с обработкой больших объемов данных, используются технологии Hadoop-стека, например Spark. Интерактивный анализ данных удобно делать в Jupyter Notebook.
3. Жестких требований к уровню образования обычно нет, важно, чтобы человек действительно знал соответствующие разделы математики и умел программировать.
4. В МТС мы набираем сотрудников разного уровня, поэтому и требования разные. Для начального уровня достаточно уверенной математической базы и пары лет опыта программирования. На остальные позиции необходимо иметь от двух лет опыта Data Science в коммерческих компаниях либо академический опыт.
5. Очень полезно, когда Data Scientist знает бизнес-специфику области деятельности компании (в нашем случае телеком). Но вполне возможно прийти в новую область и быстро подтянуть знание местной бизнес-специфики.
Валерий Бабушкин, аналитик «Яндекс.Советник»
1. Набор требований крайне обширен, у каждой компании свои. На мой взгляд, то, что точно нужно, чтобы успешно справляться с базовыми задачами анализа данных, – это основы математический статистики, теория вероятностей, баесовская статистика (часто ее отмечают отдельно), R/Python и SQL – крайне важно умение находить решение – статью с описанием аналогичной проблемы, похожую задачу и тому подобное – в общем и целом это здравый смысл и декомпозиция задачи.
2. SQL,HQL,YQL и прочее – чтобы уметь тянуть информацию из источников хранения, будет то кластер или классическая база данных. Python/R – для очистки, визуализации, моделирования. Java/C++/Scala – для вывода и продакшн, и, самое главное, голова.
3. Высшее образование или ученая степень не являются самоцелью или фетишом, но очень хорошо коррелируют с умением понимать/разбирать статьи, разбирать проблему. Эти навыки, безусловно, можно приобрести и без высшего образования, но вероятность этого невелика, тут нужна поистине титаническая сила воли.
4. Все достаточно просто и зависит от сферы применения – зачастую это смежные поля, аналитика, хемометрика, физика/математика + желательно иметь опыт программирования в реальных условиях.
5. Из специфических требований, кроме высокого профессионального уровня (будем считать это по умолчанию), – soft skills, чтобы с ним было приятно работать и возможно было обсуждать/совместно решать проблемы.
Михаил Агейкин, руководитель отдела систем обработки больших данных ЗАО «ЕС-лизинг»
1. Data Scientist должен обладать знаниями и навыками в следующих областях знаний.
Математика и статистика. Требуются понимание и умения по следующим направлениям: факторный анализ, линейная алгебра, кластеризация, машинное обучение.
Программирование. Требуются навыки программирования на языке высокого уровня, таких как Python/JavaScript/R. Навыки программирования на одном из языков Java/Scala/C++ желательны.
В области работы с данными умение формирования SQL-запросов к СУБД, а также желательно знание одного из синтаксисов запросов к NoSQL (Hive, Cassandra, Impala).
Коммуникации. Требуются знания бизнес-терминологии для интерпретации результатов, навыки проведения презентаций и сторителлинга.
2. Подходит любой редактор/IDE для работы с Python или R, тут все определяется личными предпочтениями. Также не принципиально, какими приложениями пользоваться для работы с SQL & NoSQL базами данных, но, поскольку в разных проектах используются различные СУБД, желательно, чтобы клиент был универсальный, например SQuirreL.
Программные продукты для математических расчетов, например IBM SPSS Statistics и IBM SPSS Modeler.
3. От бакалавра и выше по специальностям прикладная информатика, эконометрика, прикладная математика, математика.
4. Зависит от уровня позиции и зарплатных ожиданий, готовы рассматривать кандидатов без опыта, с хорошим образованием и навыками, о которых было сказано выше, на позицию ассистента.
5. В первую очередь кандидат должен быть увлечен работой с данными. Поскольку все материалы появляются на русском языке с задержкой, то требуются знания английского языка. Для многих наших проектов от кандидатов требуются навыки текстового анализа (NLP).
Оксана Прутьянова, руководитель практики подбора аналитиков в компании New.HR
1. В перечень требований входят знания в области математики, статистики, теории вероятности, понимания структур данных, алгоритмов, знание языков программирования для работы с данными, как правило, R или Python. Также потребуются знания языков запросов для работы с базами данных, например SQL.
2. Перечислю самые часто встречающиеся требования:
- Программирование: Python, Java, Scala.
- Machine Learning: R, Matlab, Python libraries (NumPy, SciPy, Nltk…), Java libraries (Mahaut).
- Big Data инструменты: Hadoop (MapReduce) + hadoop tools, Hive, Pig, NoSQL (Hbase, MongoDB, Cassandra, Neo4J).
- Базы данных: SQL, Postgres.
- Операционные системы: *nix.
- Технологии визуализации данных и отчетности.
3. Как правило, успешные кандидаты имеют техническое, математическое образование или образование в области точных наук – физика, инженерия.
В настоящее время есть возможность получить дополнительное образование в области анализа данных. Например, в Школе анализа данных Яндекса (ШАД), на Coursera, на курсах в Нетологии, МФТИ и пр.
Также есть профильные площадки, где можно поучаствовать в соревнованиях по аналитике и машинному обучению как самостоятельно, так и в команде, самая известная – Kaggle, или пообщаться с коллегами на профильных конференциях и сообществах.
4. Будут востребованы опыт решения научных или бизнес-задач на основе данных, опыт применения языков программирования для решения прикладных аналитических задач , опыт применения алгоритмов машинного обучения, опыт работы с технологиями больших данных (например, Hadoop, MapReduce).
5. Помимо сугубо технических и математических знаний, кандидатам потребуется навык выстраивания отношений с внутренними заказчиками и другими участниками команды. Зачастую нужно помогать другим принимать решения на основе данных, а это значит, что пригодится умение простым языком объяснять сложные вещи, отстаивать свою точку зрения или обосновывать те или иные решения, брать на себя роль менеджера-аналитика и выстраивать работу других людей.
Вячеслав Бусаров, Data Scientist в компании InfoWings
1. Data Scientist прежде всего должен понимать процесс решения задач аналитики от начала до конца – от получения исходных «сырых» данных до работы модели в целевой production-системе (CRISP-DM). Далее уровень специалиста определяется глубиной знаний и опытом работы на каждом из этапов, а также методикой познания неизвестной предметной области.
Многие начинают с позиции Data Engineer и, осваивая детали этапа подготовки данных, переходят к полноценному решению задач.
2. Основными инструментами являются: статистика, теория вероятностей, алгоритмы и структуры данных: деревья, регрессии, нейросети, методы кластеризации, работы с рядами и прочее. Языки, ориентированные на анализ данных, например Python и R. Платформы для работы с большими объемами данных, например Hadoop, Spark.
3. Формальное образование не имеет значения: в нашей компании есть доктора наук с достижениями международного уровня и студенты, пока только получающие высшее образование. Главное – фактические навыки, искренняя вовлеченность в процесс и постоянный профессиональный рост.
4. Опыт работы определяет уровень задач, которые сотрудник будет решать. И требования к опыту, соответственно, варьируются в довольно широком диапазоне.
5. Мы искренне ценим всех членов команды, поскольку каждый из нас имеет конкретное и осязаемое влияние на конечный результат. То есть каждый несет ответственность за плоды своей работы вне зависимости от уровня решаемых задач. Поэтому важными требованиями, помимо технических, являются также самодисциплина и инициативность.
Подготовил Игорь Штомпель