Я теряю контроль над кодом, когда работаю с агентной генерацией. После сессии есть все внешние признаки написанного кода, но нет внутреннего процесса, который происходит при ручном написании. Мозг использует разные типы памяти: кратковременная работает как RAM — быстро собирает и обрабатывает информацию, долговременная хранит усвоенное как база данных, рабочая комбинирует их для поиска решения. Когда мы читаем чужой код, все эти процессы идут одновременно.
Генерация кода по умолчанию напрямую мешает закреплению навыков. Её UX напоминает игровой автомат: дёрнул рычаг — получил награду в виде решения. Мы заменили ленту соцсетей на поток токенов, и лет через десять будет интересно почитать исследования на эту тему.
Требуется осознанное усилие, чтобы не просто генерировать ответы, а использовать инструмент намеренно. Оз посоветовал мне переписывать части кода самому после того, как я пожаловался в X на туман в голове после агентной сессии. Вдохновившись этим советом, статьёй о замедлении, практикой осознанного написания кода с ИИ и опытом Митчелла, я начал добавлять трение обратно в процесс.
Вот что работает. Сначала пишу реализацию сам, прошу агента провести ревью, потом вручную вношу каждое изменение по комментариям. Прошу агента постоянно задавать вопросы о непонятных кусках кода и подтягивать документацию с PR. Прошу агента продумать два подхода, выбрать между ними и покритиковать отвергнутый. Обсуждаю предложенную агентом реализацию с другим человеком. Начинаю использовать агента только после 20 минут самостоятельной работы. Возвращаюсь к книгам и научным статьям. Переписываю фундаментальные структуры данных с нуля.
Всё это временно убивает прирост скорости от LLM-сгенерированного кода, добавляя трение. Но в долгосрочной перспективе делает меня лучше как разработчика — потому что укрепляет мою собственную базу, а не базу foundation models. Мы должны уставать больше, чем модель.