August 4, 2025

Использование AI при обучении программированию

Стал замечать, что многие ребята используют AI (различные LLM) при прохождении курса. При этом, используют его совершенно неправильно.

Приведу аналогию.

Решили вы чему-нибудь научиться, например, рисовать, играть на музыкальном инструменте, или бороться. Пришли в специальное учебное заведение: художку, музыкалку, секцию борьбы.

Естественно, там вам дают задания на отработку и закрепление различных навыков:

  • в художке — рисование кубов, шаров, цилиндров или штриховка;
  • в музыкалке — гаммы, арпеджио;
  • на борьбе — отработка стойки и передвижения, базовых захватов, падений.

Многому ли вы научитесь, если эти задачи будет выполнять за вас кто-то другой? Я думаю, что ничему не научитесь.

Аналогичная ситуация с изучением основ программирования. Решать тренировочные задачи нужно не для того, чтобы набрать баллы или получить сертификат, а для отработки и закрепления собственных навыков, для прояснения различных нюансов.

Когда вы просите какую-нибудь LLM решить задачу из Курса, то в этот момент обучается только LLM, а не вы. Ваша естественная нейронная сеть учится лишь составлять промпты, а не решать задачи.

Если вы хотите научиться программировать, то ПРОГРАММИРУЙТЕ, а не просите LLM делать это за вас.

Надеюсь, что вы не готовы согласиться на роль интерфейса между заказчиком и LLM, стать биологическим приложением для LLM, стать "сознательными придатками бессознательной, но однообразно действующей машины"?

Если LLM может сделать что-то вместо вас, то зачем тогда нужны вы?

В особенности это касается тех задач, которые у вас не получается решить самостоятельно. Например, первые два теста решение проходит, а на третьем падает. Сразу возникает соблазн, попросить помощи у LLM. И поступить так будет критической ошибкой, на мой взгляд. Именно в этот момент вы столкнулись с чем-то новым, с чем-то сложными и превосходящим ваши текущие знания, именно сейчас появилась возможность для роста над собой.

Как правильно использовать LLM при обучении программированию?

При изучении теории:

  1. Разъяснение концепций: Изучая теорию, просите ИИ пояснить то или иное непонятное место.
  2. Дополнительные примеры: Просите LLM дать вам дополнительные примеры и аналогии для запутанных мест и объяснений.
  3. Проверка понимания: Придумывайте собственные аналогии и примеры для иллюстрации различных концепций и нюансов, а потом попросите LLM проверить, правильно ли вы поняли эту концепцию? Соответствует ли ваша аналогия и/или пример этой концепции/нюанс?

При решении практических задач:

  1. Главное правило: Пока вы ещё не решили задачу, забудьте, что LLM существуют.

Когда вы написали решение и оно прошло автоматическую проверку:

  1. Code-review: Попросите LLM сделать code-review для вашего решения.
  2. Анализ ошибок: Спросите у ИИ, какие ошибки вы допустили в своём коде и как его можно было бы улучшить.
  3. Изучайте чужие решения: Когда вы разобрались со своим решением, изучайте с помощью LLM решения других учеников. Читайте их код на форуме решений и спрашивайте у LLM, что означает то или другое непонятное вам место, просите продемонстрировать ту или иную фишку на других примерах.

Напутствие:

LLM — это мощный инструмент, который увеличивает производительность программиста на порядки. Он позволяет программистам сосредоточиться на более творческих вопросах, а не на кодировании типовых вещей. И, не сомневаюсь, вы тоже будете им пользоваться, если изберёте программирование своей профессией. Но сперва

нужно самостоятельно освоить базу.

ИИ — это ваш помощник в понимании, а не замена вашему мышлению. Используйте его для углубления собственных знаний, но не позволяйте ему "думать" вместо вас при решении учебных задач.