Направление

Подготовка к собеседованию — Квант-исследователь

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

288 карточек14 тем
Посмотреть цены и начать

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

С чего начать

Нужны вероятность, статистика, математический анализ, линейная алгебра и Python. Финансовые примеры служат упражнениями для интервью; дополняйте повторение выводом формул и численными проверками.

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

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

Что внутри

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

Теория вероятностей и брейнтизеры

13 карточек

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

Вероятность и брейнтизеры

Статистика и проверка гипотез

11 карточек

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

Статистика

Регрессия и линейная алгебра

8 карточек

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

Регрессия и линал

Python

122 карточки

Общие основы

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

Основы CS

43 карточки

Общие основы

Структуры данных и алгоритмы

Python и численные методы

10 карточек

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

Python и численные методы

Стохастические процессы и опционы

12 карточек

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

Стохастика и опционы

Рынки, микроструктура и ставки

13 карточек

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

Микроструктура и ставки

ML на финансовых данных

10 карточек

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

ML для финансов

Рисёрч-методология и поведенческое

11 карточек

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

Рисёрч и поведенческое

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

35 карточек

Общие основы

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

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

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

Задача Монти Холла: менять дверь или оставаться? И почему важно, что ведущий знает, где машина?

Короткий ответ: Менять: смена даёт машину с вероятностью 2/3, отказ от смены — 1/3. Ключевое условие — ведущий информирован: он всегда открывает дверь с козой. Если бы он открывал случайную дверь (и случайно показал козу), шансы были бы 1/2 на 1/2.

Подробно:

  1. Ваш первый выбор угадывает машину с вероятностью 1/3 — и это не меняется от того, что ведущий что-то открыл: он может показать козу всегда, ничего нового о вашей двери это не сообщает.
  2. Оставшиеся 2/3 концентрируются на единственной неоткрытой двери — ведущий своим знанием «отфильтровал» козу за вас.
  3. Вы выбрали дверь 1 — все случаи:
Машина за Ведущий откроет Остаться Сменить
дверью 1 2 или 3 ✓ ✗
дверью 2 только 3 ✗ ✓
дверью 3 только 2 ✗ ✓

Смена выигрывает в 2 случаях из 3.

⚠️ Частая ошибка: «осталось две двери — значит 50/50». Это верно только для неинформированного ведущего (вариант «Monty Fall»): условие на случайно показанную козу действительно даёт 1/2. Информированность ведущего — вся суть задачи.

Что такое p-value? Дай точное определение.

Короткий ответ: p-value — это вероятность получить статистику как минимум настолько же экстремальную, как наблюдаемая, при условии, что нулевая гипотеза верна: P(данные ≥ наблюдаемых | H₀). Это утверждение о данных при верной H₀, а не о вероятности самой гипотезы.

Подробно:

  1. Направление условия — p-value условно по H₀. Чтобы получить P(H₀ | данные), нужны априор и теорема Байеса; из одного p-value эту вероятность не извлечь.
  2. Не вероятность нуля — «p = 0.03, значит H₀ верна с вероятностью 3%» — классическая ловушка, на которую интервьюер слушает специально.
  3. Не размер эффекта — при огромном n мизерный, экономически бессмысленный эффект даст p < 0.001. Статистическая значимость ≠ практическая важность.
p-value  =  P(T ≥ t_набл | H₀ верна)      ✓
p-value  ≠  P(H₀ верна | данные)          ✗
1 − p    ≠  P(эффект реальный)            ✗

⚠️ Частая ошибка: «1 − p = 97% вероятность, что эффект настоящий». p-value ничего не говорит о вероятности гипотез — только о том, насколько данные удивительны, если H₀ верна.

В регрессии с одним регрессором y = α + βx + ε: чему равна β и как её интерпретировать?

Короткий ответ: β = Cov(x, y) / Var(x), свободный член α = ȳ − β·x̄. β показывает, на сколько в среднем меняется y при росте x на единицу. Бета из CAPM — ровно этот коэффициент: регрессия доходности актива на доходность рынка.

Подробно:

  1. Вывод из нормальных уравнений — минимизируем Σ(yᵢ − α − βxᵢ)², берём производные по α и β и приравниваем к нулю.
  2. Через корреляцию — β = ρ(x, y) · σ_y / σ_x: наклон — это корреляция, отмасштабированная отношением волатильностей.
  3. CAPM — β_market = Cov(rᵢ, r_m) / Var(r_m): «рыночная бета» акции — буквально коэффициент одномерной OLS доходности актива против рыночной. На интервью это выдаётся мгновенно, без вывода на бумажке.
