План обучения: как не утонуть и как заметить, что продвинулся
Четырнадцать предыдущих глав отвечали на вопрос «как учить». Извлечение, интервалы, перемежение, желательные трудности, обратная связь, перенос — всё это про устройство учебного часа. Осталось два вопроса, которые ни один из этих приёмов не решает, потому что они лежат уровнем выше:
- Чему учить и в каком объёме, чтобы список тем не превратился в бесконечную очередь, которая только растёт.
- Как узнать, что вы продвинулись, если субъективное ощущение — заведомо ненадёжный датчик (это разбиралось в главе про иллюзию понимания).
Обе проблемы наблюдаемы у большинства инженеров, которые всерьёз занимаются самообразованием. Первая выглядит как папка с сорока начатыми курсами. Вторая — как ежегодное «я вроде много учился, но не могу сказать, что изменилось», после которого человек бросает работающий метод и берётся за новый, потому что старый «не дал результата». Эта глава — про то, как сделать обе проблемы видимыми и управляемыми. Не про мотивацию и не про режим дня: организация времени и энергии — соседний трек, Тайм-менеджмент для инженера.
Сначала — что здесь доказано, а что нет
По доказательному статусу эта глава отличается от глав 04–07, и сказать об этом надо до начала. Контролируемых исследований на вопрос «повышает ли личный план обучения результат инженера» не существует — ни рандомизированных экспериментов, ни лонгитюдных наблюдений с адекватным контролем. Всё, что продаётся под видом «научно обоснованной системы личного развития», в этой части опирается на аналогии и отраслевой опыт.
Что при этом действительно измерено и относится к делу — измерено на соседних задачах: постановка целей в организационной психологии, реализационные намерения в психологии саморегуляции, ошибка планирования в исследованиях суждений. Эти результаты переносятся на самообучение инженера с оговорками, потому что проверялись не на нём.
| Утверждение главы | Статус | Где проверяли |
|---|---|---|
| Конкретная трудная цель даёт лучший результат, чем «постараюсь» | Хорошо подтверждено, десятки лет исследований | Лабораторные и рабочие задачи, в основном простые и хорошо определённые |
| На новой сложной задаче учебная цель работает лучше результатной | Подтверждено в нескольких экспериментах, выборки небольшие | Задачи-симуляции: диспетчеризация, планирование расписаний |
| Формула «если ситуация X — то действие Y» повышает шанс, что действие начнётся | Метаанализ на ~94 исследованиях, средний-большой эффект | Преимущественно здоровье и учебное поведение студентов |
| Люди систематически занижают сроки собственных задач | Хорошо подтверждено | Учебные и проектные задачи, инфраструктурные проекты |
| Суждение о собственном усвоении точнее, если вынесено с задержкой | Воспроизведённый лабораторный эффект | Заучивание словесных пар |
| WIP-лимит, чекпоинты, задача-репер, журнал калибровки | Данных нет. Инженерная практика с понятным механизмом | — |
Последняя строка — половина главы. Она подана как инженерная практика, а не как результат исследования, и там, где это так, будет сказано отдельно.
Две болезни плана
Болезнь первая: утонуть
Механизм не в лени, он арифметический — и оттого неизбежен без специального противодействия.
- Темы порождаются быстрее, чем закрываются. Каждая рабочая задача, каждый инцидент, каждая прочитанная статья добавляют в очередь один-два пункта. Закрывается за неделю в лучшем случае один.
- Уже начатое требует поддержки. Это прямое следствие кривой забывания и интервального повторения: выученное без возвратов распадается, а возвраты стоят часов.
- Переключение между темами стоит. В главе про перемежение это обсуждалось как цена приёма: перемежение окупается на близких, легко путаемых типах задач и не окупается, когда каждое переключение требует заново поднять контекст.
Сложите три пункта — получите систему, в которой доля времени на новое падает без единого нового решения.
Схема на картинке — арифметика, а не измерение. Но она показывает главное: утопление — это состояние по умолчанию. Чтобы его не случилось, нужно не «больше стараться», а регулярно принимать явное решение о снятии тем с сопровождения. По сути это не проблема пропускной способности, а проблема незавершённой работы: при фиксированной пропускной способности рост числа одновременно открытых задач увеличивает время прохождения каждой (закон Литтла), и в личном обучении это работает так же. Отсюда практика WIP-лимита, разобранная применительно к рабочим задачам в главе Личный канбан.
Болезнь вторая: не заметить прогресс
Вторая болезнь тише и опаснее. Обучение — контур с большой задержкой: вы читаете про модели согласованности в июне, а пользуетесь этим при разборе инцидента в ноябре, и между причиной и следствием пять месяцев и десяток посторонних факторов. Системное описание таких контуров — глава Задержки: реакция на сигнал с большой задержкой почти всегда оказывается либо чрезмерной, либо запоздалой.
Что делает человек без измерения:
- Оценивает по ощущению — а ощущение, как показано в главе 03, отслеживает беглость обработки, а не прочность памяти.
- Оценивает по входу — «прочитал две книги, посмотрел курс». Вход не является выходом: это тот же класс ошибки, что оценивать работу сервиса по числу задеплоенных коммитов вместо SLI.
- Бросает метод. Не увидев результата за месяц, меняет систему заметок, переходит на другой курс, покупает новый инструмент. Получается перебор методик, где каждая отбрасывается раньше, чем успевает дать сигнал.
Отдельная ловушка: усложнение метода вместо продолжения. Обвязка вокруг обучения — теги, шаблоны, дашборды — приносит немедленное ощущение продуктивности, и потому вытесняет собственно обучение. Про это подробно в главе Заметки и внешняя память, а про ритуальность инструментов вообще — в Тайм-менеджмент: инструменты.
Откуда берутся темы: три источника и их обратная связь
Не все источники тем равноценны, и различает их не «полезность», а качество обратной связи, которую тема даёт. Это ключ ко всей главе про обратную связь: без сигнала практика закрепляет ошибки, а не исправляет их.
| Источник | Как выглядит | Обратная связь | Риск | Когда брать |
|---|---|---|---|---|
| Тяга от задачи (pull) | «Не могу починить лаг репликации — не понимаю модель согласованности» | Сильная и быстрая: починилось или нет | Узость: учите только то, на что уже наткнулись | Основной источник почти всегда |
| Карта пробелов по роли | Сверка со списком компетенций позиции, куда вы идёте | Слабая и отложенная: месяцы до проверки | Учить «для галочки», без применения | 20–30 % бюджета, для тем, до которых работа не доведёт |
| Любопытство и мода | «Хочу разобраться, как устроены компиляторы»; «все говорят про X» | Почти нулевая, если не сделать проект | Съедает бюджет, ничего не оставляя | Небольшая доля, честно помеченная как «для удовольствия» |
Практический вывод неприятный для любителей планов: основной источник тем — не список, а работа. Темы, вытянутые задачей, имеют встроенный критерий успеха и встроенный контекст извлечения; темы из списка приходится обеспечивать искусственной обратной связью, а это дорого. Второй источник закрывает известную дыру первого: работа не порождает задач по темам, до которых вы не доросли, — классическая ловушка «не знаю, чего не знаю». Здесь помогает внешняя карта: карта карьеры портала даёт самооценку компетенций по паре «роль × уровень» и возвращает карту пробелов, а не грейд. Смежное чтение — Грейды, Рост и Карьерные треки. Ещё один дешёвый источник внешнего взгляда — регулярные встречи один на один: пробелы, заметные руководителю и коллегам, вам самому обычно не видны.
Отдельно про «учить то, что в вакансиях». Это выглядит как объективные данные, но является ошибкой отбора: вакансии описывают текущий спрос на инструменты, а не структуру знания, и систематически перекошены в сторону слоя, который живёт месяцы. Разбор этого класса ошибок — Ошибки причинности и статистики.
Цели: что показали исследования и где граница
Что известно
Постановка целей — одна из самых проверенных областей организационной психологии. Эдвин Локк и Гэри Латэм суммировали тридцать пять лет работы в статье Locke E. A., Latham G. P. (2002). Building a Practically Useful Theory of Goal Setting and Task Motivation: A 35-Year Odyssey, American Psychologist, 57(9) (doi:10.1037/0003-066X.57.9.705). Основной результат: конкретные и трудные цели дают более высокий результат, чем расплывчатое «сделаю что смогу» — воспроизведено на сотнях исследований.
Но у результата есть граничные условия, которые в популярных пересказах теряются:
- Задача должна быть в пределах способностей исполнителя; иначе цель не работает или вредит.
- Должна быть обратная связь о продвижении. Без неё цель не влияет ни на что.
- Нужна приверженность цели: навязанная цель, с которой человек не согласен, эффекта не даёт.
- Для новых и сложных задач правило переворачивается.
Последний пункт — самый важный для нас, потому что учебная ситуация по определению новая и сложная. Дуглас Уинтерс и Гэри Латэм (Winters D., Latham G. P., 1996, Group & Organization Management, 21(2)) и затем Джеральд Сейтс и Латэм (Seijts G. H., Latham G. P., 2005. Learning versus performance goals: When should each be used?, Academy of Management Executive, 19(1)) показали: когда задача незнакома и стратегия решения ещё не найдена, конкретная трудная результатная цель ухудшает результат — человек цепляется за первую пришедшую стратегию и не ищет лучшую. Работает учебная цель: «найти и опробовать три разных подхода», «определить, от каких факторов зависит результат».
Выборки в этих работах небольшие, задачи — симуляции вроде диспетчеризации и составления расписаний, а не многомесячное самообразование. Перенос правдоподобен, но это перенос, а не прямое доказательство.
Что из этого следует для формулировок
| Формулировка | Что с ней не так | Как переформулировать |
|---|---|---|
| «Выучить Kubernetes» | Нет ни границы, ни критерия; неизвестно, когда закончено | «Уметь по описанию симптома назвать три места, где смотреть, и проверить это на пяти инцидентах из истории команды» |
| «Стать senior за год» | Результатная цель, зависящая от чужого решения; не подсказывает ни одного действия | «Закрыть три пробела из карты компетенций; на каждый — задача-репер и дата проверки» |
| «Прочитать книгу по распределённым системам» | Цель по входу, выполняется без обучения | «Объяснить, почему у нас выбрана именно такая модель согласованности, и найти в нашем коде два места, где это допущение нарушается» |
| «Разобраться в компиляторах» | Нет остановки | «Написать интерпретатор подмножества языка с let, if и функциями; уметь объяснить, где в нём происходит разрешение имён» |
| «Делать меньше багов» | Нет обратной связи с нужной задержкой | «На каждом инциденте фиксировать гипотезу до наблюдения; на чекпоинте считать долю попаданий» |
Обратите внимание на общее: в правой колонке во всех случаях есть наблюдаемое действие, которое можно выполнить и про которое видно, получилось или нет. Это не «умный способ формулировать», а условие применимости всей теории целей: без обратной связи цель не работает.
Обратная сторона: цели ломаются под давлением
Даже проверенный приём имеет цену. Работа Ordóñez L., Schweitzer M., Galinsky A., Bazerman M. (2009). Goals Gone Wild: The Systematic Side Effects of Overprescribing Goal Setting, Academy of Management Perspectives, 23(1) — обзор побочных эффектов: сужение внимания на измеряемом, рост неэтичного поведения ради показателя, вытеснение внутренней мотивации, ухудшение обучения там, где цель поставлена на результат. Для личного плана это переводится в два правила:
- Метрика, которую вы начинаете оптимизировать, перестаёт быть измерением. Формулировка известна как закон Гудхарта; в науковедении ту же мысль сформулировал Дональд Кэмпбелл (Campbell D. T., 1979, Assessing the Impact of Planned Social Change). Практически: как только целью становится «100 карточек в день», карточки мельчают.
- Числовые цели по объёму («10 задач на LeetCode в неделю») почти всегда результатные, а не учебные. Их надо либо держать как ограничение бюджета, либо не держать вовсе.
Те же грабли на уровне рабочих целей — Цели и OKR.
Реализационные намерения: приём с измеренным эффектом на запуск
Знать, что делать, и начать делать — разные вещи; разрыв между намерением и поведением измерялся многократно и велик. Приём, который его сокращает, описан Петером Гольвитцером (Gollwitzer P. M., 1999. Implementation Intentions: Strong Effects of Simple Plans, American Psychologist, 54(7)). Формат: «Если наступает ситуация X, я выполняю действие Y», где X — конкретный, распознаваемый признак момента, а не «когда будет время».
Метаанализ Gollwitzer P. M., Sheeran P. (2006). Implementation Intentions and Goal Achievement: A Meta-Analysis of Effects and Processes, Advances in Experimental Social Psychology, 38 — 94 независимых проверки, средний размер эффекта порядка d ≈ 0.65 поверх эффекта самой цели, то есть средний-большой.
Границы, о которых надо знать:
- Большая часть исследований — здоровье (диета, физическая активность, скрининг) и учебное поведение студентов. Многомесячного самообразования взрослых инженеров среди них нет.
- Эффект относится к инициации действия, а не к его качеству. Намерение «если сел в четверг вечером, открываю колоду» повышает шанс, что вы её откроете; оно ничего не говорит о том, полезные ли в ней карточки.
- Как и во всей области, часть эффекта в опубликованной литературе может быть завышена публикационным смещением. Свежих оценок именно этого эффекта я не назову — читателю, которому нужна точная цифра, стоит поискать более поздние метаанализы самостоятельно.
Как выглядит у инженера. Триггер надо привязывать к событию, которое и так происходит:
- «Если утренний CI зелёный и до стендапа больше десяти минут — открываю колоду повторений.»
- «Если закрыл тикет — до перехода к следующему записываю один вопрос, на который не знал ответа.»
- «Если на ревью не понял чужое решение — не ставлю approve, пока не сформулирую вопрос письменно.»
- «Если в пятницу дежурство прошло без инцидентов — час на разбор чужого постмортема.»
Родственная техника — мысленное контрастирование (представить желаемый результат, затем главное внутреннее препятствие) в комбинации с реализационными намерениями; обзор — Oettingen G. (2012). Future Thought and Behaviour Change, European Review of Social Psychology, 23(1). Эффекты есть, но скромнее и на более узких выборках; подавать это как надёжный инструмент я не стал бы. Про запуск и срыв запуска подробнее — Прокрастинация и Фокус.
Ошибка планирования: почему срок всегда занижен
Явление описали Даниэль Канеман и Амос Тверски (Kahneman D., Tversky A., 1979. Intuitive Prediction: Biases and Corrective Procedures), а измерили Роджер Бюлер, Дейл Гриффин и Майкл Росс (Buehler R., Griffin D., Ross M., 1994. Exploring the “Planning Fallacy”, Journal of Personality and Social Psychology, 67(3)): люди систематически занижают время выполнения собственных задач, при этом довольно точно оценивая чужие. Занижение сохраняется, даже когда человек знает о собственных прошлых промахах: прогноз строится по сценарию «как пойдёт, если всё пойдёт как задумано».
Противоядие — прогноз по референтному классу: смотреть не на план, а на распределение исходов похожих прошлых случаев (применение к крупным проектам разобрано у Flyvbjerg B., 2006. From Nobel Prize to Project Management: Getting Risks Right, Project Management Journal, 37(3)). Перевод в личное обучение — уже экстраполяция, но механически прозрачная:
- Ведите короткий журнал: тема, оценка в часах, факт в часах. Через пять-шесть тем у вас появится личный коэффициент. У большинства он лежит между 1,5 и 3.
- Планируйте по факту прошлых тем, а не по идеальному сценарию текущей.
- Отдельно учитывайте, что учебное время конкурирует с рабочим. Неделя дежурства или релиза — это не «чуть меньше времени», это ноль. Планирование горизонтов с убывающей детализацией разобрано в Горизонты планирования.
Арифметика бюджета
Прежде чем считать, надо измерить: две недели фиксируйте фактическое время на обучение, а не планируемое. Почти у всех результат оказывается вдвое меньше ожидаемого; это нормально и лучше знать заранее. Про то, из чего этот ресурс состоит, — Внимание и энергия. Дальше — три статьи расхода, которые надо держать раздельно:
| Статья | Что входит | Ориентир от бюджета | Свойство |
|---|---|---|---|
| Новое | Первое чтение, разбор, первая практика | 50–60 % | Приятно, ощущается как прогресс, легко переоценивается |
| Поддержка | Повторения по колоде, возвраты к недоделанному, перечитывание забытого | 25–35 % и растёт | Растёт с числом начатых тем; главный источник утопления |
| Проверка | Чекпоинты, задачи-реперы, ведение журналов | 5–10 % | Первое, что выбрасывают, и зря: без него плана нет |
Практические ограничители, которые из этого следуют — инженерная практика без контролируемых данных: механизм понятен, эффективность не измерена.
- WIP-лимит на активные темы. Одна основная плюс одна фоновая. Не потому что «больше нельзя», а потому что при большем числе поддержка съедает новое (см. схему выше).
- Явное отпускание. На каждом чекпоинте по каждой теме принимается одно из трёх решений: продолжаю, снимаю с поддержки (принимая, что забуду), удаляю из плана вовсе. Отсутствие решения — тоже решение, и оно всегда «продолжаю».
- Пустой слот. Пятнадцать-двадцать процентов бюджета не планируются: они уходят на темы, вытянутые работой, которые невозможно предсказать. План без такого слота ломается в первую же неделю.
- Верхняя граница на поддержку. Если повторения перевалили за треть бюджета, дело не в лени, а в числе тем. Про арифметику нагрузки колоды — Интервальное повторение.
Скрипт ниже делает единственную полезную вещь — показывает, что бюджет не сходится, до того как это выяснится опытным путём:
"""Проверка учебного плана на вместимость: сходится ли бюджет часов в неделю."""
from dataclasses import dataclass
@dataclass
class Topic:
name: str
new: float # часов в неделю на новый материал
upkeep: float # часов в неделю на поддержку: повторения, возвраты
active: bool = True # снята ли тема с сопровождения
def report(budget: float, topics: list[Topic],
checkpoint: float = 0.5, slack_share: float = 0.15) -> list[str]:
"""budget — реально измеренный бюджет, а не желаемый. Один проход: O(n) / O(1)."""
new = sum(t.new for t in topics if t.active)
upkeep = sum(t.upkeep for t in topics if t.active)
slack = budget * slack_share # резерв под темы, вытянутые работой
total = new + upkeep + checkpoint + slack
msgs = [f"бюджет {budget:.1f} ч/нед, занято {total:.2f}: новое {new:.1f} · "
f"поддержка {upkeep:.1f} · проверка {checkpoint:.1f} · резерв {slack:.2f}"]
if total > budget:
msgs.append(f"ПЕРЕГРУЗ на {total - budget:.2f} ч/нед — снимите тему "
f"с сопровождения, а не «постарайтесь сильнее»")
if new and upkeep / (new + upkeep) > 0.35:
msgs.append("поддержка съела больше трети — слишком много начатых тем")
active = sum(1 for t in topics if t.active)
if active > 2:
msgs.append(f"активных тем {active} при WIP-лимите 2")
return msgs
for line in report(5.0, [
Topic("Модели согласованности", new=2.0, upkeep=0.4),
Topic("Профилирование Go", new=1.0, upkeep=0.3),
Topic("Rust: владение", new=0.0, upkeep=0.6), # начата и брошена
Topic("Kafka: доставка", new=0.0, upkeep=0.5, active=False),
]):
print(line)
Вывод: занято 5.55 часа при бюджете 5.0, перегруз 0.55, активных тем три при лимите два — причём «Rust: владение» тратит поддержку, не давая ничего нового. Ценность не в коде, а в том, что расход виден до конца квартала, а не после.
Форма плана: поля, без которых он не проверяется
План в виде списка тем бесполезен: по нему нельзя понять ни зачем тема, ни когда она закончена, ни когда от неё пора отказаться.
| Поле | Зачем | Частая ошибка |
|---|---|---|
| Тема | — | Слишком крупно: «архитектура» |
| Зачем сейчас | Какая задача или пробел блокируются | «Полезно вообще» — признак темы не из работы |
| Учебная цель | Что вы сможете сделать, чего не можете сейчас | Результатная формулировка вместо учебной |
| Чекпоинт | Как именно проверите, конкретное действие и дата | «Пойму, когда пойму» |
| Бюджет | Часы в неделю и предполагаемый срок с личным коэффициентом | Оптимистичный сценарий |
| Условие отказа | При каком наблюдении тема снимается | Поле пропущено — самая частая ошибка |
Поле «условие отказа» пропускают почти всегда, а именно оно защищает от утопления. Оно должно быть наблюдаемым: «если через шесть недель я не применил это ни в одной рабочей задаче — снимаю»; «если на двух чекпоинтах подряд репер не сдвинулся — меняю метод или тему». Формат хранения не важен; важно, чтобы план был одним коротким файлом, который вы реально открываете:
## plan-2026-Q3.yaml — квартальный план, пересматривается раз в 3 недели
budget_hours_per_week: 5.0
personal_estimate_factor: 2.0 # из журнала: факт стабильно вдвое больше оценки
active:
- topic: "Модели согласованности и их отражение в нашем стеке"
why_now: "Три инцидента с рассинхроном реплик за квартал; чиню симптомы"
learning_goal: >
Уметь по описанию симптома назвать, какая гарантия нарушена и где её ищут
в конфигурации; найти в нашем коде два места с неявным допущением
checkpoint: {what: "5 старых инцидентов вслепую, до постмортема", when: "2026-07-24"}
budget_hours_per_week: 2.0
drop_if: "за 6 недель ни одно применение в рабочей задаче"
- topic: "Профилирование Go: pprof, аллокации"
why_now: "Пробел из карты компетенций; работа сама не доведёт"
learning_goal: "Найти источник аллокаций в чужом сервисе без подсказки"
checkpoint: {what: "предсказать горячий путь до профиля, сверить", when: "2026-07-31"}
budget_hours_per_week: 1.0
drop_if: "два чекпоинта подряд предсказание мимо и непонятно почему"
upkeep: ["SQL: планы запросов", "TLS: разбор ошибок рукопожатия"] # только повторения
dropped: # снято сознательно; забыть — приемлемая цена
- {topic: "Rust: владение", reason: "нет задач и не предвидится; вернусь, когда появятся"}
Раздел dropped — не мусорная корзина, а рабочая часть плана: он фиксирует, что решение принято сознательно, и снимает фоновое чувство долга, которое сильнее всего мешает сосредоточиться на оставшемся.
Жизненный цикл темы
из задачи, карты или интереса Очередь --> Активная: прошла отбор на чекпоинте
(есть «зачем сейчас» и цель) Очередь --> Отброшена: не блокирует ничего
и не появилась повторно за квартал Активная --> Поддержка: учебная цель достигнута,
репер пройден Активная --> Заморожена: сработал приоритет работы,
но тема нужна Активная --> Отброшена: сработало условие отказа Заморожена --> Активная: освободился слот WIP Заморожена --> Отброшена: два чекпоинта без возврата Поддержка --> Активная: применение вскрыло пробел Поддержка --> Снята: применяется в работе сама,
повторения не нужны Поддержка --> Отброшена: полгода без применения,
принимаем, что забудем Снята --> [*] Отброшена --> [*] note right of Отброшена Явное решение, а не забывание. Без этого перехода план растёт монотонно. end note
Ключевой переход здесь — любой ведущий в «Отброшена». Если у темы нет пути наружу, план становится накопителем, а не инструментом.
Как выбирать, что в план, а что нет
Тема различается по двум измерениям: насколько она блокирует работу сейчас и как долго проживёт полученное знание (слои знания с разным сроком жизни разбирались в обзоре трека).
Верхний левый квадрант — самая частая ошибка бюджета. Флаги, конфиги и синтаксис ощущаются срочными и потому вытягивают часы, но их место — во внешней памяти, а не в голове: заметка, сниппет, закладка в документации. Правый нижний, наоборот, обычно недооценивают: это темы, которые не пригодятся в этом квартале, но определяют потолок через пять лет.
Как заметить, что продвинулся
Иерархия сигналов
Сигналы прогресса различаются по одному признаку: насколько трудно их подделать самому себе. Ниже — по возрастанию.
| Сигнал | Что реально показывает | Цена | Как легко обмануться |
|---|---|---|---|
| Ощущение «стало понятнее» | Беглость обработки знакомого текста | 0 | Полностью. См. главу 03 |
| Часы, страницы, пройденные уроки | Только вход | 0 | Полностью: вход не выход |
| Ответ на вопрос при открытом тексте | Умение найти | низкая | Почти полностью: узнавание вместо припоминания |
| Припоминание по карточке через неделю | Удержание факта или связки | низкая | Частично: факты ≠ умение |
| Решение задачи сразу после разбора | Краткосрочная беглость | средняя | Существенно: работает эффект «недавно видел» |
| Задача-репер через 2+ недели без опоры | Удержание плюс доступ в отрыве от контекста | средняя | Слабо, если задача зафиксирована заранее |
| Перенос на непохожую задачу | Наличие модели, а не рецепта | высокая | Почти не подделывается. См. главу 10 |
| Изменение поведения в работе | То, ради чего всё затевалось | высокая | Не подделывается, но зашумлено |
| Внешняя оценка: ревью, дежурство, собеседование | Взгляд извне | высокая | Не подделывается, но редка и груба |
Практическое правило: держите как минимум один сигнал из нижней половины таблицы. Верхняя половина не бесполезна — она даёт быстрый цикл, но она не отвечает на вопрос «продвинулся ли я», а отвечает только «занимался ли я».
Задача-репер
Приём инженерный, контролируемых данных на него нет; механизм состоит из двух уже разобранных: отложенное извлечение и проверка переноса. Суть: в начале работы над темой вы фиксируете конкретную задачу, которую сейчас решить не можете, и убираете её. Через две-три недели решаете её без подсказок, с таймером, и сравниваете с записью первой попытки. Требования, без которых репер не работает:
- Зафиксирован до начала обучения. Задача, придуманная после, всегда попадает в то, что вы только что выучили.
- Не из учебного материала. Иначе вы проверяете память на конкретный пример, а не умение.
- С фиксированной первой попыткой. Записывайте, где именно застряли: это и есть точка отсчёта. Без записи вы будете сравнивать с реконструкцией, а она подстраивается под текущее знание.
- Решается за 30–90 минут. Больше — не будете делать, меньше — не различает уровни.
- Проводится вслепую. Без документации на первом проходе; открыли документацию — отметьте, на каком шаге.
| Тема | Репер | Что фиксируем |
|---|---|---|
| Планы запросов | Ускорить конкретный медленный запрос из нашей базы, объяснив, почему помогло | Время до правильной гипотезы; понадобился ли EXPLAIN сразу |
| Конкурентность | Найти гонку в 200 строках чужого кода без запуска | Нашли/нет; сколько ложных срабатываний |
| Распределённые системы | По описанию симптома назвать три сценария отказа и способ различить их логами | Доля попаданий |
| Отладка | Взять старый инцидент, читать только первые сообщения, назвать причину | Число шагов до гипотезы; сравнение с постмортемом |
| Профилирование | Предсказать горячий путь до запуска профайлера | Совпало ли предсказание с профилем |
Последние два — частный случай приёма «предсказание до наблюдения» из главы про обратную связь. Он же даёт вторую метрику.
Калибровка как метрика прогресса
Точность собственных предсказаний — редкий сигнал, который улучшается вместе с пониманием и при этом легко фиксируется. Как вести: перед каждой отладкой, профилированием, разбором инцидента записывайте одну строку — гипотеза и уверенность (низкая / средняя / высокая), после — что оказалось на самом деле. На чекпоинте считайте долю попаданий и отдельно — насколько эта доля по каждому уровню уверенности соответствует заявленной уверенности. Что показывает картина:
- Доля попаданий растёт, разбивка по уверенности сходится — тема осваивается.
- Доля попаданий не растёт, но при «высокой уверенности» вы теперь чаще правы — растёт калибровка. Это тоже прогресс, и часто он идёт раньше точности.
- Ничего не меняется два чекпоинта подряд — сначала проверьте, тот ли сигнал вы меряете, и только потом метод.
Ограничение честное: контролируемых данных о том, что ведение журнала калибровки улучшает обучение инженера, нет. Есть измеренный факт, что самооценка усвоения ненадёжна, и есть общий результат из литературы по обратной связи о пользе сравнения предсказания с исходом. Остальное — правдоподобный механизм. Смежное чтение про систематические сдвиги суждений — Когнитивные искажения.
Когда оценивать: отложенное суждение
Мелкая, но полезная деталь с лабораторным подтверждением. Томас Нельсон и Джон Данлоски (Nelson T. O., Dunlosky J., 1991. When People’s Judgments of Learning (JOLs) Are Extremely Accurate at Predicting Subsequent Recall: The “Delayed-JOL Effect”, Psychological Science, 2(4)) показали: если суждение о том, запомнил ли ты материал, выносится не сразу после изучения, а с задержкой, его точность резко возрастает.
Проверялось на заучивании словесных пар — до инженерных задач это далеко. Но практический вывод дёшев и безвреден: не оценивайте своё понимание сразу после чтения. Оценка, вынесенная в тот момент, отражает содержимое рабочей памяти, а не память. Спросите себя через день — ответ будет другим и более информативным. Отсюда же форма чекпоинта: он проводится не в конце учебной сессии, а отдельно, спустя дни.
Чекпоинт: как он устроен
Раз в две-четыре недели, 30–40 минут, по фиксированному сценарию. Это те самые 5–10 % бюджета из таблицы расходов.
раз в 2–4 недели"] --> R["Извлечение вслепую:
что помню по каждой активной теме
без открытия заметок"] R --> G{"Есть репер,
назначенный на сегодня?"} G -->|"да"| B["Решаю репер с таймером,
сравниваю с записью первой попытки"] G -->|"нет"| C B --> C["Считаю калибровку:
доля попаданий по журналу гипотез"] C --> D{"Сдвиг есть
хотя бы по одному
сигналу нижней половины?"} D -->|"да"| K["Тема идёт. Продолжаю
или перевожу в поддержку"] D -->|"нет"| E{"Прошло меньше
двух чекпоинтов?"} E -->|"да"| W["Рано судить.
Ничего не меняю"] E -->|"нет"| F{"Сигнал вообще
способен показать сдвиг?"} F -->|"нет"| M["Проблема в измерении.
Меняю репер, не метод"] F -->|"да"| N{"Сработало
условие отказа?"} N -->|"да"| X["Снимаю тему.
Записываю в dropped с причиной"] N -->|"нет"| Y["Меняю метод: больше извлечения,
больше вариативности,
короче цикл обратной связи"] K --> Z["Пересчитываю бюджет:
сколько ушло на поддержку"] W --> Z M --> Z X --> Z Y --> Z Z --> Q{"Поддержка
больше трети?"} Q -->|"да"| P["Снимаю тему с сопровождения.
Явно, с записью"] Q -->|"нет"| O["План на следующий период"] P --> O
Обратите внимание на ветку «рано судить»: это защита от главной ошибки при чтении сигнала — реакции на шум. Контур с задержкой требует терпения к отсутствию сигнала; при слишком частой коррекции вы получаете колебания вместо движения. Механика таких контуров — Обратные связи.
Квартал целиком
Три вещи, которые обычно отсутствуют в самодельных планах и присутствуют здесь: чекпоинты стоят в календаре как обязательства, реперы назначены датами заранее, а недели с нулевой ёмкостью показаны явно. Последнее особенно важно: планы разваливаются не потому, что человек ленив, а потому, что в них не заложены дежурство, релиз и отпуск.
Плато: как отличить его от плохого измерения
Остановка прогресса имеет три причины, требующие противоположных действий. Порядок проверки — от дешёвого к дорогому:
- Слишком короткий горизонт. Меньше двух чекпоинтов данных — сигнала нет, есть шум. Действие: ничего не менять.
- Не тот сигнал. Вы измеряете скорость припоминания фактов, а тема была про принятие решений; или репер оказался слишком лёгким и упёрся в потолок. Действие: сменить измерение, метод не трогать.
- Действительно плато метода. Сигнал адекватен, горизонт достаточен, движения нет. Обсуждалось в главе Осознанная практика: чаще всего причина в том, что практика перешла в зону комфорта и повторяет то, что уже получается. Действие: поднять трудность до желательной, добавить вариативность, укоротить цикл обратной связи.
Отдельный случай, не являющийся плато: тема освоена до уровня, который вам нужен. Дальнейший рост возможен, но не окупается. Это нормальный исход, и он должен заканчиваться переводом темы в поддержку, а не поиском новых методов.
Мифы и полумифы вокруг планирования обучения
- «Нужен роадмап на три года». Слои знания живут по-разному: инструменты — месяцы, модели — десятилетия. Трёхлетний план по инструментам устаревает быстрее, чем выполняется; по моделям он не нужен, потому что там торопиться некуда. Рабочий горизонт — квартал с пересмотром. Дорожная карта портала — карта местности, а не обязательство: по ней смотрят, что вообще существует, а не что «надо пройти».
- «Планировать бесполезно, всё меняется». Ценность плана не в предсказании, а в том, что он делает возможным осознанный отказ. Без плана отказ происходит молча и не фиксируется, а сорок начатых тем продолжают висеть.
- «Стили обучения»: подобрать под себя визуальный или аудиальный формат. Гипотеза не подтверждена в проверках; разобрано в обзоре трека. Формат подбирают под материал, а не под человека.
- «10 000 часов как единица плана». Искажённый пересказ работ Эрикссона; полный разбор — глава 08. Часы не являются ни целью, ни метрикой прогресса.
- «Эффект Даннинга — Крюгера означает, что новички считают себя экспертами». Популярная подача искажает исходные данные; см. главу 03. Для плана из этого не следует ничего, кроме уже сказанного: самооценка — слабый сигнал, нужны внешние.
- «Трекер часов показывает прогресс». Часы — вход. Как только они становятся целью, они перестают быть даже честным входом (закон Гудхарта, см. выше).
- «Спросить у модели, чему учиться». Языковая модель выдаст правдоподобный, усреднённый и неспецифичный для вас список. Она не знает ни вашей кодовой базы, ни ваших пробелов, ни того, какие задачи к вам придут. Где ИИ в обучении помогает, а где отнимает обучение — глава 14, про устройство самих моделей — ИИ: основы.
Цена
| Расход | Сколько | Замечание |
|---|---|---|
| Чекпоинты | 30–40 минут раз в 2–4 недели | ~5 % бюджета обучения |
| Ведение журналов (оценки, гипотезы) | 1–2 минуты на запись | Разваливается первым, если запись неудобна |
| Составление и пересмотр плана | Час в квартал | Дольше — признак того, что план стал самоцелью |
| Дискомфорт | Постоянно | Честный сигнал регулярно показывает, что вы знаете меньше, чем думали |
Когда не окупается:
- Очень короткий горизонт. Разобраться в незнакомой библиотеке на этой неделе — просто разбирайтесь, план тут лишний.
- Полностью вытянутое работой обучение при высокой нагрузке. Если все темы приходят из задач и каждая проверяется самой задачей, внешний контур измерения дублирует существующий. Достаточно журнала гипотез.
- Самое начало пути. Новичку полезнее объём практики, чем метрика прогресса: сигнал там и так виден почти ежедневно. Следующий шаг для новичка — Что дальше после основ.
- Период выгорания. Дополнительный контур контроля в этом состоянии усугубляет, а не помогает; см. Выгорание.
Мини-итог
- Утопление — состояние по умолчанию: темы приходят быстрее, чем закрываются, а поддержка выученного растёт монотонно. Противодействие — не усердие, а WIP-лимит и явное решение об отпускании тем.
- Основной источник тем — работа, потому что у вытянутой задачей темы есть встроенная обратная связь. Карта пробелов по роли закрывает то, до чего работа не доведёт.
- Для новой сложной области ставьте учебные цели («найти три подхода», «уметь назвать причину по симптому»), а не результатные: это единственное место, где теория целей даёт прямой и проверенный контринтуитивный совет.
- Формула «если X — то Y» повышает вероятность, что учебное действие начнётся, и ничего не говорит о его качестве. Сроки вы занижаете, и знание об этом не помогает — помогает личный коэффициент из журнала «оценка/факт».
- Ощущение и часы — не сигналы прогресса. Сигналы: репер через две недели вслепую, перенос на непохожую задачу, изменение поведения в работе, внешняя оценка.
- Чекпоинт раз в 2–4 недели, отложенный от учебной сессии. Первая проверка при отсутствии сдвига — не «сменить метод», а «достаточно ли данных» и «то ли я меряю».
- Поле «условие отказа» важнее всех остальных полей плана.
- Контролируемых исследований на личный план обучения нет. Всё в этой главе, кроме целей, реализационных намерений, ошибки планирования и отложенного суждения, — инженерная практика с понятным механизмом и без данных.
Источники
- Locke E. A., Latham G. P. (2002). Building a Practically Useful Theory of Goal Setting and Task Motivation: A 35-Year Odyssey. American Psychologist, 57(9) — doi:10.1037/0003-066X.57.9.705.
- Winters D., Latham G. P. (1996). The Effect of Learning versus Outcome Goals on a Simple versus a Complex Task. Group & Organization Management, 21(2).
- Seijts G. H., Latham G. P. (2005). Learning versus Performance Goals: When Should Each Be Used? Academy of Management Executive, 19(1).
- Ordóñez L., Schweitzer M., Galinsky A., Bazerman M. (2009). Goals Gone Wild: The Systematic Side Effects of Overprescribing Goal Setting. Academy of Management Perspectives, 23(1).
- Gollwitzer P. M. (1999). Implementation Intentions: Strong Effects of Simple Plans. American Psychologist, 54(7).
- Gollwitzer P. M., Sheeran P. (2006). Implementation Intentions and Goal Achievement: A Meta-Analysis of Effects and Processes. Advances in Experimental Social Psychology, 38.
- Sheeran P., Webb T. (2016). The Intention–Behavior Gap. Social and Personality Psychology Compass, 10(9).
- Oettingen G. (2012). Future Thought and Behaviour Change. European Review of Social Psychology, 23(1).
- Kahneman D., Tversky A. (1979). Intuitive Prediction: Biases and Corrective Procedures. TIMS Studies in Management Science, 12.
- Buehler R., Griffin D., Ross M. (1994). Exploring the “Planning Fallacy”: Why People Underestimate Their Task Completion Times. Journal of Personality and Social Psychology, 67(3).
- Flyvbjerg B. (2006). From Nobel Prize to Project Management: Getting Risks Right. Project Management Journal, 37(3).
- Nelson T. O., Dunlosky J. (1991). When People’s Judgments of Learning (JOLs) Are Extremely Accurate at Predicting Subsequent Recall: The “Delayed-JOL Effect”. Psychological Science, 2(4).
- Dunlosky J., Rawson K., Marsh E., Nathan M., Willingham D. (2013). Improving Students’ Learning With Effective Learning Techniques. Psychological Science in the Public Interest, 14(1) — journals.sagepub.com.
- Campbell D. T. (1979). Assessing the Impact of Planned Social Change. Evaluation and Program Planning, 2(1) — формулировка, известная как закон Кэмпбелла.
Что дальше
Трек закончился. Пятнадцать глав разбирали устройство обучения: что значит понимать, почему перечитывание не работает, как устроены извлечение, интервалы, перемежение, желательные трудности, обратная связь и перенос, как читать тексты и чужой код, чем полезны заметки и где ИИ ускоряет обучение, а где его отнимает. Эта глава добавила уровень выше — как всё это уместить в реальную неделю и как узнать, что что-то изменилось. Куда идти дальше, зависит от того, что оказалось узким местом:
- Не хватает не метода, а времени и внимания — Тайм-менеджмент для инженера: внимание и энергия, фокус, прокрастинация, выгорание.
- Непонятно, какие темы вообще нужны на вашей позиции — карта карьеры портала, а к ней Грейды и Рост.
- Хочется научиться разбирать утверждения, а не только запоминать их — Логика и аргументация, особенно Научное и инженерное рассуждение.
- Нужны модели, которые переносятся между областями — Системное мышление и его глава Ментальные модели.
- Работать с ИИ инженерно, а не наугад — ИИ: основы и ИИ-агенты.
А чтобы увидеть все треки портала целиком и выбрать следующий предмет по карте, а не по настроению — Дорожная карта. Она нужна ровно для того, что обсуждалось в этой главе: чтобы выбор темы был решением, а не результатом того, что попалось на глаза первым.