Мой блог
Кто вырастит будущих сеньоров, если код теперь пишет AI? Разбор проблемы и методология обучения
Использование нейросетей в разработке уже давно вышло за рамки эксперимента. Опытный инженер может запустить Cursor, Claude Code, Copilot или Codex, сформулировать задачу и сразу получить солидный пласт готового кода. В некоторых ситуациях специалист с большим стажем нажимает на клавиши даже меньше новичка. Именно поэтому противопоставлять «настоящую ручную разработку» и «генеративный AI» больше не имеет смысла. Граница проходит совсем в другом месте.
Когда начинающий разработчик получает правдоподобный ответ от нейросети, он видит готовую функцию. Опытный инженер видит гипотезу, требующую проверки: где проходят границы доверия (trust boundary), как поведет себя система при повторном запросе, сохраняется ли целостность данных, как откатится миграция баз данных и какой из крайних сценариев сломается первым. AI не уравнивает новичка и эксперта — он устраняет разницу в скорости набора текста, но ярко подсвечивает разрыв в качестве инженерного суждения.


В связи с этим возникает главный вопрос: если junior-разработчики получают работающий с виду результат еще до того, как научились самостоятельной диагностике ошибок, откуда через несколько лет возьмутся специалисты уровня senior, способные квалифицированно проверять сгенерированные системы? Я убежден, что решение заключается не в запрете искусственного интеллекта, а в перестройке тренировочного контура профессии под новые реалии производственного процесса.
1. Один и тот же инструмент, две разные профессии
Чтобы наглядно увидеть разницу в подходе к нейросетям, рассмотрим пример с одинаковым заданием: внедрением авторизации и разделением клиентских данных в B2B-сервисе.
Первый разработчик отправляет простой промпт с просьбой сделать авторизацию через Supabase. Агент генерирует структуры таблиц, middleware, экран входа и базовые правила доступа. В локальной среде проверка проходит успешно: тестовый пользователь видит свои записи, и задача помечается как закрытая.

Второй разработчик начинает активную работу как раз после генерации. Он тщательно анализирует разграничение аутентификации и авторизации, проверяет политики Row Level Security (RLS) для каждой таблицы, тестирует сценарии с подменой identifier арендатора (tenant_id) и проверяет процессы обновления и отзывов токенов. Дополнительно он изучает доступность эндпоинтов по анонимному ключу, добавляет негативные тесты и логирование административных действий.
Внешне оба специалиста применили AI, при этом первый мог получить итоговый интерфейс быстрее. Однако именно второй выполнил полноценную инженерную работу: зафиксировал инварианты, нашел границы доверия, выстроил систему верификации и взял на себя ответственность за релиз. Раньше подобный разрыв проявлялся в скорости написания кода и знании библиотек. Сегодня ценность сместилась в область скрытых инженерных навыков:
- Умение превращать абстрактные пожелания бизнеса в четкие и проверяемые требования;
- Способность вовремя увидеть пропущенное условие или незафиксированный крайний случай;
- Глубокое понимание сценариев отказов (failure modes), архитектуры данных, безопасности и эксплуатации;
- Калиброванное недоверие — четкое понимание того, что именно и насколько глубоко требуется проверять;
- Готовность остановить запуск, даже когда внешний интерфейс выглядит полностью готовым.
2. Парадокс хорошего промпта
В практике агентной разработки часто встречается ситуация, когда нейросеть отказалась продолжать выполнение задачи до тех пор, пока человек не устранил внутренние противоречия в правилах фичи. Но ключевая деталь здесь скрывается в том, что эти правила задал сам человек. Чтобы нейросеть могла подсветить конфликт, инженер уже должен понимать предметную область.
В этом и заключается парадокс генеративной разработки: чем меньше специалист разбирается в предметной области, тем сложнее ему составить корректный запрос. Промпт-инжиниринг не заменяет глубокую экспертизу, а становится ее интерфейсом. Если за запросом нет инженерного понимания, модель выдает лишь красиво оформленную неопределенность.

