Коли ШІ погано виконує роботу бекендерів і чи замінить він джуніорів

💡 Усі статті, обговорення, новини про AI — в одному місці. Приєднуйтесь до AI спільноти!

Штучний інтелект став звичним інструментом для бекендерів, зокрема джунів. ШІ допомагає їм з CRUD-ендпоїнтами, документацією, юніт-тестами, інтеграціями зі Stripe. Але працює це не завжди: іноді ШІ вигадує синтаксис, плутає API або не розуміє, що саме ви просите.

Це рубрика «ШІ vs Джуніори». Попередні тексти ми присвятили QA та фронтендерам.

Нині ж разом з backend-розробниками розібралися, що ШІ може робити замість джуніорів, а де здатен нашкодити навіть досвідченим айтівцям. А наприкінці тексту зібрали приклади вдалих промптів для бекендерів.

Серед експертів:

🧙🏻 Що робить ШІ в бекенд-розробці

Згідно із зарплатною аналітикою DOU, у backend-розробці ШІ найчастіше використовують початківці. Серед тих, хто працює до трьох років, 90 % користуються ШІ-інструментами. Для порівняння: поміж фахівців, які мають понад 10 років досвіду, — лише 75 %.

Як backend-розробники користуються ШІ залежно від досвіду:


Найчастіше бекендери використовують ШІ для генерування CRUD-ендпоїнтів (NestJS, Express, Django — Create, Read, Update, Delete).

«Я бачив, як джуни запускали Copilot, вводили „create user endpoint with jwt-auth“ — і за 20 секунд мали базовий контролер + middleware. Це те, на що розробники цього грейду раніше могли витратити кілька годин», — ділиться CTO у Forma by Universe Group Ігор Закутинський.

Deputy Team Lead Android в appflame Володимир Стельмащук розповідає, як в одному з проєктів майже весь REST API написав за допомогою Cursor — давав тому короткі вказівки, і він генерував потрібний код.

«Можна проінструктувати: „Створи REST API з таким GET- і таким POST-запитом“ — і ШІ все згенерує. Також ШІ добре працює із завданнями, де основна складність — уважно прочитати документацію до стороннього API. Наприклад, усю інтеграцію зі Stripe я реалізував через Cursor буквально за дві-три години», — каже експерт.

Цікаво, що в backend-розробці використання ШІ залежить від тривалості досвіду, а не від позиції.

Хто з backend-розробників частіше користується ШІ:


Директор Design and Test Lab Володимир Обрізан зауважує, що в його компанії немає джунів-бекендерів. Однак наводить приклад, що ШІ може виконувати замість початківців:

«З останнього — це завдання джуна, яке виконав Codex. Ми зробили інтелектуальний пошук по бізнес-процесах компанії та, щоб надати інтерфейс співробітникам, мали інтегрувати Slack та OpenAI за допомогою Responses API. Для цього потрібно було розібратися зі Slack webhook-запитами, API OpenAI та логікою відповіді назад у Slack. Codex упорався за п’ять хвилин і створив базовий Flask-застосунок в одному файлі. Результат — у цьому GitHub-коміті».

Ще одне типове завдання для початківців — написання шаблонного (бойлерплейт) коду. Наприклад, Обрізан просив Codex згенерувати Dockerfile для запуску проєкту як контейнера. ШІ впорався з цим, і результат можна побачити тут.

Джуніори-бекендери використовують ШІ й для інших завдань:

  • Генерування моделей БД (TypeORM, Prisma, Django models — на основі опису структури або типів).
  • Валідація даних (наприклад, перевірка імейлу чи обов’язкових полів у DTO).
  • Генерування API-документації (Swagger / YAML, README, опис контролерів).
  • Пояснення функцій і генерування docstring’ів (додає коментарі до коду, пояснює логіку).
  • Написання дата-меперів і фабрик (конвертація DTO в Entity, генерування тестових об’єктів).
  • Генерування юніт- та інтеграційних тестів (прості перевірки для контролерів, сервісів, API).
  • Допомога з написанням нескладних запитів до data layer (ORM, SQL або query builders).
  • Налагодження коду й пошук причин помилок (аналіз stack trace, підказки щодо вирішення).

