ml-курс
ПРОГРАММА

Полная программа курса

12 модулей · 72 недели · 1100–1400 часов практики. Каждая неделя — тема, ресурсы, практика и чекпоинт. Пока чекпоинт не закрыт, неделя не пройдена.

0
Модуль 0 · нед. 1

Старт и система обучения

рабочее окружение, аккаунты, правила игры.

Артефакт: learning-репозиторий

AI

попроси пошагово провести по установке и объяснить каждый инструмент; это разрешённый автопилот — настройка окружения не тот навык, который проверяют на интервью.

Неделя 1 · Окружение и стартовый ритуал

Тема.
установка инструментов, первый скрипт, система ведения обучения.
Практика.
установи uv, Python 3.13+, VS Code; напиши и запусти 3 скрипта (приветствие с input, простой калькулятор, таблица умножения); заведи репозиторий `learning-log`: план курса, правила работы с AI из раздела выше, конспект недели; научись минимальному git-циклу по шпаргалке (clone → add → commit → push), глубина будет в неделе 11.

Чекпоинт. репозиторий `learning-log` публичен, в нём план и первые скрипты; ты запускаешь Python-файл из терминала не задумываясь.

1
Модуль 1 · нед. 2–9

Python с нуля

писать и читать Python уверенно: типы, коллекции, функции, ООП, файлы, HTTP — и решать задачи без подсказок.

Артефакт: CLI-проект с API и тестами

AI

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

Неделя 2 · Переменные, ввод-вывод, функции

Тема.
синтаксис, строки, числа, input/print, первые функции.
Практика.
Problem Set 0 целиком; 10+ упражнений futurecoder; свой скрипт-визитка (имя, возраст, цель — с f-строками).

Чекпоинт. пишешь программу «ввод → обработка → вывод» с функцией, не подглядывая в примеры.

Неделя 3 · Условия и циклы

Тема.
if/elif/else, булева логика, for, while, break/continue.
Практика.
Problem Sets 1–2; игра «угадай число» (компьютер загадывает, считает попытки); FizzBuzz и три его вариации.

Чекпоинт. FizzBuzz с изменёнными условиями пишешь за 15 минут без подсказок.

Неделя 4 · Коллекции: списки, словари, множества

Тема.
list, dict, set, tuple; индексация, срезы, вложенные структуры; выбор структуры под задачу.
Практика.
15 задач на коллекции (частотный словарь символов строки, пересечение списков, инвертирование словаря); мини-проект: викторина с вопросами в списке словарей, подсчётом очков и таблицей результатов.

Чекпоинт. объясняешь вслух, когда list, когда dict, когда set — и твой код это отражает.

Неделя 5 · Исключения, модули, окружения

Тема.
try/except, устойчивость к кривому вводу; import, стандартные модули, pip и виртуальные окружения через uv.
Практика.
Problem Sets 3–4; мини-проект: генератор паролей как CLI с argparse (длина, наборы символов, количество) в отдельном uv-проекте с зависимостью.

Чекпоинт. твоя программа не падает от любого кривого ввода; новый проект с изолированным окружением создаёшь за минуту.

Неделя 6 · Файлы, CSV, JSON

Тема.
чтение и запись файлов, форматы CSV и JSON, пути через pathlib.
Практика.
Problem Set 6; мини-проект: трекер расходов CLI — команды add/list/stats, хранение в JSON, сводка по категориям; данные переживают перезапуск.

Чекпоинт. трекер работает после перезапуска и не ломается от битого файла данных.

Неделя 7 · ООП

Тема.
классы, атрибуты и методы, `__init__`, свойства, наследование, dunder-методы, dataclasses.
Практика.
Problem Set 8; рефакторинг трекера расходов: классы Expense и ExpenseBook, dataclass для записи; поведение не изменилось — структура стала чище.

Чекпоинт. объясняешь на своём коде, что дали классы по сравнению со словарями.

Неделя 8 · Тесты, типизация, стандартная библиотека

Тема.
первые тесты на pytest, type hints, регулярные выражения обзорно; collections, itertools, pathlib, datetime; list/dict comprehensions.
Практика.
тесты к трекеру расходов (happy path + ошибки, 8–10 штук); переписать 5 своих старых циклов на comprehensions; добавить type hints в трекер.

Чекпоинт. для новой функции сначала пишешь тест, потом код — и это уже не кажется странным.

Неделя 9 · HTTP, API и финальный проект

Тема.
HTTP-запросы, requests, работа с JSON API, ошибки сети; сборка всего модуля в один проект.
Практика.
финальный проект модуля (он же CS50P Final Project, по желанию — сертификат): CLI-приложение с внешним API, файловым хранением, классами и тестами. Идеи: трекер портфеля валют/крипты с живыми курсами, дневник погоды по городам, клиент новостного API с фильтрами. README с примерами запуска обязателен.

Чекпоинт. проект на GitHub: README, тесты, 200+ строк осмысленного кода — и ты можешь объяснить каждую строку.

2
Модуль 2 · нед. 10–14

Инженерная база

инструменты, без которых не берут: терминал, git как рефлекс, pytest, SQL, чистый стиль кода.

Артефакт: репозитории в найм-пригодном виде

AI

