Техническое собеседование аналитика

Структура

Обычно 60–90 минут. Три блока:

  1. SQL — 30–40 минут.
  2. Python / pandas — 15–30 минут.
  3. Теория / кейс — 10–20 минут.

Некоторые компании делают 2 отдельных техсобеса: SQL и Python.

Блок 1: SQL

Формат

  • Задачи на собственном экране (coderpad, Google Doc).
  • Live coding, интервьюер наблюдает.
  • Можно гуглить синтаксис (не решение).

Типы задач

Easy (для junior):

  • Простой SELECT + WHERE.
  • GROUP BY + агрегаты.
  • JOIN двух таблиц.

Medium (middle):

  • Оконные функции (ROW_NUMBER, LAG).
  • CTE.
  • Сложные JOIN 3+ таблиц.
  • Retention / cohort.

Hard (senior):

  • Session analysis (30-min timeout).
  • Sequential events analysis.
  • Multi-step funnel with timing.
  • Optimisation discussion.

Пример задачи

Таблица orders(user_id, order_date, amount). Найдите пользователей, у которых суммарная выручка выросла > 20% MoM в последние 3 месяца.

Как решать

  1. Уточните схему. «Что есть в таблице? Какие типы?»
  2. Проговорите подход. «Я сделаю CTE для monthly totals, потом LAG для сравнения».
  3. Пишите постепенно. По кусочкам, проверяйте.
  4. Тестируйте. «Я бы проверил edge case: 0 заказов в месяц».

Ошибки

  • SELECT * на огромной таблице.
  • Integer division без cast в numeric.
  • LEFT JOIN превращается в INNER через WHERE.
  • Забытый DISTINCT в COUNT(users).

Блок 2: Python / pandas

Формат

  • Jupyter в shared screen.
  • Датасет предоставлен (CSV или заранее загружен DataFrame).

Типы задач

  • Прочитать CSV.
  • Отфильтровать, отсортировать.
  • Groupby с агрегатами.
  • Merge двух DataFrame.
  • Pivot / unstack.
  • Решить задачу с тем, что делали в SQL — но в pandas.

Пример

Дан DataFrame df с колонками user_id, date, amount. Посчитайте topo-5 пользователей по суммарной выручке за последние 30 дней.

from datetime import datetime, timedelta

cutoff = datetime.now() - timedelta(days=30)
top_5 = (
    df[df['date'] >= cutoff]
    .groupby('user_id')['amount']
    .sum()
    .sort_values(ascending=False)
    .head(5)
)

Тренироваться на таких вопросах можно в Telegram-боте Карьерник — там 1500+ задач с реальных собесов с разборами.

Блок 3: Теория

SQL-теория

  • Разница HAVING и WHERE.
  • Типы JOIN и когда какой.
  • Оконные функции vs GROUP BY.
  • Индексы — когда и зачем.
  • Как оптимизировать медленный запрос.

Статистика / A-B

  • Что такое p-value.
  • Ошибки I / II рода.
  • ЦПТ.
  • Мощность теста.
  • SRM.

Метрики продукта

  • DAU / MAU / WAU.
  • Retention.
  • Воронки.
  • LTV / CAC.

Как подготовиться

За месяц

  • 100+ SQL-задач — базовые и оконные.
  • 50+ pandas-задач.
  • Разобрать 20+ теоретических вопросов.
  • 5–10 продуктовых кейсов.

За неделю

  • Пройти через задачи собесов топ-компаний (Яндекс, Авито).
  • Проговаривать вслух.
  • Mock interview с другом или ментором.

За день

  • Повторить основы.
  • Проверить технику: камера, микро, среду для coding.
  • Выспаться.

Непосредственно перед

  • 30 минут — разминка лёгкими задачами.
  • Вода рядом.
  • Скачайте cheatsheets на всякий случай (можете подсмотреть синтаксис).

Во время собеса

Сценарии

Забыли синтаксис

«Не помню точный синтаксис функции — это было что-то вроде ARRAY_AGG... интервьюер, подскажете?» Интервьюер обычно скажет. Лучше honestly, чем мучиться.

Не понимаете задачу

«Могу уточнить — нужно вернуть top-5 или сегментировать на 5 групп?» Уточнять — hallmark senior.

Застряли

«Мне нужно 30 секунд подумать». Не паника, не молчание — короткая пауза.

Ошиблись

«Смотрю, я забыл добавить DISTINCT. Исправляю». Не паникуйте — мы все ошибаемся.

Критерии оценки

Интервьюер оценивает:

  1. Correctness — решение работает?
  2. Approach — хорошая логика?
  3. Code quality — чистый, читабельный?
  4. Communication — проговариваете ли?
  5. Edge cases — подумали про NULL, 0, пустые данные?

Код идеальный, но молчали → не пройти. Код с багом, но красивое рассуждение → пройти.

К слову, набить руку на таких кейсах удобно через тренажёр в Telegram — разбирайте по 10 вопросов в день, через 2 недели тема становится рефлексом.

Live coding vs offline

Live

Стандарт в РФ. Интервьюер наблюдает. Проговаривайте вслух.

Take-home

«Решите дома за 2 часа, пришлите». Встречается реже, но есть. Плюс: можно спокойно. Минус: больше ожиданий.

Специфика топ-компаний

Яндекс

Жёсткий SQL, много оконных. Часто кейсы + теория одновременно.

Авито

Продуктовая логика важнее чистоты кода. Много кейсов.

Тинькофф

Финансовая specifics. Статистика для risk-моделей.

Ozon

SQL + кейсы e-commerce. RFM, когорты.

Гайды по компаниям.

Читайте также

FAQ

Сколько задач обычно?

SQL: 3–5. Python: 2–3. Теория: 5–10.

Можно ли гуглить?

Синтаксис — можно. Решение — нет.

Проваливают за неправильный ответ?

За один — нет. За общий уровень — да.

Что важнее — скорость или правильность?

Правильность. Скорость — бонус.