Учиться по-китайски: методики для самоучки
Что взять из китайской учебной системы взрослому новичку — спираль, тетрадь ошибок, мягкую отметку о занятиях, прорешивание задач в меру, пороги Simple → Boss, ИИ как репетитор, учебные группы — и план на первые четыре недели курса.
Зачем это нужно
Заголовок раздела «Зачем это нужно»Вы учитесь сами, по вечерам, после работы. Главный риск на таком пути — не сложность материала, а то, что вы бросите. Пропустили неделю из-за аврала, вернулись — всё забыто, мотивация на нуле. Курс рассчитан примерно на 470 часов. Это полтора-два года регулярной работы, а не марафон на выходные.
Китайская школа десятилетиями отрабатывает привычки, которые помогают учиться долго и регулярно: тетрадь ошибоктетрадь ошибокEN mistake notebookКитайская школьная практика — переписывать каждую ошибку с правильным решением и регулярно к ней возвращаться. На сайте это страница «Тетрадь ошибок», куда сами попадают ошибки из квизов., отметка о занятияхотметка о занятияхEN check-in (daily study log)Буквально «пробить карточку». В учебных сообществах — публикация конспекта или решения в срок как подтверждение, что вы занимаетесь., спиральную программу, прорешивание задач, учебные группы. Она же показала, как эти привычки ломаются: ежедневные отметки выжигают, «море задач» убивает интерес, а генеративный ИИ превращает домашнюю работу в копирование. В прошлом уроке мы разобрали государственную систему. Здесь возьмём из неё то, что работает, с поправками на известные провалы, и привяжем к страницам сайта. Если вы уже прошли урок 0.0.3, тетрадь ошибок и отметки о занятиях вам знакомы. Здесь второй виток: подробнее, с данными и расчётами.
| Методика | Что это в Китае | Что делаем мы | Где на сайте |
|---|---|---|---|
| Спираль | тема возвращается на каждой ступени | понимать не до конца на первом витке — нормально | ссылки «назад» в уроках |
| Тетрадь ошибок | тетрадь с разбором каждой ошибки | у каждой ошибки — запись «почему и как не повторить» | /mistakes/, /review/ |
| Отметка о занятиях | ежедневная отметка «сегодня занимался» | мягкая недельная цель вместо серии дней | /progress/ |
| Прорешивание задач («шуати») | много однотипных задач до беглости | до порога мастерства, не «море задач» | квизы и задания в браузере |
| Пороги | simple → boss baseline у Ли Хунъи | Simple → Boss в ДЗ, для перехода нужен Medium | python homework/check.py |
| Правила для ИИ | руководство 2025 года | ИИ — репетитор, а не решатель | промпт-тьютор в ДЗ |
| Групповое обучение | учебные сезоны Datawhale | напарник, публичный журнал, сезоны | папка journal/ в вашей копии репозитория |
1. Спираль: понять не до конца — нормально
Заголовок раздела «1. Спираль: понять не до конца — нормально»Китайская школьная программа по ИИ официально идёт по спиралиспиральная программаEN spiral curriculumТемы возвращаются несколько раз, и каждый раз — на более глубоком уровне. Так устроены китайские школьные программы и этот курс.: ощутить и попробовать → понять и применить → проект и творчество. Наш курс устроен так же: ключевые темы возвращаются по нескольку раз, и каждый раз глубже.
| Тема | Виток 1 — первая встреча | Виток 2 — понять и реализовать | Виток 3 — применить в большом проекте |
|---|---|---|---|
| Вероятности и softmax | 1.3: softmax руками | 4.1: сэмплирование и температура; 4.4: softmax внутри attention | 6.4: лог-вероятности в GRPO |
| Байты и токены | 0.0: байты UTF-8 русского и китайского текста | 4.2: BPE с нуля и ДЗ s4-hw01-bpe-tokenizer | 5.6: токенизатор для своей мини-LLM |
| Обучение модели | 1.4: градиентный спуск | 3.2: свой автоград, 3.3: PyTorch | 4.6: GPT с нуля, 5.6: претрейн MiniMind |
Из спирали следуют три практических правила.
- Не застревайте на первом витке. Квиз сдан от 60 %, но что-то осталось мутным? Запишите вопрос в журнал и идите дальше. Тема вернётся, и со второго раза многое встанет на место. Застревать неделю на одном уроке — верный способ бросить курс.
- Когда тема вернулась, откройте прошлый виток. Пять минут на конспект старого урока и его карточки — и новый материал ляжет на подготовленное место.
- Сначала опыт, потом теория («рука и голова вместе»). Если в уроке есть виджет или задание в браузере, сначала поиграйте с ним, потом читайте формулы. Формула понятнее, когда вы уже видели, что она описывает.
2. Тетрадь ошибок: исследуем свои ошибки
Заголовок раздела «2. Тетрадь ошибок: исследуем свои ошибки»Её часто называют также «сборником ошибочных задач», но методисты подчёркивают: это инструмент исследования собственных ошибок, а не просто сборник. Главное в ней не переписать правильный ответ, а понять, почему вы ошиблись. В записи четыре поля:
- Что неверно — вопрос и ваш ответ.
- Почему — причина, а не «невнимательность».
- Как правильно — верный ответ и ход решения.
- На что смотреть в будущем — правило или проверка, которая поймает такую ошибку в следующий раз.
Ошибки группируют по темам, а не пишут подряд по датам. Тогда видно, что, скажем, пять из восьми ошибок за месяц — про размерности массивов. Это уже диагноз.
Ритм повторения — «очистить за день · за неделю · за месяц» (по-китайски «жицин · чжоуцин · юэцин»): разобрать в тот же день, перерешать без подсказки через неделю и через месяц. Мы добавляем ещё один повтор — на следующий день: в день ошибки правильный ответ ещё свеж в памяти, и перерешать его сразу почти ничего не проверяет. Итого повторы через 1, 7 и 30 дней после ошибки. По сути это интервальное повторениеинтервальное повторениеEN spaced repetitionПовторять материал через растущие промежутки времени — прямо перед тем, как он забылся бы. На сайте — карточки на странице «Повторение» (алгоритм FSRS). плюс практика извлеченияпрактика извлеченияEN retrieval practiceВспоминать ответ самому, без подсказки, вместо того чтобы перечитывать. Одна из самых надёжных учебных техник; на ней стоят квизы, карточки и повторы тетради ошибок.: вы не перечитываете ответ, а вспоминаете его сами. Честная оговорка: доказательная база у самой тетради ошибок в основном практическая — статьи учителей математики, без рандомизированных экспериментов. Зато две техники, из которых он состоит, — одни из самых надёжно проверенных в психологии обучения.
flowchart LR A["Ошибка в квизе"] --> B["Разбор в тот же день:<br/>пишем «почему»"] B --> C["Повтор назавтра<br/>(день +1)"] C --> D["Недельный повтор:<br/>день +7, без подсказки"] D --> E["Месячный повтор:<br/>день +30"] E --> F["«Разобрался» ✓"] C -- "снова ошибка" --> B D -- "снова ошибка" --> B E -- "снова ошибка" --> B
Как это работает на сайте
Заголовок раздела «Как это работает на сайте»Страница «Тетрадь ошибок». Каждый неверный ответ в квизе попадает туда сам вместе с вашим ответом, правильным ответом и пояснением. Вкладки: «К разбору», «Исправлено при повторе» (вы ответили верно, перепройдя квиз) и «Разобрано» (вы нажали «✓ Разобрался»). У каждой ошибки есть поле «✍️ Почему я ошибся и как не повторить». Это поля 2 и 4 китайской тетради: первое и третье сайт заполняет сам.
Страница повторения. В режиме «Мои ошибки» неразобранные ошибки превращаются в карточки. На обороте — правильный ответ, пояснение и ваша заметка. Интервалы подбирает алгоритм FSRS: чем увереннее вы отвечаете, тем реже карточка возвращается. Ровно 1, 7 и 30 дней сайт не отсчитывает — FSRS работает по тому же принципу растущих промежутков, но подстраивает их под вас. Жёсткий ритм 1/7/30 пригодится для ошибок в коде (ниже).
Как написать полезное «почему»
Заголовок раздела «Как написать полезное «почему»»Примеры ниже взяты из разных ступеней курса. Если softmax и оси NumPy вам пока незнакомы, не страшно: смотрите на форму записи, а не на содержание.
| Плохо | Хорошо |
|---|---|
| «Невнимательность» | «Решил, что softmax не меняется при умножении логитов на 2. Не меняет только сдвиг, а умножение — это температура 0.5. Проверка: сравнить softmax([1, 2]) и softmax([2, 4])» |
| «Перепутал оси» | «x.sum(axis=0) складывает элементы вниз по каждому столбцу: из массива формы (3, 4) получается (4,). Правило: ось, которую указал, исчезает из формы» |
| «Повторить урок» | «Не знал, что range(5) не включает 5. Перед циклом по индексам прогонять пример из трёх элементов» |
Хорошая запись отвечает на два вопроса: какое неверное убеждение привело к ошибке и какой проверкой его поймать. В китайских памятках причины часто делят на типы: понятие не понято, условие прочитано невнимательно, ошибка в вычислении, не знал способа решения. Тип — только начало записи, после него всё равно нужна конкретика. Зато если тип повторяется, вы знаете, над чем работать.
Ошибки в коде — в журнал
Заголовок раздела «Ошибки в коде — в журнал»Квизы попадают в тетрадь ошибок автоматически, а ошибки в своём коде — нет. Для них заведите файл journal/mistakes.md в
своей копии репозитория курса (папки journal/ там нет — создайте её) и записывайте по тем же четырём полям, с тегом темы:
## 2026-10-07 · [python/циклы] IndexError в подсчёте частот- Что неверно: `for i in range(len(words) + 1)` — вышел за конец списка.- Почему: думал, что range включает правую границу.- Как правильно: `range(len(words))`, а лучше просто `for w in words`.- Как не повторить: перед циклом по индексам прогнать пример из 3 элементов.- Повторы: +1 ☐ +7 ☐ +30 ☐Коммитьте журнал вместе с решениями: через полгода он покажет, как изменились ваши ошибки. А на собеседовании пригодится как живой рассказ о том, как вы учились.
3. Мягкая отметка о занятиях: неделя важнее дня
Заголовок раздела «3. Мягкая отметка о занятиях: неделя важнее дня»Отметка о занятиях (буквально «пробить карточку») — запись «сегодня я занимался». В Китае она повсюду: в школьных чатах, приложениях, учебных лагерях. Данные китайских опросов показывают обе её стороны:
- около 79 % китайских студентов пробовали самоконтроль через отметки о занятиях;
- но половина бросает меньше чем через две недели, а дольше трёх месяцев держатся лишь 15 %;
- в 2024 году 77,8 % опрошенных родителей сказали, что «отметочных» заданий слишком много, 61,2 % назвали их обузой;
- ещё в 2020 году, в период дистанционного обучения, министерство образования запретило заставлять школьников отмечаться каждый день.
Наш вывод из этих данных (это интерпретация опросов, а не результат эксперимента): отметка работает, пока она добровольная, лёгкая и одна в день.
Почему ежедневная серия так хрупка: считаем
Заголовок раздела «Почему ежедневная серия так хрупка: считаем»Пусть в любой день вы можете позаниматься с вероятностью . Иногда мешает работа, болезнь, семья. Для простоты считаем дни независимыми. Сравним два правила.
Серия из дней требует, чтобы удались все дней подряд:
Цель «хотя бы 3 дня из 7» выполнена, если удачных дней в неделе 3, 4, …, 7. Вероятность ровно удачных дней из 7 даёт биномиальное распределение (о распределениях подробнее — в модуле 1.3):
Здесь — число способов выбрать удачных дней из семи, — все они удались, — остальные сорвались. Если формулы пока непривычны, читайте только вывод ниже: код считает то же самое. Как читать знак суммы , разберём в уроке 1.0.3. Посчитаем:
from math import comb
def daily_streak(p, n): """Вероятность не пропустить ни одного из n дней подряд.""" return p ** n
def weekly_goal(p, goal=3): """Вероятность набрать за неделю хотя бы goal учебных дней из 7.""" return sum(comb(7, k) * p**k * (1 - p) ** (7 - k) for k in range(goal, 8))
for p in (0.95, 0.9, 0.8): print(f"p = {p}: серия 30 дней — {daily_streak(p, 30):.3f}; " f"цель 3 из 7 четыре недели подряд — {weekly_goal(p) ** 4:.3f}")p = 0.95: серия 30 дней — 0.215; цель 3 из 7 четыре недели подряд — 1.000p = 0.9: серия 30 дней — 0.042; цель 3 из 7 четыре недели подряд — 0.999p = 0.8: серия 30 дней — 0.001; цель 3 из 7 четыре недели подряд — 0.981Даже если вы свободны 9 вечеров из 10, месячная ежедневная серия выживает лишь в 4 % случаев. Цель «3 дня в неделю» четыре недели подряд — в 99.9 %.
Честное возражение: цель «3 из 7» и требует меньше. Но дело не только в объёме. Даже строгая цель «5 дней из 7»
при держится четыре недели подряд с вероятностью около 0.90 (проверьте: weekly_goal(0.9, 5) ** 4).
Серию губит не нагрузка, а правило «один пропуск — и всё сначала».
Модель грубая: в жизни срывы идут пачками (болезнь — это несколько дней подряд). Усложним её: пусть после пропуска следующий день тоже срывается с вероятностью 1/2, а всего пропускается по-прежнему 10 % дней. Тогда серия выживает чаще — около 17 % вместо 4 %, а цель «3 из 7» чуть реже — около 94 %. Разрыв сокращается, но остаётся огромным: месячная серия всё равно рвётся в большинстве месяцев. А сорванная серия психологически превращается в «всё пропало» и в отказ от курса.
Как это устроено на сайте
Заголовок раздела «Как это устроено на сайте»На странице прогресса вверху написано «На этой неделе: N из 3 дней». Цель можно поменять от 2 до 7, но начинайте с 3. Ниже — «Недель подряд с выполненной целью»: это главный счётчик. Число «дней подряд» там тоже есть, но гнаться за ним не нужно. Отметка ставится сама, когда вы проходите урок, квиз, задание или повторяете карточки.
Правила мягкой отметки о занятиях:
- Минимальный учебный день — 15 минут или 10 карточек. Устали — сделайте минимум, отметка засчитана.
- Одна отметка в день, без отдельных галочек за каждое действие.
- Пропуск — не провал. Пропустили понедельник и вторник? Впереди ещё пять дней, а нужно три.
4. Прорешивание задач в меру: до порога, а не до изнеможения
Заголовок раздела «4. Прорешивание задач в меру: до порога, а не до изнеможения»прорешивание задачпрорешивание задачEN problem drillingБуквально «чистить задачи» — решать много однотипных задач до беглости. Крайность называют «тихай чжаньшу» — «тактика моря задач». — решать много однотипных задач, пока решение не станет беглым. Это работает: исследования «парадокса китайского ученика» (Watkins и Biggs) показали, что китайское повторение часто совмещено с пониманием и не сводится к зубрёжке. Крайность — «тихай чжаньшу», «тактика моря задач». Государство само осудило её в 2021 году политикой политика «двойного снижения»политика «двойного снижения»EN Double Reduction policyРеформа 2021 года — снизить нагрузку домашними заданиями и внешкольным репетиторством. Запрещает «механические, повторяющиеся и карательные» домашние задания..
Граница между полезным прорешиванием и «морем задач» простая: заканчивайте набор, когда решили N задач подряд без ошибок, а не когда решили 50 штук. Это идея обучение до уровня мастерстваобучение до уровня мастерстваEN mastery learningИдея Бенджамина Блума — переходить к следующей теме, только когда текущая освоена до порога. В курсе порог — квиз от 60 % и уровень Medium в домашней работе.: дальше идём, когда тема освоена до порога.
- В заданиях в браузере: решили, через пару дней нажали «↺ Сбросить» и решили снова без подсказок — порог взят.
- В квизах: ошиблись — сразу разберите ошибку и допишите «почему» (разбор в тот же день), а перепроходите квиз не раньше завтрашнего дня. Сейчас правильный ответ ещё свеж в памяти, и повтор почти ничего не проверит.
- В «беглых» навыках (формы тензоров, срезы NumPy, производные): три правильных ответа подряд — и дальше.
5. Лестница проектов и пороги Simple → Boss
Заголовок раздела «5. Лестница проектов и пороги Simple → Boss»В Китае школьная лестница проектов идёт от «применить готовый ИИ» (начальная школа) через «собрать агента» (средняя) к «обучить и улучшить модель» (старшая) и «исследовать» (вуз). В нашем курсе та же лестница растянута на ступени: мини-проекты на Python (0.2) → GPT с нуля (4.6) → претрейн своей мини-LLM на базе MiniMind (5.6) → LoRA-дообучение Qwen (6.2) → выпускной проект (ступень 10).
Внутри каждой домашней работы — пороги из курсов Ли Хунъи (NTU). Там у домашних заданий есть лидерборд и четыре «базовые линии»: simple, medium, strong и boss baseline. Мы перенесли их на автотесты (подробно — в уроке 0.1.3):
| Уровень | Что значит | Когда брать |
|---|---|---|
| 🥉 Simple | идея понята, базовые случаи работают | сразу |
| 🥈 Medium | полный функционал | обязательно: без него на следующую ступень не переходим |
| 🥇 Strong | краевые случаи, устойчивость | по желанию, удобно на втором витке спирали |
| 🐉 Boss | скорость, масштаб, исследование | по желанию, когда есть азарт и время |
Medium — это фильтр, а вот Strong и Boss устроены по логике китайского «белого списка» конкурсов с 2022 года: конкурс — мотивация, а не фильтр. Boss нужен, чтобы было куда тянуться, а не чтобы вы застряли на ступени 1 на два месяца. Не взяли Strong сейчас — запишите в журнал «вернуться к Strong после модуля X» и идите дальше.
Финальный проект делайте по модели «ИИ + X»: возьмите свою область — язык, финансы, право, медицину или хобби. На знакомых данных легче понять, хорошо ли работает модель, и интереснее довести проект до конца.
6. ИИ-помощник: репетитор, а не решатель
Заголовок раздела «6. ИИ-помощник: репетитор, а не решатель»Исследование 26 000 китайских школьников из прошлого урока — самое показательное, что известно на 2026 год о влиянии ИИ на учёбу. Те, кто получал от ИИ готовые ответы (81 % пользователей), подняли оценки за домашние работы, но через два года хуже сдали экзамены. Те, кто работал с ИИ как с репетитором (19 %), тратили на задания столько же времени и ничего не потеряли. Оговорка та же, что в прошлом уроке: это препринт и наблюдение, а не эксперимент. Но вывод совпадает с тем, что известно о практике извлечения: помнится то, что вы вспомнили и решили сами. Китайские правила 2025 года запрещают школьникам выдавать ИИ-текст за свою работу, а Шаньдун в 2026 году прямо запретил «ИИ-гострайтинг».
Наши правила по ступеням:
| Ступени | Можно | Нельзя |
|---|---|---|
| 0–2 (Python, математика, основы ML) | объяснить понятие другими словами и с примером; объяснить сообщение об ошибке после вашей попытки; задать вам вопросы; проверить ваше объяснение | просить готовый код решения; вставлять условие задания и копировать ответ |
| 3–5 (нейросети, трансформер, претрейн) | ревью вашего кода по рубрике, наводящие вопросы. В ДЗ ведите «ИИ-лог»: какие запросы делали | писать за вас функции, которые проверяет ДЗ |
| 6–10 (пост-трейнинг, системы, приложения) | ИИ как инструмент инженера: шаблонный код, скрипты, данные. Ревью — после самостоятельной сдачи | сдавать код, который не можете объяснить строка за строкой |
Шаблон запроса «репетитора» для ступеней 0–2:
Ты — репетитор курса ChinaAI. Я на ступени 0 и учусь сам.Задание: <условие>Моя попытка: <код>Что выдаёт Python: <сообщение об ошибке>
Правила:1. Не пиши исправленный код и не давай готового решения.2. Объясни, что означает сообщение об ошибке и где искать причину.3. Дай одну наводящую подсказку и задай мне 2 вопроса, чтобы я нашёл ошибку сам.4. Отвечай по-русски и коротко.7. Учебные группы: групповое обучение Datawhale
Заголовок раздела «7. Учебные группы: групповое обучение Datawhale»групповое обучение, учебная когортагрупповое обучение, учебная когортаEN study group, learning cohortФормат Datawhale — группа проходит открытый курс по расписанию 2–4 недели, с заданиями и ежедневной отметкой о занятиях. — фирменный формат Datawhale, одного из самых известных китайских open-source сообществ по ИИ-образованию. Участники собираются в команды по интересам и проходят курс по расписанию: задания Task01…TaskN со сроками, после каждого — отметка о занятиях конспектом или ссылкой на свой пост. Взнос-обязательство 3 юаня возвращается, если выполнить все задания. В одном из сезонов было 815 участников на 11 курсах. Похоже устроен лагерь InternLM Camp — «карта островов» с уровнями от «острова входа» до «острова продвинутых». Наши уровни L0–L5 тоже называются островами (подробнее о лагере — в уроке 5 этого трека).
Как перенести это на учёбу в одиночку:
- Напарник по отметкам. Раз в неделю отправляйте другу ссылку на коммит с журналом. Он делает то же самое. Можно учить разное — важен сам ритм.
- Сезоны. Разбейте курс на сезоны по 2–3 недели с заданиями Task01…Task0N. Конец сезона — короткий отчёт в журнале.
- Символический залог. Отдайте другу небольшую сумму, которую он вернёт, когда сезон будет закрыт. Сумма не важна, важно данное слово.
- Публичный журнал. Папка
journal/в вашем форке (собственной копии) репозитория на GitHub: заметки, тетрадь ошибок по коду, недельные итоги.
Что ещё дают напарник и группа — взаимное ревью домашних работ, пробные собеседования, поиск ментора — в уроке 11.4.4; как держать недельный ритм и ежемесячный обзор весь год после курса — в уроке 11.4.5.
8. Ритм занятия и недели: подготовка → урок → повторение
Заголовок раздела «8. Ритм занятия и недели: подготовка → урок → повторение»Китайский школьный цикл — подготовка до урокапредварительное знакомство с урокомEN pre-study, lesson previewКороткая подготовка до урока — пробежать глазами цели, попробовать ответить на пару вопросов. Цикл китайской школы — подготовка до урока → урок → повторение после урока. → урок → повторение после урока. Для вечернего занятия на 1,5 часа это выглядит так:
- Подготовка до урока, 5 минут. Прочитайте цели урока и заголовки. Запишите один-два вопроса, на которые урок должен ответить.
- Урок, 60–70 минут. Читайте, запускайте код, решайте задание в браузере. Застряли — правило 30 минут: полчаса бьётесь сами, потом открываете подсказку, и только после неё зовёте ИИ-репетитора.
- Повторение после урока, 10–15 минут. Квиз «Проверь себя». Ошибки уходят в тетрадь ошибок — сразу допишите «почему». Затем отметьте урок пройденным.
Один день в неделю — день повторения вместо нового урока. Разберите вкладку «К разбору» в тетради ошибок, пройдите
режим «Мои ошибки» на странице повторения, проверьте записи в journal/mistakes.md, которым пора на +7 или +30
дней. Закончите короткой ретроспективой: что получилось, что мешало, что меняю на следующей неделе.
План на первые 4 недели
Заголовок раздела «План на первые 4 недели»Исходные данные: 3–4 вечера в неделю по 1,5–2 часа, то есть около 6 часов в неделю. При таком темпе курс займёт около 79 недель, то есть полтора года. При трёх вечерах по 1,5 часа — около 105 недель, двух лет. Это нормально: важно не бросить.
| Неделя | Уроки (≈ часов) | Привычки | Контрольная точка |
|---|---|---|---|
| 1 | Модуль 0.0 «Самое начало» (4 ч) и этот урок | Цель 3 дня на /progress/; найти напарника; создать journal/ | 3 учебных дня; первая ошибка в тетради ошибок с заполненным «почему» |
| 2 | Модуль 0.1 «Рабочее окружение» (3 ч); 0.2: первая программа | Первый день повторения; недельный повтор (+7) для ошибок первой недели | Курс склонирован, python homework/check.py --list работает |
| 3 | 0.2: типы и циклы, функции, классы (≈ 6 ч) | Прорешивание до порога в заданиях в браузере; ИИ только объясняет ошибки | Все задания недели зелёные, ошибки кода — в журнале |
| 4 | 0.2: модули и файлы, отладка, мини-проекты (≈ 6 ч) | Недельный повтор для ошибок третьей недели; ретроспектива месяца; план следующего сезона | Мини-проект готов; «недель подряд с целью» — 4 |
Дальше, на неделях 5–6, — NumPy (модуль 0.3) и первое ДЗ s0-hw01-python-warmup до уровня Medium. После него можно
переходить к ступени 1. В начале пятой недели наступит первый месячный повтор: ошибкам первой недели исполнится 30 дней.
Параллельно, по одному уроку в неделю, можно читать трек «Китайская линза»: на ступени 0 подойдут уроки 01, 03 и 05,
а разборы статей DeepSeek, Kimi и Qwen (06–08) лучше оставить до ступеней 4–5.
Практика
Заголовок раздела «Практика»Запрограммируйте ритм этого урока: даты повторов тетради ошибок, очередь «что повторить сегодня» и счётчик «недель подряд с
выполненной целью», как на странице прогресса. Нужны функции, словари, списки и модуль datetime.
Если вы ещё не прошли модуль 0.2, вернитесь к заданию после него: это и есть второй виток спирали.
from datetime import date, timedelta
def review_dates(day, offsets=(1, 7, 30)):
"""Даты повторов ошибки из тетради ошибок по ритму «завтра → через неделю → через месяц».
day — дата ошибки строкой 'ГГГГ-ММ-ДД' (формат ISO), например '2026-10-03';
offsets — через сколько дней после ошибки повторять (по умолчанию 1, 7 и 30).
Вернуть список дат-строк в том же формате, по одной на каждое смещение.
Пример: review_dates('2026-10-03') -> ['2026-10-04', '2026-10-10', '2026-11-02']
"""
# TODO: превратите строку в дату через date.fromisoformat(day),
# прибавьте timedelta(days=k) для каждого k из offsets
# и верните обратно строки через .isoformat()
...
def due_today(mistakes, today):
"""Какие ошибки из тетради ошибок пора повторить сегодня.
mistakes — список словарей {'id': str, 'date': 'ГГГГ-ММ-ДД', 'done': int}, где done — сколько
повторов уже сделано (0, 1, 2 или 3). Очередной повтор ошибки — review_dates(date)[done].
Ошибка «созрела», если дата очередного повтора не позже today.
Если done == 3 (все повторы пройдены), ошибку больше не показываем.
Вернуть список id: сначала самые просроченные (раньше дата очередного повтора),
при одинаковой дате — по id в алфавитном порядке.
"""
# TODO: соберите пары (дата_очередного_повтора, id) для созревших ошибок, отсортируйте,
# верните только id. Строки 'ГГГГ-ММ-ДД' можно сравнивать прямо как строки.
...
def weeks_in_a_row(days, today, goal=3):
"""Мягкая отметка о занятиях: сколько недель подряд выполнена цель «goal дней занятий в неделю».
days — список дат занятий 'ГГГГ-ММ-ДД' (одна дата может встречаться несколько раз:
урок и квиз в один вечер — это всё равно один день);
today — сегодняшняя дата 'ГГГГ-ММ-ДД';
goal — сколько разных дней занятий нужно за неделю (от 1 до 7, на сайте по умолчанию 3).
Вернуть целое число недель.
Неделя — с понедельника по воскресенье (у даты d понедельник — d - timedelta(days=d.weekday())).
Текущая неделя засчитывается, если цель в ней уже выполнена. Если ещё нет — она серию
не обрывает (неделя не закончилась), и счёт начинается с прошлой недели.
"""
# TODO: 1) превратите days в множество дат — повторы исчезнут сами;
# 2) напишите вспомогательную функцию «сколько дней занятий в неделе, которая начинается в monday»;
# 3) найдите понедельник текущей недели; если цель в ней ещё не выполнена — отступите на неделю назад;
# 4) шагайте назад по неделе, пока цель выполняется, и считайте такие недели.
...
# Проверьте себя кнопкой «Запустить»:
print(review_dates("2026-10-03"))
print(due_today([{"id": "a", "date": "2026-10-01", "done": 0}], "2026-10-03"))
print(weeks_in_a_row(["2026-09-29", "2026-09-30", "2026-10-02"], "2026-10-03"))
Проверь себя
Заголовок раздела «Проверь себя»- Спираль: на первом витке понимать не до конца — нормально. Тема вернётся, а прошлый виток стоит открыть перед новым.
- Тетрадь ошибок: у каждой ошибки — «почему» и проверка на будущее; разбор в тот же день и повторы через 1, 7 и 30 дней («за день · за неделю · за месяц»). Карточки ошибок на сайте планирует FSRS.
- Мягкая отметка о занятиях: недельная цель «3 дня» вместо серии. При серия на 30 дней выживает в 4 % случаев, недельная цель четыре недели подряд — в 99.9 %.
- ИИ — репетитор, а не решатель. На ступенях 0–2 никакого готового кода. Для перехода нужен Medium, Strong и Boss — на втором витке.
- Не в одиночку: напарник, сезоны, публичный журнал. День повторения раз в неделю.
Дальше: откройте страницу прогресса, проверьте, что цель — «3 дня в неделю», и начните неделю 1 плана с модуля 0.0. К урокам трека «Китайская линза» возвращайтесь по мере продвижения: на каждом витке вы увидите в них больше.