Перейти к содержимому
Китайская линза

Учиться по-китайски: методики для самоучки

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

УРОКchina/10-learn-like-china.mdx1 ч 15 минМатериал 10 из 10
После урока вы сможете
  • Вести тетрадь ошибок на сайте — формулировать «почему ошибся и как не повторить» и повторять ошибки по ритму «за день · за неделю · за месяц»
  • Настроить мягкую отметку о занятиях (недельную цель вместо ежедневной серии) и объяснить на числах, почему он надёжнее
  • Пользоваться ИИ-помощником как репетитором, а не решателем, по правилам своей ступени
  • Составить план на первые четыре недели с днём повторения и учебным напарником

Вы учитесь сами, по вечерам, после работы. Главный риск на таком пути — не сложность материала, а то, что вы бросите. Пропустили неделю из-за аврала, вернулись — всё забыто, мотивация на нуле. Курс рассчитан примерно на 470 часов. Это полтора-два года регулярной работы, а не марафон на выходные.

Китайская школа десятилетиями отрабатывает привычки, которые помогают учиться долго и регулярно: тетрадь ошибоктетрадь ошибокEN mistake notebookКитайская школьная практика — переписывать каждую ошибку с правильным решением и регулярно к ней возвращаться. На сайте это страница «Тетрадь ошибок», куда сами попадают ошибки из квизов., отметка о занятияхотметка о занятияхEN check-in (daily study log)Буквально «пробить карточку». В учебных сообществах — публикация конспекта или решения в срок как подтверждение, что вы занимаетесь., спиральную программу, прорешивание задач, учебные группы. Она же показала, как эти привычки ломаются: ежедневные отметки выжигают, «море задач» убивает интерес, а генеративный ИИ превращает домашнюю работу в копирование. В прошлом уроке мы разобрали государственную систему. Здесь возьмём из неё то, что работает, с поправками на известные провалы, и привяжем к страницам сайта. Если вы уже прошли урок 0.0.3, тетрадь ошибок и отметки о занятиях вам знакомы. Здесь второй виток: подробнее, с данными и расчётами.

МетодикаЧто это в КитаеЧто делаем мыГде на сайте
Спиральтема возвращается на каждой ступенипонимать не до конца на первом витке — нормальноссылки «назад» в уроках
Тетрадь ошибоктетрадь с разбором каждой ошибкиу каждой ошибки — запись «почему и как не повторить»/mistakes/, /review/
Отметка о занятияхежедневная отметка «сегодня занимался»мягкая недельная цель вместо серии дней/progress/
Прорешивание задач («шуати»)много однотипных задач до беглостидо порога мастерства, не «море задач»квизы и задания в браузере
Порогиsimple → boss baseline у Ли ХунъиSimple → Boss в ДЗ, для перехода нужен Mediumpython homework/check.py
Правила для ИИруководство 2025 годаИИ — репетитор, а не решательпромпт-тьютор в ДЗ
Групповое обучениеучебные сезоны Datawhaleнапарник, публичный журнал, сезоныпапка journal/ в вашей копии репозитория

Китайская школьная программа по ИИ официально идёт по спиралиспиральная программаEN spiral curriculumТемы возвращаются несколько раз, и каждый раз — на более глубоком уровне. Так устроены китайские школьные программы и этот курс.: ощутить и попробовать → понять и применить → проект и творчество. Наш курс устроен так же: ключевые темы возвращаются по нескольку раз, и каждый раз глубже.

ТемаВиток 1 — первая встречаВиток 2 — понять и реализоватьВиток 3 — применить в большом проекте
Вероятности и softmax1.3: softmax руками4.1: сэмплирование и температура; 4.4: softmax внутри attention6.4: лог-вероятности в GRPO
Байты и токены0.0: байты UTF-8 русского и китайского текста4.2: BPE с нуля и ДЗ s4-hw01-bpe-tokenizer5.6: токенизатор для своей мини-LLM
Обучение модели1.4: градиентный спуск3.2: свой автоград, 3.3: PyTorch4.6: GPT с нуля, 5.6: претрейн MiniMind

Из спирали следуют три практических правила.

  1. Не застревайте на первом витке. Квиз сдан от 60 %, но что-то осталось мутным? Запишите вопрос в журнал и идите дальше. Тема вернётся, и со второго раза многое встанет на место. Застревать неделю на одном уроке — верный способ бросить курс.
  2. Когда тема вернулась, откройте прошлый виток. Пять минут на конспект старого урока и его карточки — и новый материал ляжет на подготовленное место.
  3. Сначала опыт, потом теория («рука и голова вместе»). Если в уроке есть виджет или задание в браузере, сначала поиграйте с ним, потом читайте формулы. Формула понятнее, когда вы уже видели, что она описывает.

Её часто называют также «сборником ошибочных задач», но методисты подчёркивают: это инструмент исследования собственных ошибок, а не просто сборник. Главное в ней не переписать правильный ответ, а понять, почему вы ошиблись. В записи четыре поля:

  1. Что неверно — вопрос и ваш ответ.
  2. Почему — причина, а не «невнимательность».
  3. Как правильно — верный ответ и ход решения.
  4. На что смотреть в будущем — правило или проверка, которая поймает такую ошибку в следующий раз.

Ошибки группируют по темам, а не пишут подряд по датам. Тогда видно, что, скажем, пять из восьми ошибок за месяц — про размерности массивов. Это уже диагноз.

Ритм повторения — «очистить за день · за неделю · за месяц» (по-китайски «жицин · чжоуцин · юэцин»): разобрать в тот же день, перерешать без подсказки через неделю и через месяц. Мы добавляем ещё один повтор — на следующий день: в день ошибки правильный ответ ещё свеж в памяти, и перерешать его сразу почти ничего не проверяет. Итого повторы через 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 году, в период дистанционного обучения, министерство образования запретило заставлять школьников отмечаться каждый день.