∂/∂α: Σ(yᵢ − α − βxᵢ) = 0    →  α = ȳ − β·x̄
∂/∂β: Σxᵢ(yᵢ − α − βxᵢ) = 0  →  β = Σ(xᵢ−x̄)(yᵢ−ȳ) / Σ(xᵢ−x̄)²
                                   = Cov(x, y) / Var(x)

⚠️ Частая ошибка: путать направление: β в регрессии y на x — не то же самое, что в регрессии x на y (совпадают только при |ρ| = 1). И «плавать» в формуле — Cov/Var квант обязан писать не задумываясь.

Чем отличаются изменяемые (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, идентичность объектов.

Что такое Big O нотация?

Короткий ответ: Big O описывает, как растёт время работы или потребление памяти алгоритма при увеличении размера входных данных n, отбрасывая константы и младшие члены. Это верхняя оценка скорости роста.

Подробно:

Big O отвечает на вопрос «что произойдёт, когда n станет очень большим?». Нас не интересует точное число операций, а только характер роста. Поэтому O(2n + 100) упрощается до O(n), а O(3n² + n) — до O(n²).

Основные классы роста (от лучшего к худшему):

# O(1) — константа: не зависит от n
def first(arr):
    return arr[0] if arr else None

# O(log n) — логарифм: каждый шаг делит задачу пополам (бинарный поиск)
def binary_search(arr, target):
    lo, hi = 0, len(arr) - 1
    while lo <= hi:
        mid = (lo + hi) // 2
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            lo = mid + 1
        else:
            hi = mid - 1
    return -1

# O(n) — линейная: один проход
def total(arr):
    s = 0
    for x in arr:        # n итераций
        s += x
    return s

# O(n log n) — эффективные сортировки (merge, quick, Timsort)
def sort_it(arr):
    return sorted(arr)

# O(n^2) — квадрат: вложенный цикл
def has_dup_naive(arr):
    for i in range(len(arr)):
        for j in range(i + 1, len(arr)):
            if arr[i] == arr[j]:
                return True
    return False

# O(2^n) — экспонента: наивный Фибоначчи, перебор подмножеств
def fib_naive(n):
    if n < 2:
        return n
    return fib_naive(n - 1) + fib_naive(n - 2)

Ориентир по росту при n = 1 000 000: O(1) — 1 операция, O(log n) — ~20, O(n) — миллион, O(n log n) — ~20 млн, O(n²) — триллион (уже слишком), O(2^n) — нереально даже при n = 50.

⚠️ Ловушка: Big O — это про асимптотику (поведение при больших n), а не про реальное время. O(n) алгоритм может быть медленнее O(n²) на маленьких данных из-за больших констант. Также путают: Big O (верхняя граница, Ω — нижняя, Θ — точная), в собесах под «O» обычно подразумевают Θ.

Как оценить число π с помощью случайных чисел?

Короткий ответ: Метод Монте-Карло «дартс»: бросаем N случайных точек в единичный квадрат и считаем долю попавших в четверть круга (x² + y² ≤ 1). Эта доля сходится к π/4, значит π ≈ 4 · (доля попаданий).

Подробно:

  1. Геометрия — площадь четверти круга радиуса 1 равна π/4, площадь квадрата равна 1; вероятность попадания — отношение площадей.
  2. Сходимость — по ЦПТ ошибка убывает как 1/√N: каждая дополнительная значащая цифра стоит в ~100 раз больше выборок.
  3. Векторизация — генерируем все точки разом, без питоновского цикла по одной точке.
import numpy as np

rng = np.random.default_rng(42)
n = 10_000_000
x, y = rng.random(n), rng.random(n)
pi_hat = 4 * np.mean(x**2 + y**2 <= 1)
# ошибка ~ 1/sqrt(n): при n = 10^7 верны примерно 3–4 знака

⚠️ Частая ошибка: ждать от Монте-Карло быстрой точности: чтобы получить 6 знаков вместо 3, нужно в ~10⁶ раз больше точек. Для самой константы π это худший из методов — но вопрос проверяет, понимаете ли вы скорость сходимости 1/√N, общую для всех МК-оценок.

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

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

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

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

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

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

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

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

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

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

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

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