Знайте, чего ожидать от процесса.

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

Чтобы оценить, соответствуете ли вы этим требованиям, большинство собеседований по науке о данных включают следующие шаги:

  1. Экран телефона
  2. Вызов данных на дом
  3. Технический экран
  4. Тест кодирования
  5. Техническое интервью
  6. Интервью на месте

Каждый из этих шагов более подробно описан ниже.

Экран телефона

Первым шагом после прохождения экрана резюме часто является телефонный звонок, проводимый специалистом по кадрам или рекрутером. Эти люди обладают разной степенью технических знаний, и цель этого собеседования состоит в том, чтобы они подтвердили, что вы, вероятно, будете хорошим кандидатом как в культурном, так и в профессиональном плане. Хотя они не смогут полностью проверить ваши технические способности, они смогут определить, подходят ли ваши навыки и прошлый опыт для того, что компания ищет на этой конкретной должности. Обычно такие интервью длятся 30–40 минут. Лучший способ убедиться, что все идет хорошо, — это общаться уверенно, профессионально и с энтузиазмом.

Интервьюер представится, а затем, чаще всего, опишет роль и, возможно, немного о компании. Они спросят, интересна ли вам эта роль, или попросят описать тип должности, которую вы ищете. Лучше быть прямолинейным и обдуманным в своем ответе, заранее просмотреть описание работы и быть готовым повторить некоторые компоненты описания работы, которые находят отклик у вас. Затем на собеседовании могут быть заданы такие вопросы, как «Расскажите мне о вашем последнем проекте?» или «Опишите свой опыт использования моделей машинного обучения?» В обоих этих вопросах вы хотите предоставить достаточно подробностей, чтобы полностью сообщить о том, что вы делали в прошлом; однако вы не хотите перегружать интервьюера техническими шагами, которые вы предприняли. Вы всегда можете получить краткий ответ: «Я могу предоставить более подробную информацию об этом, если хотите». Хорошо показать, что вы понимаете общую картину созданной вами модели машинного обучения, поэтому сначала опишите проблему высокого уровня, а затем то, как вы ее решили. Когда вас спросят об использовании определенного инструмента, например «Использовали ли вы SQL?», по возможности отвечайте контекстом проекта. Пример ответа: «Да, я использую SQL в начале каждого нового проекта для запроса к базе данных, затем я загружаю эти данные в Python и продолжаю оттуда. Я сделал это для последнего проекта, который я описал, помечая мошеннические транзакции с кредитными картами». Наличие конкретного примера помогает интервьюеру вспомнить и подтвердить, что у вас есть именно этот навык.

Ближе к концу этого звонка интервьюер, скорее всего, спросит, есть ли у вас какие-либо вопросы. Воспользуйтесь этой возможностью, чтобы узнать больше о роли и компании. Например:

  • Каков размер и структура команды по науке о данных?
  • Почему эта роль открылась, это новая позиция?
  • Кто является менеджером по найму?

Установление взаимопонимания с компанией начинается с экрана телефона. Будьте любезны и благодарны интервьюеру за потраченное время и отправьте электронное письмо с благодарностью позже в тот же день или на следующее утро.

Технический экран

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

Как правило, компания предоставляет данные на дом с использованием внутреннего набора данных или набора данных с Kaggle.com. В большинстве случаев это приходит вам по электронной почте в виде zip-файла с кратким описанием проблемы и CSV-файлом. Как правило, у вас есть 1 неделя, чтобы выполнить задание, и вас попросят вернуть свой анализ в виде блокнота Jupyter или в виде записи проекта в формате PDF.

Тест на получение данных используется для оценки технических навыков, таких как программирование на Python и знания в области науки о данных, такие как выполнение соответствующих шагов обработки данных и выбор правильного типа модели машинного обучения для данного проекта. Проект также должен продемонстрировать вашу способность оставаться организованным и сосредоточенным при ответе на 1–3 конкретных вопроса, а также на 1–2 открытых вопроса. У каждой компании свой подход к их проведению, но часто они представляют собой комбинацию открытых и конкретных вопросов.

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

Пример домашнего задания 1

Ожидания от упражнения. Цель этого упражнения — продемонстрировать свои способности в области обработки и анализа данных, инструментов машинного обучения и программирования на Python. Мы ожидаем, что это займет от 10 до 20 часов, поэтому постарайтесь уложиться в рамки времени примерно на следующей неделе. Мы хотели бы, чтобы вы обработали приведенный ниже набор данных. и расскажите нам, какие важные выводы вы сделали из этих данных. Что вы обнаружите и сообщите (классификации, корреляции, особенности, причинно-следственная связь и т. д.), зависит от вас. Мы ищем вас, чтобы продемонстрировать свой уровень знаний в области науки о данных, эффективность работы с инструментами машинного обучения и навыки работы с языком программирования Python. Предполагается, что вы будете использовать Python, но помимо этого вы можете использовать любые наборы инструментов или библиотеки машинного обучения, которые вы предпочитаете.