тут автопилот полезен по-настоящему: shell-однострочники, git-команды для нестандартных ситуаций, regex — проси, вставляй, но требуй объяснения каждого флага. Коммит-сообщения и SQL-запросы пиши сам.

Неделя 10 · Терминал и Linux-навыки

Тема.
shell: навигация, пайпы, grep/find/sed, переменные окружения, права; жизнь без файлового менеджера.
Практика.
неделя «только терминал»: все операции с файлами и поиск — из shell; собери собственную шпаргалку из 20 команд с примерами в learning-log; Bandit до 15 уровня.

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

Неделя 11 · Git и GitHub по-взрослому

Тема.
ветки, merge и конфликты, rebase, удалённые репозитории, pull request'ы, .gitignore, SSH-ключи.
Практика.
перевести все проекты на осмысленные коммиты; устроить себе конфликт и решить его; фича-ветка + PR в собственный репозиторий с self-review — так теперь живёт каждое изменение.

Чекпоинт. конфликт при merge решаешь без паники; история коммитов читается как список изменений, а не «fix», «fix2», «final».

Неделя 12 · Отладка и тесты глубже

Тема.
pytest: fixtures, parametrize, tmp_path; отладчик VS Code вместо print; logging.
Практика.
довести тесты финального проекта до 15+ с fixtures и parametrize; попроси AI подсадить в копию твоего проекта 3 скрытых бага — найди все отладчиком, без print; добавь logging вместо отладочных принтов.

Чекпоинт. подсаженный баг находишь отладчиком за полчаса; можешь поставить breakpoint, посмотреть стек и переменные.

Неделя 13 · SQL: основы

Тема.
SELECT, WHERE, ORDER BY, агрегаты, GROUP BY, JOIN; SQLite из Python.
Практика.
спроектируй схему из 2–3 таблиц для трекера расходов (расходы, категории, теги); перенеси данные из JSON в SQLite; напиши 15 запросов к своим данным — от простых фильтров до JOIN с агрегацией.

Чекпоинт. JOIN двух таблиц с GROUP BY пишешь без подсказки.

Неделя 14 · SQL глубже и гигиена кода

Тема.
оконные функции, подзапросы, CTE; линтер и форматтер, pre-commit, структура проекта.
Практика.
20 задач DataLemur easy и 2–3 medium; подключи ruff и pre-commit ко всем репозиториям, почини всё, что они подсветят; приведи финальный проект к структуре пакета (src-layout, pyproject.toml через uv).

Чекпоинт. 15 easy-задач DataLemur подряд без ошибок; pre-commit зелёный во всех репозиториях.

3
Модуль 3 · нед. 15–19

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

алгоритмическое мышление и база под будущие интервью; финальный грайнд будет в модуле 11, здесь — фундамент.

Артефакт: 60+ решённых задач

AI

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

Неделя 15 · Сложность, массивы, хеш-таблицы

Тема.
Big-O, оценка времени и памяти; массивы, строки, хеш-таблицы как рабочая лошадка.
Практика.
12 задач раздела (Two Sum, Valid Anagram, Contains Duplicate, Group Anagrams и далее); заведи тетрадь паттернов: задача → приём → сложность.

Чекпоинт. для любого своего решения называешь сложность по времени и памяти с ходу.

Неделя 16 · Два указателя и скользящее окно

Тема.
two pointers, sliding window; когда какой приём срабатывает.
Практика.
12 задач двух разделов (Valid Palindrome, Two Sum II, Best Time to Buy and Sell Stock, Longest Substring Without Repeating Characters).

Чекпоинт. новая easy-задача этих тем — 20 минут или быстрее.

Неделя 17 · Стек и бинарный поиск

Тема.
stack и queue, скобочные последовательности; бинарный поиск и его вариации, границы и off-by-one.
Практика.
10–12 задач (Valid Parentheses, Min Stack, Binary Search, Search a 2D Matrix, Koko Eating Bananas).

Ресурсы

Чекпоинт. бинарный поиск пишешь за 10 минут, и он проходит все тесты не более чем со второй попытки.

Неделя 18 · Связные списки и рекурсия

Тема.
связные списки: reverse, циклы, слияние; рекурсия и стек вызовов.
Практика.
10 задач (Reverse Linked List, Merge Two Sorted Lists, Linked List Cycle, Reorder List); напиши рекурсивные версии факториала, Фибоначчи с мемоизацией, обхода вложенных списков.

Чекпоинт. объясняешь на любом своём рекурсивном решении, что лежит в стеке вызовов на каждом шаге.

Неделя 19 · Деревья

Тема.
двоичные деревья и BST: DFS и BFS, глубина, диаметр, валидация BST.
Практика.
10–12 задач (Invert Binary Tree, Maximum Depth, Diameter, Balanced Binary Tree, Level Order Traversal, Validate BST); финальный спринт: 3 случайные easy подряд на таймере.

Чекпоинт. всего решено 60+ задач; easy стабильно укладывается в 20 минут; привычка «2–3 задачи в неделю» встаёт в расписание до конца курса.

4
Модуль 4 · нед. 20–24

Математика для ML

рабочий матаппарат: линейная алгебра, градиенты, вероятность и статистика — и всё сразу руками в NumPy. С твоей базой это модуль-ускоритель, а не курс матана с нуля.

