Что я понял, создавая продукт с помощью ИИ: инсайты и главные выводы

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

Что я понял, создавая продукт с помощью ИИ: инсайты и главные выводы

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

1. Чёткая постановка задачи – залог успеха

Самый первый и, пожалуй, главный инсайт: как аукнется, так и откликнется. ИИ – существо (хотя скорее, механизм) невероятно способное, но всёцело зависимое от того, как вы ему опишите проблему. Поначалу я грешил размытыми запросами: «Сделай мне то-то, ну ты понял…». В ответ получал довольно общие или даже неуместные решения.

Со временем выработалось правило: формулировать запросы максимально конкретно и понятно. Например, вместо «написать код для загрузки файла» я говорил: «нужна функция на Python, которая принимает путь к аудиофайлу, разбивает файл на фрагменты по 5 минут и отправляет каждый фрагмент в API распознавания речи». Чем детальнее я расписывал задачу, тем ближе к правде был ответ AI.

Лайфхак: представьте, что объясняете задачу Junior-разработчику или даже совсем новичку. По сути, так и есть – для AI вы выступаете постановщиком, тимлидом. Стоит также проговаривать ограничения и критерии успеха: «код должен работать на такой-то версии Python, использовать только стандартные библиотеки» и т.д. ИИ тогда лучше понимает контекст и не предлагает лишнего.

Не ленитесь сначала подумать головой и чётко сформулировать, что вам нужно. Тогда и нейросеть не придётся гонять по кругу. Хороший prompt экономит часы переписки.

2. Итерируй быстро: маленькими шагами легче исправлять

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

Правильнее оказалось двигаться небольшими шагами:

  • Разбивать задачу на мелкие подзадачи. Скажем, сначала попросить функцию загрузки файла, отдельно функцию разбиения на части, отдельно – вызов API распознавания. Каждую часть тестировать и отлаживать независимо.
  • Чаще запускать и проверять код, сгенерированный ИИ. Принял кусок – сразу его попробуй в деле. Если не работает, тут же уточняй или проси исправить. Такой подход похож на методику TDD (разработка через тестирование): маленький цикл «написал – проверил – поправил».
  • Постепенно наращивать функциональность, как снежный ком. Мне помогло правило: один запрос – одна логическая задача. Не пытаться объять необъятное за раз.

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

Большой путь дели на этапы. Двигайся шаг за шагом, проверяя каждый. ИИ может быстро бежать, но ты должен направлять его по маршруту, не перепрыгивая ступени.

3. Не верь слепо AI: проверяй каждую строчку

Как ни странно, третий инсайт – доверяй, но проверяй. Когда ИИ выдаёт уверенным тоном код, очень легко поддаться иллюзии: «Ну раз машина написала, значит правильно». Но нет! Я наступал на эти грабли: принимал ответ, интегрировал, а потом час искал, почему система не работает – оказалось, в той самой, казалось бы, верной функции была логическая ошибка.

Что я делал:

  • Читал более внимательно что он мне пишет. Даже если не сразу вижу ошибку, стараюсь понять код: а точно ли здесь то, что нужно? Иногда ловил неочевидные вещи (например, переменная не там инициализируется, или алгоритм не оптимален).
  • Прогонял через тестовые кейсы. Если функция должна, к примеру, разбивать текст на предложения, я кормил ей 2-3 примера вручную и смотрел, правильный ли результат. Бывает, AI-код не покрывает какие-то случаи.
  • Спрашивал у AI самого, что значит его код. Забавно, но иногда полезно попросить: «Объясни, как работает этот код шаг за шагом». Если в объяснении выплывает что-то нелогичное – значит и код, скорее всего, с подвохом.

Искусственный интеллект не гарантирует корректность. Он может ошибаться или «галлюцинировать». Поэтому роль человека – быть QA-инженером и код-ревьюером для ИИ. Это занимает время, но обязательно, если хотите качественный результат.

4. Комбинируй инструменты: один AI – хорошо, а пять лучше

За время челленджа я усвоил, что не надо класть все яйца в корзину одного AI-инструмента. У меня в активе было несколько помощников:

  • ChatGPT – основной компаньон и мозговой центр,куда я обращался за идеями, ТЗ, объяснениями.
  • Cursor – специальная IDE с встроенным ИИ, которая работала с написанием и автодополнением кода
  • Claude от Anthropic – альтернативная модель, к которой я часто обращался для второго мнения или если GPT начинал тупить.
  • Grok от Илона Маска - достаточно умный ИИ, который помогал посмотреть с иного ракурса и сделать код по-другому.
  • Плюс, обычный поиск Google/StackOverflow для классических вопросов.

