Направление

Подготовка к собеседованию — Дата-сайентист

Колода из 283+ карточек с вопросами для собеседования по направлению «Дата-сайентист» — по темам и уровню сложности, с повторениями по вашим оценкам. Посмотрите несколько карточек ниже, затем выберите доступ, чтобы учить всё направление по расписанию в стиле Anki (SM-2).

283 карточки17 тем
Посмотреть цены и начать

Новым подписчикам месяца или года может быть доступно 7 дней бесплатно. Условия и сумму подтвердит страница оплаты.

С чего начать

Нужны Python, основы вероятности, статистики и линейной алгебры. Карточки о моделях и оценке предполагают опыт обучения хотя бы простой модели и дополняют эксперименты.

Первый проход: Python → Python для аналитиков (pandas и matplotlib). Начните с базовых вопросов в этих модулях, затем продолжайте по плану. К сложным и senior-вопросам возвращайтесь по требованиям вакансии; все карточки доступны с самого начала.

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

Что внутри

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

Python

122 карточки

Общие основы

Ядро языкаМодель данных и внутренностиКонкурентность и asyncStdlib, типизация и тесты

Python для аналитиков (pandas и matplotlib)

10 карточек

Общие основы

Python для аналитиков

Статистика и вероятность

11 карточек

Общие основы

Статистика

A/B-тесты и эксперименты

9 карточек

Общие основы

Эксперименты

SQL для аналитики

11 карточек

Общие основы

SQL для аналитики

Основы ML и валидация

10 карточек

Профильный модуль

Основы ML

Классический ML и ансамбли

12 карточек

Профильный модуль

Классический ML

Метрики и дисбаланс классов

11 карточек

Профильный модуль

Метрики

Фичи, подготовка данных и утечки

10 карточек

Профильный модуль

Фичи и утечки

Глубокое обучение

12 карточек

Профильный модуль

Глубокое обучение

NLP и LLM

12 карточек

Профильный модуль

NLP и LLM

ML-системный дизайн

8 карточек

Профильный модуль

ML system design

MLOps и модель в проде

10 карточек

Профильный модуль

MLOps и прод

Поведенческое интервью

35 карточек

Общие основы

Поведенческое интервью

Примеры вопросов

Несколько карточек из колоды — откройте ответ, затем выберите доступ, чтобы учить весь набор по расписанию.

Чем отличаются изменяемые (mutable) и неизменяемые (immutable) типы?

Короткий ответ: Изменяемый объект можно менять на месте (list, dict, set), неизменяемый — нельзя (int, str, tuple). Перепривязка переменной и изменение объекта — разные действия.

items = [1, 2]
alias = items
items.append(3)
assert alias is items and alias == [1, 2, 3]

text = "hello"
original = text
text += " world"
assert original == "hello"  # исходная строка не изменилась

Подробно:

  • id() идентифицирует объект и постоянен в течение его жизни. То, что это адрес памяти, — деталь реализации CPython.
  • В кортеже нельзя заменить элементы, но вложенный список может изменяться. Неизменяемость не означает автоматически глубокую неизменяемость или потокобезопасность.
  • Ключ словаря и элемент множества должны быть хешируемыми: хеш остаётся стабильным, а равные объекты имеют равные хеши. Кортеж со списком нехешируем. Изменяемый экземпляр пользовательского класса может хешироваться по идентичности: хешируемость не синоним неизменяемости.
  • Функция получает ссылки на объекты. Мутация аргумента может быть видна вызывающему коду; перепривязка локального параметра не перепривязывает переменную снаружи.

Источники: Хешируемость Python, идентичность объектов.

Чем Series отличается от DataFrame, как загрузить данные и быстро их осмотреть?

Короткий ответ: Series — это одномерный массив с индексом (один столбец), DataFrame — двумерная таблица из колонок-Series с общим индексом строк. Данные грузят через pd.read_csv() / pd.read_sql(), а первичный осмотр делают через .head(), .info(), .describe(), .dtypes, .shape.

Подробно:

  1. Series vs DataFrame — df['col'] возвращает Series; df[['col']] (двойные скобки) — DataFrame из одной колонки. У обоих есть .index.
  2. Загрузка — read_csv (файл/URL), read_sql (SQL-запрос + соединение), read_parquet (быстрый колоночный формат).
  3. Осмотр — .head()/.tail() смотрят края, .info() даёт типы и пропуски, .describe() — статистику числовых колонок, .dtypes — типы, .shape — размер.
import pandas as pd

df = pd.read_csv("sales.csv", parse_dates=["order_date"])
df.shape          # (10000, 8) — строки, колонки
df.info()         # типы колонок и число непустых значений
df.describe()     # count/mean/std/min/quartiles/max по числовым
df["revenue"].head()   # Series — одна колонка

⚠️ Частая ошибка: забыть parse_dates= при чтении — колонка с датами останется object (строкой), и арифметика по датам/resample() работать не будут.

Чем отличаются среднее, медиана и мода, и почему для скошенных данных (доход, время отклика) лучше брать медиану?

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

Подробно:

  1. Среднее (mean) — хорошо для симметричных данных и для дальнейших расчётов (дисперсия, регрессия), но один выброс сдвигает его.
  2. Медиана — 50-й перцентиль; делит данные пополам и почти не реагирует на экстремумы.
  3. Мода — единственная метрика для категориальных данных («самый частый тариф»).
