Как продолжать учиться, пока Claude Code пишет за вас код
AI-ассистенты убрали то трение, которое учило разработчиков. Его можно вернуть: хуки с вопросами, задания «заполни пропуск» и режим тренера, в котором код пишете вы.
Представьте разработчика, который освоил PHP за 5 лет до появления AI-ассистентов. Одна забытая точка с запятой могла отнять пару минут, а то и целый день на поиски той самой неправильной строки. Динамический сайт делался неделями: проектирование схемы, структура кода, планирование всего проекта заранее. Каждый этап приносил удовольствие, от планирования до сборки, и награда была настоящей. Ты сделал что-то своими руками после борьбы и вышел из неё, зная больше, чем в начале.
Теперь сравните это с сегодняшним днём. В 2025 году появился Claude Code, и разработчики стали отдавать ему всё больше повседневной работы. Год спустя многие почти не открывают Stack Overflow, реже рисуют на доске или бумаге перед проектированием фичи и меньше разговаривают с коллегами, потому что большая часть их общения теперь происходит с Claude. Скорость настоящая, и никто, кто её попробовал, не хочет от неё отказываться. Но у неё есть цена. Пропадает большой кусок классического процесса — того, что незаметно превращает джунов в сеньоров.
Это не жалоба, не призыв писать всё руками и не бунт против AI. Это тревога по одному конкретному поводу. Многие выбирают эту профессию отчасти ради того, чтобы постоянно учиться, а учёба угасает, когда всё обдумывание берёт на себя модель.
Что говорят исследования
Anthropic, компания, стоящая за Claude Code, опубликовала исследование о том, как помощь AI влияет на формирование навыков программирования. Оно указывает на парадокс: прирост продуктивности от AI может сопровождаться замедлением роста навыков, особенно у новичков. Вывод совпадает с тем, что многие разработчики чувствуют интуитивно. Умственное усилие, включая периоды, когда ты застрял, по-прежнему необходимо, если хочешь что-то по-настоящему освоить.
Так что вопрос в том, как продолжать учиться, когда всё делает Claude Code.
Трение, которое мы потеряли
Начнём с того, что старый процесс заставлял делать:
- Пробовать разное, пока что-нибудь не заработает
- Читать и перечитывать документацию
- Возвращаться к собственному коду
- Прослеживать, как проходит фича и в каком порядке выполняются её функции
- Отлаживать минуты, часы, а иногда и дни
Это были не препятствия на пути к знаниям. Это были условия для них. Будущие дети будут слушать про эту эпоху так же, как мы слушали истории о том, как в школу ходили пешком за десять километров.
Вместе с этим трением ушло и то, что исследование называет когнитивным усилием, — разрыв между написанием кода и пониманием написанного. Если работа больше не создаёт трения, его придётся добавлять специально.
Пусть инструмент учит
Хорошая отправная точка — относиться к Claude как к инструменту, выдающемуся, но всё-таки инструменту, который не должен заменять разработчика. Он должен облегчать работу и помогать разработчику расти. Старая поговорка гласит: если у тебя есть только молоток, любая проблема кажется гвоздём. Но разработчику попадаются и шурупы, и болты, и шканты, и именно там живёт мастерство.
Вместо того чтобы бороться с ассистентом, заставьте его учить вас обращаться с остальными инструментами. Если Claude может написать целую фичу по одному поясняющему промпту, он может и задавать вопросы о том, что делает. Идея в том, чтобы встроить в сессии осознанное трение. Не мешать Claude работать и не возвращаться к написанию всего вручную. Посреди работы он время от времени останавливается и спрашивает вас о чём-нибудь, например, почему вы выбрали определённый подход.
Типичные вопросы выглядят так:
- Почему эта функция ведёт себя именно так?
- Что произойдёт, если этот вызов упадёт?
- Нужна ли эта строка?
- Можете дописать эту функцию?
- Почему эта архитектура, а не другая?
Цель проста: пусть Claude делает свою работу, а вы продолжаете учиться и заодно следите за тем, что он производит.
Как может работать обучающий режим
Это можно собрать как skill для Claude Code плюс несколько хуков. Установите один раз, и он будет доступен на вашей машине в каждой сессии. После изменения Claude смотрит на diff, выбирает интересное место в коде и просит вас его объяснить. Вопрос может выглядеть так:
🎓 Learner — src/auth/session.ts
You modified `refreshSession()` to delete the old session line before inserting the new one.
Why use this order rather than “insert then delete,” and what does a caller see if the insert fails after the delete has been committed?
Claude спрашивает и возвращается к своему делу. Если вы ответите skip, он идёт дальше, не настаивая.
Самый интересный вариант берёт короткую функцию, которую вы только что изменили, достаёт правильную версию из Git и вырезает куски прямо из настоящего файла на диске. Частоту регулирует небольшой shell-хелпер, который переводит настройку в число:
learner_synthesis_n() {
case "${1:-}" in
off) printf '0' ;;
rare) printf '8' ;;
often) printf '2' ;;
# LEARNER-TODO Complete this part of code
*) printf '4' ;;
esac
}
Затем Claude просит вас заполнить пропуск и ждёт. Он не допишет код за вас, пока вы не признаете, что не знаете как, или не наберёте skip.
Это самый ценный тип вопросов, потому что он вскрывает моменты, когда вам кажется, что вы понимаете код Claude, а написать его сами не можете. Одна оговорка: на короткое время это ломает ваш настоящий исходник. Защита не даёт сессии завершиться с дырой в дереве, и именно эта защита — та часть дизайна, которая больше всего заслуживает критического разбора.
Квиз можно запустить и напрямую, набрав learner quiz на ветке, не дожидаясь хука. Это отличная привычка. Если вы не можете ответить на вопросы о собственной ветке, ревьюеры тоже не смогут.
Честная оговорка: после нескольких недель использования всё ещё неясно, всё ли работает гладко и правда ли это помогает каждому, кто хочет учиться, работая с Claude Code. Улучшить следующую итерацию поможет обратная связь, особенно несогласие.
Когда код пишете вы сами
Всё это предполагает, что код пишет Claude. А если нет? Даже при всём, что умеет Claude Code, вы можете не хотеть, чтобы он писал каждую строку. Иногда хочется набрать код самому — не потому, что так быстрее или Claude не справился бы, а потому, что писать строки и есть способ учиться.
Так что поменяйте роли. Пишете вы. Claude наблюдает. В нужный момент он бросает вам вызов. Он не исправляет ваш код, не перехватывает управление и не выдаёт ответ. Он просто подталкивает вас подумать получше. Такой ассистент делает больше, чем выполняет задачи и проверяет понимание. Он становится спарринг-партнёром — тем, кто следит за вашей работой и вовремя вставляет вопрос, который что-то добавляет.
Вот куда могла бы двинуться следующая версия: тренер, а не учитель. В модели учителя ассистент сначала строит, а потом устраивает опрос. В модели тренера вы остаётесь за рулём, ассистент молчит, пока вопрос действительно не поможет, и каждая строка в файле остаётся той, которую вы сами решили написать. Рост тогда идёт от вашего собственного набора и размышлений, а рядом есть вторая пара глаз, практичная, а не льстивая. Разработчики, которые ценят ремесло, скорее всего предпочтут такой баланс полной передаче клавиатуры, и он сохраняет в повседневной работе привычку к продуктивной борьбе. Если у вас есть идеи, как именно он должен вас испытывать, ими стоит поделиться.