Иллюзия понимания

Иллюзия понимания

Попробуйте прямо сейчас, не подглядывая, объяснить, как работает обычная застёжка-молния. Не «дёргаешь — закрывается», а механически: что соединяет зубцы, почему они держатся, как ползунок их разводит и сводит обратно.

Большинство людей сходу не справится. И дело не в молниях. Дело в том, что мы знаем намного меньше, чем нам кажется, — но почти никогда не имеем повода это заметить.

Психологи называют это иллюзией глубины объяснения: мы уверены, что понимаем устройство вещей, пока нас не просят объяснить их. Велосипед, унитаз, банковский процент, климат, чужой код — список бесконечен. И в каждой такой области у нас в голове живёт уверенное «ну да, всё понятно», под которым нет почти ничего.

В программировании эта иллюзия особенно бойкая. Потому что узнавать знакомые конструкции легко, а проверять, действительно ли ты их понял, никто не обязывает.

Как это выглядит

Открываешь чужой код. Глаз скользит по строчкам. — «Ну да, тут всё очевидно».

Смотришь на функцию: — «Фильтрует список, потом преобразует, потом возвращает».

Открываешь чужой запрос на слияние: — «Ничего сложного, можно одобрять».

Но стоит сделать с этим что-то живое:

  • объяснить вслух коллеге;
  • переписать с чистого листа;
  • хотя бы слегка изменить поведение.

И вдруг выясняется, что понимание было иллюзорным.

Знакомое ощущение и вне кода: ты прочитал статью, кивнул, закрыл вкладку. А через час друг спрашивает «о чём она?» — и ты выдавливаешь три расплывчатые фразы. Прочитал — да. Понял ли — отдельный вопрос.

Почему мозг нас обманывает

Мозг устроен экономно. Он всё время ищет способ потратить меньше энергии, и один из его любимых приёмов — подменять понимание узнаванием.

Ты видишь знакомые слова: условие, цикл, привычные имена переменных. Мозг рапортует: «Я это уже встречал. Значит, я это понимаю». Но узнавание и понимание — разные слои.

Узнавание — это когда «эта штука похожа на ту штуку». Понимание — это «я знаю, почему она устроена именно так и что произойдёт, если я её поменяю».

Так же мы «понимаем» музыкальный инструмент, к которому ни разу не прикасались, или иностранный язык, в котором узнаём пару знакомых корней. Слух согласен, но руки не сыграют, а губы не выговорят.

В коде разрыв виден ещё яснее. Ты:

  • не проверил граничные случаи;
  • не задумался, почему автор выбрал именно такой подход;
  • не уверен, что сможешь поправить функцию, не сломав три соседние.

Но делаешь заключение, что всё понятно.

Самый простой тест

Есть короткий способ проверить себя. Его приписывают физику Ричарду Фейнману, и звучит он вызывающе просто:

Объясни другому человеку или самому себе вслух.

Если в речи появляются:

  • паузы;
  • «ну, тут как бы…»;
  • перескоки с одной мысли на другую;
  • общие слова вместо конкретных.

Это значит, что понимания нет. Есть знакомство.

В обычной жизни тот же тест работает с чем угодно. Попробуй объяснить семилетнему ребёнку, как работает кредит. Или почему небо синее. Или что такое инфляция. Если без размытых формулировок не выходит — значит, в голове только узнавание.

Где это особенно опасно

Проверка чужого кода

В разборе чужого кода узнавание особенно убедительно. Текст написан в общем стиле проекта, проходит автоматические проверки, имена переменных знакомые. Мозг получает сразу несколько сигналов «свой» и охотно ставит галочку «одобрено», даже если ни одну строчку толком не разбирал.

Так подписывают договоры, не дочитав до конца страницы: шрифт привычный, абзацы стандартные, юрист вроде уже смотрел. Самые тонкие ошибки попадают в проект не вопреки разбору кода, а именно после него.

Обучение

Ты читаешь руководство и киваешь. Вроде всё ясно, пока не закроешь и не попробуешь сам. И тут оказывается, что в голове есть карта, но нет территории.

Это как смотреть кулинарное шоу: ведущий уверенно отделяет желток одной рукой, и ты думаешь — да я так же могу. До первой попытки.

Чужой код, доставшийся «по наследству»

Самая частая ловушка звучит так: «Я быстро разберусь». Через три дня ты всё ещё «быстро разбираешься», и каждое изменение что-то ломает в неожиданном месте. Потому что тебе казалось, что ты понял систему, а на самом деле ты её просто узнал.

Почему это важно

Иллюзия понимания опасна не тем, что ты ошибаешься. Ошибаться нормально, ошибки можно увидеть и исправить.

Она опасна тем, что ощущается как понимание. Никакого внутреннего сигнала тревоги: ты уверен, что всё в порядке. И именно поэтому из неё растут:

  • скрытые ошибки;
  • уверенные, но неправильные решения;
  • удивлённое «но это же должно было работать».

Вне кода то же самое. Пациент, который «всё понял» из брошюры и сам себе назначил лечение. Инвестор, которому «всё ясно» с новым активом после трёх абзацев на форуме. Родитель, которому «очевидно», как устроен подросток. Иллюзия не выглядит как проблема. В этом её главный фокус.

Что с этим делать

Не нужно понимать всё идеально, это невозможно и не требуется. Достаточно встроить пару привычек, которые сбивают режим автопилота.

  • Иногда пересказывай прочитанное своими словами вслух или письменно в виде короткой заметки в Obsidian. Этот шаг ловит большую часть иллюзий ещё до того, как они станут проблемой.
  • Задавай себе вопрос: «что сломается, если я это поменяю?» Если внятного ответа нет, ты не понял, ты узнал.
  • Не доверяй ощущению «очевидно». Особенно в чужом коде, в новой области и под конец рабочего дня.

И главное — простое правило, к которому в итоге всё сводится:

Если ты не можешь это объяснить, ты это не понял.

Это нормально. Ненормально делать вид, что понял.

Предыдущий
Наверх