Data Analyst: roadmap с нуля, стек SQL / Python / BI и разбор задач с собеседований
Полная дорожная карта аналитика данных: продвинутый SQL с оконными функциями, анализ данных в Pandas, A/B-тестирование, продуктовые метрики и типичные кейсы на интервью.
Аналитик данных (Data Analyst) помогает бизнесу принимать решения на основе реальных цифр, а не интуиции. В отличие от Data Scientist (который тренирует сложные ML-модели) и Data Engineer (который строит пайплайны ETL и хранилища DWH), аналитик данных исследует поведение пользователей, строит дашборды, оценивает результаты A/B-тестов и находит точки роста выручки.
В этой статье мы подробно разберем:
- Ключевые компетенции аналитика данных.
- Пошаговый roadmap освоения инструментов.
- 5 классических задач и вопросов с собеседований с подробными решениями.
Что должен знать Data Analyst?#
| Направление | Ключевые навыки | Инструменты |
|---|---|---|
| SQL (Главный инструмент) | Оконные функции, CTE (WITH), сложные джойны, оптимизация тяжелых аналитических выборок | PostgreSQL, ClickHouse, BigQuery |
| Python для анализа | Предобработка сырых таблиц, группировка, визуализация распределений | pandas, numpy, matplotlib, seaborn |
| Продуктовые метрики | Расчет юнит-экономики: LTV, CAC, Retention, Churn Rate, ARPU, конверсии воронки | Excel, Google Sheets, Amplitude |
| A/B-тестирование | Проверка статистических гипотез, p-value, размер выборки, ошибки первого и второго рода | SciPy, Statsmodels |
| BI и визуализация | Проектирование понятных интерактивных дашбордов для топ-менеджмента | Apache Superset, Power BI, Tableau |
Дорожная карта (Roadmap) обучения#
Пошаговый план развития Data Analyst
Продвинутый SQL и базы данных
1-1.5 месяцаОконные функции (OVER, PARTITION BY), ранжирование, смещения LAG/LEAD, CTE и оптимизация тяжелых аналитических выборок.
Python для анализа данных (Pandas & NumPy)
1-1.5 месяцаОчистка сырых данных, обработка пропусков и выбросов, группировки (groupby), сводные таблицы (pivot_table) и базовая визуализация.
Продуктовая аналитика и юнит-экономика
3-4 неделиРасчет метрик продукта: LTV, CAC, Retention, Churn Rate, ARPU, конверсии в воронках и когортный анализ.
Теория вероятностей, статистика и A/B-тесты
1 месяцПроверка статистических гипотез, критерии Стьюдента и Манна-Уитни, бутстреп, оценка мощности теста и расчет размера выборки.
BI-инструменты и визуализация для бизнеса
2-3 неделиПроектирование наглядных интерактивных дашбордов для руководства, регулярные отчеты и data storytelling.
1. SQL для аналитики#
- Оконные функции (
OVER (PARTITION BY ... ORDER BY ...)). - Аналитические функции ранжирования:
ROW_NUMBER(),RANK(),DENSE_RANK(). - Функции смещения:
LAG()иLEAD()для расчета динамики продаж от месяца к месяцу.
2. Python и анализ данных#
- Структуры данных
SeriesиDataFrame. - Фильтрация, группировки (
groupby), сводные таблицы (pivot_table), слияния (merge). - Очистка «грязных» данных: обработка пропусков (
fillna,dropna), дедупликация, поиск аномалий и выбросов.
3. Продуктовая аналитика и A/B-тесты#
- Когортный анализ: построение когорт по дате первой покупки или регистрации.
- Оценка достоверности: критерий Стьюдента ($t$-тест), Манна-Уитни, бутстреп (Bootstrap).
Топ-5 вопросов и задач с собеседований#
1. В чем разница между ROW_NUMBER(), RANK() и DENSE_RANK()?#
Самый популярный вопрос на знание оконных функций SQL.
Представим зарплаты сотрудников: [100, 90, 90, 80]:
| Функция | Логика нумерации | Результат для [100, 90, 90, 80] |
|---|---|---|
ROW_NUMBER() | Строго последовательная нумерация каждой строки | 1, 2, 3, 4 |
RANK() | Одинаковые значения получают одинаковый ранг, следующий ранг пропускается | 1, 2, 2, 4 (ранг 3 пропущен) |
DENSE_RANK() | Одинаковые значения получают одинаковый ранг, пропусков нет | 1, 2, 2, 3 |
SELECT
name,
salary,
DENSE_RANK() OVER (ORDER BY salary DESC) AS salary_rank
FROM employees;
2. Что такое Когортный анализ и как посчитать Retention 7-го дня?#
Retention Rate 7-го дня (Коэффициент удержания) — это процент пользователей, которые вернулись в сервис на 7-й день после даты регистрации.
Алгоритм расчета в SQL:
- Для каждого пользователя фиксируем дату когорты (день регистрации).
- Вычисляем разницу в днях между датой активности и датой когорты:
activity_date - cohort_date. - Считаем количество активных пользователей на 7-й день и делим на общий размер когорты 0-го дня:
Retention Day 7 = (Активные пользователи на 7-й день / Размер когорты дня 0) × 100%
3. Ошибки I и II рода в A/B-тестировании#
При проведении эксперимента бизнес рискует принять ложное решение:
- Ошибка I рода (False Positive, alpha): Мы решили, что новая фича увеличила конверсию, хотя на самом деле изменения были случайным шумом (отклонили верную нулевую гипотезу). Контролируется уровнем значимости (обычно alpha = 0.05).
- Ошибка II рода (False Negative, beta): Новая фича действительно работала лучше, но мы не заметили эффекта и выкатили старую версию (не отклонили ложную нулевую гипотезу). Контролируется мощностью теста (1 - beta, обычно 80%).
4. Как найти вторую максимальную зарплату в таблице без LIMIT и OFFSET?#
Классическая алгоритмическая задача на SQL:
SELECT MAX(salary) AS second_highest_salary
FROM employees
WHERE salary < (SELECT MAX(salary) FROM employees);
Или через оконную функцию:
WITH ranked AS (
SELECT salary, DENSE_RANK() OVER (ORDER BY salary DESC) as rnk
FROM employees
)
SELECT salary FROM ranked WHERE rnk = 2 LIMIT 1;
5. Что такое p-value простыми словами?#
p-value (вероятность ошибки) — это вероятность получить наблюдаемый (или еще более экстремальный) результат эксперимента при условии, что нулевая гипотеза верна (то есть на самом деле никакой разницы между версиями А и Б нет).
Если значение p-value < 0.05, мы говорим: «Вероятность того, что такой рост конверсии случаен — менее 5%. Мы отвергаем нулевую гипотезу и признаем победу варианта Б».
Резюме#
Успешный аналитик данных сочетает техническую свободу в SQL и Python с ясным продуктовым чутьем. Умение не просто выгрузить таблицу, а ответить на вопрос «Что бизнесу нужно сделать прямо сейчас на основе этих цифр?» — главный критерий на собеседовании.
Прокачивай IT-скиллы с Capycodio
Не зубри теорию часами перед компьютером. Короткие 3-минутные интерактивные сессии прямо с телефона: по дороге, за кофе или перед сном.
Мы создаем интерактивный мобильный тренажер для разработчиков. Короткие сессии по 3-5 минут, чтобы держать базу и закрывать пробелы перед собеседованиями.