Вот ссылка на данные: https://www.kaggle.com/new-york-state/nys-oasas-medicaid-trend-recipient-summary-profile

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

Результаты:  — текстовый файл, содержащий ваш код Python  — описание ваших результатов (~2 страницы) в любом стандартном формате (Word, PDF и т. д.).

Сводка должна включать используемые вами инструменты и методы, почему вы их использовали и какие выводы вы получили. Графики или картинки приветствуются. Обратите внимание, что из-за нехватки времени не ожидается, что ваш код будетдоведен до совершенства, будет достаточно нескольких комментариев, иллюстрирующих то, что вы делаете.

Пример домашнего задания 2

Некоторые примечания перед началом работы: * Полностью прочитайте инструкции. * Модели должны быть построены с использованием Python. * Никаких дополнительных данных. могут быть добавлены или использованы. * Хотя с помощью простых методов можно разработать адекватные модели, успех в этом упражнении обычно связан с разработкой функций и настройкой модели. * В коде используйте комментарии, чтобы задокументируйте свой мыслительный процесс по мере прохождения исследовательского анализа данных, разработки функций, настройки модели и т. д. * Пожалуйста, сравните свою заявку с ожиданиями.

Шаг 1. Очистите и подготовьте данные. Есть несколько записей, в которых значения были удалены для имитации грязных данных. Пожалуйста, очистите данные любым методом (методами), который вы считаете лучшим/наиболее подходящим. Обратите внимание, что некоторые из пропущенных значений действительно пусты (неизвестные ответы). Успех в этом упражнении обычно связан с разработкой функций и предотвращением утечки данных.

Шаг 2. Создайте свои модели. Обучите две разные модели машинного обучения/статистики, чтобы они предсказывали значение y. Пожалуйста, включите комментарии, которые документируют ваш выбор (например, для разработки функций и настройки модели).

Шаг 3. Создание прогнозов. Создайте прогнозы для данных в test.csv, используя каждую из обученных моделей. Прогнозы должны представлять собой вероятности класса для принадлежности к положительному классу (отмечены как «1»). Обязательно выведите прогноз для каждой строки в тестовом наборе данных (10 000 строк). Сохраните результаты каждой из ваших моделей в отдельном CSV-файле. Назовите два файла «results1.csv» и «results2.csv». В каждом файле результатов должен быть один столбец, представляющий выходные данные одной модели (не требуется метка заголовка или индексный столбец).

Шаг 4. Сравните свои подходы к моделированию. Подготовьте относительно короткий отчет, в котором сравниваются плюсы и минусы двух использованных вами методов моделирования (предпочтительно в формате PDF). Есть ли варианты, сделанные вами в контексте упражнения, которые могут отличаться в бизнес-контексте?

Шаг 5. Отправьте свою работу. Ваша заявка должна состоять из всего кода, используемого для EDA, очистки, подготовки и моделирования (предпочтительно текст, HTML или PDF), двух файлов результатов ( .csv, каждый из которых содержит 10 000 десятичных вероятностей), и ваше описание, сравнивающее плюсы и минусы двух использованных методов моделирования (предпочтительнее текст, HTML или PDF).

Ваша работа будет оцениваться по используемым методам (уместность и сложность), оценке двух методов, сравниваемых в описании, производительности модели на основе данных, измеряемых AUC, и вашему коду/комментариям в целом. Порог для прохождения производительности модели установлен высоко, ожидая, что будут использоваться настройка модели и разработка функций. Будет использован лучший результат из двух представленных моделей. Пожалуйста, не отправляйте нам исходные данные. Если у вас возникли проблемы с открытием прикрепленного файла или доступом к данным, пожалуйста, дайте нам знать немедленно. Чтобы уменьшить размер результатов, которые вы возвращаете, отправьте обратно только свои классификации (не включая исходные данные). Хотя вы можете использовать любые имеющиеся у вас ресурсы для выполнения этой работы, мы ожидаем, что ваша работа будет оригинальной и вашей собственной. Отправьте результаты на этот адрес электронной почты до конца дня следующего понедельника.

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

Тест кодирования

Тесты по кодированию чаще всего проводятся с использованием стороннего программного обеспечения, такого как Codebunk или Coderpad, которое позволяет интервьюеру одновременно с вами подключаться к IDE или текстовому редактору, а также позволяет проводить видеоконференции. Скорее всего, вас попросят написать скрипты для решения SQL-запросов или написать программы на Python для ответов на конкретные вопросы. Эти интервью обычно длятся 1 час и начинаются с простых вопросов, постепенно переходя к более сложным. Вам не разрешается использовать Google, Stackoverflow.com или другие справочные материалы во время этого интервью.

