План на год после курса
Последний урок курса: четыре траектории роста — LLM-инженер приложений, инженер по обучению, инженер по инференсу и MLOps, исследователь — с материалами из «Учимся у создателей» и «Переводов» и проектами-доказательствами; план на 12 месяцев по кварталам, недельный ритм, ежемесячный обзор в журнале, как не выгореть, и чек-лист «я готов к первой работе».
Зачем это нужно
Заголовок раздела «Зачем это нужно»Это последний урок курса. Дальше нет следующего урока, квиза и домашней работы с автотестами. Следующий шаг придётся выбирать самому — и это главное, что меняется после курса.
Без плана происходит одно из двух. Первое: месяц отдыха превращается в полгода, и навыки тают. Код без практики забывается быстрее теории, а через полгода PyTorch-код из ступени 4 читается как чужой. Второе: вы хватаетесь за всё сразу — новый курс, три статьи, соревнование, — и через два месяца нет ни одного законченного результата. Область при этом движется быстро: на странице «Ваша лаборатория» уже перечислены модели новее тех, на которых написаны уроки. Конкретные имена устаревают за месяцы, основы — нет.
План на год — программа следующего курса, которую вы пишете сами. В нём четыре части: куда (траектория), что (цели по кварталам), когда (недельный ритм) и как сверяться (ежемесячный обзор). Плюс чек-лист, по которому видно, готовы ли вы искать первую работу.
Четыре траектории
Заголовок раздела «Четыре траектории»В уроке 11.3.1 мы разобрали семь ML-ролей. Для человека, прошедшего этот курс, из них складываются четыре траектории роста. У всех общая база: Python, теория ML, алгоритмы, инженерная культура. Различается глубина. Работодатели обычно ищут T-образный профильT-образный профиль навыковEN T-shaped skillsГоризонтальная черта буквы T — широкая база, общая для всех ролей (Python, теория ML, алгоритмы, инженерная культура), вертикальная — глубина в одном направлении (например, инференс или пост-трейнинг). Работодатели обычно ищут именно такую форму, а не «знаю всё понемногу».: широкая база и одна глубокая специализация, а не «всего понемногу».
flowchart TD Q["Что в курсе получалось<br/>и нравилось больше всего?"] Q --> A["Собирать продукт поверх модели:<br/>ступень 8, разбор 11.2.2"] Q --> B["Обучать и чинить обучение:<br/>ступени 4–6, DDP на 4 картах"] Q --> C["Замерять токены в секунду,<br/>квантовать: модули 7.1–7.2, 5.7"] Q --> D["Читать статьи и ставить опыты:<br/>9.2.2, 9.3, 11.4.1"] A --> A1["LLM-инженер<br/>приложений"] B --> B1["Инженер<br/>по обучению"] C --> C1["Инференс<br/>и MLOps"] D --> D1["Исследователь<br/>(через research engineer)"]
| Траектория | Роли из 11.3.1 | Основа из курса | Учить дальше | Главный проект-доказательство |
|---|---|---|---|---|
| LLM-инженер приложений | LLM/AI-инженер | ступень 8, модуль 7.3, P8, P9 | эвалы как процесс, бэкенд и деплой, продуктовые метрики, безопасность агентов | RAG или агент по реальной документации с eval-набором и расчётом стоимости |
| Инженер по обучению | ML-инженер, research engineer | ступени 4–6, модуль 5.4, P3–P6, P9 | распределённое обучение, данные для претрейна, рецепты пост-трейнинга, абляции | GRPO на verl или претрейн на 4 GPU с отчётом по нескольким seed |
| Инференс и MLOps | инженер по инференсу, MLOps | модули 7.1–7.2, 5.7, урок 8.4.3, P7, P11 | ядра CUDA и Triton, устройство vLLM и SGLang, Kubernetes, наблюдаемость | бенчмарк движков с рекомендациями и PR в движок |
| Исследователь | research engineer → research scientist | урок 9.2.2, модуль 9.3, P10 | математика глубже, постановка экспериментов, письмо | 2–3 воспроизведения и маленькое своё исследование |
Выберите основную траекторию и запасную соседнюю: алгоритмы, теория и ML coding у всех ролей общие, поэтому подготовка к соседним ролям во многом совпадает. Ниже — что учить и что делать на каждой траектории. Материалы взяты со страницы «Учимся у создателей» и из раздела «Переводы»: все ссылки на переводы ведут на русские конспекты и путеводители.
LLM-инженер приложений
Заголовок раздела «LLM-инженер приложений»Строит продукт поверх готовых моделей: промпты, RAG, агенты, эвалы, стоимость. Порог входа здесь ниже, чем в обучении и инференсе: не нужен доступ к кластеру, хватает API или одной карты. Поэтому выделяться приходится качеством оценки и инженерии, а не числом подключённых фреймворков.
- Навыки дальше: eval-driven development и калибровка LLM-судьи (уроки 7.3.2, 8.4.2); бэкенд — API, очереди, база данных, Docker; продуктовые метрики и A/B-тесты; защита агентов от prompt injection (8.3.4).
- Материалы: разделы Anthropic и Hugging Face на странице создателей; переводы — «Building effective agents» и «Writing effective tools», Contextual Retrieval и эвалы для агентов, как строить эвалы (Claude Cookbooks), «маховик оценки» OpenAI, путеводитель по MCP Course, Qwen-Agent. Книга — Чип Хьюен, «AI-инженерия».
- Проекты-доказательства: RAG по документации реального проекта (например, vLLM) с eval-набором на 50–100 вопросов, откалиброванным судьёй и расчётом стоимости запроса (урок 11.1.5); агент с тремя инструментами и регрессионными тестами на prompt injection; маленький сервис для 5–10 настоящих пользователей с логами и разбором их обратной связи.
Инженер по обучению
Заголовок раздела «Инженер по обучению»Обучает и дообучает модели: данные, рецепты, распределённое обучение, абляции, отладка нестабильности. Ваши 4×RTX 4080 — хороший полигон: всё, что видно на H800 в техотчётах DeepSeek, в миниатюре видно и на PCIe.
- Навыки дальше: FSDP, тензорный и конвейерный параллелизм на практике; подготовка данных для претрейна (дедупликация, фильтры качества); рецепты SFT, DPO и GRPO на реальных фреймворках; законы масштабирования и абляции; чтение кривых обучения.
- Материалы: конспекты Ultra-Scale Playbook — одна GPU, DP, ZeRO и TP; Smol Training Playbook: претрейн SmolLM3 и пост-обучение; How To Scale Your Model о параллельном обучении; путеводитель по CS336; verl: GRPO на четырёх RTX 4080; nanochat.
- Проекты-доказательства: GRPO через verl на задаче с проверяемым ответом — развитие P6 с отчётом по трём seed; претрейн по мотивам nanochat или MiniMind на четырёх картах с замером MFU и одной честной абляцией (например, фильтр качества данных против без фильтра) — развитие P3 и P9; воспроизведение статьи из списка урока 11.4.1.
Инженер по инференсу и MLOps
Заголовок раздела «Инженер по инференсу и MLOps»Отвечает за скорость и стоимость генерации и за платформу, на которой живут модели. Здесь нужно понимать сразу и модель, и железо, а результаты по природе измеримы. В резюме это выглядит убедительно: «TTFT снизился с … до … мс при той же стоимости» — с вашими настоящими числами.
- Навыки дальше: CUDA и Triton (урок 5.7.3), профилирование; устройство vLLM и SGLang — планировщик, paged attention, префикс-кэш, спекулятивное декодирование; квантование с замером качества после; Kubernetes, наблюдаемость, SLO (8.4.3, 11.1.4).
- Материалы: разделы DeepSeek и NVIDIA; переводы — How To Scale Your Model об инференсе, система инференса DeepSeek-V3/R1, continuous batching (modelscope-classroom), ядра и FlashAttention (Ultra-Scale Playbook), Accelerated Computing Hub, CMU 11-868 LLM Systems.
- Проекты-доказательства: бенчмарк vLLM против SGLang на четырёх картах — TP против DP, BF16 против AWQ и FP8, таблица TTFT, TPOT и throughput при 1, 16 и 64 одновременных запросах и рекомендации «что брать для чата, а что для пакетной обработки» — развитие P7; своё ядро на Triton с тестом против PyTorch и замером; pull request в vLLM, SGLang или llama.cpp (урок 11.4.2).
Исследователь
Заголовок раздела «Исследователь»Ставит гипотезы, придумывает методы, пишет статьи. Честно, как и в 11.3.1: в сильных лабораториях на эту роль обычно ждут публикаций или учёной степени. Путь из курса чаще лежит через research engineer: воспроизведения, открытый код, первые собственные эксперименты.
- Навыки дальше: математика глубже (вероятность, оптимизация, линейная алгебра); постановка экспериментов; чтение 2–3 статей в неделю по методу трёх проходов (урок 9.2.2); письмо — отчёт, пост, затем короткая статья.
- Материалы: эссе «Как стать исследователем глубокого RL» из Spinning Up; научный подход к улучшению моделей (Tuning Playbook); законы масштабирования в CS336; circuit-tracer и Neuronpedia; ARENA; CS25; Ahead of AI; на китайском — курсы Ли Хунъи и книга «Большие языковые модели» RUC AI Box.
- Проекты-доказательства: два-три воспроизведения из урока 11.4.1 с отчётами; маленькое своё исследование, например граф атрибуции на маленькой модели через circuit-tracer. Если результат держится на нескольких seed, следующий шаг — воркшоп конференции.
Эссе Spinning Up даёт исследователю две полезные опоры. Первая — три рамки для выбора проекта: улучшить существующий метод (узко, несколько месяцев, лучший старт для новичка), взяться за нерешённый бенчмарк (широко, от месяцев до года, риск не продвинуться) или придумать новую постановку задачи. Вторая — правила честного эксперимента: настраивать бейзлайн так же тщательно, как свой метод; запускать минимум 3 seed, а лучше 10; финальные запуски делать заново и заранее обязаться опубликовать любой результат; абляцией проверять каждую часть метода отдельно.
План на 12 месяцев
Заголовок раздела «План на 12 месяцев»Цели: артефакт, число, срок
Заголовок раздела «Цели: артефакт, число, срок»«Разобраться в инференсе» — не цель: непонятно, когда она достигнута. Измеримая цельSMART-цели (измеримые цели)EN SMART goalsЦель конкретная (Specific), измеримая (Measurable), достижимая (Achievable), значимая для вас (Relevant) и ограниченная сроком (Time-bound). «Разобраться в RAG» — не цель; «к 31 марта выложить RAG по документации vLLM с eval-набором на 50 вопросов и recall@5 не ниже 0.8» — цель. отвечает на три вопроса: какой артефакт, какое число, к какому сроку. «К 30 июня — таблица TTFT, TPOT и throughput для трёх конфигураций vLLM на четырёх картах и пост с выводами». Через три месяца такую цель можно проверить, а по ходу — понять, отстаёте ли вы.
Три правила, которые делают план выполнимым:
- Каждый квартал заканчивается публичным артефактом: репозиторием с README, постом, pull request, докладом. Публичное получает обратную связь (урок 11.4.4) и сразу идёт в портфолио.
- Время делится по долям, а не «как получится». Например, около 70% — основная траектория, около 20% — общая база (алгоритмы, теория, английский), около 10% — разведка нового. База выветривается тише всего, и её легче всего забросить.
- План проверяется арифметикой. При 7 часах в неделю в квартале час. Болезни, релизы и отпуск съедают часть недель — заложите хотя бы 15%: остаётся часов. Проект на 120 часов в такой квартал не влезет, и лучше узнать это в январе, а не в марте.
Каркас года
Заголовок раздела «Каркас года»| Квартал | Фокус | Пример измеримого результата |
|---|---|---|
| Q1, месяцы 1–3 | Ядро траектории и первый проект; если ищете работу — подготовка по плану из 11.3.1 | проект с README и числами; резюме; 15–20 вакансий разобраны; первые отклики |
| Q2, месяцы 4–6 | Второй проект и вклад в open source; собеседования | 1–2 pull request (принят или в ревью); пробное собеседование раз в две недели |
| Q3, месяцы 7–9 | Глубина и публичность | 2 поста или доклад; соревнование или воспроизведение статьи с отчётом |
| Q4, месяцы 10–12 | Итог года и специализация | годовой обзор; обновлённое портфолио; план на следующий год |
Пример: LLM-инженер приложений, ищу первую работу
Заголовок раздела «Пример: LLM-инженер приложений, ищу первую работу»Исходные данные: работа в другой области, 40 часов в неделю; на учёбу 7 часов, то есть около 77 часов в квартал.
| Квартал | Цель (артефакт + число + срок) | Часы |
|---|---|---|
| Q1 | К 31 марта: RAG по документации vLLM — eval-набор на 50 вопросов, recall@5 не ниже 0.8, LLM-судья с согласием не ниже 0.8 с моей разметкой на 30 ответах; README по шаблону 11.3.6; резюме и 15 разобранных вакансий | проект ~45, резюме и вакансии ~15, алгоритмы ~17 |
| Q2 | К 30 июня: агент с тремя инструментами и 10 тестовыми атаками prompt injection — доля успешных атак до и после защиты; 1 PR в библиотеку из стека; 15 откликов; 4 пробных собеседования | агент ~35, PR ~15, собеседования и алгоритмы ~27 |
| Q3 | К 30 сентября: сервис для 5–10 знакомых пользователей, 200+ запросов в логах, разбор ошибок по категориям; пост на Хабр о проекте | сервис ~45, пост ~12, база ~20 |
| Q4 | К 31 декабря: годовой обзор, обновлённое портфолио, план на следующий год; если работа найдена — план роста на ней | ~77 по обстоятельствам |
Все числа — пример, а не норма: важно, что каждую цель можно проверить и что часы сходятся. Если вы уже работаете в ML, работа сама даёт практику и обратную связь. Тогда на учёбу хватает 3–4 часов в неделю на то, что работа не покрывает: глубину траектории, статьи, один свой проект в квартал.
Недельный ритм
Заголовок раздела «Недельный ритм»Курс был рассчитан на 8–10 часов в неделю. Вместе с полной занятостью реалистичнее 6–8. Вот один из вариантов на 7 часов:
| День | Что | Время |
|---|---|---|
| Пн | Алгоритмы или теория: одна задача или один раздел | 45 мин |
| Вт | отдых | — |
| Ср | Проект: маленькая задача, которая помещается в вечер (тест, замер, раздел README) | 1 ч 15 мин |
| Чт | Чтение: статья или перевод из «Переводов», три строки в журнал | 45 мин |
| Пт | отдых | — |
| Сб | Проект: главный блок без отвлечений | 3 ч |
| Вс | Итоги недели по шаблону, карточки и тетрадь ошибок | 1 ч |
Итого 6 ч 45 мин. Почему так:
- Один длинный блок в неделю. Проекту нужен разогретый контекст: до получаса уходит на то, чтобы вспомнить, где остановились. От часового вечера тогда остаётся полчаса работы, а от трёхчасового блока — два с половиной.
- Будние слоты — под то, что помещается в 45–75 минут: задача на алгоритмы, статья, один тест. Поэтому в среду в плане стоит «маленькая задача проекта», а не «работа над проектом».
- Два дня отдыха. Ритм, который держится год, важнее ритма, который держится месяц.
- Минимальный день. Когда сил нет совсем — 15 минут: карточки или последняя запись журнала. Это сохраняет отметку о занятияхотметка о занятияхEN check-in (daily study log)Буквально «пробить карточку». В учебных сообществах — публикация конспекта или решения в срок как подтверждение, что вы занимаетесь. и, главное, привычку. В уроке «Учиться по-китайски» посчитано, почему цель «3 дня из 7» выживает месяцами, а «каждый день без пропусков» почти никогда.
Защищайте слоты так же, как рабочие встречи: поставьте их в календарь и предупредите близких. Утренний час до работы многим даётся легче вечернего: попробуйте оба и сравните по журналу.
Ежемесячный обзор в журнале
Заголовок раздела «Ежемесячный обзор в журнале»В папке journal/ вы уже ведёте записи дня, итоги недели, mistakes.md и lab.md, экспорт прогресса и итоги
островов (правила — в journal/README.md). После курса добавьте три шаблона из journal/templates/:
| Шаблон | Когда | Что внутри |
|---|---|---|
year-plan.md | один раз, потом пересмотр раз в квартал | траектория, где я сейчас, 2–3 цели года, таблица кварталов, недельный ритм, обратная связь, публичные обязательства, что делать при срыве |
weekly-review.md | каждое воскресенье, 10–15 минут | формат итогов недели из README плюс «что сдвинулось по плану квартала», артефакт недели, обратная связь и одна главная задача на следующую неделю |
monthly-review.md | последний выходной месяца, 30–40 минут | цифры месяца → цели против результата → артефакты → обратная связь → тетрадь ошибок → что получилось, что мешало, что меняю → самочувствие → три цели на следующий месяц |
Ежемесячный обзор — тот же «фупань», что разбор инцидентапостмортем (разбор инцидента)EN postmortemПисьменный разбор после инцидента — хронология, влияние, причина, почему не поймали раньше, действия с владельцами и сроками. Пишется без поиска виноватых (blameless). из урока 11.1.4,
только объект — ваш месяц. И начинается он, как постмортем, с фактов, а не с ощущений. Фраза «было мало времени»
проверяется строкой «часов: 18.3 (план 28)». А «я всё забросил» часто оказывается одним перерывом на 9 дней,
у которого есть причина. Цифры для первого раздела считает функция из задания ниже: она читает месячный файл
журнала в формате из journal/README.md. Скопируйте своё решение в файл journal_stats.py в корне репозитория
и запустите на своём месячном файле:
python -c "import pathlib, journal_stats; print(journal_stats.monthly_summary(pathlib.Path('journal/2027-03.md').read_text(encoding='utf-8')))"Для журнала из задания (март 2027) вывод такой:
{'days': 11, 'minutes': 1100, 'hours': 18.3, 'weeks': {'2027-W09': 4, '2027-W10': 2, '2027-W12': 3, '2027-W13': 2}, 'weeks_on_target': 2, 'longest_gap': 9}Раз в квартал вместо обычного обзора перечитайте year-plan.md и перепишите следующий квартал. План, который
ни разу не меняли за год, скорее всего, не читали.
Как не выгореть и не бросить
Заголовок раздела «Как не выгореть и не бросить»ВыгораниевыгораниеEN burnoutСостояние хронической усталости от работы или учёбы: занятия превращаются в обязанность, интерес и результативность падают, растёт цинизм («всё равно ничего не выйдет»). Лечится не силой воли, а изменением нагрузки и ритма. не лечится силой воли: если продолжать в том же режиме, становится хуже. Его нужно замечать рано, и для этого в обзоре месяца есть раздел «Самочувствие».
| Сигнал | Что делать |
|---|---|
| Три недели подряд ниже цели, хотя времени хватало | Снизить цель до реальной (например, 2 дня вместо 3) и сохранить ритм. Лучше стабильные 2, чем рваные 3 |
| Занятия неделями «по обязанности», интереса нет | Неделя полного отдыха, затем смена формата: проект вместо теории, напарник вместо одиночки |
| Раздражение на любую тему, хуже сон | Остановиться на 1–2 недели: ритм потом восстанавливается быстро, здоровье — медленно. Если не проходит — к врачу |
| Сравниваете себя с чужими успехами в соцсетях | Сравнить с собой: перечитать журнал трёхмесячной давности |
| «Всё равно никуда не возьмут» | Посчитать по чек-листу ниже, чего не хватает, и превратить это в цели квартала |
Что помогает держаться год:
- Маленькие ежедневные шаги. Минимальный день на 15 минут и недельная, а не ежедневная серия отметок о занятиях.
- Учебный напарник (урок 11.4.4). Раз в неделю обменяться ссылками на коммиты журнала. Пропуск виден другому человеку, и это работает лучше любого будильника.
- Публичные обязательства. Расскажите о плане напарнику или выложите короткую версию в отдельный открытый
репозиторий. Не выкладывайте весь журнал: в
journal/README.mdесть предупреждение о приватности. В учебных сезонах Datawhale эту роль играет залог («деньги за надзор»): его не возвращают, если отметки опаздывают, слишком коротки или списаны из учебника. - Осознанная практикаосознанная практикаEN deliberate practiceТренировка на границе своих возможностей с быстрой обратной связью и разбором ошибок — в отличие от повторения того, что уже получается. Понятие ввёл психолог Андерс Эрикссон; его книга «Peak» (с Робертом Пулом) вышла на китайском под названием «Осознанная практика»., а не повторение удобного. Год можно провести, делая то, что уже получается, и почти не вырасти. В каждом квартале должна быть хотя бы одна задача на границе ваших возможностей, с обратной связью.
Если сорвались. Это случится, и не раз. Перерыв — данные для обзора, а не приговор. Возвращайтесь с минимального дня: 15 минут, карточки и последняя запись журнала. На ближайшем обзоре перепишите цели квартала под реальное время. Не пытайтесь «наверстать» удвоенной нагрузкой: это самый короткий путь к следующему срыву.
Чек-лист «я готов к первой работе»
Заголовок раздела «Чек-лист «я готов к первой работе»»Пройдите его честно и отметьте, чего не хватает: недостающие пункты станут целями первого квартала. Проекты P1–P11 перечислены в таблице на странице «О курсе», а какие из них выбрать под роль — в уроке 11.3.6.
Портфолио и рассказ о себе (урок 11.3.6)
- 3–4 проекта из P1–P11 под целевую роль, у каждого README: результаты с числами наверху, быстрый старт, ограничения.
- Хотя бы один проект — не учебный: свои данные или своя постановка, продолжение одного из P.
- Резюме на одну страницу; каждый пункт — «действие + способ + результат с числом».
- Рассказ о себе за 2 минуты и рассказ о главном проекте; 6–8 историй по STAR из журнала.
Подготовка к секциям собеседования (урок 11.3.1)
- Разобраны 15–20 вакансий целевой роли; требования, которых вам не хватает, превратились в цели.
- Теория ML (11.3.2) и вопросы по LLM (11.3.3) — отвечаете вслух, без подглядывания.
- ML coding: ДЗ
s11-hw05-ml-codingна Strong; алгоритмы — регулярная практика не меньше месяца (11.3.5). - ML system design: два разбора вслух за 45 минут; ДЗ
s11-hw04-capacityсдано (P11). - Два полных пробных собеседования — с напарником или с ИИ в роли интервьюера.
Работа «как на работе»
- Сданы ДЗ модуля 11.1: грязные данные, чужой код, инцидент (
s11-hw01,s11-hw02,s11-hw03). - Воспроизведение статьи с отчётом —
s11-hw06-grokking(P10).
Обратная связь и ритм
- Хотя бы один публичный артефакт: пост, pull request или ответ в сообществе.
- Три месяца подряд — ежемесячный обзор в журнале.
Не обязательно закрыть всё до первого отклика. Если готово две трети, начинайте откликаться: собеседования — тоже тренировка, а остальное доберёте параллельно.
Практика
Заголовок раздела «Практика»Задание в браузере: ежемесячный обзор из журнала
Заголовок раздела «Задание в браузере: ежемесячный обзор из журнала»Напишите функцию, которая читает месячный файл журнала и считает цифры для обзора: учебные дни, часы, дни по
ISO-неделям, недели, где цель выполнена, и самый длинный перерыв. Формат записей — как в journal/README.md:
## 2027-03-01 (пн) · 1 ч 10 мин · …. Заголовки вроде «## Неделя 9 · итоги» записями дня не считаются.
"""Ежемесячный обзор из журнала: считаем учебные дни, часы, недели и перерывы.
Запись дня в журнале — как в journal/README.md:
## 2027-03-01 (пн) · 1 ч 10 мин · проект: RAG по документации
Время бывает «1 ч 10 мин», «45 мин» или «2 ч». Заголовки вроде «## Неделя 9 · итоги» — не дни, их пропускаем.
"""
import datetime as dt
import re
SAMPLE = """# Журнал · март 2027
## 2027-03-01 (пн) · 1 ч 10 мин · проект: RAG по документации
- Сделал: собрал 40 вопросов для eval-набора.
## 2027-03-03 (ср) · 1 ч 30 мин · статья Anthropic о контекстном поиске
## 2027-03-06 (сб) · 3 ч · проект: гибридный поиск BM25 + эмбеддинги
## 2027-03-07 (вс) · 25 мин · итоги недели
## Неделя 9 · итоги
- Учебных дней: 4 (цель 3).
## 2027-03-09 (вт) · 1 ч · алгоритмы: две задачи на кучу
## 2027-03-13 (сб) · 2 ч 30 мин · проект: LLM-судья для eval-набора
## 2027-03-13 (сб) · 45 мин · вечер: разбор ИИ-ревью
## Неделя 10 · итоги
- Учебных дней: 2 (цель 3). Неделя работы над релизом.
## 2027-03-23 (вт) · 1 ч · вернулся после болезни: карточки и тетрадь ошибок
## 2027-03-25 (чт) · 45 мин · пост на Хабр: план
## 2027-03-27 (сб) · 3 ч 15 мин · проект: README и замеры
## 2027-03-29 (пн) · 1 ч · алгоритмы
## 2027-03-31 (ср) · 2 ч · пост на Хабр: черновик
"""
DAY_HEADER = re.compile(r"^##\s+(\d{4}-\d{2}-\d{2})") # «## » и дата в начале строки; «###» не подходит
def parse_minutes(s):
"""Строка времени → минуты: «1 ч 10 мин» → 70, «45 мин» → 45, «2 ч» → 120.
Если в строке нет ни часов, ни минут (например «урок 0.0.1»), вернуть None."""
# TODO: re.fullmatch с двумя необязательными группами — часы и минуты
...
def parse_entry(line):
"""Строка журнала → (дата datetime.date, минуты) или None, если это не запись дня.
Время ищите во втором куске строки, разрезанной по «·»; если его нет — 0 минут."""
# TODO
...
def monthly_summary(text, weekly_target=3):
"""Сводка за месяц:
{"days": число разных учебных дней,
"minutes": сумма минут (несколько записей за один день складываются),
"hours": minutes / 60, округлённое до 0.1,
"weeks": {"2027-W09": учебных дней в этой ISO-неделе, ...} — только недели, где был хотя бы один день,
"weeks_on_target": сколько недель, где учебных дней не меньше weekly_target,
"longest_gap": самый длинный перерыв — сколько дней подряд без занятий между двумя учебными днями (0, если дней меньше двух)}
ISO-неделя: date.isocalendar() → (год, неделя, день недели); ключ — f"{год}-W{неделя:02d}"."""
# TODO
...
if __name__ == "__main__":
print(parse_entry("## 2027-03-01 (пн) · 1 ч 10 мин · проект"))
print(monthly_summary(SAMPLE))
Локально: план на год за один вечер
Заголовок раздела «Локально: план на год за один вечер»-
Скопируйте шаблон:
cp journal/templates/year-plan.md journal/year-plan.md. Заполните раздел «Где я сейчас» по чек-листу выше: сколько пунктов закрыто и каких не хватает. -
Выберите основную и запасную траектории. Выпишите для основной три материала из списков этого урока и один проект-доказательство.
-
Заполните таблицу кварталов: у каждой цели артефакт, число и срок. Проверьте арифметику: часы в неделю × 13 × 0.85 против суммы часов по целям квартала.
-
Поставьте слоты недельного ритма в календарь и определите свой минимальный день.
-
Расскажите о плане напарнику или выложите короткую версию публично. Назначьте дату первого ежемесячного обзора: последний выходной этого месяца.
-
Закоммитьте:
git add journal && git commit -m "План на год". Через год сравните этот коммит с тем, что получилось.
Проверь себя
Заголовок раздела «Проверь себя»- Четыре траектории — LLM-инженер приложений, инженер по обучению, инференс и MLOps, исследователь — растут из одной базы. Выберите основную по тому, что получалось и нравилось, и запасную соседнюю.
- Материалы для каждой траектории уже собраны на странице «Учимся у создателей» и в «Переводах». Проект-доказательство — продолжение одного из P1–P11 с вашими данными или постановкой.
- План на год — четыре квартала с целями «артефакт + число + срок», проверенными арифметикой часов. Каждый квартал заканчивается публичным артефактом.
- Недельный ритм на 6–8 часов держится год: один длинный блок для проекта, короткие будние слоты, два дня отдыха и минимальный день на 15 минут.
- Раз в месяц — обзор в журнале по шаблону: сначала цифры, потом причины и три цели. Раз в квартал — пересмотр плана. Выгорание замечают по сигналам и лечат нагрузкой, а не силой воли.
Последнее слово
Заголовок раздела «Последнее слово»Перечитайте первую запись в журнале. Скорее всего, там урок 0.0.1 и вопрос вроде «как отличить галлюцинацию от правды». С тех пор вы написали свой автоград, обучили трансформер на русском тексте, разобрали MLA и MoE по техотчётам DeepSeek, дообучили модель с LoRA, научили её рассуждать через GRPO, квантовали её, подняли сервер, собрали RAG и агента и довели собственную маленькую LLM от токенизатора до чата. Когда вы начинали, этот список был набором незнакомых слов.
Не всё из курса доживёт до следующего года: имена моделей, флаги серверов и цены устареют, некоторые наши рекомендации тоже. Останется то, что не устаревает: понимание, откуда берётся градиент и что делает внимание, привычка сначала измерять, а потом верить, честное сравнение по нескольким seed и умение разобраться в чужом коде и в чужой статье. С этим можно разобраться и в том, чего в курсе нет.
Дальше всё зависит от вашего ритма. Если что-то в курсе оказалось непонятным или неверным, запишите это в журнал и расскажите другим: объяснение чужой ошибки — тоже способ учиться. Спасибо, что прошли этот путь до конца.
Дальше: откройте «Карту курса и прогресс» — экспортируйте прогресс в journal/progress/
и отметьте, к каким модулям вернуться на следующем витке спирали. А материалы для своей траектории ищите на странице
«Учимся у создателей».