Backend Developer у Weblium Алла Капля працює на позиції джуна. У своїй роботі теж найчастіше послуговується ШІ для налагодження коду, щоб зрозуміти помилку та виправити її. А ще використовує ШІ як ментора:


«У бекенд-роботі звертаюся до ШІ, коли стикаюся з новим завданням, а керівник не має змоги детально пояснити. Часто чула: „Спитай у ШІ, розберися сама“. Зазвичай комбіную це з читанням документації, пошуком прикладів і поясненнями від ШІ», — ділиться Алла.

🧰 Якими ШІ-інструментами користуються джуни-бекендери

Ігор Закутинський зауважує, що бекендери можуть давати ШІ завдання у два способи:

  • Code completion (доповнення коду) — ШІ вбудовується в редактор коду (наприклад, VS Code або Cursor) й автоматично підказує або генерує фрагменти коду під час написання. Розробник починає писати — і ШІ завершує функцію, клас або окрему логіку.
  • Чат-підхід — у випадку з ChatGPT або Claude розробник просто формулює завдання у вигляді текстового запиту, наприклад: «Напиши сервіс NestJS для обробки PDF із методом convertToTxt()».
    У відповідь ШІ створює готову структуру з необхідними імпортами (як-от pdf-parse, fs) і асинхронним методом — код, який можна одразу вставити в проєкт.

Джунам-бекендерам він радить використовувати Cursor, бо той поєднує функції Copilot, пояснення ChatGPT і контекстність IDE.

Director of Engineering в Yalantis Артур Шевченко теж рекомендує Cursor, хоча сам працює в PyCharm і найчастіше користується JetBrains AI-асистентом та його агентом Junie. Для інших завдань послуговується ChatGPT або Gemini — наприклад, коли треба дослідити або обміркувати завдання.


«Інколи використовую обидва одночасно: надсилаю їм той самий запит і порівнюю відповіді. Іноді Gemini дає детальніші пояснення, а іноді — надто складні рішення. Тому завжди корисно розглянути кілька варіантів», — каже Шевченко.

Володимир Обрізан полюбляє користуватися OpenAI Codex CLI, який працює як агент у терміналі та бачить весь проєкт. Ще один варіант — Codex у вебінтерфейсі або в мобільному застосунку ChatGPT. Він одразу створює pull request у GitHub.

«До речі, мобільний застосунок виявився корисним. Одного разу я прокинувся, згадав ідею, дав Codex завдання просто з ліжка, заснув знову, а прокинувся вже з готовим pull request».

🤡 Коли ШІ виконує завдання погано

Експерти пояснюють, що ШІ погано виконує роботу бекендерів, коли йдеться про великі обсяги інформації або людський фактор:

  • Складна бізнес-логіка. Якщо потрібно глибоко розуміти предметну галузь або будувати архітектуру на основі domain-driven design, GPT часто просто вигадує або вгадує, замість того щоб дати справжнє інженерне рішення.
  • Виправлення складних багів. ШІ не читає думки: якщо джун не може чітко описати, що саме ламається, GPT не зможе допомогти. Він не бачить реальний стан програми, лише текстове пояснення.
  • Паралельне виконання коду (concurrency). У випадках із race conditions або складною взаємодією потоків (наприклад, у Nest чи Redis) GPT не завжди враховує виняткові ситуації й може запропонувати ненадійне рішення.
  • Архітектурні рішення. Як і джуну, GPT бракує досвіду, щоб зважити всі технічні трейдофи, взяти до уваги бізнес-вимоги й зробити обґрунтований вибір.
  • Робота з великим контекстом проєкту. Якщо завдання передбачає великий рефакторинг або інтеграцію в складний код, GPT може не врахувати всі зв’язки в кодовій базі.
  • Оптимізація запитів до бази даних. GPT зазвичай пише валідні SQL-запити, але вони не завжди ефективні з погляду продуктивності — особливо в складних випадках.
  • Legacy code. GPT може не вловити нюанси старого коду й додати щось, що зламає наявну логіку. Це особливо критично, коли проєкт має складну історію змін.

