Во время обучения чему-либо часто сталкиваешься с тем, что забываешь, что вообще изучал, особенно детали. Мне 18, я решил 822 задачи на LeetCode со стриком 430+ дней. Количество решённого само по себе ничего не гарантирует, если через пару недель не можешь вспомнить логику без подсказки. Поэтому я решил создать этот проект, но это относится не только к литкоду, но и ко всему остальному.
Начнем с простого. Писать заметки — это вполне рабочий вариант, но здесь есть важный момент: заметки работают эффективно только тогда, когда они заставляют мозг перерабатывать информацию («эффект генерации»), а не просто копировать её.
А теперь подробнее. Начнём с важного заявления психологов Родигера и Карпике, авторов классического эксперимента по retrieval practice: студенты предсказывали, что многократное перечитывание материала даст лучшее долгосрочное запоминание, а активное вспоминание — худшее, хотя на практике всё оказалось ровно наоборот.
Возможно, для многих это очевидно, да? Да, но суть глубже.
Когда человек перечитывает текст несколько раз, при повторном чтении слова «узнаются» легче и быстрее — возникает субъективное чувство беглости (лёгкости обработки). Мозг путает эту лёгкость восприятия с реальным пониманием и прочностью запоминания. То есть «мне легко это читать» ошибочно интерпретируется как «я это знаю». На это важно обратить внимание.
Это работа Роберта Бьорка — он же автор концепции desirable difficulties («желательных трудностей»): вещи, которые кажутся трудными и медленными в моменте (типа вспоминания без подсказок), реально дают куда более прочное обучение, чем лёгкие и приятные способы (перечитывание).
Источники: Generation Effect — Wikipedia; Generation Effect & Memory Encoding — PMC/NIH.
Но тут сразу хочется понять: а что за трудность? Я не думаю, что чем труднее, тем лучше результат — это глупость. У нас есть чёткая граница.
«Желательная» трудность — это трудность в процессе поиска/обработки информации, а не трудность в содержании или условиях.
Примеры:
-
Retrieval practice — трудно вспомнить без подсказки (но информация та же, просто путь к ней труднее)
-
Spacing effect — учить с интервалами, а не зубрить подряд (труднее, потому что забыл часть, но это заставляет мозг заново реконструировать связи)
-
Interleaving — чередовать разные темы/типы задач вместо блочной практики одного типа
-
Varying context — учить в разных условиях/форматах
Что НЕ является «желательной» трудностью:
-
Слишком сложный, непонятный текст, который просто выше уровня ученика
-
Плохо оформленный, нечитаемый материал
-
Отвлекающий шум, стресс, тревога во время обучения
-
Информационная перегрузка, когда рабочая память просто не справляется
Разница в том, что «желательная» трудность создаёт дополнительную, полезную ментальную работу поверх того же материала (усилие в обработке), а «вредная» трудность создаёт барьер к самому материалу (усилие тратится не туда — на дешифровку/фрустрацию, а не на закрепление).
То есть можно сделать вывод: трудность работает, только если это трудность самого усилия вспомнить/связать, а не трудность понимания материала или эмоциональный стресс. Простое усложнение текста или условий не даёт того же эффекта — граница очень тонкая, и именно поэтому нужен продуманный интерактивный формат
Как я попробовал это реализовать
Сначала важно оговорить сам формат: это не «выбери один правильный ответ из списка». Юзер получает набор карточек и должен собрать из них правильную последовательность — расставить шаги в нужном порядке.
Узнать текст здесь недостаточно: нельзя пройти на автомате, кликнув на знакомую фразу, нужно реально восстановить логику и порядок действий. Это уже ближе к активному вспоминанию, чем к простому узнаванию.
Так выглядит сам пазл — карточки нужно расставить в правильном порядке (от 3 до 11 стеков):
Что убрано (вредная сложность):
Это напрямую связано с cognitive load theory — рабочая память ограничена, и если тратить её на расшифровку формата задания (допустим как на leetcode), на само обучение ресурсов не останется.
-
Не нужно «с нуля» вспоминать формулировку — варианты уже даны текстом. Для общей структуры в голове этого более чем достаточно, нежели вспоминать всё с нуля — в долгосроке «с нуля» не будет эффективным, я бы сказал, это хорошо скорее для повторения.
-
Понятная структура — фиксированное число стеков, видно объём задачи
-
Нет угрозы «чистого листа», когда человек паникует от пустоты
-
Ошибка обратима — можно перетащить карточку по-другому, попробовать ещё, посмотреть краткое объяснение.
Источник: Cognitive Load Theory in CS Education — ACM.
Это снижает emotional/format difficulty — ту, что мешает вспоминать не потому что мозг работает, а потому что человек тревожится или не понимает, что от него хотят.
Что оставлено (полезная сложность — сам retrieval):
-
Нужно распознать правильную последовательность действий, а не просто узнать текст (это уже выше уровня узнавания — с 4-5 похожими по теме вариантами реальный сценарий заставляет действительно понимать логику, а не угадывать по ключевым словам)
-
Дистракторы (неправильные карточки) специально похожи по теме, но логически неверны — то есть система заставляет дискриминировать правильный retrieval cue от похожего, но неверного (это прямо то, о чём в статье Karpicke пишут про «cue diagnosticity» — способность подсказки указать именно на нужное знание, исключив конкурентов)
Ну тут получается двойная активная нагрузка, а не просто вспоминание.
Обычный retrieval — это «вспомни, что было в тексте», а тут ещё добавляется логика: дистрактор специально сделан похожим и звучит разумно, чтобы нельзя было пройти на автомате. Значит нельзя просто узнать текст по ключевым словам — надо реально включить рассуждение, почему один вариант верный, а похожий на него — нет.
Получается не одна нагрузка (вспомнить), а две (вспомнить + логически обосновать выбор), и вот это уже сильнее, чем чистый retrieval practice из эксперимента Карпике. Но это можно улучшать — некая база получилась типо. Если хочешь подумать над вариантами ответа, можешь нажать на кнопку с «?» и карточка выделится желтым.
-
Порядок имеет значение — то есть тестируется не просто факт, а понимание причинно-следственной цепочки.
Почему мозг сопротивляется этому методу
При активном вспоминании — наоборот: субъективно это неприятно, медленно, «я же не могу вспомнить, значит я плохо знаю материал» — и мозг делает ложный вывод, что метод не работает, хотя по факту именно трудность извлечения информации укрепляет память.
Мозг обманут собственным ощущением лёгкости — и это системная, хорошо изученная ошибка (на этом остановимся, этого достаточно). Вообще не важно, ленив мозг или нет (это следствие в основном), а важно то, почему так произошло — то есть провести анализ ошибки.
Что дальше
Сейчас я развиваю два проекта параллельно — оба планирую делать всю жизнь, и они работают как экосистема: то, что придумываю в одном, отражается в другом.
Пользуюсь сам почти каждый день, и то, ради чего всё затевалось, начинает работать: возвращаюсь к теме через пару дней, или недель — и вспоминаю логику сам, а не читаю заново.
Из того, что уже есть:
-
500+ задач по темам — устройство HashMap, Java concurrency, архитектуры MVC/MVP/MVVM, компьютерные сети, базы данных и другое
-
Планы обучения — треки подготовки к собесам (Java, Go, Python, Frontend и тд) с отслеживанием прогресса
-
Сообщество — лента, где пользователи делятся прогрессом, постами и тд
Кому интересно, можете зайти и чекнуть — половина пазлов полностью бесплатна, ссылка на проект есть в описании моего профиля.
Есть приложение под андроид + PWA iOS
Скоро добавлю новые типы пазлов — 2D-пазлы для кибербеза и leetcode-style задачи. Об этом — в следующем посте, когда доделаю.
ссылка на оригинал статьи https://habr.com/ru/articles/1066940/