
Полная версия
Как думать, когда код пишет ИИ

Как думать, когда код пишет ИИ
Введение
Я пишу это введение в 2026 году, когда строка кода перестала быть валютой.
Ещё три года назад разработчик измерял свою ценность написанными строками, закрытыми тикетами, количеством коммитов. Мы называли себя инженерами, но в глубине души оставались ремесленниками, которые гордятся мозолями на пальцах и объёмом написанного кода. Мы спорили о стилях форматирования, о паттернах проектирования, о том, как правильно называть переменные. Мы читали код великих, чтобы научиться писать так же. Мы коллекционировали сниппеты в памяти и вызывали их в нужный момент, как заклинания. Код был нашим ремеслом, нашей идентичностью, нашей гордостью.
Эта эпоха закончилась.
Сегодня строка кода стоит дешевле, чем когда-либо в истории. Вы можете попросить модель написать микросервис, и она напишет его быстрее, чем вы наберёте запрос в поисковике. Вы можете попросить её переписать модуль на другом языке, и она сделает это за секунды. Вы можете попросить её найти баг, и она проанализирует тысячи строк кода и выдаст гипотезу. Код перестал быть дефицитным ресурсом. Он стал изобильным. А когда что-то становится изобильным, оно перестаёт быть источником ценности.
Это книга не о том, как писать промпты.
Книг о промпт-инжиниринге уже десятки. Они рассказывают, как формулировать запросы, как использовать few-shot learning, как управлять контекстным окном. Это важные знания, и часть этой книги тоже о них. Но это не главное. Главное происходит не в промпте. Главное происходит в голове разработчика, который смотрит на пустой экран и понимает: «Я больше не знаю, в чём моя работа».
Потому что кризис, вызванный появлением больших языковых моделей, — это не кризис безработицы. Рынок разработки не рухнул, вакансии не исчезли, зарплаты не обнулились. Кризис — внутри. Это кризис идентичности. Если я не пишу код, то кто я? Если моя ценность больше не в знании синтаксиса, то в чём она? Если машина решает задачи быстрее меня, то зачем я?
Эта книга — ответ на эти вопросы.
Я предлагаю вам переосмыслить себя не как «кодера», а как Архитектора Намерений. Человека, чья работа — не писать код, а проектировать смыслы. Не реализовывать алгоритмы, а описывать желаемое поведение системы и проверять, что оно достигнуто. Не знать синтаксис наизусть, а понимать, какую проблему мы решаем и почему именно так. Не командовать машиной, а дирижировать ансамблем из специализированных ИИ-агентов, каждый из которых гениален в своей узкой области.
Это звучит как фантазия. Но это реальность, в которой я живу и работаю последние несколько лет. Я прошёл через все пять стадий принятия: от отрицания («это игрушка, она не сможет написать мой код») до принятия («я — мыслитель, вооружённый машиной, а не оператор клавиатуры»). Я набил шишки, совершил ошибки, которые стоили мне и моим проектам времени и денег. И я написал эту книгу, чтобы вы прошли этот путь быстрее и с меньшими потерями.
Книга построена как путешествие через четыре территории.
Первая часть — прощание с эпохой человеческого кода. Мы посмотрим в лицо страху, поймём, что именно умирает в нашей профессии, а что — только рождается. Мы разберём экономику кода завтрашнего дня и поймём, за что платят деньги теперь.
Вторая часть — карта новых компетенций. Это практический инструментарий: как формулировать спецификации с математической точностью, как управлять вниманием модели через контекстное окно, как декомпозировать систему на кванты смысла, как тренировать вкус, чтобы отличать элегантное решение от синтаксически верного мусора, как находить ошибки, которые вы не могли бы придумать сами.
Третья часть — новая методология разработки. Как устроена отладка, когда баг может быть не в коде, а в вашей ментальной модели. Почему комментарий в коде — это надгробие над умершей мыслью, и как сделать так, чтобы знание жило в спецификации. Как проектировать агентов с характером и распределять между ними зоны автономности. Как управлять ансамблем из нескольких моделей, которые спорят друг с другом, а вы разрешаете их конфликты.
Четвёртая часть — самое важное. О том, что не может быть автоматизировано. Эмпатия к пользователю, которая не вычисляется. Способность усомниться в рамке задачи и спросить: «А ту ли проблему мы решаем?» Этический компас, который не может быть сведён к оптимизации целевой функции. Интуиция, которая чувствует неправильность архитектуры до того, как это можно доказать. Озарение, которое прыгает через логическую пропасть, недоступную градиентному спуску. И ответственность — то, что отличает автора от оператора.
В конце книги я поместил Кодекс разработчика эпохи LLM — десять принципов, которые можно распечатать и повесить над монитором. Это не догма, а компас. Когда вас накроет волной новых инструментов, новых моделей, новых метрик — сверяйтесь с ним. Он напомнит вам, кто вы есть на самом деле.
Эта книга — не плач по уходящей эпохе и не ода технологическому прогрессу. Это полевое руководство по выживанию и процветанию в мире, где код пишет ИИ. Она для тех, кто чувствует тревогу, глядя на пустой редактор, и не знает, что теперь делать. Для тех, кто уже использует LLM, но подозревает, что использует лишь малую часть возможностей. Для тех, кто хочет не просто сохранить работу, а стать лучшим в новой реальности.
Ремесло наборщика текста умерло. Родилась профессия Архитектора Намерений.
Добро пожаловать в неё.
Часть I. Конец эпохи «человеческого кода».
Глава 1. Прощай, ремесленник: почему строка кода перестала быть ценностью.
1.1. Синдром «чистого листа»: почему ИИ побеждает нас на стадии boilerplate-а
Аннотация (Полная версия):
Это вскрытие главной психологической травмы разработчика — страха пустого редактора, который мы привыкли героизировать. Десятилетиями нас учили, что «начать сложнее всего», а умение быстро набивать import, class и main — признак профессионализма. Мы исследуем фундаментальный сдвиг кривой продуктивности. Раньше она была логарифмической: первые 80% типового кода писались легко, создавая иллюзию прогресса, а оставшиеся 20% сложной бизнес-логики требовали 80% времени. LLM обнулила первый этап. Порог входа в «первые 80%» исчез, оставив разработчика один на один с самой сложной частью сразу. Это вызывает не облегчение, а экзистенциальный ужас: «Если я не пишу код, что я вообще делаю?». Глава отвечает на этот вопрос.
Мы начнем с яркого автобиографического sketches (зарисовки) типового утра разработчика «до» и «после». «До»: ритуал наливания кофе, ощущение важности первых строк, медитативная настройка. «После»: палец зависает над клавиатурой, нужно не писать, а формулировать. Возникает тревога «чистого листа промпта» — парадоксально, она оказывается сильнее страха чистого листа кода.
1. Экономика когнитивной нагрузки и сломанный цикл дофамина.
Здесь мы вводим понятие «Когнитивного дофаминового долга».
Раньше: Написание boilerplate-кода было легальным способом «разогнаться». Выполняя простые, монотонные действия (создать файл, написать каркас класса, подключить библиотеки), разработчик получал микро-дозы дофамина за «завершенные дела». Мозг входил в рабочий ритм. Это была смазка для перехода к сложным задачам.
Теперь: ИИ съедает эту «разминку». Разработчик сразу сталкивается со сложной задачей декомпозиции и верификации без предварительного разогрева. Мозг, не получив привычного дофаминового аванса, саботирует работу. Мы разберем, как обмануть мозг, создавая новые ритуалы «быстрых побед» через микропромптинг и визуальное моделирование вместо ручного набора текста.
2. Эксперимент: «Скорость создания CRUD-контроллера» (Практическая часть).
Мы проведем читателя через иммерсивный A/B-тест, который он может повторить сам.
Сценарий: Создать REST API эндпоинт для управления сущностью «Продукт» с валидацией, маппингом DTO, пагинацией и базовой аутентификацией.
Фаза A (Классический подход): Засекаем время. Пишем ручками: модель, репозиторий, сервис, контроллер. По пути гуглим забытые аннотации валидации, настраиваем маппер. Результат: ~40 минут работы, чувство «честной усталости», код на 150-200 строк.
Фаза B (ИИ-подход): Пишем промпт-спецификацию (5 минут). Получаем готовый код (15 секунд). Тратим следующие 35 минут на: чтение, понимание, правку нейминга под стандарты команды, дописывание кастомной логики в пагинации, написание тестов (которые тоже сгенерировал ИИ, но мы проверяем их честность).
Анализ результатов: Время сопоставимо. Но в Фазе A мы были «кодирующими машинами». В Фазе B — архитекторами и контролерами качества. Мы задаем читателю вопрос: «Какая усталость ценнее для вашего роста? Усталость в пальцах или усталость в принимаемых решениях?». Сравнительная таблица «Затраченная энергия» покажет, что ИИ не экономит время на сложных задачах (пока), а перераспределяет его с механики на мышление.
3. Таблица: «Типовые задачи, которые вы никогда больше не должны писать руками».
Это будет провокационный, но методичный список, разбитый по доменам. Смысл в том, чтобы прекратить расценивать написание этого кода как «работу».
Бэкенд: Контроллеры и роутинг, DTO и маппинги (ModelMapper/MapStruct), валидация входных данных, генерация схем баз данных и миграций, стандартные реализации JPA-репозиториев, документация OpenAPI/Swagger.
Фронтенд: Верстка типовых форм и списков (особенно с Tailwind/Bootstrap), стейт-менеджмент (Redux boilerplate), хуки для fetch-запросов с обработкой loading/error, юнит-тесты с моками для тривиальных функций.
DevOps: Написание Dockerfile'ов для стандартных рантаймов, GitHub Actions для CI/CD (простые пайплайны), Helm-чарты по умолчанию.
Принцип: Если ваш запрос в Google по задаче всегда заканчивался на статью с Baeldung, Medium или StackOverflow, то эту задачу уже сейчас должен делать ИИ.
4. Чек-лист: «Занимаюсь ли я механическим кодированием вместо мышления?»
Глава завершится инструментом для самоаудита прямо в процессе работы. Читателю предлагается повесить этот чек-лист на монитор. Если во время работы он ловит себя на 3 и более пунктах, он должен остановиться и передать задачу модели.
Вы копируете код с одного экрана на другой или из прошлого проекта? Симптом: вы — компилятор.
Вы пишете структуру, которая повторяет структуру из соседнего файла? Симптом: вы — генератор бойлерплейта.
Вы вручную преобразуете один формат данных в другой (Entity -> DTO -> JSON)? Симптом: вы — транслятор.
Ваша текущая мысль — не «как это должно работать», а «как пишется синтаксис этой аннотации»? Симптом: вы — словарь, а не инженер.
Вы откладываете основную задачу, потому что «нужно сначала всё красиво настроить»? Симптом: прокрастинация через псевдо-работу.
Итоговый вывод подраздела: Синдром чистого листа излечивается не смирением перед пустотой, а переводом взгляда с редактора кода на редактор требований. Ваше ремесло больше не в том, чтобы заполнить пустоту символами, а в том, чтобы править ею.
1.2. От машины-исполнителя к машине-соавтору: краткая история отношений программиста и инструмента
Аннотация (Полная версия):
Это не просто исторический экскурс, а терапия принятия неизбежного через понимание цикличности прогресса. Мы совершим путешествие от перфокарт и тумблеров до GPT-4, но представим его не как технологический прогресс, а как эволюцию языков абстракции и смену ролей человека. Ассемблер, C, Python — каждый шаг отдалял нас от «железа» и уничтожал целый класс специалистов, чтобы породить новый, более высокооплачиваемый. LLM — это не просто очередной язык сверхвысокого уровня. Это первый инструмент, который оперирует не синтаксисом, а интенцией. Это шаг от «машины-инструмента» (молоток) к «машине-коллеге» (подмастерье), что требует не просто освоения нового синтаксиса, а смены модели поведения с «командира» на «наставника». Глава доказывает: мы уже проходили этот ужас и восторг трижды за последние 70 лет.
Мы откроем главу сильной метафорой: «Программист — это не тот, кто говорит с машиной. Это тот, кто говорит с абстракцией. Просто раньше абстракцией был язык, а теперь — сама логика рассуждения».
1. Историческая цепь «убитых» профессий и рожденных гениев.
Мы проследим три тектонических сдвига, каждый из которых сопровождался криком «Программирование умерло!».
Эпоха 1: Конец «Властелинов Железа» (1950-е).
Кто исчез: Специалисты по коммутации штекеров и наборщики машинных кодов в восьмеричной системе. Работа требовала уникальной памяти и «чувства железа».
Катализатор: Появление Ассемблера и первых компиляторов (Fortran, COBOL). Сначала их высмеивали: «Настоящие программисты не используют мнемоники, они знают коды операций процессора наизусть!».
Кто родился: Инженер-программист. Тот, кто мыслит структурами данных и алгоритмами, а не электрическими сигналами. Ценность сместилась с «как накормить машину перфокартами» на «как решить дифференциальное уравнение с помощью кода».
Параллель с сегодня: «Настоящие программисты не используют подсказки ИИ, они помнят все методы стандартной библиотеки!». Звучит знакомо?
Эпоха 2: Конец «Оптимизаторов памяти» (1990-е – 2000-е).
Кто исчез: Специалисты по ручному управлению памятью (malloc/free), гуру побитовых сдвигов и оптимизаций на уровне ассемблерных вставок.
Катализатор: Массовое внедрение языков с автоматическим управлением памятью (Java, C#, Python). Старожилы были в ярости: «Этот мусорщик непредсказуем! Вы не контролируете железо! Эти ваши виртуальные машины жрут всю память!».
Кто родился: Архитектор программных систем. Разработчик, который перестал думать о выравнивании байтов и начал думать о паттернах проектирования, масштабировании и чистых интерфейсах. Стоимость железа упала, стоимость сложности взлетела. Освободившуюся когнитивную мощность направили на борьбу со сложностью, а не с утечками памяти.
Параллель с сегодня: «ИИ генерирует нечитаемый, неоптимальный код! Он использует лишние аллокации!». Мы перестаем думать о том, как именно выделилась память, и начинаем думать о том, почему мы вообще выделяем эту сущность в домене.
Эпоха 3: Конец «Энциклопедистов API» (2020-е и далее).
Кто исчезает: Разработчик, чья основная ценность — знание наизусть сигнатур методов, флагов конфигурации, нюансов конкретного фреймворка или API библиотеки. «Живая документация».
Катализатор: LLM, обученные на всём корпусе публичного кода. Модель знает любой фреймворк лучше любого человека.
Кто рождается: Инженер по спецификациям и верификации (то, о чём вся книга). Человек, который не спрашивает «Какой параметр у этой функции?», а задает вопрос: «Какой контракт эта функция должна выполнять, и как мы проверим, что она его не нарушает?».
2. Смена модели поведения: от командира к наставнику.
Здесь мы вводим ключевую таксономию отношений, которую будем использовать на протяжении всей книги.
Модель «Командир-Солдат» (Эпоха детерминизма): Командир (человек) отдает приказы на языке, который солдат (машина) понимает буквально. Если солдат сделал не то — виноват командир, неправильно сформулировал приказ. Ошибка — это всегда ошибка в синтаксисе или алгоритме. Машина — функция.
Модель «Мастер-Подмастерье» (Эпоха LLM): Мастер (человек) описывает желаемый результат (артефакт), а Подмастерье (ИИ) изготавливает его, используя свои обширные, но бессистемные знания. Подмастерье может напутать, проявить «творчество» не там, где надо, или буквально понять метафору. Мастер должен: 1) Четко описать артефакт (Техзадание). 2) Проверить работу. 3) Объяснить, что не так, чтобы Подмастерье переделал. Машина — недетерминированный коллега.
Мы нарисуем таблицу сравнения этих двух моделей по критериям: «Источник ошибки», «Стиль коммуникации», «Единица работы», «Главный навык человека».
3. Анатомия умирающих «священных коров».
Провокационный и отрезвляющий список навыков, которые переходят из разряда «Капитал разработчика» в разряд «Устаревшее ремесло».
Корова №1: Знание API наизусть. Раньше разработчик, знающий 200 методов jQuery или Spring Boot, стоил дороже. Теперь это бесполезно. ИИ вспомнит любой метод за вас. Ценность переходит в понимание, какой класс задач решает это API, и в умение выбрать между библиотеками, а не запомнить их.
Корова №2: Синтаксический перфекционизм. Споры о «правильном» форматировании, скобках на новой строке, именовании переменных уходят в прошлое. Это работа для линтера и ИИ-форматтера. Попытка человека контролировать это вручную — аналог ручной полировки каждого болта в двигателе, когда есть заводской робот.
Корова №3: Умение писать «с нуля» без гугла. Этот навык был артефактом эпохи bad internet и собеседований у белой доски. Теперь он вреден. Умение писать, не опираясь на коллективный разум (будь то Google или LLM), означает писать медленно и изолированно. Новый навык — скорость навигации в сгенерированном и умение задать правильный вопрос.
Корова №4: Искусство «хорошего комментария». Комментарий, объясняющий как работает код, умрет (код должен читаться). Комментарий, объясняющий почему, переедет в промпт и будет привязан к сгенерированному блоку как его неотъемлемая мета-шапка.
Итоговый вывод подраздела: Каждый виток эволюции инструментов «убивал» программиста как оператора и возрождал его как мыслителя. Отказ признать в LLM соавтора, а не просто «умную автодополнялку» — это попытка остаться высокооплачиваемым наборщиком текста в мире, где печатный станок уже изобрели. История не прощает такой слепоты дважды.
1.3. Экономика кода завтрашнего дня: почему за синтаксис больше не платят
Аннотация (Полная версия):
Модель ценообразования в индустрии переворачивается с ног на голову. На наших глазах происходит то же, что случилось с фотографией при переходе от плёнки к цифре: «сделать снимок» перестало быть актом мастерства и затрат. Если код (как текст) стремится к нулевой предельной стоимости, то куда мигрирует ценность? Она уходит в две сферы: дизайн системы (почему мы делаем именно это, а не другое) и верификация (как мы узнаем, что сгенерированное работает правильно). Мы разберём понятие «токенизируемой» и «нетокенизируемой» ценности. Токенизируемое (то, что можно перевести в последовательность символов промпта) — дешевеет. Нетокенизируемое (неявное знание, вкус, понимание контекста бизнеса, личная ответственность) — резко дорожает. Эта глава — компас для навигации в новом рынке труда.
Мы начнём главу с убийственной аналогии из другой индустрии, чтобы снять накал и включить холодный анализ.
1. Урок Kodak: когда создание ценности становится бесплатным.
В 1990-х Kodak контролировал рынок. Ценность была в химическом процессе проявки, в умении сделать 36 хороших кадров. Цифровая фотография сделала сам акт съёмки бесплатным. Нажатие на кнопку обесценилось.
Кто умер: «Чистые фотографы», чья ценность была в умении правильно выставить экспозицию без участия автоматики.
Кто разбогател: Визуальные storyteller'ы, инфлюенсеры, дизайнеры смыслов. А также создатели инструментов обработки (Photoshop, Instagram) — те, кто помогает отбирать, улучшать и распространять.
Параллель: «Чистый кодер», чья ценность в знании синтаксиса и скорости набора, — это фотограф, гордящийся умением вручную настраивать диафрагму. Это всё ещё искусство, но за него больше не платят премию. Платят за историю (продукт) и за композицию (архитектуру).
2. Модель «3D-ценности» разработчика.
Мы вводим замену устаревшей плоской шкале «Junior/Middle/Senior» по количеству технологий. Новая система координат трёхмерна:
Ось X: Глубина (Domain Expertise).
Что это: Не просто «знаю Java», а «понимаю бухгалтерский учёт», «разбираюсь в логистике последней мили», «чувствую регуляторный контекст финтеха».
Почему дорожает: ИИ не может провести 50 интервью с бухгалтерами, чтобы понять их невысказанную боль. Он не чувствует, что «вот этот налог на добавленную стоимость рассчитывается не по тому документу, хотя в ТЗ написано иначе». Глубина — это способность заметить, что промпт, спущенный бизнесом, — чушь, которая сломает реальный процесс.
Метрика: Время от входа в домен до первого найденного логического противоречия в требованиях.
Ось Y: Ширина (System Integration & Lateral Vision).
Что это: Понимание, как система встраивается в ландшафт. Что аутентификация — это не просто «залогинился», а цепочка: Keycloak -> API Gateway -> Audit Log -> Billing.
Почему дорожает: LLM мыслит в рамках контекстного окна. Даже с RAG она склонна к локальной оптимизации. Только человек видит, что «ускорение этого микросервиса вызовет каскадный сбой в очереди сообщений».
Метрика: Количество системных инцидентов, предотвращённых на стадии дизайна, а не отловленных в проде.
Ось Z: Четкость (Precision in Ambiguity).
Что это: Умение формализовать «нечёткие хотелки». Способность взять расплывчатый запрос бизнеса («Сделайте нам красивый дашборд, чтобы мы видели эффективность») и превратить его в исчерпывающую спецификацию, которую ИИ не сможет интерпретировать двусмысленно.
Почему дорожает: Это навык перевода с «человеческого неструктурированного» на «формально-человеческий». Это главный интерфейсный навык будущего. Мусор на входе в промпт — мусор на выходе из модели. Чёткость — это фильтр, который стоит миллионы.
Метрика: Количество итераций на доработку сгенерированного кода до его приемки.
3. Анализ рынка: кто умрёт, кто родится, и где деньги.
Мы дадим отрезвляющую таблицу вакансий, избегая хайпа, но опираясь на ранние сигналы с рынка (Job Postings, аналитика венчурных стартапов).
Исчезающие или стагнирующие роли (3-5 лет):
«Верстальщик форм» / HTML/CSS Coder (без UX-мышления). Причина: Figma-to-Code плагины и V0 от Vercel.
«CRUD-разработчик» (пишущий стандартные REST API). Причина: генерация конечных точек по схеме данных.
«Копирайтер-технарь» для написания стандартной документации. Причина: авто-документирование кода.
Ручной тестировщик регрессии без навыков авто-тестинга. Причина: ИИ-агенты для обхода UI.
Растущие и высокооплачиваемые роли:
Инженер по спецификациям (Specification Engineer). Человек, который пишет не промпты, а формальные, верифицируемые ТЗ. Это элитный аналитик.
AI Code Auditor / Verifier. Специалист по надзору за ИИ-кодом. Его работа — не найти баг, а найти место, где ИИ прошел мимо контракта. Работа с property-based тестами и формальными методами.