Артефакт: градиентный спуск и PCA с нуля

AI

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

Неделя 20 · Линейная алгебра I + NumPy

Тема.
векторы, матрицы, линейные преобразования, матричное умножение как композиция.
Практика.
реализуй матричное умножение тройным циклом, сравни с `np.dot` по скорости; поворот и масштабирование облака точек матрицей с отрисовкой до/после.

Чекпоинт. объясняешь матричное умножение как композицию преобразований, а не как правило перемножения индексов.

Неделя 21 · Линейная алгебра II: собственные векторы и PCA

Тема.
базис и смена базиса, ранг, собственные значения и векторы, идея SVD; PCA как смена базиса.
Практика.
PCA с нуля: центрирование → ковариационная матрица → собственные векторы → проекция; прогони на датасете Iris и сравни со `sklearn.decomposition.PCA`.

Чекпоинт. твоя PCA совпадает со sklearn (с точностью до знака компонент), и ты понимаешь каждый шаг.

Неделя 22 · Производные, градиенты, спуск

Тема.
производная и градиент, chain rule, матричное дифференцирование лайт; градиентный спуск.
Практика.
численный градиент против аналитического (проверка себя кодом); градиентный спуск для линейной регрессии с нуля на NumPy; визуализация траектории спуска при разных learning rate — включая расходящийся.

Чекпоинт. выводишь градиент MSE на бумаге, и твой код с этим градиентом сходится.

Неделя 23 · Вероятность

Тема.
комбинаторика, условная вероятность, теорема Байеса, независимость, дискретные распределения.
Практика.
симуляции на NumPy: Монти Холл, парадокс дней рождения — сначала посчитай на бумаге, потом проверь кодом; наивный байесовский спам-фильтр с нуля на счётчиках слов (без sklearn).

Чекпоинт. задачу на условную вероятность решаешь через таблицу или дерево и подтверждаешь ответ симуляцией.

Неделя 24 · Статистика

Тема.
матожидание и дисперсия, ЗБЧ и ЦПТ, доверительные интервалы, проверка гипотез и p-value, максимальное правдоподобие.
Практика.
ЦПТ-симуляция на трёх разных распределениях; A/B-тест двух вариантов «кнопки» на сгенерированных данных: p-value, доверительный интервал, вывод; MLE для монетки и нормального распределения; Anki-колода на 30 карточек по формулам модуля.

Чекпоинт. объясняешь ЦПТ и p-value простыми словами на английском — запиши себя голосом и послушай.

5
Модуль 5 · нед. 25–28

Данные: pandas и EDA

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

Артефакт: EDA-проект (портфолио №1)

AI

с этого модуля включай автодополнение обратно. Boilerplate для pandas и графиков — разрешённый автопилот, это ускоряет в разы. Интерпретация данных и выводы — только твои: за них и платят.

Неделя 25 · Jupyter и pandas: основы

Тема.
ноутбуки, Series и DataFrame, индексация, фильтры, новые колонки; дисциплина чистых ноутбуков.
Практика.
возьми датасет и ответь кодом на 10 своих вопросов к нему; правила ноутбука: заголовки-markdown, никаких мёртвых ячеек, перед коммитом — Restart & Run All.

Чекпоинт. ноутбук воспроизводится через Run All без ошибок и отвечает на 10 вопросов о данных.

Неделя 26 · pandas продвинутый

Тема.
groupby и агрегации, merge/join, pivot, работа со временем, пропуски и типы данных.
Практика.
25–30 упражнений на groupby и merge (сгенерируй себе задачи по своему датасету, AI поможет составить список); мини-отчёт «одна страница фактов» о датасете: топы, динамика, разрезы.

Ресурсы

Чекпоинт. groupby-агрегация и merge двух таблиц — без заглядывания в документацию.

Неделя 27 · Визуализация

Тема.
matplotlib и seaborn; график как ответ на вопрос; как графики врут.
Практика.
8 графиков-историй по своему датасету — у каждого заголовок-вывод, подписи осей, читаемость без пояснений; найди в сети 3 плохих графика и напиши, чем именно они врут.

Чекпоинт. показал график человеку без контекста — он верно пересказал вывод.

Неделя 28 · EDA-проект (портфолио №1)

Тема.
полный цикл разведочного анализа: вопросы → чистка → анализ → выводы → публикация.
Практика.
выбери тему, которая тебе правда интересна (рынок ML-вакансий, цены на авто, статистика твоего города); 5 вопросов → анализ → 3–5 выводов; опубликуй Kaggle-ноутбук и пост с главными находками. AI: черновик структуры и вычитка английского — да; выводы и формулировки — твои.

Чекпоинт. ноутбук опубликован, в нём минимум один вывод, который заранее не был очевиден; человек не из IT понял главную мысль.

6
Модуль 6 · нед. 29–36

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

полный ML-workflow на табличных данных и теория до уровня «объясню на интервью»: от линейной регрессии до градиентного бустинга.

Артефакт: Kaggle-соревнование (портфолио №2)

AI

boilerplate пайплайнов и графиков — автопилот; выбор валидации, метрик и интерпретация — руками. Новый приём: после каждой темы проси AI «задай мне 5 интервью-вопросов про X» и отвечай вслух.

