На собеседование аналитика данных приходят с разной подготовкой, а отсеиваются почти всегда на одних и тех же местах: запрос с 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 %. С чего начнёте?» Сильный ответ идёт по порядку.
- Проверить данные. Не сломался ли трекинг, не поменялось ли определение события, все ли данные доехали.
- Проверить календарь. Выходной, праздник, конец месяца, сезон отпусков.
- Разрезать. Устройство, версия приложения, канал привлечения, новички против постоянных. Чаще всего просадка обнаруживается в каком-то одном срезе.
- Сверить с журналом изменений. Релизы, смена цены, проблемы у платёжного провайдера, рекламные кампании.
- Сформулировать гипотезы и способ их проверить. Только теперь.
Интервьюеру важен каркас, а не угаданная причина. Говорите вслух, что и почему проверяете.
Тестовое задание: что смотрят проверяющие
Тестовое редко оценивают по красоте графиков. Смотрят на четыре вещи: воспроизводимо ли решение (код и шаги, а не только итоговая картинка), есть ли в начале короткий вывод для заказчика, указаны ли ограничения данных и допущения, уложились ли вы в разумное время. Если задание явно рассчитано на несколько вечеров, уточните ожидания по объёму. Это нормальная практика, а не слабость.
План подготовки на четыре недели
Расчёт на 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, мощность, подглядывание, проверка сплита.
- В кейсе сначала данные и календарь, потом сегменты, и только затем гипотезы.
- Программы для подготовки удобно сравнивать в каталоге курсов по аналитике, а зарплатные ориентиры и путь роста собраны на странице «Аналитик данных».
