Синдром ИИ-самозванца у программистов. ai.. ai. Блог компании ISPsystem.. ai. Блог компании ISPsystem. вайб-кодинг.. ai. Блог компании ISPsystem. вайб-кодинг. искусственный интеллект.. ai. Блог компании ISPsystem. вайб-кодинг. искусственный интеллект. кодинг.. ai. Блог компании ISPsystem. вайб-кодинг. искусственный интеллект. кодинг. Программирование.. ai. Блог компании ISPsystem. вайб-кодинг. искусственный интеллект. кодинг. Программирование. Промышленное программирование.

Вайбкодинг — главный мем и одновременно главный тренд в разработке последних лет. Благодаря нейросетям порог входа в профессию размывается все сильнее: любой джуниор может собирать работающие приложения параллельно с просмотром любимого сериала. Но рано или поздно «вайб» заканчивается, а на смену ему приходит великий и ужасный прод.

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

Unsplash, Bernd 📷 Dittrich

Немного цифр

Исследований, посвященных вайбкодингу как явлению, за последние 2-3 года появилось немыслимое количество. Кто-то предрекает неконтролируемый взрыв говнокода плохо написанных модулей в коммерческом ПО. Одновременно слышны призывы отринуть ИИ-ассистентов ради собственного развития и вполне убедительные доводы «за». Истина, как обычно, где-то посередине.

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

Но для начала приведем немного мировой статистики и посмотрим на цифры.

GitHub Enterprise, к примеру, рапортует, что в среднем скорость сборки MVP у разработчиков, которые пользовались ИИ, была выше почти на 56%, чем у тех, кто ИИ не использовал. 41% продуктивного кода даже в коммерческом секторе так или иначе написано с применением нейросетей. А в Java эта цифра и вовсе переваливает за 60%. Иными словами, даже опытные тимлиды enterprise-сегмента не против нейросетей, раз допускают их применения в своих командах и, возможно, пользуются ими сами.

Источник

А вот в этом исследовании пришли к выводу, что опытные программисты, применяющие ИИ, трудятся в среднем на 19% медленнее. При этом им самим кажется, что они справляются с задачами на 20% быстрее. 

Источник

Если копнуть поглубже, выясняется, что львиная доля времени у них уходила на чтение и дебаг нейросетевого кода. В целом, неудивительно — чем сложнее система, тем больше в ней скрытых зависимостей и нюансов. Собственноручно написанный код не нужно заново читать, чтобы понять принцип его работы. Специфичные баги можно успеть отловить еще в уме – при условии, что вы знаете архитектуру и особенности своего приложения.

Еще один подводный камень ИИ-разработки – внезапное ухудшение качества рефакторинга. Программисты ленятся собственноручно оптимизировать код и просят нейросети «найти скрытые проблемы и написать оптимальное решение» поверх старого. Отсюда – бесконечное дублирование кода (объем дублей вырос примерно в 8 раз только за минувший год), ворох необработанных корнер-кейсов, неочевидные (а иногда и очень очевидные!) уязвимости и прочие вайбовые прелести.

Но важно понимать — каждая компания по-разному использует ИИ. Где-то на вайбкодинг смотрят сквозь пальцы и толком не контролируют (например, из-за недостатка квалифицированных кадров). Где-то, напротив, пишут объемные методички по принципу «Что такое хорошо, что такое плохо?», которые существенно сокращают процент чистого ИИ-кода и смещают фокус его использования на оптимизацию рутины. Ландшафт сложен и неоднороден – как и всегда, в общем-то.

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

Про отношение к вайбкодингу

Алексей, senior-разработчик. Стаж >20 лет.

В целом, я не вижу ничего плохого в ИИ. Это нормальный инструмент. Когда в IDE появились функции автодополнения, адепты старой школы тоже ругались. Заменить программиста уровнем выше джуна ИИ не сможет, потому что работает так же, как джун: плохо оценивает риски, «забывает» про архитектуру, обожает костыли и временные решения по принципу «вот так должно скомпилироваться».

