Собеседование на аналитика данных: что проверяют на каждом этапе и как подготовиться за 4 недели

Собеседование на аналитика данных: что проверяют на каждом этапе и как подготовиться за 4 недели | EduCompass

На собеседование аналитика данных приходят с разной подготовкой, а отсеиваются почти всегда на одних и тех же местах: запрос с LEFT JOIN, который тихо теряет строки, p-value, объяснённое «вероятностью того, что гипотеза верна», и продуктовый кейс, где кандидат сразу бросается строить гипотезы, не проверив данные. Мы разобрали воронку найма по этапам: что на каждом из них проверяют на самом деле, какие задачи дают чаще всего и как уложить подготовку в четыре недели без отпуска.

Из чего состоит воронка найма

Формат у компаний разный, но скелет почти всегда один. Полезно знать его заранее: тогда понятно, к чему готовиться в первую очередь, а что можно оставить на последнюю неделю.

Этап Кто проводит Что проверяют на самом деле
Скрининг, 15-30 минут Рекрутер Совпадение с вакансией, мотивацию, ожидания по деньгам и формату. Техники почти нет, но просят кратко рассказать о проекте.
Техническое интервью Аналитик или тимлид SQL вживую, иногда Python и pandas. Важен не только ответ, но и то, как вы рассуждаете вслух.
Статистика и эксперименты Старший аналитик Понимание A/B-тестов: гипотезы, мощность, ловушки интерпретации.
Продуктовый кейс Аналитик и продакт Умение разложить размытую бизнес-проблему на проверяемые шаги.
Тестовое задание Команда Самостоятельность, аккуратность, умение сделать вывод, а не просто таблицу.
Финал Руководитель Как вы общаетесь с заказчиком и отстаиваете выводы.

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

SQL: пять шаблонов, на которых проверяют всех

Задачи на собеседованиях кажутся разными, но почти все собраны из пяти приёмов: соединения с учётом пропусков, агрегации с условием, оконные функции, работа с датами и удаление дублей. Разберём их на учебной базе онлайн-школы: таблица students (id, signup_date, source), таблица payments (id, student_id, paid_at, amount, status).

Задача 1. Какая доля учеников платит в первую неделю

Нужно по каждому источнику трафика посчитать долю учеников, оплативших в течение 7 дней после регистрации. Типичная ошибка: условие на оплату ставят в WHERE, и LEFT JOIN превращается во внутреннее соединение. Ученики без оплат пропадают из знаменателя, и доля получается завышенной.

SELECT s.source,
       COUNT(DISTINCT s.id) AS students,
       COUNT(DISTINCT p.student_id) AS paid_7d,
       ROUND(COUNT(DISTINCT p.student_id)::numeric
             / COUNT(DISTINCT s.id), 3) AS share
FROM students s
LEFT JOIN payments p
       ON p.student_id = s.id
      AND p.status = 'success'
      AND p.paid_at < s.signup_date + INTERVAL '7 days'
GROUP BY s.source;

Все условия на правую таблицу стоят в ON, а не в WHERE. Именно об этом интервьюер спросит следующим вопросом: «а что будет, если перенести status в WHERE?»

Задача 2. Сколько дней проходит между первой и второй оплатой

Проверка оконных функций. Нумеруем платежи каждого ученика по времени и берём предыдущую дату через LAG:

WITH ordered AS (
  SELECT student_id, paid_at,
         ROW_NUMBER() OVER (PARTITION BY student_id ORDER BY paid_at) AS n,
         LAG(paid_at) OVER (PARTITION BY student_id ORDER BY paid_at) AS prev_paid
  FROM payments
  WHERE status = 'success'
)
SELECT PERCENTILE_CONT(0.5) WITHIN GROUP (
         ORDER BY EXTRACT(EPOCH FROM paid_at - prev_paid) / 86400
       ) AS median_days
FROM ordered
WHERE n = 2;

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

Задача 3. Дубли в выгрузке

Платёжный шлюз иногда присылает одну транзакцию дважды. Просят оставить по одной строке на ученика и дату оплаты с максимальной суммой. Решение то же окно: ROW_NUMBER() с PARTITION BY по ученику и дате, сортировка по сумме по убыванию, затем фильтр n = 1. Проговорите, что DISTINCT здесь не поможет: строки отличаются id.

Отдельно готовьтесь к устным вопросам: чем WHERE отличается от HAVING, как COUNT(*) и COUNT(column) ведут себя с NULL, когда нужен UNION ALL, а когда UNION. Про оконные функции полезно прочитать главу официальной документации PostgreSQL: она короткая и снимает большую часть вопросов.