Наш вывод из этих данных (это интерпретация опросов, а не результат эксперимента): отметка работает, пока она добровольная, лёгкая и одна в день.

Почему ежедневная серия так хрупка: считаем

Заголовок раздела «Почему ежедневная серия так хрупка: считаем»

Пусть в любой день вы можете позаниматься с вероятностью pp. Иногда мешает работа, болезнь, семья. Для простоты считаем дни независимыми. Сравним два правила.

Серия из nn дней требует, чтобы удались все nn дней подряд:

Pсерия=p nP_{\text{серия}} = p^{\,n}

Цель «хотя бы 3 дня из 7» выполнена, если удачных дней в неделе 3, 4, …, 7. Вероятность ровно kk удачных дней из 7 даёт биномиальное распределение (о распределениях подробнее — в модуле 1.3):

Pнеделя=∑k=37(7k) pk(1−p)7−kP_{\text{неделя}} = \sum_{k=3}^{7} \binom{7}{k}\, p^{k} (1-p)^{7-k}

Здесь (7k)\binom{7}{k} — число способов выбрать kk удачных дней из семи, pkp^k — все они удались, (1−p)7−k(1-p)^{7-k} — остальные сорвались. Если формулы пока непривычны, читайте только вывод ниже: код считает то же самое. Как читать знак суммы ∑\sum, разберём в уроке 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.000
p = 0.9: серия 30 дней — 0.042; цель 3 из 7 четыре недели подряд — 0.999
p = 0.8: серия 30 дней — 0.001; цель 3 из 7 четыре недели подряд — 0.981

Даже если вы свободны 9 вечеров из 10, месячная ежедневная серия выживает лишь в 4 % случаев. Цель «3 дня в неделю» четыре недели подряд — в 99.9 %.

Честное возражение: цель «3 из 7» и требует меньше. Но дело не только в объёме. Даже строгая цель «5 дней из 7» при p=0.9p = 0.9 держится четыре недели подряд с вероятностью около 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, производные): три правильных ответа подряд — и дальше.

В Китае школьная лестница проектов идёт от «применить готовый ИИ» (начальная школа) через «собрать агента» (средняя) к «обучить и улучшить модель» (старшая) и «исследовать» (вуз). В нашем курсе та же лестница растянута на ступени: мини-проекты на 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»: возьмите свою область — язык, финансы, право, медицину или хобби. На знакомых данных легче понять, хорошо ли работает модель, и интереснее довести проект до конца.

Исследование 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 часа это выглядит так:

  1. Подготовка до урока, 5 минут. Прочитайте цели урока и заголовки. Запишите один-два вопроса, на которые урок должен ответить.
  2. Урок, 60–70 минут. Читайте, запускайте код, решайте задание в браузере. Застряли — правило 30 минут: полчаса бьётесь сами, потом открываете подсказку, и только после неё зовёте ИИ-репетитора.
  3. Повторение после урока, 10–15 минут. Квиз «Проверь себя». Ошибки уходят в тетрадь ошибок — сразу допишите «почему». Затем отметьте урок пройденным.

Один день в неделю — день повторения вместо нового урока. Разберите вкладку «К разбору» в тетради ошибок, пройдите режим «Мои ошибки» на странице повторения, проверьте записи в journal/mistakes.md, которым пора на +7 или +30 дней. Закончите короткой ретроспективой: что получилось, что мешало, что меняю на следующей неделе.

Исходные данные: 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 работает
30.2: типы и циклы, функции, классы (≈ 6 ч)Прорешивание до порога в заданиях в браузере; ИИ только объясняет ошибкиВсе задания недели зелёные, ошибки кода — в журнале
40.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, вернитесь к заданию после него: это и есть второй виток спирали.

Ритм самоучки: повторы ошибок и мягкая отметка о занятиях7 тестов
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"))
Проверь себя6 вопросов
1 Вы можете позаниматься в любой день с вероятностью 0.9. Какова вероятность продержать ежедневную серию 30 дней? Округлите до двух знаков.
2 Какая запись в поле «Почему я ошибся и как не повторить» полезнее всего?
3 Вы на ступени 1. Что можно просить у ИИ-помощника по правилам курса?Можно выбрать несколько ответов
4 Цель — 3 дня в неделю. Понедельник и вторник вы пропустили из-за аврала. Что делать?
5 Курс — около 472 часов. Сколько недель он займёт при трёх занятиях по 1,5 часа в неделю? Округлите до целого.
6 Ошибку в квизе вы сделали 5 октября. Какого числа ноября наступит месячный повтор — через 30 дней после ошибки? Введите число.
  • Спираль: на первом витке понимать не до конца — нормально. Тема вернётся, а прошлый виток стоит открыть перед новым.
  • Тетрадь ошибок: у каждой ошибки — «почему» и проверка на будущее; разбор в тот же день и повторы через 1, 7 и 30 дней («за день · за неделю · за месяц»). Карточки ошибок на сайте планирует FSRS.
  • Мягкая отметка о занятиях: недельная цель «3 дня» вместо серии. При p=0.9p = 0.9 серия на 30 дней выживает в 4 % случаев, недельная цель четыре недели подряд — в 99.9 %.
  • ИИ — репетитор, а не решатель. На ступенях 0–2 никакого готового кода. Для перехода нужен Medium, Strong и Boss — на втором витке.
  • Не в одиночку: напарник, сезоны, публичный журнал. День повторения раз в неделю.

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