Графические материалы взяты с freepik, постер носит иллюстративный характер
Графические материалы взяты с freepik, постер носит иллюстративный характер

Всем привет! Предлагаю вашему вниманию перевод статьи «AI is Making Developers Dumb». Перевод выполнен человеком, а не LLM :)

Тема статьи мне очень близка, соответствует личному опыту. Ещё я бы добавил, что всё сказанное в принципе справедливо для любой сферы деятельности.


Люди часто говорят о повышении производительности благодаря LLM, и с моей стороны было бы лицемерно отрицать это. Это правда. С использованием LLM-ассистента, ваш рабочий процесс станет продуктивнее, но этот же рабочий процесс будет делать вас глупее.

Я утверждаю это не на пустом месте. Со временем у вас развивается зависимость от инструментов LLM. Это приведёт к тому, что вам будет трудно работать без AI-помощника.

Я занялся разработкой ПО, потому что мне нравится что-то создавать и разбираться, как это работает. Это значит, что я получаю удовольствие, кропотливо набирая блоки кода на своей клавиатуре.

Использование LLM-ассистента в рабочем процессе лишает этого. Вместо радости от самостоятельного решения проблем, теперь нужно просто попросить LLM предложить дополнение кода.

Вместо того чтобы разбираться, что и как работает, вы впадаете в зависимость от ожидания, что ассистент скажет, что нужно делать.

Возможно, некоторые люди не испытывают удовольствия от написания собственного кода. В таком случае, как бы это жёстко не звучало, я бы сказал, что они заняты не своим делом. Возможно они занимаются этим только ради денег? Справедливо подмечено. Это есть в любой сфере деятельности, и обычно это отражается на увлечённости и поведении человека.

Лучшие инженеры, которых я встречал —  люди, которые могут в свой выходной часами просидеть над улучшением ПО или созданием своей тулзы. Чёрт возьми, вот откуда берутся новшества и достижения. Вы не сможете улучшить производительность ПО без чёткого понимания как работает система. Иначе вы просто тыкнете пальцем в небо.

Есть такое понятие «Отставание Второго Пилота» (англ. «Copilot Lag» ). Оно описывает состояние, когда после каждого действия разработчик останавливается, ожидая подсказки, что ему делать дальше. Самостоятельности мышления больше нет, осталось только ожидание подсказки от AI, что нужно делать дальше. Это сродни первым шагам новичка — полагаться на более опытных коллег, которые направляют твои действия и понимают, что нужно делать дальше.

Это реально.

Вечность назад я использовал «Github Copilot» в «VSCode». Когда я оглядываюсь на то время, то поражаюсь, что не растерял ещё больше знаний.

Со временем я начал забывать базовые конструкции языков, с которыми работаю. Я начал забывать элементы синтаксиса, как использовать основные операторы. Очень неловко взглянуть в прошлое и осмыслить, как я разрушал накопленные знания только потому, что хотел мгновенного прироста скорости.

Это реально случается, когда вы используете Copilot в течении года. Вы начнёте забывать многие вещи, потому что вам больше не нужно думать, о том что нужно сделать. По крайней мере, вам больше не нужно думать таким же образом, как если бы над решением проблемы пришлось размышлять самостоятельно.

Но, на самом деле, осознать это и столкнуться лицом к лицу с реальностью мне помогло видео «ThePrimeagen». В нём есть фрагмент одного из его стримов, где он рассказывал про «Задержку Второго Пилота». Насколько это был тревожный звоночек!

После этого я перестал пользоваться LLM-аccистентами для кодинга. И очень рад, что сделал это.

В качестве примера: мне очень интересна сфера компиляторостроения. В то время я пробовал работать по книге «Writing An Interpreter In Go» Thorsten Ball. Но это была пустая трата времени. Вместо изучения матчасти из книги, Copilot просто генерировал мне код. В самом деле, вы можете почувствовать себя очень крутым, написав парсер. А сможете это повторить, выключив Copilot? Наверняка нет. Вы так же теряете возможность изучить концепции типа «управление памятью» или «Data Oriented Design», потому что Copilot даст вам код, который по его мнению, может сработать, вместо того чтобы самостоятельно исследовать тему и разобраться в деталях.

