
Иллюзия понимания
Попробуйте прямо сейчас, не подглядывая, объяснить, как работает обычная застёжка-молния. Не «дёргаешь — закрывается», а механически: что соединяет зубцы, почему они держатся, как ползунок их разводит и сводит обратно.
Большинство людей сходу не справится. И дело не в молниях. Дело в том, что мы знаем намного меньше, чем нам кажется, — но почти никогда не имеем повода это заметить.
Психологи называют это иллюзией глубины объяснения: мы уверены, что понимаем устройство вещей, пока нас не просят объяснить их. Велосипед, унитаз, банковский процент, климат, чужой код — список бесконечен. И в каждой такой области у нас в голове живёт уверенное «ну да, всё понятно», под которым нет почти ничего.
В программировании эта иллюзия особенно бойкая. Потому что узнавать знакомые конструкции легко, а проверять, действительно ли ты их понял, никто не обязывает.
Как это выглядит
Открываешь чужой код. Глаз скользит по строчкам. — «Ну да, тут всё очевидно».
Смотришь на функцию: — «Фильтрует список, потом преобразует, потом возвращает».
Открываешь чужой запрос на слияние: — «Ничего сложного, можно одобрять».
Но стоит сделать с этим что-то живое:
- объяснить вслух коллеге;
- переписать с чистого листа;
- хотя бы слегка изменить поведение.
И вдруг выясняется, что понимание было иллюзорным.
Знакомое ощущение и вне кода: ты прочитал статью, кивнул, закрыл вкладку. А через час друг спрашивает «о чём она?» — и ты выдавливаешь три расплывчатые фразы. Прочитал — да. Понял ли — отдельный вопрос.
Почему мозг нас обманывает
Мозг устроен экономно. Он всё время ищет способ потратить меньше энергии, и один из его любимых приёмов — подменять понимание узнаванием.
Ты видишь знакомые слова: условие, цикл, привычные имена переменных. Мозг рапортует: «Я это уже встречал. Значит, я это понимаю». Но узнавание и понимание — разные слои.
Узнавание — это когда «эта штука похожа на ту штуку». Понимание — это «я знаю, почему она устроена именно так и что произойдёт, если я её поменяю».
Так же мы «понимаем» музыкальный инструмент, к которому ни разу не прикасались, или иностранный язык, в котором узнаём пару знакомых корней. Слух согласен, но руки не сыграют, а губы не выговорят.
В коде разрыв виден ещё яснее. Ты:
- не проверил граничные случаи;
- не задумался, почему автор выбрал именно такой подход;
- не уверен, что сможешь поправить функцию, не сломав три соседние.
Но делаешь заключение, что всё понятно.
Самый простой тест
Есть короткий способ проверить себя. Его приписывают физику Ричарду Фейнману, и звучит он вызывающе просто:
Объясни другому человеку или самому себе вслух.
Если в речи появляются:
- паузы;
- «ну, тут как бы…»;
- перескоки с одной мысли на другую;
- общие слова вместо конкретных.
Это значит, что понимания нет. Есть знакомство.
В обычной жизни тот же тест работает с чем угодно. Попробуй объяснить семилетнему ребёнку, как работает кредит. Или почему небо синее. Или что такое инфляция. Если без размытых формулировок не выходит — значит, в голове только узнавание.
Где это особенно опасно
Проверка чужого кода
В разборе чужого кода узнавание особенно убедительно. Текст написан в общем стиле проекта, проходит автоматические проверки, имена переменных знакомые. Мозг получает сразу несколько сигналов «свой» и охотно ставит галочку «одобрено», даже если ни одну строчку толком не разбирал.
Так подписывают договоры, не дочитав до конца страницы: шрифт привычный, абзацы стандартные, юрист вроде уже смотрел. Самые тонкие ошибки попадают в проект не вопреки разбору кода, а именно после него.
Обучение
Ты читаешь руководство и киваешь. Вроде всё ясно, пока не закроешь и не попробуешь сам. И тут оказывается, что в голове есть карта, но нет территории.
Это как смотреть кулинарное шоу: ведущий уверенно отделяет желток одной рукой, и ты думаешь — да я так же могу. До первой попытки.
Чужой код, доставшийся «по наследству»
Самая частая ловушка звучит так: «Я быстро разберусь». Через три дня ты всё ещё «быстро разбираешься», и каждое изменение что-то ломает в неожиданном месте. Потому что тебе казалось, что ты понял систему, а на самом деле ты её просто узнал.
Почему это важно
Иллюзия понимания опасна не тем, что ты ошибаешься. Ошибаться нормально, ошибки можно увидеть и исправить.
Она опасна тем, что ощущается как понимание. Никакого внутреннего сигнала тревоги: ты уверен, что всё в порядке. И именно поэтому из неё растут:
- скрытые ошибки;
- уверенные, но неправильные решения;
- удивлённое «но это же должно было работать».
Вне кода то же самое. Пациент, который «всё понял» из брошюры и сам себе назначил лечение. Инвестор, которому «всё ясно» с новым активом после трёх абзацев на форуме. Родитель, которому «очевидно», как устроен подросток. Иллюзия не выглядит как проблема. В этом её главный фокус.
Что с этим делать
Не нужно понимать всё идеально, это невозможно и не требуется. Достаточно встроить пару привычек, которые сбивают режим автопилота.
- Иногда пересказывай прочитанное своими словами вслух или письменно в виде короткой заметки в Obsidian. Этот шаг ловит большую часть иллюзий ещё до того, как они станут проблемой.
- Задавай себе вопрос: «что сломается, если я это поменяю?» Если внятного ответа нет, ты не понял, ты узнал.
- Не доверяй ощущению «очевидно». Особенно в чужом коде, в новой области и под конец рабочего дня.
И главное — простое правило, к которому в итоге всё сводится:
Если ты не можешь это объяснить, ты это не понял.
Это нормально. Ненормально делать вид, что понял.