Эксперименты и статистика: вопросы на понимание

Формулы наизусть здесь просят редко. Проверяют, понимаете ли вы, что стоит за числами. Самые частые вопросы:

  • Что такое p-value. Вероятность увидеть эффект не слабее наблюдаемого, если в действительности эффекта нет. Не вероятность того, что гипотеза верна.
  • Зачем считать размер выборки до запуска. Чтобы тест мог заметить минимальный интересный бизнесу эффект. Без этого «не значимо» ничего не говорит.
  • Можно ли завершить тест в день, когда результат стал значимым. Нет: регулярное подглядывание раздувает долю ложных срабатываний.
  • Что проверить до анализа результатов. Соотношение пользователей в группах. Если планировали 50 на 50, а вышло заметно иначе, в сплите ошибка, и выводы делать рано.
  • Как сравнивать выручку на пользователя. Распределение с тяжёлым хвостом: стоит упомянуть бутстреп или логарифмирование.

Если хотите одну книгу на эту тему, возьмите «Trustworthy Online Controlled Experiments» Кохави, Тан и Сюй: большинство вопросов интервьюеров родом оттуда.

Продуктовый кейс: не спешите с гипотезами

Классическая формулировка: «На прошлой неделе доля оплативших упала на 12 %. С чего начнёте?» Сильный ответ идёт по порядку.

  1. Проверить данные. Не сломался ли трекинг, не поменялось ли определение события, все ли данные доехали.
  2. Проверить календарь. Выходной, праздник, конец месяца, сезон отпусков.
  3. Разрезать. Устройство, версия приложения, канал привлечения, новички против постоянных. Чаще всего просадка обнаруживается в каком-то одном срезе.
  4. Сверить с журналом изменений. Релизы, смена цены, проблемы у платёжного провайдера, рекламные кампании.
  5. Сформулировать гипотезы и способ их проверить. Только теперь.

Интервьюеру важен каркас, а не угаданная причина. Говорите вслух, что и почему проверяете.

Тестовое задание: что смотрят проверяющие

Тестовое редко оценивают по красоте графиков. Смотрят на четыре вещи: воспроизводимо ли решение (код и шаги, а не только итоговая картинка), есть ли в начале короткий вывод для заказчика, указаны ли ограничения данных и допущения, уложились ли вы в разумное время. Если задание явно рассчитано на несколько вечеров, уточните ожидания по объёму. Это нормальная практика, а не слабость.

План подготовки на четыре недели

Расчёт на 8-10 часов в неделю для тех, кто уже знает основы SQL и Python.

Неделя Фокус Результат к концу недели
1 SQL: соединения, агрегаты, окна, даты 30-40 решённых задач, свой конспект типовых ловушек
2 Python и pandas, базовая статистика Разобранный открытый датасет в Jupyter: очистка, группировки, графики
3 A/B-тесты и продуктовые кейсы Три кейса, разобранные письменно по каркасу выше
4 Пробные собеседования и рассказ о проектах Две тренировки с другом или ментором, отточенный рассказ о себе на 2 минуты

Для первой недели удобны тренажёры с автопроверкой. Бесплатный «Симулятор SQL» от Karpov.courses ведёт от SELECT до оконных функций на реальных датасетах. Если нужна системная база с нуля, посмотрите курс «SQL. С нуля до профи» в Simulative, а тем, кто идёт на позицию уровнем выше, пригодится «Продвинутый SQL»: в нём разбирают тестовое задание на старшего аналитика. Для третьей недели подойдут «Симулятор A/B-тестов» с задачами в Jupyter и курс по A/B-тестированию в Simulative.

Если опыта работы нет

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

Частые вопросы

Нужен ли Python, если в вакансии написано только SQL?

На первом собеседовании могут не спросить, но в работе он почти всегда понадобится. Минимум: pandas для группировок и объединений, простые графики, чтение CSV и Excel.

Что делать, если не решил задачу на интервью?

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

Сколько тестовых заданий стоит выполнять одновременно?

Одно-два. Три параллельных тестовых обычно означают три посредственных решения.

Коротко

  • Узнайте формат этапов на скрининге и готовьтесь в порядке их следования.
  • В SQL всё решают соединения с NULL, окна и даты. Условия на правую таблицу держите в ON.
  • По статистике проверяют понимание: p-value, мощность, подглядывание, проверка сплита.
  • В кейсе сначала данные и календарь, потом сегменты, и только затем гипотезы.
  • Программы для подготовки удобно сравнивать в каталоге курсов по аналитике, а зарплатные ориентиры и путь роста собраны на странице «Аналитик данных».

Источники