ИИ очень сильно изменил то, как мы пишем код, и этот процесс всё ещё продолжается. Мы пробуем разные подходы и ищем более эффективные способы работы. Агенты позволяют писать код быстрее, но по мере роста их автономности понимание проекта людьми уменьшается.
Я хочу рассказать о том, как я использую потерю понимания как сигнал обратной связи. Так я решаю, когда можно делегировать ИИ больше, а когда нужно замедлиться и разобраться.
Два подхода к работе с ИИ
Рассмотрим два противоположных подхода к написанию кода с ИИ:
Парное программирование с ИИ — ИИ выступает напарником программиста: разработчик ведёт диалог, определяет следующий шаг, читает и проверяет каждое изменение. Разработчик сохраняет контроль над процессом и понимает, как устроена реализация.
Vibe coding — разработчик формулирует желаемый результат, а ИИ реализует его самостоятельно. Код оценивается по тому, работает ли он, без попытки разобраться в его устройстве.
Выбор между этими двумя крайностями довольно прост. Если я пишу одноразовый код или делаю простую автоматизацию, vibe coding экономит мне уйму времени. В долгоживущем проекте я предпочту больше контроля, даже если на него уйдёт больше времени.
Но на практике между этими двумя крайностями есть множество подходов. Мы можем условно изобразить этот спектр следующим образом:

Это лишь приблизительная модель. Соотношение автономности, экономии времени и понимания зависит от проекта, возможностей ИИ-моделей и опыта разработчика. Кроме того, здесь не учтены другие факторы, например качество и стоимость результата.
При движении от парного программирования с ИИ к vibe coding мы тратим меньше времени, но вместе с тем теряем понимание проекта. Нам хочется найти здесь оптимальный баланс, чтобы быть наиболее эффективными в долгосрочной перспективе. Чтобы найти этот баланс, сначала нужно понять, зачем вообще нужно разбираться в проекте.
Необходимый уровень понимания
Я считаю, что людям необходимо понимать код — по крайней мере на сегодняшний день.
Человек остаётся движущей силой проекта: он задаёт долгосрочное видение, формулирует бизнес-задачи, принимает архитектурные решения и отвечает за результат. Особенно хорошо это видно в больших проектах, где ИИ всё ещё нужно направлять. Даже когда ИИ сможет решать все технические проблемы без вмешательства человека, бизнесу всё ещё будет нужен какой-то уровень понимания проекта — от протекающих абстракций нам никуда не деться.
При этом понимать проект — не значит знать каждую строку его кода. Ещё до ИИ я пользовался множеством технологий: языками, библиотеками, фреймворками, базами данных. Знакомясь с очередной технологией, я изучал документацию, смотрел API, читал технические блоги разработчиков, и в голове появлялась её абстрактная модель. Я представлял, как технология устроена, хотя и не читал её исходный код полностью.
При работе с ИИ-кодом я стараюсь удерживать такую же высокоуровневую картину, вдаваясь в детали только в отдельных узких местах. Если я понимаю поток данных, структуру проекта и логику ключевых решений, я понимаю проект на техническом уровне. В этом смысле работа с ИИ напоминает работу архитектора ПО: не нужно держать в голове реализацию каждого модуля, но нужно понимать устройство системы в целом и уметь при необходимости быстро спуститься на уровень ниже.
Граница понимания
Единого оптимального уровня автономности нет. Я постоянно выбираю положение на этой шкале и стараюсь держаться у границы, где ментальной модели проекта ещё хватает, чтобы направлять работу и оценивать последствия изменений. До этой границы я делегирую ИИ столько работы, сколько могу.

Даже внутри одного проекта граница проходит по-разному. Как модели могут использовать разные уровни reasoning для разных задач, так и мне нужна разная глубина понимания разных участков кода.
Например, ИИ может реализовать типовой модуль целиком, а я проверю его границы, поток данных, обработку ошибок и тесты, не читая построчно шаблонный код. Но если я уже не могу объяснить, где и почему меняются данные или оценить последствия следующей правки, значит, нужно остановиться и разобраться глубже.
Когда я начинаю терять понимание, я замедляюсь, разбираюсь в конкретном участке и только потом двигаюсь дальше. Так складывается Understanding Loop: я делегирую ИИ работу, пока не замечаю, что моя ментальная модель стала разваливаться, затем восстанавливаю контекст и продолжаю. Этот цикл позволяет оставаться в зоне, где ИИ экономит время, а необходимый контроль сохраняется.
Программирование на грани
Чтобы оставаться у этой границы, нужно уметь замечать, что понимания уже не хватает. Вот лишь часть критериев, которыми я пользуюсь:
Я понимаю поток данных в системе.
Я могу предсказать, где нужно внести следующую правку.
Я понимаю последствия изменения для других частей проекта.
Я не теряюсь при навигации по проекту.
Заметив пробел в своей ментальной модели, я сосредотачиваюсь на этом участке проекта. При необходимости спускаюсь на уровни ниже, разбираюсь в потоках данных, связях с другими частями проекта и причинах принятых решений. Мне не нужно заново разбираться во всём проекте, лишь заполнить текущий пробел.
При этом сам процесс восполнения контекста не обязательно включает чтение кода (зачастую оно не нужно), а скорее представляет собой беседу с агентом. Я могу спросить его о тех или иных решениях: почему они были приняты, какие были альтернативы и так далее. Иногда это просто вопрос и ответ, а порой целое погружение в какую-то техническую область. Временами такой диалог приводит к тому, что текущее решение меня не устраивает, а иногда оно может не устроить и агента: ему тоже нужна резиновая уточка.
Я считаю понимание восстановленным, когда снова могу своими словами объяснить, как работает этот участок, и предсказать, на какие части проекта повлияет изменение. После этого можно снова ускориться и делегировать ИИ больше.
Обучение
При парном программировании я сам задаю направление и поэтому чаще остаюсь в пределах своей текущей ментальной модели. Агент может давать советы или указывать на ошибки, но обычно не уводит далеко от намеченного мной пути. Vibe coding, наоборот, позволяет получить результат, вообще не строя модель реализации.
При работе на границе агент может привести меня в незнакомую область, а understanding loop помогает встроить новое знание в общую картину проекта. Этот процесс напоминает тренировки до отказа: по мере роста возможностей нагрузку постепенно увеличивают, каждый раз немного отодвигая предел возможностей.
Со временем моя ментальная модель становится точнее, и я могу осознанно делегировать агенту больше работы, сохраняя тот же уровень контроля. Граница постепенно сдвигается вправо, а затраты времени снижаются.