Неделя 29 · Линейная регрессия

Тема.
постановка supervised learning, функция потерь, обучение и обобщение; линейная регрессия.
Практика.
задача о ценах жилья: `LinearRegression` из sklearn против твоего градиентного спуска из недели 22 на тех же данных; масштабирование признаков и что без него ломается.

Чекпоинт. объясняешь, почему модель нельзя оценивать на обучающей выборке, и показываешь это своим экспериментом.

Неделя 30 · Логистическая регрессия и классификация

Тема.
сигмоида, бинарная кросс-энтропия, вероятности и порог; регуляризация L1/L2.
Практика.
логистическая регрессия с нуля на NumPy (сигмоида + BCE + градиентный спуск); затем sklearn на реальном датасете оттока клиентов; подбор порога под задачу (дорогой пропуск vs дорогая ложная тревога).

Чекпоинт. объясняешь, что выдаёт модель до порога и почему порог 0.5 — не закон природы.

Неделя 31 · Валидация, метрики, пайплайны

Тема.
train/val/test, кросс-валидация, утечки данных; accuracy, precision/recall, F1, ROC-AUC; sklearn Pipeline и ColumnTransformer.
Практика.
пайплайн на данных со смешанными типами (числа + категории + пропуски) с кросс-валидацией; специально устрой утечку (например, масштабирование до сплита) и покажи, как она завышает метрику; матрица ошибок и PR-кривая на несбалансированных классах.

Чекпоинт. объясняешь разницу accuracy / F1 / ROC-AUC и в каких задачах какая метрика врёт.

Неделя 32 · Деревья и градиентный бустинг

Тема.
решающие деревья, случайный лес, градиентный бустинг; почему бустинг выигрывает таблички.
Практика.
RandomForest и XGBoost на своей табличке против логрегрессии при честной кросс-валидации; early stopping; важности признаков и их ловушки.

Чекпоинт. рассказываешь без бумажки, как строится дерево, что усредняет лес и что исправляет бустинг.

Неделя 33 · Фичи, тюнинг, интерпретация

Тема.
feature engineering: категории, даты, взаимодействия; подбор гиперпараметров; SHAP.
Практика.
подними метрику прошлой недели фичами и зафиксируй вклад каждой идеи ablation-таблицей; Optuna-поиск по XGBoost; SHAP-разбор топ-признаков — согласуется ли с интуицией.

Чекпоинт. в ноутбуке видно, какая фича что дала; можешь объяснить, почему модель приняла конкретное решение.

Неделя 34 · Unsupervised и обзор соседей

Тема.
кластеризация (k-means, иерархическая, DBSCAN), снижение размерности на практике (PCA, UMAP), детекция аномалий; kNN и SVM обзорно.
Практика.
сегментация клиентов: RFM-признаки → кластеры → интерпретация сегментов бизнес-языком; выбор числа кластеров осмысленно (силуэт, локоть — и их ограничения); IsolationForest для поиска аномалий в своих данных.

Чекпоинт. описываешь каждый сегмент одной фразой, за которую не стыдно перед «заказчиком».

Неделя 35 · Kaggle-спринт I

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

Чекпоинт. есть бейзлайн и 3 итерации, каждая с записанной гипотезой и измеренным результатом.

Неделя 36 · Kaggle-спринт II (портфолио №2)

Тема.
ансамбли и блендинг лайт; финальный сабмит; разбор решения как артефакт портфолио.
Практика.
блендинг 2–3 моделей; финальный сабмит; README-разбор в репозитории: задача, валидация, что сработало, что нет и почему; пост с выводами. Место на лидерборде вторично — работодатель будет читать разбор, а не ранг.

Чекпоинт. результат выше медианы лидерборда; разбор опубликован и понятен без чтения кода.

7
Модуль 7 · нед. 37–44

Deep learning на PyTorch

понять нейросети от градиента до трансформера — не «уметь вызывать fit», а собрать всё руками; уверенный PyTorch.

Артефакт: vision-демо (портфолио №3) + свой трансформер

AI

объяснение ошибок с размерностями тензоров — легально и экономит часы; скелет training loop — только после того, как дважды написал его сам; конспекты статей и «объясни, что делает эта строка в nanoGPT» — смело. Ядро недель 37, 42, 43 пиши полностью руками.

Неделя 37 · micrograd: backprop руками

Тема.
нейрон, граф вычислений, chain rule, backpropagation — на 100 строках Python.
Практика.
собери micrograd вместе с видео, не копируя файлы; расширь его: ReLU, ещё пара операций; обучи крошечную сеть на XOR или «лунах»; напиши страницу «backprop своими словами» в learning-log.

Чекпоинт. сеть на твоём micrograd сходится; объясняешь chain rule на графе вычислений маркером на бумаге.

Неделя 38 · PyTorch core