Инсайт в том, что разные модели по-разному подходят для разных задач. ChatGPT хорош в пояснениях и развёрнутых ответах, но иногда выдавал избыточный или неработающий код. Cursor удобно интегрировался с моим кодбейсом и ускорял рутину, но сложные архитектурные вещи я всё равно сначала обсуждал в GPT-чате. Claude и Grok временами давали более свежие или нестандартные решения, т.к. обучены на другом датасете.

Используй сильные стороны разных AI-инструментов. Если один застрял или повторяет ошибку – попробуй спросить другого. Это как консультироваться с несколькими экспертами. Вайб-кодер должен быть немного дирижёром оркестра ИИ, задавая партии то одному, то другому инструменту.

5. ИИ – не заменяет изучения основ, учись на лету

Ещё одно наблюдение: работая с AI, ты сам учишься программированию невольно. Многие думают, что раз ИИ пишет код, то человеку можно вообще не вникать. Но на практике, если у тебя нулевой бэкграунд, будет очень тяжко даже с AI. Мне помогло то, что базовые вещи о процессе разработки я знал. Но многое пришлось понимать буквально в процессе.

Пример: я не сильно разбирался в web-фреймворках на Python. ChatGPT предлагал использовать FastAPI для сервера. Я понятия не имел, как он устроен. Однако, получая от AI код, я параллельно гуглил и читал туториалы, чтобы понять, а что вообще происходит. В итоге спустя 2 недели я уже достаточно неплохо ориентируюсь в FastAPI – благодаря комбинации примеров от ИИ и собственной учебы.

AI не избавляет от необходимости обучаться – наоборот, он тебя подсознательно учит. Когда пятый раз ловишь баг с асинхронностью, волей-неволей пойдёшь читать про async/await. И это здорово! Потому что в конце проекта ты не только получил результат, но и прокачался как специалист.

Таким образом, я бы советовал:

  • Если AI выдал незнакомую конструкцию – не просто принимать и использовать, а разобраться, почему так, что она значит.
  • Задавать вопросы «почему» самому AI. Часто я просил: «поясни, почему здесь нужен именно такой подход». И получал мини-лекцию по теме.
  • После завершения работы над частью кода, потратить время и почитать официальную документацию или статьи по использованным технологиям. Чтобы закрепить знания.

Вайб-кодинг — это формат «учусь, делая». Не стоит воспринимать его как волшебство, где не нужно думать. Вы многое поймёте про код именно в диалоге с ИИ, надо лишь быть к этому открытым. В итоге вы + AI = команда, где каждый дополняет друг друга: он даёт решения, вы — понимание и контроль.

6. Готовься к непредсказуемому

И напоследок: работа с ИИ полна сюрпризов, поэтому всегда имей план Б (а лучше и В). Нейросеть иногда ведёт себя непоследовательно:

  • Может в какой-то момент отказаться выдавать код (у меня ChatGPT пару раз писал: «Я не могу это сделать из-за политики…» – на вполне безобидные вещи).
  • Может выдать абсолютно не связанный с запросом ответ из-за непонятного триггера.
  • Или вообще уйти в себя: повторять одно и то же, игнорируя новые уточнения.

Когда такое случалось, я заранее имел запасные опции: попробовать перезагрузить диалог, начать новый чат с нуля, переключиться на другую модель, наконец, поискать решение самому вручную. Один раз GPT мне упрямо не хотел писать скрипт для конвертации видео в аудио (считая, видимо, что это может нарушать чьи-то права). Я потратил минут 30 на уговоры – безуспешно. В итоге нашёл готовый рецепт через поиск и слегка адаптировал.

Если эти шесть пунктов в одном предложении: работа с ИИ требует от человека новых навыков – умения ясно формулировать мысли, быстро итеративно действовать, контролировать качество и учиться на ходу. ИИ – инструмент мощный, но иногда непредсказуемый. Держите запасные пути решения: альтернативные сервисы, собственные знания, помощь сообщества. Гибкость и готовность поменять подход – must have для AI-разработчика.

Начать дискуссию