August 4

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

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

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