Инструменты
Нейросеть может сделать учёбу быстрее, а может тихо её отменить. Если просить «реши задачу», вы получите ответ, но не навык. Если просить «объясни, где я ошибся, но не исправляй», у вас появляется наставник, который отвечает в любое время и не устаёт от вопросов.
Ниже — как использовать ИИ именно для обучения программированию: какие режимы для этого уже есть в инструментах, какие промты работают и как не перепутать «понял» с «скопировал».
Наставник, а не решебник#
Хороший публичный пример — курс CS50 Гарвардского университета. В 2023 году команда курса встроила в него собственные ИИ-инструменты и описала опыт в статье «Teaching CS50 with AI» для конференции SIGCSE 2024. Главная идея: инструменты должны подводить студента к решению, а не выдавать его готовым. В курсе для этого сделали чат-бота в виде «резиновой утки» (отсылка к приёму rubber duck debugging, когда объясняешь проблему вслух и сам находишь ошибку) и функцию объяснения выделенного кода прямо в редакторе. Коммерческие ассистенты в курсе при этом ограничивали.
Из этого опыта следует простой принцип, который можно применить к любому ассистенту: код пишете вы, ИИ объясняет и спрашивает. Всё остальное в этой статье — способы этот принцип настроить.
Режимы, которые уже есть в инструментах#
Некоторые ассистенты для разработки умеют работать как наставник без длинных промтов.
Claude Code: стили Explanatory и Learning. По документации Claude Code у него есть встроенные стили ответа. В стиле Explanatory агент делает задачу как обычно, но добавляет в разговор короткие блоки Insight с объяснением, почему код написан именно так. В стиле Learning он идёт дальше: рутину делает сам, а там, где есть настоящее решение (обработка ошибок, выбор структуры данных, бизнес-логика с несколькими вариантами), оставляет в файле комментарий TODO(human) и просит вас написать эти строки. После этого он ждёт и комментирует ваш код. Стиль переключается командой /output-style. Подробнее об инструменте — в карточке Claude Code.
Cursor: режим Ask. Это режим только для чтения: агент изучает код и отвечает на вопросы, но ничего не меняет. Удобно, когда нужно разобраться в чужом проекте или в примере из курса и при этом не дать агенту «починить» всё за вас. Как переключать режимы и писать запросы, разобрано в статье как писать промты для Cursor.
Любой чат. Если готового режима нет, его заменяет постоянная инструкция. В агентах для кода её можно записать в файл правил (о нём ниже), в обычном чате — вставить в начало разговора.
Промты для учёбы#
В квадратных скобках — то, что нужно заменить.
Наставник вместо решебника:
Я учу [язык]. Не пиши за меня решение задачи.
Задавай наводящие вопросы, по одному за раз.
Если я застрял дважды подряд, дай подсказку, но не код целиком.
Когда я пришлю решение, укажи ошибки и объясни, почему это ошибки.
Объяснить код:
Объясни этот код построчно, как новичку, который знает [что уже знаю].
Для каждой незнакомой конструкции: как называется, зачем нужна,
где почитать в официальной документации.
[код или @файл]
Разбор ошибки:
Вот моя программа и ошибка: [код] [текст ошибки].
Не исправляй. Объясни, что означает ошибка, и подскажи,
в какой строке искать причину. Я попробую исправить сам.
Проверка понимания:
Я только что разобрал тему [тема]. Задай мне 5 вопросов
от простого к сложному. Ответы не показывай, пока я не отвечу.
После каждого ответа скажи, верно ли, и что я упустил.
Задача для практики:
Придумай небольшую задачу на [тема] для уровня [уровень].
Дай условие и пример входа и выхода. Решение не показывай.
Если вы учитесь на реальном проекте, а не на упражнениях, промты под конкретные шаги (план, исправление ошибки, сайт) есть в библиотеке промтов.
Как учиться на своём проекте#
Учебные задачи полезны, но многие учатся быстрее на том, что им действительно нужно: сайт, бот, утилита. Схема, которая сохраняет обучение:
- Сначала опишите, что делаете. Короткое ТЗ на пять-десять строк заставляет подумать до кода. Шаблон — на странице ТЗ для нейросети.
- Попросите план, а не код. Агент предлагает шаги, вы обсуждаете их и выбираете порядок. Готовый текст — промт «сначала план».
- Один шаг — пишете сами. Чередуйте: один шаг агент, один вы. Или включите стиль Learning, где это происходит само.
- Разбирайте каждое изменение. После шага агента спросите: что изменилось, почему так, какие были альтернативы.
- Запишите правила обучения в файл. В агентах для кода постоянные инструкции хранятся в файле: AGENTS.md, CLAUDE.md для Claude Code или правила Cursor в папке
.cursor/rules. Туда можно положить, например, «я учусь, объясняй каждое изменение и не меняй больше одного файла за раз».
Пошаговые разборы для типовых проектов — в разделе задачи.
Как не превратить ИИ в костыль#
Несколько правил, которые помогают отличить обучение от копирования:
- Объясните код своими словами. Если не можете пересказать, что делает функция, вы её не поняли, даже если она работает. Саймон Уиллисон (Simon Willison) применяет похожее правило в работе: не коммитит код, который не смог бы объяснить другому человеку.
- Повторите без подсказки. Через день напишите то же самое с нуля, не глядя в чат. То, что не получилось, и есть тема для следующего занятия.
- Проверяйте объяснения запуском. Модели ошибаются уверенно: могут сослаться на несуществующий метод или устаревший синтаксис. Запустите код и сверьтесь с официальной документацией языка.
- Читайте ошибки сами, прежде чем копировать в чат. Умение понять сообщение об ошибке — один из главных навыков программиста, и его легко не развить, если сразу отдавать всё нейросети.
- Не путайте учёбу и вайбкодинг. Принимать код не читая — нормально для прототипа на выходные, но это не обучение. Где проходит граница, разобрано в статье вайбкодинг простыми словами.
Когда дойдёте до своих проектов, пригодится чек-лист как проверить код от нейросети: он учит смотреть на код критически, и это тоже часть обучения.
Какой инструмент взять#
Для учёбы не нужен самый мощный инструмент. Нужен тот, где удобно задавать вопросы о коде и можно ограничить автоматические правки. Варианты, с которых можно начать без оплаты, собраны в подборке бесплатные нейросети для программирования, а условия каждого инструмента — в каталоге.
Источники: Liu и др., «Teaching CS50 with AI», SIGCSE 2024; CS50 Duck; Claude Code — Output styles; Cursor — Ask mode; Simon Willison — Not all AI-assisted programming is vibe coding.