Не буду скрывать, в работе я пользуюсь ИИ. В основном ChatGPT (Codex). Коллеги тоже сидят на нем или на Cursor. Иногда на созвонах можно услышать шутку в духе «Мы с моим другом Клодом подумали над проблемой». Ну, не совсем шутку. С каждым месяцем люди все более открыто говорят о том, что пользуются нейросетями. Раньше это напоминало тяжелый эмоциональный каминг-аут, а теперь перешло в разряд признаний, которые можно сделать с ироничной улыбкой посреди дейлика.

Возможно, это актуально только для нашего рынка, не знаю (прим. ред.: Алексей уже почти 15 лет живет и работает в Европе). В моей сфере многим глубоко безразлично, каким образом был достигнут результат, если код решает поставленную задачу, он чистый и читаемый, работа выполнена в срок и NDA не нарушено. Я утрирую, но идею, думаю, вы поняли.

В конечном итоге все зависит от человека. Джуниор что с ИИ, что без него не справится с решением мелких архитектурных задач. С вероятностью 90% он напишет/сгенерит код, который через две недели заблокирует новую задачу, и его придется переделывать. Так что опыт и умение системно мыслить никуда не делись.

Как такового отсева «вайбкода» у нас нет. Выше я об этом писал: для бизнеса нет никакой разницы, как создан код, если он достаточно хорош. Есть общие принципы проверки кода перед добавлением в основную ветку.

Во-первых, нельзя делать объемные реквесты, которые сложно «переварить» на быстром ревью перед одобрением. Исключения бывают, но их принято согласовывать заранее.

Во-вторых, по мере готовности тех или иных модулей устраиваем полноценные ревью.

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

Евгений, джуниор-разработчик. Стаж <3 лет.

Честно? Мне нравится пользоваться нейросетями. Современные ИИ очень быстро выдают информацию. Фильтруют и отдают ее в удобном формате. Например, в виде сравнительной таблицы с пояснениями к каждому пункту. Обычным поисковиком я пользоваться тоже умею, но во многих случаях тот же Qwen выигрывает в скорости.

Я самоучка. Пришел в программирование совсем недавно. Первую настоящую работу получил полгода назад. Платные курсы я не проходил, учился в боевых условиях. С детства хотел заниматься созданием игр, но, как и многие, пошел совершенно по другому пути. Даже больше: учился в гуманитарном ВУЗе, о программировании до 25-27 лет толком даже не думал.

Работа полностью удаленная. Чтобы сразу снять вопросы – получил я ее честно, на собеседовании (тоже удаленном) ИИ не пользовался, отвечал из головы. То есть база, достаточная, чтобы решать поставленные задачи, изредка обращаясь к «старшим» за советом, у меня есть. Ну и прилетает, конечно, иногда за косяки. Без этого никак. Терпишь, слушаешь, запоминаешь. Некоторые случаи я потом отдельно прорабатываю с нейросетью. Спрашиваю, почему мой подход оказался плохим и чем он отличается от того, что лид предложил.

Никто не следит за тем, как я пишу код – это большой плюс удаленки. Можно и погуглить, и попросить нейронку написать код за меня. В первые недели я так и делал. Не из желания схалтурить, а от страха опозориться перед коллегами. Все, что писала нейронка, я внимательно вычитывал, задавал вопросы. Слишком «заумные» места сознательно удалял. Кстати, это отдельный интересный момент.

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

Не буду врать, кое-что я все-таки генерю нейросетями. Особенно когда нужно отдать результат день в день. Но стараюсь писать как можно больше своими руками, чтобы развиваться. Меня всегда поражало, как опытные программисты со скоростью света «набивают» сложный код, легко в нем ориентируются. Бегло прочитав файл, видят все мои ошибки и недочеты. Я хочу со временем научиться так же.

Еще одно «философское» наблюдение. Когда-то я читал книгу «Пандем» Марины и Сергея Дяченко. По сюжету в один прекрасный день одновременно у всех жителей Земли в головах начинает звучать голос инопланетного сверхразума. Существо по имени Пандем не желает людям зла – напротив, год за годом меняет их жизнь к лучшему. Учит, наставляет, подстегивает технологии. Уже напоминает современный ИИ-бум, правда? В мире появляются Пандем-диссиденты, отвергающие его помощь (клеят, к примеру, на собственноручно сделанные вещи наклейки «Без помощи Пандема» и страшно этим гордятся), и ярые последователи. Наступает утопия. Но со временем выясняется, что человек, лишенный трудностей, лишенный преодоления, теряет мотивацию к жизни и стагнирует…

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