Например, при реализации атомарного счетчика недостаточно попросить модель «безопасно увеличивать count». Требуется четко определить границы транзакций, поведение при повторной доставке сообщений, допустимость утери обновлений и работу при сбоях сети. При реализации платежных функций мало запросить «защиту от двойного списания» — необходимо заложить ключи идемпотентности, правила сверки данных (reconciliation) и обработку таймаутов.
3. Модель может знать правило и нарушить его в следующем сообщении
Практический опыт показывает интересную особенность языковых моделей: они могут идеально сформулировать теоретическое правило, а в следующем сообщении выдать код с его нарушением. В одном из тестовых сценариев модель верно описала алгоритм атомарного обновления счетчика, но, получив собственное описание в качестве спецификации, сгенерировала реализацию с критической ошибкой. Дефект удалось обнаружить только благодаря ручному анализу кода инженером.
Этот пример наглядно иллюстрирует несовершенство концепции «пусть AI проверяет AI». Автоматические прогоны через другую модель или статический анализатор помогают поймать часть ошибок, но вероятностный ответ не является строгим доказательством корректности. Проверка кода делится на несколько уровней:
- Синтаксический: запускается ли написанный код;
- Локальная логика: соответствует ли функция написанному тесту;
- Контрактный: совместимы ли компоненты между собой;
- Инварианты: сохраняются ли права, деньги и структуры данных при параллельной нагрузке;
- Намерение: решает ли система ту бизнес-задачу, которая перед ней ставилась;
- Эксплуатация: возможно ли оперативно отследить сбой и безопасно восстановить работу.
Нейросети демонстрируют высокую эффективность на базовых уровнях, где обратная связь жестко формализована. Но чем ближе верификация к бизнес-контексту и специфическим сценариям отказов, тем критичнее становится участие человека.
4. AI убирает трение. Но часть трения была обучением
Классический путь становления junior-разработчика всегда был связан с преодолением рутинных трудностей: чтением документации, отладкой ошибок с индексами массивов, поиском причин состояние гонки (race condition) и исправлением замечаний на code review. Эта работа не была максимально продуктивной, но именно она формировала у инженера диагностическую память.
Когда специалист самостоятельно строит неверную ментальную модель и видит ее сбой на практике, у него возникает понимание причинно-следственных связей. Если же он получает готовое решение и сразу видит зелёные тесты, фиксации опыта может не произойти.
Академические исследования показывают неоднозначные результаты. В эксперименте 2023 года (Kazemitabaar et al., CHI 2023) с участием 69 начинающих программистов группа с доступом к Codex быстрее справлялась с задачами, а их показатели в последующих тестах без AI не ухудшились. При этом наибольший прирост показали участники с хорошей базовой подготовкой. Более свежий метаанализ 2026 года (Yu et al.) указывает, что ассистенты повышают текущую продуктивность, но убедительного переноса навыков в устойчивые образовательные результаты пока не наблюдается.
5. Скорость вообще оказалась сложнее, чем кажется
Оценка влияния AI на скорость работы дает очень разные цифры в зависимости от условий эксперимента:
- В исследовании GitHub (2022) участники с Copilot написали изолированный HTTP-сервер на 55% быстрее;
- В исследовании METR (начало 2025 года) 16 опытных разработчиков в реальных open-source проектах потратили с нейросетью в среднем на 19% больше времени, хотя субъективно ощущали ускорение;
- По данным опроса Stack Overflow (2025), около 46% разработчиков скорее не доверяют точности AI-инструментов, и лишь 33% выражают доверие.
Эти данные измеряют совершенно разные контексты: от простой лабораторной задачи до работы в многомиллионной кодовой базе. По отчетам DORA (2025), AI выступает мощным усилителем текущего состояния процессов: он умножает плюсы зрелой инженерии и развитой платформы, но одновременно масштабирует хаос и неясную ответственность в слабых командах.
6. Исчезает не профессия junior. Исчезает безопасная простая работа
Раньше начинающим специалистам поручали изолированные базовые задачи: написание CRUD-операций, верстку простых форм или составление адаптеров. Компания получала полезный результат, а junior обучался работе с кодовой базой и прохождению ревью. Сегодня нейросетевые агенты закрывают такие задачи за считанные минуты.
Простое сокращение начинающих позиций приведет к кадровому дефициту в будущем. Senior-инженер — это специалист, регулярно наблюдавший последствия принятых им решений. Для сохранения цепочки обучения необходимо менять саму единицу работы начинающего разработчика. Ему следует доверить не отдельный фрагмент кода, а компактный контур ответственности:
- Восстановление реального intent задачи на основе обсуждений и тикетов;
- Формулирование инвариантов и отрицательных сценариев до начала генерации;
- Делегирование нейросети реализации узкого участка системы;
- Способность подробно объяснить каждое изменение в diff своими словами;
- Контроль тестирования, поэтапного раскатывания (rollout) и сбора метрик;
- Анализ расхождений между начальным прогнозом и поведением системы в продакшене.
7. Human in the loop — это не кнопка Approve
Понятие «человек в контуре» (human in the loop) часто формализуется до обычного нажатия кнопки подтверждения под огромным diff после автономной работы агента. Однако реальный человеческий контроль подразумевает непрерывную ответственность на каждом этапе и разбиение задач на части, доступные для полноценного когнитивного анализа.
Грамотный процесс строится по принципу парного программирования: человек задает ограничения, AI предлагает варианты реализации, после чего код принимается мелкими порциями и проверяется не только на позитивных сценариях (happy path). Осторожность опытных разработчиков вполне оправдана: чем выше ответственность за результат, тем четче специалист понимает, какими способами сгенерированный код может дать сбой.
8. Как использовать AI так, чтобы компетентность росла
Чтобы работа с искусственным интеллектом способствовала профессиональному росту, я советую четко разделять производственный режим (ориентированный на скорость доставки) и тренировочный режим (ориентированный на глубокое понимание). Для повседневной практики я выделяю 7 ключевых правил:
- Прогноз до генерации: до отправки запроса зафиксируйте ожидаемое решение и риски;
- Запрос вариантов и trade-offs: просите нейросеть предложить 2–3 разных подхода с их плюсами и минусами;
- Защита diff своими словами: если автор не может объяснять код без фразы «так выдал агент», задача не готова;
- Регулярная работа без AI: проведение контрольных сессий без нейросетей для проверки собственных навыков;
- Акцент на диагностику: разбор сложных багов и инцидентов учит лучше, чем шаблонное написание кода;
- Оценка по качеству суждений: измеряйте рост не количеством закрытых тикетов, а точностью прогнозирования рисков;
- Контроль последствий: автор изменения обязан лично участвовать в релизе и анализе метрик.
9. Что придется изменить командам
Проблема подготовки кадров не может быть решена только личной дисциплиной начинающих инженеров. Командам необходимо скорректировать внутренние инженерные процессы:
- Смещение фокуса Code Review: обсуждать не синтаксис, а защищаемые инварианты, выбранные компромиссы и поведение при сбоях;
- Ограничение размера задач: объем изменений должен оставаться в пределах человеческого восприятия;
- Внедрение Design и Post-implementation Review: проверка архитектурной модели до генерации и ее анализ после эксплуатации;
- Изменение роли менторства: Senior показывает, как правильно задавать вопросы, находить неявные контракты и тестировать гипотезы;
- Использование инцидентов для обучения: разбор postmortem и анализ цепочек решений развивают интуицию лучше сухих туториалов.
10. Новая лестница компетенций
С учетом автоматизации базового написания кода, градация профессионального роста разработчика приобретает следующий вид:
| Уровень | Ключевая способность | Типичная ошибка |
|---|---|---|
| Исполнитель | Получение работающего результата по четким ТЗ | Принятие демо за готовность к релизу |
| Проверяющий | Поиск дефектов в коде и автотестах | Проверка только заранее описанных условий |
| Проектировщик | Определение инвариантов, контрактов и failure modes | Локальная оптимизация без учета всей системы |
| Владелец решения | Связывание техники, бизнес-рисков и эксплуатации | Смешивание скорости с выходом ценности |
| Инженерный лидер | Создание среды для масштабирования верных решений | Опора на героические усилия отдельных Senior |
11. Так откуда все-таки возьмутся будущие сеньоры?
Будущие Senior-инженеры появятся там, где нейросети используются для расширения практики, а не для ее скрытия. Специалист с нейросетевым агентом способ за год изучить больше архитектурных паттернов и разобрать больше чужого кода, чем раньше за несколько лет. Но этот рост возможен лишь при условии, что человек остается автором гипотез и финальных решений.
Чек-лист перед принятием AI-generated изменений:
- Я могу доступно объяснить суть изменений и их границы своими словами;
- До генерации были зафиксированы инварианты и негативные сценарии;
- Объем diff позволяет провести полноценный ручной анализ;
- Тесты покрывают сбои, повторные запросы, права доступа и конкурентность;
- Выполнена независимая проверка, не зависящая от ответа той же модели;
- Зафиксированы метрики, подтверждающие корректность работы после релиза;
- Подготовлен понятный план отката (rollback);
- Автор изменений задействован в мониторинге результатов на продакшене;
- При отключении AI команда сохраняет полное понимание устройства системы.
Список исследований и источников:
- Kazemitabaar et al. Studying the Effect of AI Code Generators on Supporting Novice Learners in Introductory Programming. CHI 2023.
- GitHub Research. Quantifying GitHub Copilot’s impact on developer productivity, 2022.
- METR. Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity, 2025 (updated 2026).
- DORA. State of AI-assisted Software Development 2025.
- Stack Overflow. Developer Survey: AI, 2025.
- Yu et al. A meta-analysis of the effect of generative AI on productivity and learning in programming, 2026.
- DORA / UC Berkeley. Managing AI dependency: How students are establishing guardrails with AI, 2026.
Источник: habr.com