На самом деле мы подходим к другой стороне вопроса. Исследование. На этот раз с более позитивным отношением к AI.

Верно. Большие Языковые Модели полезны. Они подобны поисковой системе. Мы часто обращались к Stackoverflow за помощью в программировании. Поскольку Большие Языковые Модели обучены на всех этих данных, они могут стать эффективным инструментом для получения дополнительной информации по определённой теме. Но только если вы будете использовать их, имея пытливый ум, и не будете им слепо доверять.

Поскольку они печально известны тем, что генерируют всякую чушь. Так уж устроены LLM. В половине случаев они создают бессмыслицу. Это просто шаблоны и последовательности токенов, а не реальные знания безумно умного человека. Они обучены на материалах, созданных людьми с пониманием предметной области, но при этом сами LLM изрыгают это совершенно оторвано от изначального контекста.

В любом случае, изучение ответов и размышление, почему предложено именно это решение — единственный верный путь получить выгоду от LLM. Относитесь к этому как к диалогу, в котором вы пытаетесь понять, почему собеседник предпочёл определённое решение. Вы допустите ошибку, если не будете понимать, почему вам предложили именно это или как это работает под капотом.

А ещё делайте заметки! Много заметок! Недавно я начал изучать Zig, и я постоянно делаю заметки по изученным разделам языка, особенно учитывая, что я впервые столкнулся с ручным управлением памяти. Они могут стать полезным справочником и выручить, когда вы застрянете над каким-то вопросом или захотите помочь другим!

Я написал эту статью во время утренней поездки, и мой поезд прибыл к месту назначения. Так что я закончу на этой ноте.


От переводчика

Я добавлю немного своих мыслей: я пошёл немного дальше автора и генерировал функции и целые программы (и сайты) с помощью «DeepSeek», просто давая описание того что мне нужно. В какой-то момент это действительно дало прирост производительности и у себя в голове я уже рисовал картину, как 1 инструмент заменит мне целую команду напарников. Так длилось до тех пор, пока я не увидел "The server is busy".

Шучу. На самом деле я понял свою ошибку раньше. Когда нужно было внести правки в функции, которые сгенерировал сам AI. Оказалось, что вместо банального исправления ошибки он мог выдать совершенно другую реализацию, совершено другую архитектурно. В итоге в проекте накапливаются рудименты, и он превращается в архитектурную помойку.

Но самое печальное, кроме чудовищной Задержки Второго Пилота в виде тайм-аута сервера, возникает проблема: когда код компилируется и вроде работает, но почему-то не так, как хотелось бы. Ты понятия не имеешь, как вообще устроена программа.

Кстати почему пилот второй, если на самом деле ему достаётся ведущая роль?

