Ещё три года назад идея попросить нейросеть написать рабочий код казалась экспериментом для энтузиастов. Сейчас это обычная рабочая практика. Разработчики используют ИИ чтобы закрывать рутинные задачи быстрее, а люди без технического образования — чтобы решать задачи которые раньше требовали нанять специалиста.
Вопрос уже не «умеет ли нейросеть писать код». Вопрос — какая справляется лучше и в чём разница.
Взяли два инструмента с Study AI — Генератор кода и ChatGPT 5.3 Codex — и прогнали через два теста: написать код с нуля и найти ошибку в готовом. Смотрим что вышло.
Участники тестирования
Генератор кода
Генератор кода — специализированная модель заточенная именно под работу с кодом. В отличие от универсальных языковых моделей, она обучена преимущественно на репозиториях, технической документации и задачах программирования. Понимает контекст кода глубже — видит не просто синтаксис, а логику и архитектуру.
Хорошо справляется с генерацией с нуля, рефакторингом, поиском ошибок и объяснением чужого кода. Отвечает лаконично — без лишних слов вокруг кода.
ChatGPT 5.3 Codex
ChatGPT 5.3 Codex — это версия GPT специально оптимизированная для задач программирования. Умеет работать с кодом в широком контексте — понимает не только что написано, но и зачем, предлагает альтернативные подходы, объясняет решения развёрнуто.
Сильная сторона — работа с многоязычными проектами и нестандартными задачами где нужна не просто генерация, а рассуждение над архитектурой.
Оба инструмента доступны на Study AI без VPN и лишних регистраций.
Тест 1: написать код с нуля
Задание
Написать на Python функцию которая переводит текст в азбуку Морзе. На вход — строка, на выходе — строка с точками и тире. Должна обрабатывать буквы, цифры и пробелы. Если символ не поддерживается — пропускать его.
Небольшое, понятное, с чётким ожидаемым результатом — хорошо подходит для сравнения.
Промт для обеих нейросетей
Напиши функцию на Python которая переводит текст в азбуку Морзе.Вход: строка с текстом (буквы, цифры, пробелы).Выход: строка с кодом Морзе, символы разделены пробелом,слова разделены " / ".Неподдерживаемые символы — пропускать без ошибки.В конце покажи пример использования с выводом.
Генератор кода — результат
from typing import Dict# International Morse code mapping for Russian + English letters and digitsMORSE_MAP: Dict[str, str] = { # Russian letters "а": ".-", "б": "-...", "в": ".--", "г": "--.", "д": "-..", "е": ".", "ё": ".", "ж": "...-", "з": "--..", "и": "..", "й": ".---", "к": "-.-", "л": ".-..", "м": "--", "н": "-.", "о": "---", "п": ".--.", "р": ".-.", "с": "...", "т": "-", "у": "..-", "ф": "..-.", "х": "....", "ц": "-.-.", "ч": "---.", "ш": "----", "щ": "--.-", "ъ": "--.--", "ы": "-.--", "ь": "-..-", "э": "..-..", "ю": "..--", "я": ".-.-", # English letters "a": ".-", "b": "-...", "c": "-.-.", "d": "-..", "e": ".", "f": "..-.", "g": "--.", "h": "....", "i": "..", "j": ".---", "k": "-.-", "l": ".-..", "m": "--", "n": "-.", "o": "---", "p": ".--.", "q": "--.-", "r": ".-.", "s": "...", "t": "-", "u": "..-", "v": "...-", "w": ".--", "x": "-..-", "y": "-.--", "z": "--..", # Digits "0": "-----", "1": ".----", "2": "..---", "3": "...--", "4": "....-", "5": ".....", "6": "-....", "7": "--...", "8": "---..", "9": "----.",}def text_to_morse(text: str) -> str: """Convert text to Morse code. Rules: - letters/digits are separated by a single space - words are separated by " / " - unsupported characters are skipped without error """ words = text.lower().split() encoded_words = [] for word in words: encoded_symbols = [] for ch in word: morse = MORSE_MAP.get(ch) if morse is not None: encoded_symbols.append(morse) if encoded_symbols: encoded_words.append(" ".join(encoded_symbols)) return " / ".join(encoded_words)if __name__ == "__main__": sample_text = "Привет, World 123 !" result = text_to_morse(sample_text) print("Input:", sample_text) print("Morse:", result)
Вывод:
Input: Привет, World 123 !Morse: .--. .-. .. .-- . - / .-- --- .-. .-.. -.. / .---- ..--- ...--
Сразу бросается в глаза: Генератор кода добавил полную поддержку русского алфавита — без дополнительного запроса. Все 33 буквы, включая ё, ъ, ы. Кроме того — аннотация типов через Dict[str, str], docstring с чёткими правилами, обработка регистра через .lower().
ChatGPT 5.3 Codex — результат
def text_to_morse(text: str) -> str: """ Преобразует текст в азбуку Морзе. Правила: - Поддерживаются буквы (латиница), цифры и пробелы. - Символы в Морзе разделяются пробелом. - Слова разделяются " / ". - Неподдерживаемые символы пропускаются без ошибки. """ morse_map = { # Буквы A-Z 'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.', 'F': '..-.', 'G': '--.', 'H': '....', 'I': '..', 'J': '.---', 'K': '-.-', 'L': '.-..', 'M': '--', 'N': '-.', 'O': '---', 'P': '.--.', 'Q': '--.-', 'R': '.-.', 'S': '...', 'T': '-', 'U': '..-', 'V': '...-', 'W': '.--', 'X': '-..-', 'Y': '-.--', 'Z': '--..', # Цифры 0-9 '0': '-----', '1': '.----', '2': '..---', '3': '...--', '4': '....-', '5': '.....', '6': '-....', '7': '--...', '8': '---..', '9': '----.' } encoded_words = [] # Разделяем по пробелам: каждое слово кодируем отдельно, # между словами затем ставим " / " for word in text.upper().split(): encoded_chars = [] for ch in word: code = morse_map.get(ch) if code is not None: # неподдерживаемые символы пропускаем encoded_chars.append(code) if encoded_chars: # добавляем только непустые слова encoded_words.append(' '.join(encoded_chars)) return ' / '.join(encoded_words)# Пример использованияinput_text = "Hello 123 world!"result = text_to_morse(input_text)print("Вход:", input_text)print("Выход:", result)
Вывод:
Вход: Hello 123 world!Выход: .... . .-.. .-.. --- / .---- ..--- ...-- / .-- --- .-. .-.. -..
Codex поместил словарь прямо внутрь функции и добавил подробный docstring на русском. Код компактнее и читается как единое целое — всё в одном месте, ничего лишнего снаружи. Из минусов: только латиница, русский алфавит не поддерживается.
Итог теста 1
Оба написали рабочий код. Генератор кода пошёл дальше задания — добавил русский алфавит и вынес словарь на уровень модуля, что удобно если функция будет вызываться много раз. Codex придерживался задания точнее: только латиница, структура проще. Для быстрого прототипа подойдёт любой. Для кода который должен работать с русским текстом — однозначно первый.
Тест 2: найти и исправить ошибку
Код с ошибкой
Вот небольшая функция на Python. Она должна находить самый частый элемент в списке. Код выглядит правдоподобно — но в нём есть ошибка.
def most_frequent(numbers): counts = {} for num in numbers: if num in counts: counts[num] += 1 else: counts[num] = 0 # <- вот здесь return max(counts, key=counts.get)print(most_frequent([1, 2, 2, 3, 3, 3, 4]))
Где ошибка: в строке counts[num] = 0. Когда элемент встречается впервые, его счётчик устанавливается в 0 вместо 1. В итоге все элементы которые встречаются ровно один раз получают счётчик 0, а те что встречаются дважды — счётчик 1 (а не 2). Функция возвращает неправильный результат — в данном случае выдаст 2 вместо 3.
Промт для обеих нейросетей
Найди ошибку в этом Python-коде и исправь её.Объясни что именно было не так.[код вставляется полностью]
Генератор кода — результат
Нашёл ошибку сразу и точно:
Когда число встречается впервые, ты ставишь счётчик в
0, хотя первая встреча уже произошла. Из-за этого все частоты занижены на 1.
Исправленный код:
def most_frequent(numbers): if not numbers: raise ValueError("numbers must not be empty") counts = {} for num in numbers: if num in counts: counts[num] += 1 else: counts[num] = 1 # первая встреча = 1 return max(counts, key=counts.get)if __name__ == "__main__": print(most_frequent([1, 2, 2, 3, 3, 3, 4])) # 3
Помимо основного исправления добавил проверку на пустой список — чтобы max() не падал с неочевидной ошибкой. Лаконично и по делу.
ChatGPT 5.3 Codex — результат
Тоже нашёл ошибку, объяснил чуть подробнее:
Ошибка в строке инициализации счётчика: было
counts[num] = 0, должно бытьcounts[num] = 1. Когда число встречается впервые, его частота уже равна 1. Если поставить 0, все частоты будут занижены на 1. В этом примере итог часто получается правильным — потому что относительный порядок частот сохраняется — но это логически неверный подсчёт и может привести к проблемам при дальнейшей обработке частот.
Исправленный код:
def most_frequent(numbers): if not numbers: raise ValueError("Список numbers не должен быть пустым") counts = {} for num in numbers: if num in counts: counts[num] += 1 else: counts[num] = 1 # исправлено: первая встреча = 1, а не 0 return max(counts, key=counts.get)print(most_frequent([1, 2, 2, 3, 3, 3, 4])) # 3
Тоже добавил проверку на пустой список — независимо от первого.
Итог теста 2
Оба нашли ошибку правильно и оба самостоятельно добавили проверку на пустой список — без запроса. Разница в подаче: Генератор кода — коротко, с пояснением. Codex — чуть подробнее, отдельно объясняет почему на конкретном примере результат всё равно иногда выходит верным — и это полезно если важно понять суть, а не просто получить фикс.

Вопросы и ответы
Подходит ли это для людей без опыта программирования? Да. Для простых задач — написать скрипт, автоматизировать таблицу, собрать парсер — опыт не нужен. Главное чётко описать что должна делать программа. Чем конкретнее описание, тем точнее результат.
Можно ли доверять коду нейросети в продакшн? Простые функции — как правило да, после проверки. Сложную архитектуру, код с доступом к базам данных или финансовыми операциями — лучше проверять с разработчиком. Нейросеть может написать код который работает, но не оптимально или небезопасно.
На каком языке программирования лучше работают? Python — лучше всего, он был в обучающих данных больше всего. JavaScript, TypeScript, Go, Rust — тоже хорошо. Редкие или специфические языки — хуже, возможны ошибки.
Что лучше — Генератор кода или Codex? Зависит от задачи. Генератор кода — когда нужно быстро сделать или исправить. Codex — когда важно понять логику и получить подробное объяснение. Попробовать оба на своей задаче можно на Study AI.
Как правильно описывать задачу для лучшего результата? Указывайте язык, входные данные и ожидаемый результат. Если есть ограничения — напишите их сразу. «Напиши функцию на Python, вход — список чисел, выход — число, без использования сторонних библиотек» — это хороший промт.
Заключение
Обе нейросети справились с задачами уверенно. Рабочий код с нуля, найденная ошибка с объяснением — без единой подсказки.
Разница между ними не в качестве, а в стиле и глубине. Генератор кода — быстро, компактно. ChatGPT 5.3 Codex — подробно, с комментариями и разбором логики. Для разных ситуаций подходят разные инструменты — и хорошо что они доступны в одном месте.
✨ Попробовать написать код в нейросети на Study AI
нейросеть написать код, генератор кода нейросеть, chatgpt codex программирование, нейросеть для разработчиков, написать python код нейросеть, нейросеть найти ошибку в коде, codex vs генератор кода, study ai программирование, нейросеть вместо программиста, как написать код через нейросеть
ссылка на оригинал статьи https://habr.com/ru/articles/1034246/