Алла Капля ділиться, що часто результат залежить від вибраного інструмента. Нерідко їй доводиться надсилати завдання на доопрацювання три-п’ять разів:

«Як правило, я не користуюся платною підпискою (за винятком корпоративного ШІ), тому трапляються диковини. Наприклад, ШІ підмінює написаний мною код. Певні частини переписує (гадки не маю навіщо), і тоді це перетворюється на неробочий шлак».

ШІ вчиться на коді, який був доступний до певної дати, тому краще працює з тим, що вже давно існує, додає Володимир Обрізан. Наприклад, якщо API змінюється кожні кілька місяців, як в OpenAI, — ШІ може згенерувати застарілий або неправильний код.

«Це парадоксально, бо Codex створила сама OpenAI, але йому невідомо, як працює найновіша версія OpenAI API. Причина в тому, що ШІ не знає нічого нового після дати, коли його навчали (це називається knowledge cut-off)», — ділиться експерт.

Ще один приклад — коли Володимир пробував новий синтаксис шаблонних рядків у Python 3.14. Каже, що ChatGPT придумав синтаксис, якого не існує, — код просто не працював.

Схожа ситуація була у Володимира Стельмащука:

«Я будую бібліотеку для роботи з геометрією. Одне із завдань — зібрати полігон із простих геометричних фігур. Здавалося б, не ракетобудування, але я вже втретє намагаюся це зробити, і щоразу — безрезультатно з ШІ. Остання спроба — реалізувати через R-tree (структуру для просторового пошуку). Я просив AI допомогти, але Cursor (IDE з вбудованим ШІ) почав пропонувати мені взагалі не ті структури: які завгодно дерева, тільки не R-tree. А я вже їх усі пробував — вони не працюють. У підсумку я просто відключив ШІ, бо він тільки відволікав».

👨🏻‍💼 Як у компаніях ставляться до використання ШІ

У більшості випадків компанії підтримують, щоб джуніори використовували генеративний ШІ. Однак наголошують: важливо перевіряти такі результати.

Наприклад, у Yalantis, де працює Артур Шевченко, побудований окремий AI SDLC — процес, що включає тренінги, рекомендації та матеріали про те, як ефективно користуватися ШІ, перевіряти його відповіді, шукати підтвердження в офіційній документації тощо.

Він зауважує, що джунам важливо мати менторську підтримку, бо ШІ часто пропонує або занадто прості, або, навпаки, надмірно складні рішення:

«Початківець не завжди спроможний точно оцінити, коли відповідь ШІ справді корисна, а коли — хибна. Штучний інтелект може вводити в оману, даючи неактуальні поради або генеруючи „галюцинації“».

Володимир Обрізан вважає, що генеративним ШІ мають користуватись усі — незалежно від рівня чи посади:

«Я заохочую, щоб ШІ використовували всі: джуни, мідли, сеньйори, бекендери, фронтендери, QA, менеджери, HR».

У початківця має бути змога швидко спробувати, протестувати, побачити результат і зробити висновки. Володимир додає, що джуніор не зробить код кращим за допомогою ШІ, але його наймають не лише для виконання завдань, а й за людську мотивацію:

«Від джуна я можу вимагати зусиль, відповідальності, розвитку. Від ШІ — ні. Це як сваритися з дзеркалом. І поки що я не готовий покликати ШІ в пʼятницю на пиво».

А Ігор Закутинський пропонує джунам чекліст, за допомогою якого можна перевірити себе після роботи з ШІ:

  • Я зрозумів, що робить цей код?
  • Я знаю, чому обраний саме такий підхід?
  • Я зможу це пояснити колезі?

🥊 Чи конкурують бекендери з ШІ

Алла Капля не вірить, що ШІ в майбутньому замінить її чи колег. Він робить розробника ефективнішим, це — інструмент. Артур Шевченко додає, що це все одно, якби молоток конкурував з будівельником.

Володимир Обрізан доповнює, що джуніори-бекендери, які не використовують ШІ, конкурують з тими, хто використовує. Якщо двоє кандидатів мають однаковий рівень знань, перевагу отримає той, хто вже працює з генеративними інструментами та агентами.