Тема.
тензоры, autograd, nn.Module, Dataset/DataLoader, training loop; устройство GPU-вычислений на пальцах.
Практика.
MNIST на полносвязной сети: Dataset, DataLoader, свой training loop, сохранение и загрузка весов; подключи [Weights & Biases](https://wandb.ai/site) и залогируй первый эксперимент.

Чекпоинт. пишешь training loop с нуля (данные → форвард → лосс → backward → шаг) без подглядывания.

Неделя 39 · Ремесло обучения сетей

Тема.
инициализация, активации, BatchNorm, learning rate и его расписания, переобучение и регуляризация; диагностика по кривым.
Практика.
таблица экспериментов на MNIST/makemore: что двигает лосс — LR, инициализация, BatchNorm, размер сети; научись видеть overfit/underfit по кривым train/val и выбирать следующее действие.

Чекпоинт. по паре кривых train/val ставишь диагноз и называешь, что крутить дальше — и это подтверждается экспериментом.

Неделя 40 · CNN и transfer learning

Тема.
свёртки, пулинг, современные архитектуры обзорно; fine-tune предобученной модели — главный практический приём CV.
Практика.
собери собственный датасет из 2–3 классов (фото из своей жизни или спарсенные картинки); fine-tune ResNet из torchvision; аугментации; разбор ошибок через confusion matrix и просмотр самых уверенных промахов.

Чекпоинт. fine-tune бьёт обучение с нуля на твоём датасете с заметным отрывом, и ты показываешь, где и почему модель всё ещё ошибается.

Неделя 41 · Демо в мир (портфолио №3)

Тема.
довести модель до публичного демо: интерфейс, model card, отчёт об экспериментах.
Практика.
Gradio-приложение вокруг классификатора недели 40 → задеплой на HF Spaces; model card: данные, метрики, ограничения; README с гифкой; W&B-отчёт как ссылка «как я это обучал».

Чекпоинт. демо открывается с телефона у любого человека; README отвечает на «что это, насколько хорошо работает, как повторить».

Неделя 42 · Эмбеддинги и attention

Тема.
от последовательностей к вниманию: эмбеддинги, контекст, self-attention по шагам.
Практика.
символьная токенизация и биграммная модель на своём корпусе; посчитай attention для 3 токенов на бумаге (Q, K, V, softmax) и сверь с кодом; начни собирать GPT по видео.

Чекпоинт. считаешь attention для трёх токенов вручную и объясняешь, зачем нужны Q, K и V.

Неделя 43 · Свой GPT

Тема.
полный decoder-only трансформер: multi-head attention, блоки, residual, LayerNorm; обучение на своём корпусе.
Практика.
дострой трансформер и обучи на корпусе по вкусу (любимая книга, твои конспекты, песни); поиграй с гиперпараметрами и запиши, что меняется; сгенерируй тексты для README.

Чекпоинт. модель обучена, лосс падает, текст в меру связный; объясняешь роль каждого блока архитектуры.

Неделя 44 · Консолидация DL

Тема.
закрыть хвосты модуля и превратить понимание в речь — по-английски.
Практика.
само-экзамен на запись, по-английски, по 5 минут: backprop, BatchNorm, attention, transfer learning; пересмотри записи и перепиши слабые ответы; добей незакрытые чекпоинты модуля.

Чекпоинт. запись объяснений можно показать другому человеку — уверенно, без бумажки, с примерами.

8
Модуль 8 · нед. 45–52Флагман

LLM-инженерия

самый нанимаемый стек 2026 года: работа с LLM через API и локально, fine-tuning, RAG, агенты и — главное, что отличает инженера от вайб-кодера, — evals.

Артефакт: LLM-продукт (портфолио №4, флагман)

AI

здесь AI — сам предмет изучения, используй его и как инструмент, и как объект. Glue-код и UI — автопилот; архитектура RAG, дизайн evals и разбор ошибок — руками, это и есть профессия.

Неделя 45 · Ландшафт LLM

Тема.
как устроен современный LLM-стек: pretrain → SFT → RLHF; токенизация; открытые против API-моделей.
Практика.
запусти 2–3 открытые модели (Ollama локально или Kaggle/Colab), сравни на 10 своих запросах; `pipeline()` из transformers для 5 разных задач; конспект «pretrain → SFT → RLHF своими словами» в learning-log.

Чекпоинт. объясняешь токенизацию и почему модель генерирует по одному токену; локальная модель у тебя запускается и отвечает.

Неделя 46 · Fine-tuning

Тема.
полный fine-tune против PEFT/LoRA; когда файнтюнить, а когда хватит промпта или RAG.
Практика.
LoRA-файнтюн небольшой открытой модели (1–4B) под конкретную задачу — стиль ответов, классификация обращений, QA по шаблону — на бесплатном GPU Kaggle; замерь качество до и после на 30–50 примерах; выложи адаптер на HF Hub.

Чекпоинт. таблица «до/после» с цифрами; объясняешь, что такое LoRA и почему это дешевле полного файнтюна.

Неделя 47 · Инженерия поверх API

Тема.
structured outputs, tool use, стриминг, обработка ошибок и ретраи; цена и латентность; промптинг как инженерная дисциплина.
Практика.
CLI-ассистент с 2–3 инструментами (поиск по твоим заметкам, калькулятор, погодное API из недели 9) и строго валидным JSON-выводом; логируй каждый вызов (запрос, ответ, токены, цена) в SQLite — это твой мини-трейсинг; посчитай бюджет на 1000 запросов.

Чекпоинт. ассистент стабильно возвращает валидный JSON, переживает сетевые ошибки и укладывается в посчитанный бюджет.

Неделя 48 · RAG с нуля (старт флагмана №4)

Тема.
retrieval-augmented generation без фреймворков: chunking, эмбеддинги, векторный поиск, сборка ответа с цитатами.
Практика.
выбери домен флагмана — то, чем сам пользуешься: ассистент по документации инструмента, поиск по конспектам вуза, QA по базе статей; собери пайплайн руками: парсинг → chunking → эмбеддинги → поиск → ответ с указанием источников; 20 тестовых вопросов.

Чекпоинт. на 20 тестовых вопросах система отвечает со ссылкой на правильный источник в 70%+ случаев — это стартовая планка, дальше её поднимут evals.

Неделя 49 · Evals

Тема.
как мерить качество LLM-систем: golden set, метрики retrieval, LLM-as-judge и его калибровка, error analysis.
Практика.
golden set на 30–50 вопросов с эталонами; метрики: hit rate/MRR для retrieval, faithfulness через LLM-judge, откалиброванный на 10 вручную размеченных примерах; error analysis: таблица провалов с категориями; два улучшения (другой chunking, reranking) — принимай по цифрам, а не по ощущениям.

Чекпоинт. eval-прогон запускается одной командой и печатает отчёт; минимум одно улучшение подтверждено цифрами до/после.

Неделя 50 · Агенты

Тема.
агентные циклы: план → инструмент → наблюдение; MCP; когда агент нужен, а когда хватит цепочки промптов.
Практика.
добавь во флагман агентный сценарий: многошаговая задача (найти → сравнить → синтезировать ответ или действие) с ограничением прав инструментов, таймаутами и ретраями; 10 тестовых сценариев в evals.

Чекпоинт. агент проходит 10 сценариев без зацикливания; по логам видно каждый шаг и причину каждого вызова инструмента.

Неделя 51 · Продукт и безопасность

Тема.
LLM-приложение как сервис: API, стриминг, UI; prompt injection и базовая защита; лимиты трат.
Практика.
оберни флагман в FastAPI со стримингом; простой UI (Gradio/Streamlit); защита-минимум: разделение инструкций и данных, ограничение прав инструментов, фильтр вывода; rate limit и дневной бюджет; задеплой на [HF Spaces](https://huggingface.co/spaces) или [Modal](https://modal.com/docs).

Чекпоинт. публичный URL работает; твой чек-лист из 10 базовых атак (инъекции в документы, увод системного промпта) не пробивает систему.

Неделя 52 · Полировка флагмана №4

Тема.
превратить работающий проект в артефакт для найма: README, цифры, демо, пост.
Практика.
README: проблема → живое демо → архитектура (схема) → eval-цифры → как запустить → что бы улучшил; демо-гифка и видео на 2 минуты; пост «как я мерил качество RAG и что чинил»; собери фидбек в сообществах и внеси правки.

Чекпоинт. человек со стороны запустил проект по README и понял eval-отчёт; пост опубликован; ссылка закреплена в профиле GitHub.

9
Модуль 9 · нед. 53–59Флагман

MLOps и продакшн

доводить модели до продакшна: Docker, serving, реестр моделей, CI/CD, облако, мониторинг — навыки, которые отличают ML-инженера от «человека с ноутбуками».

Артефакт: ML-сервис в облаке (портфолио №5, флагман)

AI

максимальное ускорение за весь курс: Dockerfile, YAML для CI, конфиги облака — почти всегда автопилот. Железное правило: к каждому сгенерированному файлу проси построчное объяснение и выбрасывай всё, что не понимаешь и что не нужно. На интервью спросят «почему у вас тут multi-stage build» — отвечать тебе.

Неделя 53 · Docker

Тема.
образы и контейнеры, Dockerfile, слои и кэш, multi-stage build, docker compose.
Практика.
контейнеризируй флагман №4: multi-stage Dockerfile, компактный образ; compose для связки app + БД; опубликуй образ в GitHub Container Registry.

Чекпоинт. `docker compose up` поднимает всё на чужой машине; объясняешь каждый слой своего Dockerfile.

Неделя 54 · Serving и нагрузка

Тема.
паттерны инференса: online API, batch, очередь; латентность и пропускная способность; нагрузочное тестирование.
Практика.
сервис `/predict` для модели из модуля 6 (бустинг из Kaggle-проекта — идеально): загрузка модели при старте, валидация входа, версия модели в ответе; прогони нагрузку Locust, измерь p50/p95, найди и почини самое узкое место.

Ресурсы

Чекпоинт. цифры p50/p95 при N RPS зафиксированы в README до и после оптимизации.

Неделя 55 · Эксперименты и реестр моделей

Тема.
трекинг экспериментов, реестр моделей и стадии; воспроизводимость: конфиги, сиды, lock-файлы.
Практика.
переведи обучение модели из ноутбука в скрипты: `train.py` + конфиг; каждый запуск логируется в MLflow с параметрами и метриками; лучшая модель уходит в registry, сервис недели 54 берёт её оттуда.

Чекпоинт. воспроизводишь любой прошлый эксперимент в одну команду; сервис подхватывает модель из registry, а не из случайного файла.

Неделя 56 · CI/CD

Тема.
GitHub Actions: линт, тесты, сборка образа, деплой; защита main-ветки; пайплайн как страховка.
Практика.
workflow на каждый PR: ruff → pytest → build образа → push в registry; авто-деплой демо при merge в main; защити main обязательным зелёным CI; бейдж в README.

Чекпоинт. сломанный тест физически блокирует merge; зелёный PR доезжает до деплоя без твоих рук.

Неделя 57 · Облако

Тема.
один облачный провайдер на выбор: IAM, объектное хранилище, запуск контейнера; GPU-инференс по требованию; контроль расходов.
Практика.
задеплой сервис недели 54 в облако из своего CI; данные — в S3/GCS; посчитай месячную стоимость и настрой бюджет-алерт; для LLM-флагмана попробуй Modal.

Чекпоинт. сервис доступен по публичному URL из облака; биллинг-алерт настроен, и ты знаешь, сколько это стоит в месяц.

Неделя 58 · Мониторинг и дрифт

Тема.
мониторинг ML-систем: качество данных, дрифт, деградация; логирование предсказаний; регулярные джобы.
Практика.
логируй предсказания сервиса в БД; сымитируй сдвиг данных и поймай его Evidently-отчётом; Prefect-flow: ежедневный отчёт по дрифту, при деградации — сигнал (хоть письмо, хоть issue).

Чекпоинт. имитированный дрифт виден в отчёте и порождает алерт без ручного запуска.

Неделя 59 · Капстоун (портфолио №5)

Тема.
собрать весь модуль в одну систему: полный жизненный цикл модели на одной задаче.
Практика.
одна задача (та же Kaggle-табличка или прогноз по живому API) от и до: данные → train с MLflow → registry → FastAPI → Docker → CI/CD → облако → Evidently-мониторинг; архитектурная схема в README; запуск одной командой (make или uv run).

Ресурсы

Чекпоинт. незнакомый человек разворачивает систему по README за 15 минут; схема объясняет её за один взгляд; URL живой.

10
Модуль 10 · нед. 60–63

Портфолио и публичность

упаковать полтора года работы так, чтобы профиль проходил 30-секундный скрининг рекрутера и 5-минутный — инженера.

Артефакт: GitHub-профиль, посты, OSS PR

AI

черновики README и постов — да, но переписывай своим голосом и добавляй детали, которых нет в коде: решения, провалы, цифры. Рекрутеры и инженеры чуют стерильный AI-текст мгновенно, и это красный флаг.

Неделя 60 · Ревизия GitHub

Тема.
профиль как витрина: что закрепить, что архивировать, единый стандарт README.
Практика.
профиль-README (кто ты, стек, 2 флагмана со ссылками); закрепи 6 репозиториев: флагманы №4 и №5, Kaggle-разбор, vision-демо, EDA, свой GPT; каждый — по шаблону «проблема → демо → архитектура → метрики → запуск → уроки»; учебный мусор в архив; лицензии и описания.

Чекпоинт. каждый закреплённый репозиторий проходит «тест 30 секунд»: что это, зачем и насколько хорошо работает — видно без скролла.

Неделя 61 · Контент и LinkedIn

Тема.
посты-разборы флагманов и профиль LinkedIn, по которому тебя можно найти.
Практика.
два поста: разбор LLM-флагмана (архитектура + evals) и разбор MLOps-капстоуна (pipeline + мониторинг); LinkedIn целиком: headline «ML Engineer | Python, PyTorch, LLMs, MLOps», проекты со ссылками, навыки; попроси троих знакомых дать фидбек по профилю.

Чекпоинт. оба поста опубликованы; профиль LinkedIn полон, и по нему понятно за минуту, что ты умеешь и что показать.

Неделя 62 · Open source и GSoC-разведка

Тема.
первый вклад в открытый код: docs, тесты, примеры — тоже вклад; подготовка почвы для Google Summer of Code.
Практика.
выбери 1–2 библиотеки, которыми реально пользовался; возьми good first issue (документация, тест, воспроизведение бага) и доведи PR до ревью; для GSoC: выбери 2–3 ML-организации, подпишись на их трекеры и начни там появляться — заявки участников — март (организации отбираются в феврале), победители почти всегда «свои» в сообществе заранее.

Чекпоинт. минимум один PR отправлен и прошёл первое ревью (в идеале смержен); список GSoC-целей с первым контактом есть.

Неделя 63 · Внешний аудит

Тема.
проверка всего пакета чужими глазами до начала откликов.
Практика.
чек-лист: все ссылки живые, демо работают, английский вычитан, тексты не звучат как сгенерированные; попроси трёх человек (хотя бы одного инженера) посмотреть профиль и пересказать, что ты умеешь; почини всё, что они поняли не так.

Чекпоинт. три человека пересказали твой профиль без подсказок — и попали в суть; правки внесены.

11
Модуль 11 · нед. 64–72

Найм

пройти зарубежный интервью-цикл: coding, ML-теория, ML system design, behavioral — и вести воронку откликов как проект, а не как лотерею.

Артефакт: офферы

AI

мок-интервью голосом (behavioral и ML-вопросы), tailoring резюме под конкретную вакансию, черновики сопроводительных — законный буст. Табу без исключений: LeetCode решаешь сам, на живых интервью AI нет, в take-home — только то, что компания явно разрешила (и напиши в README, что использовал).

Неделя 64 · Стратегия, резюме, первые отклики

Тема.
резюме под ATS, карта целей, трекер воронки.
Практика.
резюме на 1 страницу: проекты с цифрами («RAG-сервис с faithfulness 0.87 на своём eval-сете», «API с p95 120 мс») вместо списка технологий; таблица-трекер: компания / роль / стадия / даты / контакт; список 100 целей: ~40 remote, ~30 релокация (DE/NL/PL/AE/SG), ~20 стажировок, ~10 мечты; первые 10 откликов — сразу, не жди «готовности».

Чекпоинт. резюме прошло ревью двух людей и вычитку; трекер заведён; 10 откликов отправлено.

Неделя 65 · Coding-грайнд I

Тема.
возвращаем алгоритмы в боевую форму: массивы, хеши, указатели, окно, стек.
Практика.
25–30 задач первых пяти тем; после каждой — разбор оптимального решения и запись паттерна; вслух проговаривай ход мысли по-английски — привыкай к think-aloud.

Чекпоинт. medium этих тем решается за 35 минут в двух случаях из трёх.

Неделя 66 · Coding-грайнд II и первый мок

Тема.
бинарный поиск, связные списки, деревья; первое интервью-репетиция.
Практика.
25 задач; первый мок-кодинг на английском (peer или платный) с think-aloud; разбор записи: где молчал, где путался.

Чекпоинт. мок пройден: интервьюер следил за ходом мысли без переспрашиваний (фидбек записан в трекер).

Неделя 67 · Coding-грайнд III

Тема.
кучи, backtracking, графы, одномерное DP — глубина, достаточная для junior-скрининга.
Практика.
20 задач новых тем + повторение провальных из прошлых недель; 2 мока.

Чекпоинт. NeetCode 150 закрыт по всем core-темам (~70% списка); на моках стабильно доводишь решение до работающего кода.

Неделя 68 · ML-теория для интервью

Тема.
стандартная обойма вопросов: bias-variance, регуляризация, метрики, деревья против линейных, эмбеддинги, attention, переобучение и лечение.
Практика.
пройди банк вопросов, слабое — в Anki; 3 голосовые сессии Q&A с AI на английском: пусть гоняет по списку и добивается уточнений; каждый ответ — структурой «определение → интуиция → пример из своего проекта».

Чекпоинт. 30 стандартных вопросов отвечаешь уверенно на английском с примерами из своих проектов (запись это подтверждает).

Неделя 69 · ML system design

Тема.
каркас ответа: уточнение задачи → метрики (бизнес и ML) → данные → фичи → модель → serving → мониторинг; типовые кейсы.
Практика.
три письменных дизайна по 1–2 страницы: лента рекомендаций, антифрод, RAG-ассистент по базе знаний (последний — твой домашний кейс, у тебя он реально построен); один мок по дизайну с проговариванием каркаса.

Чекпоинт. незнакомый кейс раскладываешь по каркасу за 35–40 минут вслух, не проваливаясь в детали одной стадии.

Неделя 70 · Behavioral и язык

Тема.
STAR-истории, рассказ о себе, вопросы интервьюеру; разговорный английский под интервью-формат.
Практика.
10 STAR-историй из курса и учёбы (провал, конфликт, дедлайн, инициатива, обратная связь) — у тебя за полтора года их накопилось больше, чем кажется; питч «tell me about yourself» на 2 минуты; полный behavioral-мок голосом с AI и один с человеком; свои 5 вопросов интервьюеру.

Чекпоинт. behavioral-мок на английском без провальных пауз; истории покрывают все стандартные вопросы.

Неделя 71 · Кампания на полную мощность

Тема.
объём + качество откликов; рефералы; take-home стратегия.
Практика.
15–20 таргетных откликов в неделю: резюме и 3–4 строки письма под каждую вакансию (AI-черновик, твоя правка); 5 попыток рефералов через тёплые контакты; правила take-home: таймбокс 6–8 часов, README с решениями и trade-off'ами, тесты — take-home с тестами выделяется сразу; разбор каждого скрининга в трекере.

Ресурсы

Чекпоинт. суммарно с недели 64 отправлено 40+ откликов; идут первые скрининги; каждый отказ разобран на причину.

Неделя 72 · Итерация воронки

Тема.
воронка как ML-задача: смотри, на какой стадии режет, и чини именно её; переговоры; запасные пути.
Практика.
посчитай конверсии: отклик → скрининг → техничка → финал; режет на резюме — переделай bullets и цели; на техничке — вернись в грайнд на неделю; активируй запасные пути: летние стажировки, GSoC-заявка, локальные компании с международными клиентами; базовые правила переговоров: не называй цифру первым без необходимости, торгуйся от данных levels.fyi.

Чекпоинт. 60+ откликов, конверсии посчитаны, следующая итерация спланирована — или оффер подписан, и курс закрыт досрочно по уважительной причине.

Готов начать?

Неделя 0 — бесплатно: окружение, аккаунты и публичный learning-репозиторий. Сопровождение подключишь с любой недели.