То, что код работает сам по себе, больше не является достаточным доказательством освоения программирования, считает Ардит Сульче, преподаватель Python, чьи курсы на Udemy прошли более 650 000 студентов. Поскольку инструменты искусственного интеллекта способны создавать значительные части приложений, акцент смещается с написания каждой строки на понимание результата работы инструментов, его проверку, обнаружение ошибок и понимание того, как компоненты системы связаны друг с другом.
Эта точка зрения прозвучала в интервью, опубликованном JetBrains Blog, с Сульче, который имеет 10-летний опыт преподавания программирования и степень магистра геотехнологий Университета Мюнстера в Германии. Он также является основателем и ведущим разработчиком платформы ActiveSkill Dev, использующей искусственный интеллект в качестве персонального преподавателя для изучения программирования и разработки программного обеспечения.
Искусственный интеллект изменил вопросы, но не отменил роль преподавателя
Сульче говорит, что количество ежедневных вопросов от студентов сократилось в пять—10 раз по сравнению с периодом до распространения генеративного искусственного интеллекта. Когда студент сталкивается с проблемой, он может мгновенно получить ответ вместо того, чтобы публиковать вопрос на странице обсуждения и ждать преподавателя или ассистента.
Однако оставшиеся вопросы, по его словам, стали более масштабными и в большей степени зависят от суждения: какой путь следует выбрать? Подходит ли проект для портфолио? И как изучаемый материал вписывается в более широкую картину? С этой точки зрения задача учебного курса заключается не только в ответе на конкретный вопрос, но и в предоставлении структурированного пути в области, где новичок ещё не знает даже своих основных вопросов.
Изменились и ожидания учащихся. Курс Python, игнорирующий связь языка с искусственным интеллектом, кажется им устаревшим: они хотят учиться использовать инструменты для ускорения написания кода и создания приложений на основе языковых моделей, агентов и автоматизации. При этом преподаватель по-прежнему важен для определения того, что и в каком порядке следует изучать, а также для формирования мотивации и любопытства, которые, по мнению Сульче, инструментам искусственного интеллекта всё ещё сложно стабильно воспроизводить автоматически.
Не все учебные трудности одинаково полезны
Сульче различает усилия, формирующие понимание, и препятствия, которые лишь тратят время. Попытка понять, почему цикл выполняется ещё один раз, или проследить поток данных внутри программы может быть частью обучения. А проблемы с установкой неисправного драйвера, неясной ошибкой конфигурации или устаревшим уроком, больше не совместимым с текущей средой, можно передать искусственному интеллекту без очевидных образовательных потерь.
Согласно этому правилу, новичок должен спросить себя: даст ли решение этой проблемы понимание, которое я смогу использовать позже, или оно лишь вернёт меня к исходной точке? Сульче подчёркивает, что на этапе обучения по-прежнему важно писать код вручную, поскольку это помогает сформировать ментальную модель переменных, циклов и потока данных. В профессиональной работе, однако, самостоятельное написание всего кода может стать менее важным, чем проверка результата, созданного инструментами.
Три навыка для разработчиков в начале карьеры
- Чтение кода, написанного не ими: разработчик должен читать репозитории GitHub, свои старые проекты и результаты работы агентов, а также определять, корректен ли код и остаётся ли он подходящим при изменении входных данных.
- Точное описание требуемого результата: Сульче считает, что хороший запрос к модели — это спецификация, определяющая, что должен делать код и чего он не должен делать, а также как ему следует вести себя в крайних случаях. Это близко к понятию требований, которое часто входило в обязанности другой стороны.
- Понимание на уровне системы: недостаточно знать отдельные части кода; разработчику необходимо понимать компоненты приложения и способ их взаимодействия. Именно этот навык позволяет ему руководить искусственным интеллектом, а не становиться зависимым от его результатов.
Это приводит к изменению способов оценки студентов и кандидатов на работу. Вместо того чтобы просто просить создать приложение, Сульче предлагает предоставлять сгенерированный искусственным интеллектом код с конкретной проблемой — например, ошибкой в границах цикла, скрытым подавлением исключений или некорректным поведением при пустом входном значении — и проверять способность человека обнаружить и объяснить проблему. Можно также провести сеанс отладки в реальном времени, чтобы наблюдать, как человек сужает область поиска неисправности.
Постепенный путь от кода к контролю
Сульче делит обучение на три этапа: сначала вручную писать небольшие реальные программы в интегрированной среде разработки, затем использовать искусственный интеллект в качестве учителя, объясняющего непонятные моменты по мере перехода к более крупным проектам, и наконец использовать его как коллегу, который пишет части кода, пока учащийся их проверяет.
Эта последовательность предполагает постепенное увеличение размера проектов: от скрипта к приложению, использующему базу данных, затем к проекту, работающему с пользователями, далее к опубликованному сервису и приложению, подключённому к API. На практике этот путь связывает знание синтаксиса с пониманием систем, а не предполагает, что архитектурное понимание автоматически появится после нескольких лет написания кода.
Интервью подтверждает, что обучение в профессиональной среде разработки — не формальная деталь. Проекты, использующие искусственный интеллект, включают ключи API в файлах окружения, виртуальные среды, конфликты зависимостей, различия между версиями пакетов, а также файлы, создаваемые или изменяемые агентами. Поэтому способность запустить проект, проверить изменения, исправить сбои и безопасно изменить код определяет, действительно ли учащийся контролирует инструмент или лишь принимает то, что он создаёт.