Использование AI при обучении программированию
Стал замечать, что многие ребята используют AI (различные LLM) при прохождении курса. При этом, используют его совершенно неправильно.
Решили вы чему-нибудь научиться, например, рисовать, играть на музыкальном инструменте, или бороться. Пришли в специальное учебное заведение: художку, музыкалку, секцию борьбы.
Естественно, там вам дают задания на отработку и закрепление различных навыков:
- в художке — рисование кубов, шаров, цилиндров или штриховка;
- в музыкалке — гаммы, арпеджио;
- на борьбе — отработка стойки и передвижения, базовых захватов, падений.
Многому ли вы научитесь, если эти задачи будет выполнять за вас кто-то другой? Я думаю, что ничему не научитесь.
Аналогичная ситуация с изучением основ программирования. Решать тренировочные задачи нужно не для того, чтобы набрать баллы или получить сертификат, а для отработки и закрепления собственных навыков, для прояснения различных нюансов.
Когда вы просите какую-нибудь LLM решить задачу из Курса, то в этот момент обучается только LLM, а не вы. Ваша естественная нейронная сеть учится лишь составлять промпты, а не решать задачи.
Если вы хотите научиться программировать, то ПРОГРАММИРУЙТЕ, а не просите LLM делать это за вас.
Надеюсь, что вы не готовы согласиться на роль интерфейса между заказчиком и LLM, стать биологическим приложением для LLM, стать "сознательными придатками бессознательной, но однообразно действующей машины"?
В особенности это касается тех задач, которые у вас не получается решить самостоятельно. Например, первые два теста решение проходит, а на третьем падает. Сразу возникает соблазн, попросить помощи у LLM. И поступить так будет критической ошибкой, на мой взгляд. Именно в этот момент вы столкнулись с чем-то новым, с чем-то сложными и превосходящим ваши текущие знания, именно сейчас появилась возможность для роста над собой.
Как правильно использовать LLM при обучении программированию?
При изучении теории:
- Разъяснение концепций: Изучая теорию, просите ИИ пояснить то или иное непонятное место.
- Дополнительные примеры: Просите LLM дать вам дополнительные примеры и аналогии для запутанных мест и объяснений.
- Проверка понимания: Придумывайте собственные аналогии и примеры для иллюстрации различных концепций и нюансов, а потом попросите LLM проверить, правильно ли вы поняли эту концепцию? Соответствует ли ваша аналогия и/или пример этой концепции/нюанс?
При решении практических задач:
Когда вы написали решение и оно прошло автоматическую проверку:
- Code-review: Попросите LLM сделать code-review для вашего решения.
- Анализ ошибок: Спросите у ИИ, какие ошибки вы допустили в своём коде и как его можно было бы улучшить.
- Изучайте чужие решения: Когда вы разобрались со своим решением, изучайте с помощью LLM решения других учеников. Читайте их код на форуме решений и спрашивайте у LLM, что означает то или другое непонятное вам место, просите продемонстрировать ту или иную фишку на других примерах.
Напутствие:
LLM — это мощный инструмент, который увеличивает производительность программиста на порядки. Он позволяет программистам сосредоточиться на более творческих вопросах, а не на кодировании типовых вещей. И, не сомневаюсь, вы тоже будете им пользоваться, если изберёте программирование своей профессией. Но сперва
нужно самостоятельно освоить базу.
ИИ — это ваш помощник в понимании, а не замена вашему мышлению. Используйте его для углубления собственных знаний, но не позволяйте ему "думать" вместо вас при решении учебных задач.