«Единственная возможность задержаться в профессии ещё на несколько лет». Опытные разработчики объясняют, почему привычное программирование скоро всё
Специалисты с опытом 30+ лет рассказали о своих отношениях с искусственным интеллектом.
Как оцениваете влияние ИИ на программирование в последние пару лет?
— Как и большинство, первый раз я открыл ChatGPT два с лишним года назад. Но в тему программирования с AI зашёл прошлым летом, поэтому оценивать могу только последний год. Я бы сказал, что заметные невооружённым глазом изменения происходили и продолжают происходить каждый месяц-два. Это улучшение качества предлагаемой моделями архитектуры, SW-дизайна, алгоритмов и непосредственно кода, снижение количества галлюцинаций, увеличение размера контекста, reasoning.
— Когда оцениваешь важные тренды, недостаточно смотреть на точки развития тренда на временной шкале «сейчас и раньше» и, проведя через точки прямую, сделать линейную экстраполяцию. Необходимо понимать не только скорость самих изменений, но и темп, с которым изменяется эта скорость (аналогично ускорению в механике). А также то, какие движущие силы и силы сопротивления действуют на этот тренд. Это позволяет понять, где тренд будет завтра и послезавтра.
Сейчас ведущие технологические корпорации и исследовательские лаборатории вкладывают много сил, чтобы научить ИИ программировать на уровне, превосходящем человека. В первую очередь потому, что такой ИИ-программист поможет самим корпорациям и лабораториям создавать ещё лучший ИИ быстрее и дешевле. А значит, они первыми выйдут на уровень технологической рекурсии — когда ИИ сам ускоряет своё улучшение, отрываясь от конкурентов в гонке за контролем над будущим.
Да, скачок произошёл. И не количественный, а именно качественный: от автодополнения к генерации осмысленных фрагментов кода. От вспомогательных тулов к полноценным соавторам. LLM научились не просто «дописывать строку», а удерживать архитектуру, контекст задачи, намерения пользователя. Это уже не улучшенный autocomplete — это новая парадигма создания программ.
Главный показатель — скорость и масштаб интеграции. GitHub, Replit, Cursor, Codeium, AWS CodeWhisperer, OpenAI Codex, GPT-4o, Devin и другие не дополняют IDE, они становятся интерфейсом к вычислению. Инструменты перестали быть расширением программиста. Они начали его вытеснять.
— Я использую ИИ последние два года. Его взрывной качественный рост за это время впечатляет. То что творят Cursor и Claude сейчас — это фантастика. Тем не менее, взаимодействие ИИ с реальным миром всё ещё на стадии становления. Не думаю, что Model Context Protocol (MCP) будет достаточно. Разработчикам ИИ необходимо двигаться дальше и быстрее.
Как используете ИИ-инструменты в работе?
Тимур Хащеватский:
— В начале пользовался ChatGPT. Потом, попробовав Claude, переключился на него. Работал в режиме обычных чатов на их сайтах — копипастил в VS Code. Сейчас использую Continue (с Claude в качестве основной модели) и изредка Claude Code с несколькими серверами MCP.
Но и от работы через чаты Сlaude.ai и ChatGPT не отказался: длинные обстоятельные обсуждения архитектуры и алгоритмов там вести удобней и приятней. Первые версии модулей обычно делаю в чате, в нём же делаю серьёзные переработки алгоритмов. Непосредственно в IDE мне удобней заниматься либо мелочёвкой — причёсывать код, добавлять логирование и комментарии, либо изменениями, затрагивающими сразу несколько файлов (скажем поменять интерфейсы вызова функции).
Виктор Хаменок:
— Каждый день я использую Cursor, v0, GPT-4o. Я давно не программировал и очень отстал от современного разработчика. Но сейчас отсутствие «мышечной памяти» в синтаксисе, библиотеках и инструментах становится не критичным — ИИ легко заполняет эти пробелы.
Главное — ясность намерения, структура задачи, понимание архитектуры. Я стал думать как архитектор и продуктовый стратег, не отвлекаясь на рутину инженера.
Раньше идея тормозилась на этапе реализации — сейчас реализация догоняет идею почти в реальном времени.
Артур Исаенко:
— Да, постоянно. Я использую ИИ для meeting notes, быстрого анализа документов, генерации кода, анализа кода, создания прототипов, создания спецификаций и некоторого анализа данных. Моя работа с ИИ стала более эффективной.
В каких ситуациях ИИ наиболее полезен? Может быть, есть примеры успешной работы ИИ из личного опыта?
Тимур Хащеватский:
— Есть интересный (по крайней мере для меня) недавний опыт. В мае я прошёл тренинг Hugging Face по построению AI-агентов с Retrieval Augmented Generation. Сами по себе материалы тренинга несложны — изучаются за пару дней. Интерес представляет экзамен на сертификат — нужно соорудить агента, который умеет отвечать на вопросы первого (самого простого) уровня из GAIA benchmark. Вопросы разнообразны — требуют ризонинга, поиска в интернете и википедии, скрейпинга, анализа видео и аудио, Excel-файлов, генерации и выполнения скриптов Python. Вот пара примеров таких вопросов (оригиналы вопросов Тимур предоставил на английском языке — Прим.):
- Как зовут единственного лауреата конкурса молодых дирижёров Malco Competitions из XX века (после 1977 года), который является гражданином страны, которая больше не существует?
- Какое наибольшее количество видов птиц одновременно оказались в кадре в этом видео?
А вот это мой любимый вопрос:
- Я составляю список покупок для мамы, но она профессор ботаники и настоящий педант в ситуациях, связанных с категоризации вещей. Мне нужно добавить различные продукты в разные категории в этом списке. Но если я сделаю ошибку, она не купит товары, попавшие в неправильную категорию. Вот список продуктов, которые у меня есть сейчас: молоко, яйца, мука, зерновой кофе, печенье Oreo, батат, свежий базилик, сливы, зелёная фасоль, рис, кукуруза, сладкий перец, душистый перец, жёлуди, тыква-акорн, брокколи, сельдерей, цуккини, салат, арахис. Мне нужно сделать категории для фруктов и овощей. Сделай, пожалуйста, список только из овощей из моего списка. Если ты это сделаешь, я смогу понять, как распределить остальную часть списка по соответствующим категориям. Пожалуйста, помни, что моя мама — настоящий педант. Поэтому убедись, что в списке не окажется фруктов в ботаническом значении этого термина. Иначе она не купит их. Овощи в списке расположи, пожалуйста, в алфавитном порядке, чтобы каждый элемент был отделен от другого запятыми.
То есть нужно написать и предоставить агенту в пользование инструменты для работы с каждым типом источников информации. А также организовать цикл рассуждений самого агента — он должен уметь составить первоначальный план, выстроить цепочку рассуждений (Chain of Thoughts), выбрать подходящие инструменты из предоставленных, оценивать их ответы. И, при необходимости, если рассуждения заходят куда-то не туда, генерировать новые гипотезы и изменять план.
Вот упрощённая схема (на самом деле понадобилась ещё пара контуров) — реализовывал в LangGraph:
При этом большинство инструментов (tools) не получается сделать тривиальными. Вопросы там подобраны так, что примитивно реализованный скрейпинг нарвётся на сайт с защитой от скрейпинга. Примитивно реализованный поиск по википедии попадёт на страницы большого объёма с нестандартным форматированием секций и таблиц. В результате большинство tools приходится делать «умными». То есть нужно дать им возможность использовать LLM (скажем, в поиске по википедии LLM использовалась для ранжирования страниц, отбора внутри найденных страниц нужных секций, отбора внутри секций нужной информации).
Это приводит нас к необходимости децентрализации. Вместо «супермозга» с прикрученными API получается «Project Manager» с «командой специалистов». И здесь начинается самое забавное. Оркестровка и отладка взаимодействия «умных» tools с LLM под капотом во многом похожа на организацию работы команды живых инженеров. Ты должен объяснить «эксперту» по Excel, что он ни в коем случае не должен заниматься расчётами самостоятельно (так как математик из него никакой), а должен позволить «коллеге-программисту» сгенерировать для этого код на Питоне. А «менеджеру проекта» (основному агенту) — что он должен научиться доверять «подчиненным» больше, чем своим собственным рассуждениям.
Они, кстати, любят сопротивляться и тянуть одеяло на себя — как и некоторые их живые коллеги. Какую-то из подобных проблем решил prompt с угрозами — известная техника prompt engineering. Но это заставило меня истерически смеяться: управляя командами из людей, я 25 лет как-то обходился без угроз, но наконец перешел на «тёмную сторону силы».
Именно «концептуальная» отладка — анализ цепочек рассуждений — самое интересное и сложное. И это единственная часть, где LLM не слишком хорошо помогают решать проблемы, поэтому приходится использовать белковый мозг.
Вот пример. Для последнего из вопросов (там, где для списка покупок нужно отфильтровать овощи по строго ботаническому определению) сама по себе фильтрация делалась при помощи поиска в википедии, вполне надёжно. Проблема возникла с тем, что в изначальном списке у нас был «свежий базилик», а после всех кругов поисков и анализа «свежесть» исчезала. В конечный список базилик попадал без этого уточнения.
Я довольно много времени потратил, обсуждая возможные решения с Claude и с ChatGPT, но большинство их советов представляли из себя попытки решить частную проблему вместо общей. Например, включить в prompt жёсткое требование по использованию словосочетаний из первоначального вопроса. Другими словами, это были заплатки. В то время как правильное (по крайней мере рабочее) решение — дополнительный контур семантического контроля на соответствие ответа-кандидата ожиданиям спрашивающего. С объяснением и включением в контекст агента причин отказа.
Подобных проблем, когда при повышении уровня абстракции проблем LLM не справляется и скатывается в частные случаи, было несколько. В принципе, только тогда я ощущал, что ещё для чего-то нужен.
Приключение заняло примерно 20 вечеров, иногда с ночами (трудно было оторваться). Получилось около 9000 строк кода, полностью написанного вайб-кодированием (больше половины — тесты). В целом тестирование и отладка отняли не менее 80% процентов времени. Это сходно с доэйайской эрой, но практически вся отладка — это именно отладка высокоуровневой логики. Любые проблемы кода, если и возникали, то исправлялись Claude мгновенно после анализа логов.
Виктор Хаменок:
— ИИ идеален, если надо быстро набросать прототип приложения или сайта. Я практически не обращаюсь к документации и туториалам, чатик находит ответы и обучает гораздо быстрее. Часто использую ИИ для генерации нескольких вариантов интерфейса и выбираю из них самые удачные решения. Активно использую ChatGPT для брейншторминга и критики идей нового продукта.
Это как иметь рядом мгновенно откликающегося собеседника, способного за секунды предложить десятки альтернативных подходов, предупредить о типовых ошибках и даже сгенерировать маркетинговые материалы.
Особенно это полезно в ранних фазах, когда важна скорость итераций, а не вылизанный код. Конечно, если это не прототип, а production код, то требуется, как минимум, валидация кода со стороны опытного разработчика. Но это пока что. Думаю, что следующий скачок произойдёт тогда, когда ИИ научится учитывать весь стек, от бизнес-логики и UI до инфраструктуры и безопасности. И сам сможет проверять свои решения на корректность.
Уже сейчас он близок к этому: GPT-4o успешно создаёт рабочие фичи с тестами, миграциями и API-документацией. Проблема не в интеллекте модели, а в границах контекста и отсутствии памяти между сессиями. Когда это решат, роль человека сведётся к постановке задачи и контролю за целостностью продукта.
Артур Исаенко:
— Использование ИИ сейчас, думаю, наиболее эффективно для создания прототипов под ключ. Анализ легаси кода тоже с его помощью ускоряется. При этом важно не терять контроль над кодом и понимать как он работает. Отладка — это большая область, где есть что улучшать.
Как вы относитесь к качеству кода от ИИ? Можно ли доверять ему критически важные участки проектов?
Тимур Хащеватский:
— Доверяй but verify ©. Я абсолютно уверен, что доверять критические участки кода AI можно и нужно. Но на данный момент не в режиме «золотой рыбки», а в режиме равноправного собеседника с правом на ошибку — Chain of Thoughts, совместный brainstorming, критика, предоставление доказательств. Иначе можно остаться у разбитого корыта. При нынешних темпах эволюции это сотрудничество вряд ли продлится очень долго, но пока что без него не обойтись.
Виктор Хаменок:
— Для того, чтобы эффективно пользоваться инструментом, надо хорошо понимать его возможности и ограничения. ИИ в программировании прогрессирует каждый месяц. Пока за ним стоит перепроверять критические участки, но уже скоро он будет это делать сам. И сможет делать намного лучше опытного человека.
Артур Исаенко:
— Peer to peer code review никто не отменял. Можно использовать какие угодно инструменты для анализа кода, но принимает merge request всегда человек, с него и спрос. Как в свое время говорил Л. П. Берия, «у каждой ошибки в JIRA есть имя, фамилия и должность» (шутка).
Программистам пора изучать новое? Когда-то критические знания и навыки становятся менее важными?
Тимур Хащеватский:
— Я пессимист и считаю, что AI вытеснит нас из всех видов деятельности во вполне обозримом будущем. Но пока мы трепыхаемся, надо держаться за области, в которых наше преимущество продлится чуть дольше. Я думаю, это абстрактное мышление, здравый смысл и физические навыки.
Фундаментальная математика и многотомник Дональда Кнута помогут протянуть дольше, чем глубокое понимание языков программирования. А изученная в свободное время профессия сантехника позволит добавить к карьере ещё годик-другой.
Виктор Хаменок:
— Единственная возможность задержаться в профессии ещё на несколько лет — это стать человеком-оркестром. Ты должен быть способен вместе с ИИ придумать идею для продукта, написать ТЗ, разработать и сверстать UI, сделать прототип, протестировать его, задеплоить и запустить продажи. Понятно, что рядом могут быть такие же люди-оркестры, которые смогут тебя в каких-то областях усилить. Но только усилить, а не заменить. Тогда есть шанс успеть за следующие несколько лет создать два-три хороших продукта.
Учить какие-то языки, фреймворки ещё можно. Но надо делать это поверхностно, чтобы хватало знаний поставить и принять задачу у ИИ. Зазубривать методы API и отличия одной версии библиотеки от другой уже точно не надо.
Артур Исаенко:
— Что-то новое нужно изучать всегда. Когда-то критические навыки постоянно становятся менее важными. Подписываясь на работу в ИТ, мы автоматически соглашаемся с тем, что наши знания постоянно устаревают как ни в какой другой области. Это не хорошо и не плохо, это наша жизнь.
Вспомните паровоз, который стоит на вокзале в Орше. Так будет через 10 лет выглядеть абсолютно любая технология, о которой мы узнаем послезавтра. Важно продолжать учиться всю жизнь, чтобы быть востребованным на рынке труда.
Вот конкретные примеры:
- В 90-х годах очень важно было помнить сигнатуры методов, потому что в мануал за каждой функцией не полезешь. Потом, с появлением нормального контекстного поиска в документации, это стало не нужно.
- До появления гугла очень важно было читать документацию и иметь опыт построения типовых решений, так как на изобретение велосипедов тратилось время, и велосипеды ухудшали maintenance кода. С появлением StackOverflow и похожих сервисов критичность этого скила существенно уменьшилась, можно было гуглить и копипастить.
- Теперь, с появлением ИИ, знать синтаксис, в принципе, можно даже приблизительно.
Подобные инструменты позволяют снизить порог вхождения и увеличить эффективность работы. Где они могут заменить людей? Там, где в первую очередь нужно быстрое решение типовых задач.
Станет ли программирование доступным для непрофессионалов?
Тимур Хащеватский:
— Безусловно. А в авангарде использования плодов AI-революции находятся фаундеры, менеджеры, аналитики. По трём основным причинам:
- Именно им она дает максимальный boost к личной продуктивности.
- Именно их ключевые компетенции, прежде всего здравый смысл и предприимчивость, позволяют использовать новые технологии с максимальными результатами.
- На них AI-революция не давит. А наоборот, повышает их самооценку.
Я вижу сопротивление многих разработчиков. Легко могу его понять и очень ему сочувствую. Оно похоже на снисходительное отношение шахматистов к компьютерам до прихода Deep Blue («он же не мыслит, как человек»). Это на самом деле трудно — видеть, как твой инструмент постепенно, но неотвратимо обгоняет тебя в деле, которое ты выбрал делом своей жизни.
И всё же пройти отрицание, гнев, торг и депрессию лучше побыстрее. Тогда ближайшие годы можно будет провести с большим интересом. И, чем чёрт не шутит, с пользой.
Виктор Хаменок:
— Я бы заменил в вопросе слово «программирование» на «создание программ». Впрочем, ведь «программирование» это и есть «создание программ», только с налётом некой гиковской элитарности.
Так вот, я уверен, что создание программ будет доступным для непрофессионалов очень скоро. Месяц назад в качестве эксперимента я за 4 часа создал on-demand-AppStore, где пользователь словами описывает, какое приложение он хочет получить, а on-demand-AppStore это приложение генерирует.
Здесь единственная проблема в том, что большинству пользователей тяжело сформулировать, какой именно продукт им нужен. Но эту проблему решает небольшая доработка алгоритма, когда чатик задаст уточняющие опциональные вопросы и сгенерирует результат, учтя ответы.
Кому-то, возможно, покажется, что создавать свои программы вместо того, чтобы найти существующие — это долго и сложно. Но у меня есть живой пример того, что это не так. Недавно мы ехали с младшей дочкой на поезде, и она расстроилась, что я не взял с собой шашки. Я говорю, обожди. Описываю задачу ИИ, через три (!) минуты код написан и задеплоен на сервер, и мы уже играем с ней в только что созданную игру на моем планшете. Написать самому оказалось быстрее, чем искать в AppStore платные или псевдобесплатные готовые шашки, в которые можно играть вдвоём на одном экране! Это новый мир, в котором мы живём.
Артур Исаенко:
— И да, и нет. ИИ-инструменты уменьшают порог вхождения для непрофессионалов, позволяют легко создавать типовые решения. Но если нужно что-то более сложное, начинается чёрная магия с промптами, которые требуют более детального описания или ручного изменения кода. И вот тут без профессиональных знаний не обойтись.
Есть ли у вас опасения по поводу использования ИИ в разработке? Например, зависимость от внешних сервисов.
Тимур Хащеватский:
— Похожие вопросы возникали и раньше. «А что вы будете делать без интернета? А при отключении главных Cloud-сервисов — Google, AWS?» и так далее. Ещё раньше — «А что вы будете делать, если это ваше электричество вдруг пропадет?» Человечество всю историю старается поддерживать свою критическую инфраструктуру и до сих пор как-то справлялось.
Если пропадает электричество — используют дизельгенератор. Если пропадает Claude — тот же Continue позволяет использовать Ollama и локальные модели. Которые, конечно, отстают от закрытых флагманов, но юзабельны.
Виктор Хаменок:
— Это такие же опасения, как и страх перед исчезнувшими интернетом и электричеством. Когда я только начинал программировать в 1990-м, доступного Интернета ещё не было. Да и первые программы перед тем, как ввести их в компьютер, я писал в тетрадке. Сейчас, в 2025 году, это кажется забавным.
Зависимость от ИИ-инструментов — это уже данность, как и зависимость от компиляторов, фреймворков, стеков, IDE, сети. Да, это уязвимость. Но одновременно это и точка роста.
Артур Исаенко:
— Да, такая опасность есть, конечно. Но давайте просто заблокируем доступ к интернет. Сколько людей сейчас сможет эффективно работать в offline? Мы живём во времена, когда люди не могут генерить код без гугла и Stack Overflow. И это последнее поколение, которое может генерить код без помощи ИИ. Скоро его сменят те, кто не сможет программировать без ИИ.
Хорошая новость в том, что их производительность будет существенно выше. В конце 90-х хорошей производительностью считалось давать 20 строк хорошо отлаженного кода в сутки. Сейчас это просто смешно.
На месте начинающих разработчиков вы бы сегодня активно изучали фундаментальные основы программирования или ИИ-помощников?
Тимур Хащеватский:
— Разумеется, делал бы и то, и другое. Игнорировать AI-революцию — это как плевать против ветра со всеми вытекающими на штаны последствиями. Но мозги нужно любым способом поддерживать в тонусе. Не забывая при этом, что счастливыми нас делает прежде всего возможность заниматься любим делом.
Виктор Хаменок:
— Если бы сегодня я был молодым разработчиком, то всерьёз подумал бы о том, чтобы выбрать другую специальность. Поймите меня правильно, я обожаю программировать. Для меня это и искусство, и источник интеллектуального кайфа.
Но я реально уверен, что программированию в том виде, в котором мы его знаем, осталось меньше десяти лет. Код как ручной труд уходит. Его место занимает постановка задач, проверка решений, работа с абстракциями. Если ты входишь в профессию сейчас — тебе придётся конкурировать не с другими людьми, а с ИИ. И единственный способ остаться на плаву — подняться на уровень выше: от кодера к продуктовому визионеру, от технаря к архитектору эмоций. Надеюсь, у молодых разработчиков это получится.
Артур Исаенко:
— Изучение фундаментальных основ программирования необходимо так же, как и изучение современных технологий. Если ваши знания не системны, то при смене технологий ваши знания устаревают больше. Вы не видите аналогии между старым и новым, и вам тяжелее изучать новое. ИT — это совсем не легкий хлеб, как может показаться со стороны. Если вы не готовы учиться всю жизнь, занимайтесь чем-то другим.
Читать на dev.by