Метрика Когда применять Чувствительность к выбросам
Среднее симметричные данные, дальнейшие расчёты высокая
Медиана скошенные данные: доход, время отклика, цены низкая
Мода категориальные данные, самое частое значение низкая

⚠️ Частая ошибка: отчитываться средним по доходу или времени отклика. Длинный правый хвост тянет среднее вверх, и оно перестаёт описывать типичного пользователя — берите медиану.

Как устроен A/B-тест от начала до конца? Опишите ключевые этапы.

Короткий ответ: A/B-тест — это рандомизированный эксперимент: пользователей случайно делят на контроль и тритмент, показывают разные версии и сравнивают одну заранее выбранную первичную метрику по фиксированному правилу решения.

Подробно:

  1. Гипотеза — что меняем, на какую метрику влияем и почему.
  2. Метрика и MDE — одна первичная метрика плюс минимально детектируемый эффект (MDE).
  3. Рандомизация — случайное и устойчивое разбиение на контроль/тритмент.
  4. Размер выборки и длительность — считаем и фиксируем до старта.
  5. Запуск до N — крутим до набора выборки, не подглядывая в промежуточные итоги.
  6. Анализ — сравниваем метрику, считаем p-значение и доверительный интервал лифта.
  7. Решение — выкатываем или откатываем по заранее заданному правилу.
Гипотеза → Рандомизация → Запуск до N → Анализ → Решение
              │                                    │
       контроль / тритмент              выкатить ✓ / откатить ✗

⚠️ Частая ошибка: менять интерфейс по ходу теста или останавливать его в первый момент «значимости» — и то и другое ломает выводы.

Что такое оконные функции и чем они отличаются от GROUP BY?

Короткий ответ: Оконная функция считает агрегат по «окну» строк, но при этом не схлопывает строки — каждая исходная строка сохраняется и получает своё значение. GROUP BY, наоборот, сворачивает группу в одну строку.

Подробно:

  1. GROUP BY — N строк группы → 1 строка результата. Деталь теряется.
  2. Оконная функция — N строк остаются N строками, рядом появляется агрегат (сумма, ранг, среднее, lag).
  3. Синтаксис — func() OVER (PARTITION BY ... ORDER BY ...). PARTITION BY задаёт группы, ORDER BY — порядок внутри окна (нужен для нарастающих итогов и рангов).
-- Нарастающий итог продаж по каждому пользователю
SELECT
  user_id,
  order_date,
  amount,
  SUM(amount) OVER (
    PARTITION BY user_id
    ORDER BY order_date
  ) AS running_total
FROM orders;

⚠️ Частая ошибка: пытаться отфильтровать по результату оконной функции в WHERE — окна вычисляются после WHERE/GROUP BY, поэтому заворачивайте запрос в CTE/подзапрос и фильтруйте снаружи.

Что такое переобучение, как его обнаружить и как с ним бороться?

Короткий ответ: Переобучение — модель выучила шум трейна вместо закономерности: на трейне ошибка низкая, на новых данных — высокая. Обнаруживают по разрыву train/validation, лечат регуляризацией, упрощением модели, ранней остановкой и бóльшим объёмом данных.

Подробно:

  1. Обнаружение — сравнить ошибку на трейне и на валидации; learning curves: train-ошибка падает, validation-ошибка стоит или растёт → модель начала запоминать шум.
  2. Лечение — уменьшить ёмкость или добавить сигнала, а не «крутить» метрику.
Обнаружить Исправить
Разрыв метрик train ≈ 0, валидация заметно хуже регуляризация (L1/L2), проще модель
Learning curves кривые расходятся с ростом эпох early stopping
Кросс-валидация нестабильные метрики по фолдам больше данных, аугментация
Сложность модели глубокие деревья, миллионы весов ограничить глубину, срезать фичи

⚠️ Частая ошибка: сказать «кросс-валидация предотвращает переобучение». CV его лишь обнаруживает — честно оценивает качество. Предотвращают регуляризация, упрощение модели и данные.

Готовы лучше запоминать?

Посмотрите пример, выберите направление и настройте регулярную практику под свою подготовку.

Вопросы об этом направлении

Как готовиться к собеседованию на «Дата-сайентист»?

Учите концепции, которые придётся объяснять, а не только те, что умеете кодить. Направление «Дата-сайентист» в RecallDeck даёт 283+ отобранных вопросов и возвращает каждый по расписанию в стиле Anki (SM-2), основанному на ваших оценках — чтобы тренировать вспоминание и объяснение. Дополняйте повторения кодингом и пробными собеседованиями.

Какие темы охватывает направление «Дата-сайентист»?

Направление «Дата-сайентист» разбито на ключевые области, которые реально проверяют на таких собеседованиях, — по темам и уровню сложности (Concept, Junior, Middle, Senior). Полный план и примеры вопросов можно посмотреть выше до входа.

Помогает ли интервальное повторение в подготовке к «Дата-сайентист»?

Да. Активное вспоминание и честная самооценка помогают закреплять знания. RecallDeck назначает повторения карт по направлению «Дата-сайентист» на основе ваших оценок: знакомые карты возвращаются реже, а сложные получают больше практики.

Можно попробовать направление «Дата-сайентист» до оплаты?

Новым подписчикам месячного или годового тарифа может быть доступен пробный период семь дней со всем направлением «Дата-сайентист» и всеми функциями. Право на него и сумму подтвердит страница оплаты; при повторной подписке списание может быть сразу. Отмените подписку онлайн до конца пробного периода, чтобы избежать первого списания. У вечного доступа пробного периода нет.

Другие направления