Некоторые интервьюеры могут помочь вам найти правильное решение, если вы испытываете затруднения. Лучший подход к сложным проблемам с кодированием — устно рассказать, как вы собираетесь решать проблему, и начать с написания логического кода. Если вы на правильном пути, но у вас есть одна или две ошибки, интервьюер может мягко указать на них, чтобы вы могли двигаться дальше. Однако не все интервьюеры оказывают такую ​​поддержку; не удивляйтесь, если вы не получите обратной связи от интервьюера, пока будете решать проблемы с кодированием. Обычно они просто переходят к следующему вопросу, если вы не можете решить его самостоятельно. Интервьюер также часто дает вам ограничение по времени для каждого вопроса, а затем переходит или заканчивает интервью, если вы не можете ответить на него. Это определенно сложные собеседования, но лучше всего подготовиться к ним, отрабатывая вопросы на Leetcode или Hacker Rank.

Если вы чувствуете себя более уверенно в этом отделе, есть агентства по найму, которые подтолкнут вас к собеседованиям на месте, если вы сможете пройти их оценки кодирования. Triple Byte — один из примеров; это компания, основанная инженерами-программистами, стремящимися улучшить процесс найма технических специалистов и направлять квалифицированных кандидатов непосредственно в ведущие компании. Еще одна компания, которая в настоящее время предлагает только должности разработчиков программного обеспечения, но с той же предпосылкой прохождения тестов по кодированию и пропуска процесса найма, — это Turing.

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

Техническое интервью

Техническое интервью обычно длится 1 час и проводится через Zoom или какой-либо другой инструмент для веб-конференций, который позволяет выполнять как видеозвонки, так и совместное использование экрана. Если это продолжение домашнего задания, не забудьте просмотреть проект перед звонком, чтобы он был свежим в вашей памяти. Интервьюер, скорее всего, спросит, почему вы выбрали определенные методы в своем анализе, и ожидает, что вы объясните, почему этот метод является хорошим выбором и как он работает. Большая часть интервью посвящена рассмотрению заявки на проект, но вы также должны быть готовы ответить на вопросы о методах обработки данных, которые вы использовали в своих прошлых проектах. Вас могут попросить провести интервьюера через ваш блокнот Jupyter или документ, который вы отправили, поэтому будьте готовы поделиться своим экраном и рассказать о шагах, которые вы предприняли в ходе анализа.

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

Интервью на месте

Собеседование на месте обычно является последним шагом в процессе собеседования перед тем, как будет сделано предложение. Как правило, это от трех до шести отдельных интервью продолжительностью от 30 минут до 1 часа, проводимых в течение одного дня. Это интервью представляет собой комбинацию поведенческих и технических вопросов. Вы можете ожидать интервью с несколькими учеными данных, инженерами данных, менеджером проекта и менеджером по найму.

Специалисты по данным и инженеры данных, скорее всего, будут задавать технические вопросы, например: «Когда следует применять регуляризацию L1?» Менеджер проекта часто задает больше поведенческих вопросов и интересуется тем, как вы общаетесь, управляете сроками проекта и работаете в команде. Менеджер по найму, скорее всего, будет задавать как технические, так и поведенческие вопросы; они хотят оценить глубину вашего понимания тем науки о данных и понять, как вы решаете проблемы. Интервью на месте часто включают парные, параллельные вопросы по кодированию или доске, которые задают другие специалисты по данным и инженеры. В некоторых интервью участвуют вы и еще один человек, а некоторые представляют собой групповые интервью с несколькими людьми, задающими вопросы.

Обычно они проводятся в офисе, в котором вы будете работать; однако их также можно проводить с помощью видеоконференций.

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

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

  • Что подразумевается под дисбалансом классов данных и как вы справляетесь с этим в процессе моделирования?
  • Каково определение дисперсии?
  • Как вы справляетесь с выбросами в ваших данных?
  • Опишите, как работает Random Forest, чем он отличается от деревьев решений?
  • Что такое систематическая ошибка и дисперсия и как они связаны с данными моделирования?
  • Что означает переоснащение модели и как мы можем решить эту проблему?

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

Примеры вопросов для интервьюеров:

  • Каким был бы мой первый проект здесь?
  • Кто-то уже работал над этим или это новый проект?
  • Каково текущее состояние инфраструктуры данных?
  • Сколько работы нужно сделать, чтобы привести инфраструктуру и конвейер в форму, прежде чем мы начнем анализировать эти данные?
  • Что такое общий стек технологий; например, инструменты для контроля версий или Mac по сравнению с ПК или виртуальными машинами?
  • Учитывая, что наука о данных включает в себя все, от использования традиционной статистики в больших наборах данных до глубокого обучения, в каком диапазоне находится ваша команда по науке о данных?
  • Какая доля времени этой роли тратится на науку о данных, такую ​​как разработка моделей и EDA, по сравнению с собраниями и операционными потребностями?
  • Каков типичный график проекта от разработки модели до производства? 1 месяц, 3 месяца или дольше, что является основным источником задержки?
  • Каковы отношения между командой специалистов по обработке и анализу данных и остальной частью компании? Как я узнаю, выполняю ли я то, что от меня ожидают?

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

Первоначально опубликовано на https://www.breakthroughdatascience.com 8 октября 2020 г.