Комментарии (36)


  1. unicorn_style
    19.05.2025 14:25

    Попал в такую же ловушку. Притом сначала тебе нужны формулы и варианты решения, а потом это перерастает в «напиши мне for цикл, я забыл как»


    1. Writer4
      19.05.2025 14:25

      Кстати если у вас несколько параллельных проеков на разных языках, у меня вот было java, c#, js, pl/sql, то немного начинаешь путаться.


      1. xSVPx
        19.05.2025 14:25

        Вы пытаетесь заучить синтаксис :)? Зачем ? В этом совершенно нет никакого смысла, кроме случаев какой-нибудь дичи. (значимые пробелы итп).


  1. DenSigma
    19.05.2025 14:25

    Вместо радости от самостоятельного вскапывания поля, я теперь просто дергаю за рычаги и нажимаю на педаль газа.

    Если серьезно - вы хотя бы по-русски (по-английски) научитесь писать, внятно излагать свои мысли и вообще научитесь коллаборации, делегированию обязанностей и архитектурному мышлению.

    ПС. Кропотливо набирать блоки кода уже, честно говоря, надоело.


    1. dan_sw
      19.05.2025 14:25

      ПС. Кропотливо набирать блоки кода уже, честно говоря, надоело.

      Ну, может быть конкретно Вам это надоело, а мне вот это доставляет огромное удовольствие, да и многим другим, я уверен, это тоже доставляет удовольствие. Особенно когда во внутренние тонкости какие-нибудь закапываешься и решаешь свою задачу применяя паттерны да алгоритмы - вообще прекрасно.

      архитектурному мышлению

      Постоянно "архитектурное мышление" наблюдаю от комментаторов или авторов, которые как-то хотят себя успокоить в контексте замены их ИИ. Типа "мол кодеров - заменят, код писать просто и легко, а вот архитектурно мыслить - сложно и тяжело, ИИ так не могут, поэтому все го архитектурное мышление подтягивать". На мой взгляд, архитектуру приложения или системы сделать гораздо, гораздо проще, чем писать высокоэффективный, оптимальный и решающий сложную задачу (коих в наше время много) программный код.

      Архитектура бывает уровня приложения, бывает высокоуровневая, а бывает что-то среднее (объединяющая). Есть там у них какие-то отличия, но в целом - ничего сложного вообще. Зацепились за эту архитектуру как за зеницу ока и несут эту идею в массы.

      Нужно стремиться одинаково хорошо разбираться и в программировании, и в архитектуре. Одно другому уж точно не помешает.


    1. hypermachine Автор
      19.05.2025 14:25

      Попробуйте сменить деятельность? :)


  1. Temecula
    19.05.2025 14:25

    ИИ это Китайская комната. Становится жутко осознавать, как быстро он развивается, и что нас ждет еще через 5 лет..


  1. dan_sw
    19.05.2025 14:25

    С использованием LLM-ассистента, ваш рабочий процесс станет продуктивнее, но этот же рабочий процесс будет делать вас глупее.

    Смотря как именно использовать LLM-ассистента. Если это делать как Андрей Карпаты с его "вайб кодингом", то безусловно - это сделает разработчика "глупее", по сравнению с разработчиком, который самостоятельно пишет программный код и преодолевает решение различных задач.

    Использование LLM-ассистента в рабочем процессе лишает этого.

    Его использование может быть ограничено. Например, можно использовать LLM только как очень хороший справочник информации, который в огромном массиве данных сможет быстро найти только то, что действительно вам нужно (даже сам автор об этом позже пишет).

    В программировании (или в разработке в общем смысле) часто встречаются ситуации, когда нужно освоить какой-то материал или вспомнить как устроен тот или иной механизм в языке программирования (для меня это актуально в C++, поскольку много вещей там пишется с нуля). И LLM-ассистент способен в ходе общения с разработчиком поведать ему о том, как интересующий его механизм устроен и даже предоставить программный код для тестирования этого механизма. Ещё и покажет какие есть альтернативные варианты. Это очень помогает в личном саморазвитии.

    Вместо радости от самостоятельного решения проблем, теперь нужно просто попросить LLM предложить дополнение кода

    Ну и никто не заставляет этого делать :) Можно ведь не использовать LLM и не обращать внимание на секту "вайб кодеров", которая разносит эту концепцию по интернету как единственно верную и новую, революционную, технологичную "парадигму" программирования. Можно также как и раньше продолжать писать код самостоятельно, думая своей головой, решая задачи. Есть куча компаний, которым LLM нафиг не сдался, у них выстроены свои команды, выстроены внутренние механизмы и разработчиков-людей им хватает.

    Любят некоторые списывать со счетов "кодинг". Но я думаю, что этим занимаются те, кто программирование не любит совсем и от алгоритмов, внутреннего устройства Linux, амортизационной сложности и прочих "умных штук" их бросает в дрожь... Не будем им мешать жить в иллюзиях, которые для них построили бигтехи во главе с Альтманом, Хуангом, Цукербергом и другими капиталистами, они вскоре сами раскроют этот "обман".

    Возможно они занимаются этим только ради денег?

    Я лично встречал людей, которые занимаются разработкой только ради денег, но знают намного больше самого зазнавшегося эксперта, который занимается ей "ради чего-то большего". И таких людей - полно. Они работают над классными проектами и задачами. И что? Делает ли их хуже лишь тот факт, что они работают только ради денег?

    Это очень заезженный стереотип, который давно канул в лету. Хватит уже на таких людей косой взгляд кидать - они тоже крутые. Каждый в программировании и IT может найти то, что ему нужно и быть счастливым. В конце концов каждый человек стремится к счастью (как бы сильно некоторые этого не отрицали).


    1. hypermachine Автор
      19.05.2025 14:25

      Его использование может быть ограничено. Например, можно использовать LLM только как очень хороший справочник информации, который в огромном массиве данных сможет быстро найти только то, что действительно вам нужно (даже сам автор об этом позже пишет).

      В программировании (или в разработке в общем смысле) часто встречаются ситуации, когда нужно освоить какой-то материал или вспомнить как устроен тот или иной механизм в языке программирования (для меня это актуально в C++, поскольку много вещей там пишется с нуля). И LLM-ассистент способен в ходе общения с разработчиком поведать ему о том, как интересующий его механизм устроен и даже предоставить программный код для тестирования этого механизма. Ещё и покажет какие есть альтернативные варианты. Это очень помогает в личном саморазвитии.

      Конечно вы правы, использование LLM может быть ограниченно. Иногда это действительно выручает: когда нужно освежить что-то в памяти или разобраться с покрытым плесенью легаси. Но учитывая свойство LLM генерить чушь -- не будет лишним быть на стороже :)

      Ну и никто не заставляет этого делать :) Можно ведь не использовать LLM и не обращать внимание на секту "вайб кодеров", которая разносит эту концепцию по интернету как единственно верную и новую, революционную, технологичную "парадигму" программирования. Можно также как и раньше продолжать писать код самостоятельно, думая своей головой, решая задачи. 

      Вроде да, никто не заставлял. Но моя человекеская природа, с её склонностью к лени и лёгким путям, таки затянула в этот замес. Хотя никто не заставлял, да, был выбор -- писать самому или просто сгенерить.


    1. Wesha
      19.05.2025 14:25

      можно использовать LLM только как очень хороший справочник информации,

      ...в который случайным образом вкраплены галюны.


      1. Rive
        19.05.2025 14:25

        Так живые люди тоже могут галлюцинировать или врать, притом консистентно (из-за чего проблему несоответствия их карт территории можно обнаружить только опытным путём, а не рассуждая логически).


        1. Wesha
          19.05.2025 14:25

          Так живые люди тоже могут галлюцинировать или врать,

          поэтому книжку, написанную профессором Петровым, рецензирует профессор Сидоров, и результат их совместной работы свободен от галюнов.


          1. jshapen
            19.05.2025 14:25

            Ну дак проверяйте код, написанный одной ЛЛМ, другой ЛЛМ.


            1. Wesha
              19.05.2025 14:25

              Лучше, его проверяет сама жизнь.

              Результаты... так себе.


  1. Rive
    19.05.2025 14:25

    Я видел разработчиков, которые впали в зависимость от компилятора и постоянно ждали, пока он соберёт им программу вместо того, чтобы сразу писать команды ассемблера по памяти в HEX-формате.


    1. dan_sw
      19.05.2025 14:25

      Ну Вы и сравнили конечно :) Где сборка программы компилятором, а где её целиком написание? Да и у компиляторов есть альтернатива - интерпретаторы, которые выполняют исходный код по частям (без полного компилирования).

      Сборка - это одно. Написание программного кода - другое. Пример некорректный, даже если компилятор при сборке программы вносит в неё корректировки с целью оптимизировать некоторые участки кода (например, выполнение операций в циклах, результат которых нигде не используется).

      Уж тем более сравнивать "замену человека ИИ" и "переход от низкоуровневых языков к низкоуровневым" некорректно. В целом, этим сейчас многие страдают (я не исключение).


      1. Rive
        19.05.2025 14:25

        Программисты и до ИИ писали целиком с нуля крайне редко, обычно ограничиваясь переиспользованием крупных архитектурных систем. Языки высокого уровня, фреймворки, автогенерация кода, автокомплит, конструктуры типа Wordpress/Mediawiki/Joomla служили тому, чтобы поменьше печатать руками, поменьше вникать в неинтересные низкоуровневые вещи и получать желаемый результат как можно быстрее.

        ИИ просто добавляют к этому зверинцу ещё один слой абстракций, с человекочитаемым промптом на самом верху (хотя как и всякие вещи, связанные с решением проблем причинно-обусловленного мира вместо нарративного, они имеют обыкновение портиться потерей стройной семантики ради решения множества частных подзадач, обрисовывающих на воде контур скрытого слуги-левиафана).

        Заменит ли ИИ человека - вопрос спорный. ИИ - это просто инструмент. По сути, это означает что любой человек со средними способностями к коммуникациям сможет пользоваться благами сложных интеллектуальных систем, не прибегая к живому подрядчику ради их получения, из-за чего существующие посредники потеряют свою ренту. Таким образом, все станут программистами.

        Вся логика добавления машин в экономику была подчинена идее максимальной доступности благ, предоставляемых людьми и тягловыми животными... хотя в случае повальной автомобилизации эта логика свернула не туда, и передвижение по центру города в час пик стоит по-прежнему столько же, сколько стоило на извозчике, притом с той же скоростью и с вдыханием пердежа средства передвижения.


    1. Fell-x27
      19.05.2025 14:25

      Я видел разработчиков, которые впали в зависимость от StackOverFlow. Вместо того, чтобы тратить часы на самостоятельное решение проблемы - они гуглят ее и используют чужие решения!


      1. pavelsha
        19.05.2025 14:25

        Я видел разработчиков, которые впали в зависимость от StackOverFlow. Вместо того, чтобы тратить часы на самостоятельное решение проблемы - они гуглят ее и используют чужие решения!

        Уточнение.
        Они гуглят, подбирая куски чужих решений. Потом компонуют это в один проект. И тратят некоторые усилия, чтобы запустить этого монстра доктора Франкенштейна работать.

        Далее идет развилка. Интроверты пыхтят самостоятельно, пытаясь при помощи молотка и напильника подогнать друг к другу несовпадающие части. И тут успех зависит от усидчивости и целеустремленности. А экстраверты идут на Stack Overflow, чтобы спросить: «А почему не работает?» Этим помогают искренняя наглость и другие «софт-скилы».

        Другими словами, манки-кодинг во всей красе. А теперь уже AI-VIBE-monkey-coding.

        Вот AI-monkey-разработчик А. И. Шимпанзян передает нам привет из 2055 года
        Вот AI-monkey-разработчик А. И. Шимпанзян передает нам привет из 2055 года


        1. VladD-exrabbit
          19.05.2025 14:25

          Тривиальные вещи, которые джун может не знать, на Stackoverflow быстро подсказывали. А сложные, включая «как скомпоновать простые в один проект», всегда встречались в штыки, т. к. это очевидная «работа за автора».


          1. pavelsha
            19.05.2025 14:25

            «как скомпоновать простые в один проект», всегда встречались в штыки, т. к. это очевидная «работа за автора».

            Согласен. Наверное по этому вокруг Stackoverflow бродило столько обиженных.

            Лично я бродил по сошиал.течнет Майкрософта. Брал, а иногда и размещал практически законченные решения... Но не в программистких, а скорее в админских задачах


        1. Habr4687544
          19.05.2025 14:25

          Маня мирок. Вы за свою жизнь хоть одного человека видели который пишет вопросы или ответы на Stack Overflow? И я не видел. "Интроверты пыхтят самостоятельно, пытаясь при помощи молотка и напильника подогнать друг к другу несовпадающие части. " это джуны. После двух-трех попыток любой средний разработчик перестает копипастить код, и ищет среди всех ответов решение проблемы, за которым пришел.


    1. Wesha
      19.05.2025 14:25

      сразу писать команды ассемблера по памяти в HEX-формате.

      012700 040000 012701 040000 0005030 077102, в чём проблема-то? Вы что, не умеете?


      1. randomsimplenumber
        19.05.2025 14:25

        Пробовал, фигня получается:))


        1. Wesha
          19.05.2025 14:25

          А что, у Вас есть рабочая БК-шка?


      1. Dhwtj
        19.05.2025 14:25

        Так вы код ревью к пройдете


  1. BobovorTheCommentBeast
    19.05.2025 14:25

    Давеча таки решил стать ВАЙБ кодером. Описал 3 простеньких класса максимально подробно, составил ПРОМПТ, на что ушло несколько часов. (Продумал архитектуру и тп, все результаты работы и эксепшены описал, запустил и....

    Как копайлотовский агент на Клод 3.7 не ежился, он не смог нагенерить рабочую программу, а в коде было буквально насрано с 6-7 уровнями вложенности. Хотя мыслил он туда...

    Переписал сам, стало в 2 раза короче и читаемее, нашел пробелы в тз. Попросил хотя бы тесты написать, так он и их без правок не написал.

    Даже расстроился, мне срочно надо было...


    1. Writer4
      19.05.2025 14:25

      Cursor ai не пробовали? Кстати, я сталкивался с тем, что качество генерации меняется через какое-то время. Я тут переписывал некий скрипт pl/sql на postgresql строк на 500. Ну очень лень было руками. Первый раз что то странное сгенерил. Через полчаса почти тот же промпт дал результат то что надо, он даже разобрался с таблицами системного словаря и подобрал аналоги. Там пришлось конечно кое что поправить, тоже промптами, но это уже мелочи были.


    1. Rive
      19.05.2025 14:25

      Суровым сибирским лесорубам подарили новую японскую бензопилу. Подставили доску:

      - Вжик! - сказала японская бензопила.

      - Ух! - сказали суровые сибирские лесорубы. Подставили бревно:

      - Вжик! - сказала японская бензопила.

      - Ух! - сказали суровые сибирские лесорубы. Подставили железный лом:

      - Крррр....! - сказала японская бензопила.

      - Ага! - сказали суровые сибирские лесорубы.


  1. milkyway044
    19.05.2025 14:25

    LLM не делает вас тупым. Она просто убирает иллюзию, что вы были умным.


    1. Dhwtj
      19.05.2025 14:25

      LLM покажет как глубока кроличья нора


  1. sput
    19.05.2025 14:25

    Какой-то запредельно подростковый тейк.

    Использование шуруповёрта, безусловно, делает вас тупее в искусстве завинчивания саморезов отвёрткой.
    Делает ли шуруповёрт вас тупым строителем? Нет, кажется, даже наоборот.

    Мне возразят: программирование -- это другое. СОГЛАСЕН. Потому что шуруповёрт -- это сила, выносливость, надёжность и аккуратность. С LLM в программировании всё [пока] гораздо хуже: его начинает глючить там, где программистских сил вполне хватает. А там, где начинается серьёзное, ИИ лучше привлекать только для подсобных и типовых работ.

    Поэтому, если на вашем уровне использование ИИ вас тупит -- поздравляю. Впереди ещё много открытий, свершений и творческого роста.


  1. un1t
    19.05.2025 14:25

    Я занялся разработкой ПО, потому что мне нравится что-то создавать и разбираться, как это работает. Это значит, что я получаю удовольствие, кропотливо набирая блоки кода на своей клавиатуре.

    Что же вы на ассемблере то не пишите, если вам так нравится разбираться или сами не собираете процессор из транзисторов? Может быть вы хотя бы свою базу данных или язык программирования написали?

    Я стал разработчиком, чтобы делать крутые штуки. Но по сути я никаких крутых штук делать не мог, так как на это нужна была целая команда и огромное количество времени. И вот ИИ как раз позволяет уже одному разработчкику даже сделать какой-то проект, который реньше сделать просто было не возможно или не целесообразно из-за временных затрат.

    Я уже собрал 3 пет проекта за 5-6 месяцев и еще десяток мелких прототипов. Раньше я бы за них даже не взялся, т.к. это было слишком сложно и долго.


    1. Wesha
      19.05.2025 14:25

      Я уже собрал 3 пет проекта за 5-6 месяцев и еще десяток мелких прототипов

      Доказательств, конечно же, не будет.


  1. MrCooger
    19.05.2025 14:25

    Лучшие инженеры, которых я встречал — люди, которые могут в свой выходной часами просидеть над улучшением ПО или созданием своей тулзы

    А shareholder' ы то как бесконечно рады встрече с такими лучшими инженерами и их практически бесплатной работой в кампании)


    1. xSVPx
      19.05.2025 14:25

      Назло бабке отморожу уши...