«Якби на співбесіді джуніор сказав, що не вміє використовувати ШІ та не хоче його вивчати, — це стало б для мене потужним сигналом не наймати таку людину».

GDE, Fractional CTO / Principal Engineer, Node.js Tech Speaker Микита Галкін додає, що не бачив жодних вимог до джуніорів, щоб вони знали промпт-інжиніринг:

«Але для мене очевидно, що джуніор, який може ефективно використовувати великі мовні моделі, легше знайде роботу. Під час моїх інтерв’ю та лайв-кодування я заохочую кандидата показати, як він використовує Google / LLM, щоб краще зрозуміти його навички».

🪄 Приклади вдалих промптів для джунів-бекендерів

Артур Шевченко:

Це гарний промпт, бо в ньому ви передаєте багато контексту, інформацію про те, що хочете отримати, та технічні деталі:

“I have identified code smells in my [programming language] code and would appreciate your assistance in creating a refactoring plan to address these issues: [code smells].

This code relates to a [project description] and is responsible for [functionality description]. 

Here’s a sample code for reference: [the code]

Suggest a step-by-step refactoring plan, including appropriate techniques or design patterns, and any additional considerations for ensuring a safe and effective refactoring process”.

Вставте свою мову програмування, які code smells ви знайшли, опис проєкту й функціональності та сам шматок коду — і ШІ підготує покроковий план виконання.

Микита Галкін:

Ось один з моїх шаблонів промптів. Зверніть увагу, що найкраще його використовувати для noreasoning-моделей.

“You are an expert in prompt engineering and optimization. Your task is to analyze and improve the following prompt: “prompt”

Please follow these steps:

0. Translate prompt from current language to English.

1. Briefly explain your understanding of the prompt’s goal.

2. Identify any ambiguities, unclear instructions, or potential issues in the prompt.

3. Ask ten crucial clarifying questions to better understand my intent.

4. Wait for my responses before proceeding.

5. Suggest an improved version of the prompt based on the clarifications.

6. Allow me to provide feedback on the suggested prompt for further refinement (optional iterations).

7. Once a satisfactory prompt is achieved, answer the prompt using the large language model.

Remember to consider factors such as clarity, specificity, context-setting, and alignment with the LLM’s capabilities”».

Володимир Обрізан:

Зазвичай я одразу зазначаю, що хочу використовувати конкретний стек технологій і типізацію через анотації. Це дає змогу швидко перевірити код та буквально за кілька секунд побачити, чи все працює, чи є помилки:

“Use latest Python syntax (version 3.12, 3.13). Always provide type annotations for functions and methods for arguments and return type. Use Django version 5. For databases, use PostgreSQL version 17. My server is hosted on Hetzner. nginx version: nginx/1.18.0 (Ubuntu) I use Docker for running my web apps. I prefer open-source self-hosted software”».

Ігор Закутинський:

Важливо вміти ставити контекст, форму виводу та обмеження, наприклад:

 "Поясни мені, як у NestJS зробити middleware для логування HTTP-запитів. Наведи приклад, а потім додай тест на нього за допомогою Jest”».

Алла Капля:

З мого досвіду:

  • ШІ працює схоже на пошукову систему: якщо не вмієте чітко формулювати запити, користі буде небагато.
  • Я завжди пишу лаконічно та з конкретикою; якщо бачу, що ШІ мене не розуміє, — змінюю формулювання.

Зазвичай даю такі запити:

“Попрацюй для мене ментором. Поясни особливості використання технології  [підставити своє], чим вона корисна, як я можу застосувати це в умовах [опис умов]. Надай приклади та деталізацію по них. Дай завдання з метою потренувати навички використання технології [підставити своє]”». 

Аналітика: Ірина Іполітова



Все про українське ІТ в телеграмі — підписуйтеся на канал DOU

👍ПодобаєтьсяСподобалось7
До обраногоВ обраному2
LinkedIn



2 коментарі

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.

От тільки робота джуна це не делівері, а навчання щоб перестати бути джуном.
Шкода шо в статті не висвітлили як ШІ допомагає їм вчитись ;)

Шкода шо в статті не висвітлили як ШІ допомагає їм вчитись

это еще большой вопрос, помогает ли...

Підписатись на коментарі