Заключение
Программирование на грани понимания — это способ делегировать ИИ столько работы, сколько позволяет моя ментальная модель проекта. Пока этой модели хватает, чтобы направлять дальнейшую работу и оценивать последствия изменений, я ускоряюсь. Когда её уже не хватает, замедляюсь и восстанавливаю контекст.
Understanding loop позволяет экономить время, сохранять необходимый контроль и одновременно учиться. По мере того как граница понимания сдвигается, растёт и объём работы, который можно уверенно делегировать ИИ.
Комментарии (9)

locky182
21.09.2026 11:11Делал мобильное приложение с ИИ на флаттер. ИИ архитектор, ИИ кодинг. Я тестер, Я идея, Я концепция. Делал полтора месяца. Учился, понимаю программирование. Но язык данный не знаю, фреймворк не знаю. Просто довел проект до релиза. Заработок на рекламе за 3 месяца 1300 р. Затем делал сайт на Nuxt. Примерно понимаю его, в код не вдумывался. Делал 2 месяца. Выхлоп Ноль.
Резюмируя. Сам бы не сделал, а если бы сам то через 30 лет. С учётом что знаю ООП и всякую чепуху что спрашивают на собесах. Но в одну каску от идеи , дизайна, до релиза Неа.
А если завтра новый фреймворк, язык?
А если стек нужен другой? Понимать архитектуру да, концепцию да, механику да, но не синтаксис.
Все, пошли те времена, где даже без знания springa можно на java залезть. Бизнес увы. Вот и думайте. Нужно ли вам тысяча курсов? Или идея, план, ИИ, разный каждый раз стек технологий, и желание тестировать и доводить дело до конца.

Alsig
21.09.2026 11:11Аналогичная ситуация, сделал 5 приложений для себя. Сам бы пару лет делал и не получилось бы.
А с дипсиком моментально получаю результат. Версии которые оценил как рабочие не требуют обновления. Считаю, что можно не понимать чего то глубоко, но обладая логикой и базовыми знаниями, можно многое сделать с этим инструментом.

kaboose
21.09.2026 11:11Архитектор и строитель - две разные роли.
Раньше архитектор, он же прораб, он же снабженец, он же строитель, он же подаван был. Сейчас с ИИ роль четко разграничена. Это если мы говорим о проектах для себя и немного для них.

romabr
21.09.2026 11:11Когда учился в универе, нам настоятельно прививали навык грамотного написания ТЗ. Кажется, это единственное, что останется после прохождения шторма ИИ-программирования.

vitalist84
21.09.2026 11:11Сидеть вручную писать ТЗ это тоже тяжелый труд. Есть уже наборы скилов котрые реализуют парадигму spec driven development. Человек должен направлять, давать информацию о внешнем мире, давать подсказки, а агент на основе этого пишет довольно подробное ТЗ.
Nagdiel
Ваша схема, как мне кажется, довольно хороша как вербализация интуитивной модели. Но из нее сложно сделать формальную методику. Не потому, что нельзя ввести конкретные правила, а потому, что эти правила, вероятно, сугубо индивидуальны и зависят от конкретного разработчика, его целеполагания, проекта и формальной ответственности за принятые решения. Кроме того, вы правильно замечаете, что в разное время и в разных частях проекта нужна совершенно разная оптика.
Minhir Автор
Абсолютно согласен, очень многое зависит от контекста, и этот контекст постоянно меняется. Мне интересно, как будет выглядеть вход в профессию для новых специалистов. Я думаю, что наставничество станет ещё ценнее (оно всегда было лучшим способом быстро расти). Опытный коллега своими замечаниями-подсказками может передать интуицию, указать на слабые места и так далее. Причём наставничество это как раз то, что очень индивидуально, что идёт в дополнение к академическим учебниками и упражнениям. И тут же встаёт другой вопрос: насколько ИИ сможет играть роль наставника?
Nagdiel
На мой взгляд, и здесь все тоже индивидуально. Для кого-то ИИ может быть хорошим наставником, для кого-то — средством избегания работы над собой. Мой опыт говорит о том, что люди очень сильно различаются в том, хотят ли они глубоко разбираться в предмете своей работы или предпочитают быстрее получить результат.
При этом я не говорю, что стремление быстрее получить результат всегда хуже. Иногда быстрый результат позволяет набить шишки, сделать выводы и в итоге вырасти над своим вчерашним уровнем. В то же время попытки сразу осознать всю глубину кроличьей норы в какой-то теме могут быть не менее контрпродуктивны, чем попытки игнорировать всю сложность темы.
Наставник-ИИ как раз способен погрузить начинающего разработчика в каждую из этих крайностей. Наставник-человек, если он сам не склонен к подобным крайностям, может провести разумную границу. Тогда ИИ становится тем инструментом, который при правильной рамке дает нужную фактуру с подходящей детализацией.