Про вайб-кодинг
Давайте сегодня поговорим про вайб-кодинг: что это такое, откуда взялось и хорошо ли оно.
Это будет не исследование, не обзор научной литературы – просто мое скромное мнение. Ваше мнение, скромное или нет, я приглашаю в комментарии.
Несколько пространное введение, которое важно для контекста
Я сама не хардкорный разработчик – не из тех, кто со школьной скамьи ходил по математическим олимпиадам. Вообще в школе терпеть не могла математику, а после выпускных экзаменов пошла учиться на менеджмент, потому что там математика не нужна была (и матанализ на первом курсе такой: «Сюрприз!»).
Учиться программировать начала в ковид, когда все сидели в самоизоляции. Освободилось на удивление много времени, которое раньше занимал путь в офис и обратно, под руку попался удачный курс на Coursera – это я все рассказывала в своем посте про путь в профессию. Сначала училась по форумам: надо решить конкретную задачу, она не решается, лезу в Интернет смотреть, кто что до меня придумал. И было ощущение кусочности понимания: тут знаю – там пробел неясной величины. Так что, получив поддержку (финансовую, главным образом, но и моральную тоже) от своей компании я отправилась в магистратуру по прикладной математике, по направлению «Анализ данных». Это было отличное решение, потому что там я узнала про архитектуры приложений, тестирование, виртуальную среду, git – вообще про все вот эти полезные штуки, которые надо знать, чтобы программировать.
Дальше еще были книжки и курсы, и итог в целом такой: я знаю, как закодить приложение от базы данных и функционала до интерфейса. Но мне на это нужно время и дополнительные материалы, с закрытыми глазами и одной левой не сделаю.
Как только появилась возможность использовать для разработки нейросети, я стала их использовать, и работа пошла заметно эффективнее. На данный момент пользуюсь интегрированной средой разработки Cursor, где практически весь код пишет нейросеть, а я ставлю задачу, контролирую и тестирую.
В сущности, это и есть вайб-кодинг, о котором в заголовке написано: вы пишете нейросети инструкцию, она пишет код. Вы можете не понимать даже, что у нее там получилось.
И на идею написать про это дело пост меня натолкнул разговор с одним из коллег, который как раз хардкорный разработчик с большим опытом. Он мне сказал сначала, как его раздражают все вот эти вайбкодеры, которые не понимают, что делают, а уже мнят себя инженерами. Потом мы порассуждали немного и пришли к тому, что вайб-кодинг – штука крутая, на самом деле, просто со своими нюансами.
Плюсы, минусы, подводные камни
Плюсы вайб-кодинга очевидны, по-моему:
- Снижается порог входа в разработку: вам не нужно изучать алгоритмы обхода графов, особенности разных типов данных и помнить синтаксис языка – это сделает ИИ;
- Благодаря этому, в разработку приходят люди из разных профессий с разным опытом и вносят свой свежий взгляд, что обогащает всю область в целом;
- Работа делается эффективнее, просто потому что нейросеть напишет код быстрее, чем вы его руками будете набирать;
- В рамках конкретной компании расширяется бутылочное горлышко, созданное ограниченным числом людей, которые умеют писать код: они пишут код, остальные ждут, когда решат, наконец, их задачу.
Но было бы все так радужно – не было бы повода писать пост, правильно? Как и все на свете, вайб-кодинг имеет теневую сторону:
- Человек, который не может прочитать код, не заметит дыр в его безопасности, что может вылиться в большие проблемы для компании и ее клиентов;
- Такой человек также не сможет продумать наперед масштабирование приложения, и его придется переписывать для добавления новых функций;
- Тестирование тоже проседает, потому что требует понимания особенностей архитектуры и умения подобрать достаточный набор тестовых сценариев – в итоге в разработке все хорошо, а после выпуска легло и не поднимается;
- Нейросети все еще делают ошибки, и в процессе их исправления могут потерять какой-нибудь важный функционал – за этим делом надо внимательно следить, а для этого надо понимать, что написано.
В обе корзиночки можно добавить еще плюсов-минусов, но, думаю, картина уже ясна: вайб-кодинг – это инструмент. Это непростой инструмент, им надо уметь пользоваться, как, скажем, газонокосилкой. Газонокосилка – полезная штука: ей можно привести в порядок свои шесть соток и получить ровный газон. А можно накромсать траву как попало и здорово пораниться, если навыка не хватает.
У меня в каждом посте, кажется, такой вывод: «X» – не черное и не белое, это инструмент, надо учиться использовать. Ну а что делать, если оно правда так?
Как быть?
Я не знаю.
Это очень новая область, в ней пока нет готовых рецептов.
Но, исходя из собственного опыта, порекомендовала бы вам следующее:
- Изучите синтаксис языка, с которым работаете. Это не так сложно, как кажется на первый взгляд, надо просто привыкнуть.
- Изучите структуры данных. Некоторые из них довольно простые, а у других есть коварные особенности. Они могут, например, измениться, пока вы с ними работаете, поэтому нельзя работать напрямую, а надо сделать копию. Скорее всего, нейросеть с этим справится, но и вам знать не помешает.
- Научитесь писать что-то маленькое и простенькое самостоятельно. Есть десятки бесплатных курсов, платформы вроде w3schools с полезными упражнениями разного уровня сложности – тоже бесплатные. Просто чтобы разобраться что к чему.
- Найдите какой-нибудь курс или книжку по DevOps – это методология автоматизации процессов разработки. Она охватывает все от выбора инструментов до тестирования и выпуска. Там вы узнаете, что важно не пропустить.
- Уделите внимание кибербезопасности. В наш непростой век это и в обычной жизни полезно, не только в работе.
Не нужно пытаться впихнуть в себя сразу всю теорию и все существующие инструменты – просто разберитесь, что вообще есть в мире работы с программным обеспечением, с чего начинается разработка приложения, что обеспечивает его надежность, какие есть принципы организации работы.
Не торопитесь. Обилие информации вокруг заставляет нас думать, что вот-вот поезд уйдет, и будет поздно, и надо скорее что-то делать, прям сейчас, прям даже вчера. Ну уйдет и уйдет, ничего страшного: через минуту следующий будет. Не пренебрегайте ответственным подходом, безопасностью и собственным пониманием ради скорости, это никогда не приведет ни к чему хорошему.
Ну и ошибок не бойтесь. Скорее всего, вы не управляете ядерным реактором, так что ничего страшного не будет, если ваш код не сработает пару раз. Или пару десятков раз. Или пару сотен – все равно ничего страшного не будет. Сходите попить чаек, разомнитесь немного и возвращайтесь – все получится.
Если прям очень страшно, сохраните свои файлы в отдельную папочку, и потом уж запускайте код.
Мой опыт
Напоследок поделюсь тем, как мы с коллегами вводим новые практики.
В нашей команде мало людей, которые пишут код, и не все из них работают с ИИ, а задач много. В результате образуется узкое место, работа висит, и за каждым разработчиком ходит группа людей, вопрошающих: «А что там с моей задачей?» – а у него только глаз дергается и бесконечно растет список того, что надо срочно сделать.
В вайб-кодинге я вижу наше спасение, но с нюансами.
- Мы очень детально пишем инструкции и обсуждаем их перед тем, как начать работу. Многие жалуются на то, что нейросети делают слишком много ошибок, так что проще самому написать, чем за ними потом править. Многое зависит от нейросети, конечно, но и инструкции имеют значение. Их надо научиться писать четко, подробно и недвусмысленно. Мне в последнее время нравится формат СОП – стандартных операционных процедур. Почитайте про них, возможно, вам тоже зайдет. Из нейросеток мне нравятся gemini-2.5-pro и o3. В последнее время gemini барахлит: там что-то намудрили с политиками безопасности, и она часто отказывается отвечать на безобидные запросы. Но, может, поправят скоро.
- Мы проводим обучение. Разработчики, которые понимают код, обучают коллег без опыта, рассказывая, что важно не упустить, с чего начать и за чем следить. У нас также в ходу практика код-ревью, когда более опытные коллеги вычитывают код за менее опытными. Я взяла на себя дополнительную нагрузку по обучению: пишу инструкции по работе с инструментами, провожу семинары. Нравится мне это дело, и результат виден очень быстро.
- Мы постоянно обсуждаем и обтачиваем новые идеи, делимся статьями и инструментами. Обмен опытом – это ключ к успеху.
Короче говоря, наш девиз – «Не концентрация, а распределение». Не концентрация компетенций внутри узкой группы людей, а вовлечение в работу и поддержка всех, кто в ней заинтересован. Я думаю, это оптимальный путь, он мне нравится, вам его тоже предлагаю рассмотреть как альтернативу.
А дальше время покажет.
P.S.: у меня есть телеграм-канал, в котором я делюсь полезным и интересным про ИИ, в том числе разными инструментами, заходите.