Про личный опыт общения с ИИ

Алексей, senior-разработчик. Стаж >20 лет.

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

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

Во-первых, поиск информации. ИИ находит иногда такие вещи, о существовании которых можно узнать лишь на 5-10 странице поиска. Редкие позабытые open-source библиотеки, узкоспециализированный софт. Этой фичей я пользуюсь довольно редко, но метко.

Во-вторых, всякая рутина. Мне иногда бывает нужно писать самому себе тулзы. У меня на такой код уйдет от пары минут до получаса-часа в зависимости от задачи. Нейросеть сгенерит рабочее решение автономно и быстро. Свободные минуты я могу потратить либо на отдых, либо на другие, более важные дела, чтобы не отвлекаться. Я готов мириться с низким качеством кода – ровно до того момента, пока тулза нужна только мне и не идет в общую кодовую базу. Стало очень удобно писать «одноразовые» скрипты, которые через полчаса можно удалить. Их не так жалко, как свои. :)

В-третьих, для собственных проектов. Например, сейчас я делаю себе программу для обработки фото. Мне нужна синхронизация с облаком, история версий редактирования а-ля git и некоторые другие фишки, которых мне не хватает в традиционном Lightroom. При постоянном контроле и очень, очень неторопливой работе у ChatGPT получается неплохо. Я читаю и валидирую все, что пишет нейросеть. Ругаюсь с ней, правлю кое-что руками. Взялся бы я писать этот проект целиком вручную? Наверное, нет. Нейросеть — мой личный мотиватор. С одной стороны, на промпты, ругань и дебаг уходит куча времени, руками я бы написал, возможно, быстрее. С другой – психологически легче, когда кто-то пишет за тебя, а ты только руководишь процессом. Как в той шутке – не то что бы по вкусу вкусно, но по сути вкусно.

В основной работе я нейросетями тоже пользуюсь. Контролирую процесс довольно жестко, не позволяю нейросети принимать никаких архитектурных решений. Это чем-то похоже на умную печатную машинку. Изредка нейросетью ищу баги в коде, допущенные по невнимательности. Знаю коллег, которые даже commit message’ы пишут нейросетью. Но это уже мне не очень понятно.

Кстати, есть и обратные прецеденты. Некоторые мои коллеги (как правило, это люди 50+) высказываются резко против использования нейросетей – и даже инструментов разработки, в новые версии которых вендор добавил ИИ-фичи. Никакого эйджизма: это хорошие программисты, начавшие работать еще в девяностые. Они работают не лучше и не хуже своих коллег 35-45 лет. Но по мои наблюдениям то, что человек не приемлет технологии выше некоего комфортного предела, нередко коррелирует с общей тяжестью его характера.

Евгений, джуниор-разработчик. Стаж <3 лет.

Для меня нейросеть – это способ объять необъятное. Сейчас попробую пояснить, что имею в виду.

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

Периодически я придумываю и делаю собственные проекты. Например, еще до устройства на работу делал небольшую бродилку с видом сверху, чтобы разобраться с работой NavMesh. В самом начале писал простенький 3D-паззл на физике.

Сейчас у меня в разработке уже более амбициозная штука – RPG в изометрическом стиле. В ней очень много UI, огромное количество систем (поиск пути, ролевая часть и прокачка, пошаговый бой, диалоги с NPC, квесты…).

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

Да, я стараюсь читать код, сгенерированный нейросетью. Не всегда я понимаю, что делают классы, поэтому, опять же, при помощи Qwen разбираюсь в логике. Хочется верить, что это не тупиковый подход.

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

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

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

Подведем итоги

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

Мы намеренно не будем давать оценку мнениям Евгения и Алексея. Вместо этого попросим вас высказаться на этот счет в комментариях – и заодно поделиться вашим взглядом на вайбкодинг.

Автор: omyhosts

Источник