Подумайте сами, хотите ли вы, чтобы ИИ научил вас программировать

Подумайте сами, хотите ли вы, чтобы ИИ научил вас программировать

Исходный узел: 3087147

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

Программирование требует терпения и настойчивости, особенно в начале процесса обучения, когда ничто не имеет особого смысла. Правила написания кода кажутся запутанными. Существуют всевозможные знаки препинания и символы, которые следует использовать осторожно. Отсутствие двоеточия или запятой, а также неправильное расположение отступов могут привести к ошибкам, в зависимости от используемого языка. Со временем, при достаточной практике, все встанет на свое место.

Как и большинство новичков, изучающих программирование в Интернете, я начал с просмотра обучающих программ и решения задач в наборах упражнений по программированию. Когда я застревал в какой-то проблеме, было очень заманчиво обратиться к ChatGPT, который легко помог бы мне найти правильное решение. Помощники такого типа хорошо генерируют простой код, а некоторые из них могут даже дать вам полный ответ, как вы его описываете.

Я понял это, когда боролся с реализацией определенной функции, и отключил функцию автозаполнения GitHub Copilot в Visual Studio Code, чтобы не обмануть себя.

Не просто копируйте и вставляйте

Дэвид Малан, профессор информатики в Гарвардском университете, преподает CS50, популярный вводный курс по информатике (который можно пройти бесплатно). онлайн), согласен, что иногда ИИ может быть слишком полезным. 

Чтобы отговорить учеников от использования таких инструментов, как ChatGPT от OpenAI или Bard от Google, для выполнения заданий, учителя предложили им альтернативу: виртуальную резиновую утку. CS50 Duck — это чат-бот для кодирования, работающий на базе GPT-4, но имеющий ограждения, не позволяющие учащимся мошенничество.

Отладка резиновой утки, как вы, возможно, знаете, это вещь в разработке программного обеспечения: если вы застряли в каком-то коде, обсуждение проблемы с какой-нибудь игрушкой или другим неодушевленным предметом может помочь вам найти решение самостоятельно. Это довольно эффективно.

Утиный отладчик CS50 — дань уважения этому: бот настроен на дружелюбие и поддержку, он отвечает только на запросы, связанные с курсом, и не дает ответов на домашние задания, сказал Малан. Регистр

«Наша политика в начале курса заключается в том, что студенты не могут использовать стороннее программное обеспечение, такое как ChatGPT и Copilot; они просто склонны быть слишком полезными, слишком готовы сразу предлагать ученикам решения, а не направлять их к ним, как это мог бы сделать хороший учитель. Но студентам разрешается и поощряется использовать собственное программное обеспечение CS50 на основе искусственного интеллекта, в котором предусмотрены эти педагогические барьеры», — сказал он.

Утка CS50 была представлена ​​в прошлом году, и отзывы о ней были в основном положительными. Наличие виртуального репетитора означает, что студенты могут обратиться за помощью в любое время. Но, как и все модели ИИ, он может ошибаться и не всегда точен. Первоначальные тесты показали, что он способен правильно ответить примерно на 88 процентов вопросов, связанных с учебной программой. 

Бот-кодировщик также полезен преподавателям; это дает им больше времени, чтобы помочь ученикам в других областях, помимо домашней работы. В исследовательской работе [PDF] Анализируя влияние утиного отладчика, преподаватели Гарварда заявили, что их эксперимент по созданию виртуального помощника по программированию с искусственным интеллектом окупился. Они считают, что «генеративный ИИ [может] способствовать обучению учащихся, а не просто разрушать его», и ищут способы применения этой технологии в других предметах.

Экономия времени за счет меньшего поиска в Google

Как бы то ни было, мое академическое образование связано с физикой и научной журналистикой, а не с информатикой. Я начал учиться программировать незадолго до того, как появилось последнее поколение чат-ботов. Раньше я пытался понять концепции программного обеспечения или исправить ошибки, как и многие люди, читая сообщения в блогах или ища примеры аналогичного кода на таких сайтах, как Stack Overflow. ИИ позволяет мне сократить этот процесс.

Вместо того, чтобы просеивать массу информации в поисках решений, которые лучше всего соответствуют моей проблеме, теперь я могу обратиться за прямой помощью к большой языковой модели. Я учусь, чтобы лучше понимать технологии, которые используют другие; эти цифровые помощники помогают мне быстрее вникнуть в суть дела, чем корпеть над многочисленными статьями, скажем, о срезах и массивах или листать программные проекты других людей.

Однако машинный код не всегда полезен и может снизить качество кодовой базы. Если я скопировал и вставил выходные данные ИИ-помощника в свой исходный код, это часто приводило к появлению новых ошибок, поскольку не соответствовало остальной части моей программы. Попытка исправить эти ошибки может быть сложной, особенно если вы не понимаете, что было сгенерировано. Для новичка не всегда было понятно, были ли ошибки вызваны просто неправильным кодом или он использовался в неправильном контексте.

«Я думаю, что если кто-то хочет научиться кодировать [с использованием нынешнего] набора инструментов искусственного интеллекта, ему следует подойти к этому с двумя целями: найти время, чтобы научиться программировать достаточно, чтобы знать, что генерирует инструмент. [И] возьмите на себя роль «ревьюера кода» и изучите, как выявлять и улучшать плохой код», — Зед Шоу, разработчик программного обеспечения и автор книги Изучите Python на жестком пути, Сказал Регистр

Программисты должны иметь возможность обнаруживать ошибки в машинном коде и не должны полностью доверять ботам. «Тот факт, что ChatGPT предлагает решения быстрее, завернутые в обнадеживающие фразы вроде: «Я думаю, это должно решить вашу проблему…», позволяет нам отключить критическое мышление и не подвергать сомнению его решения так тщательно, как следовало бы», — сказал Чарльз Северанс, профессор информатики в Школе информации Мичиганского университета. выпустил бесплатные онлайн-курсы по программированию.

«Всегда предполагайте, что ChatGPT — менее квалифицированный программист, чем вы. Единственный безопасный способ использовать инструменты ИИ — это когда вы уверены, что решение, которое он создает, правильное», — добавил он. 

Вам нужно знать, что вы делаете

Чтобы эффективно использовать эти инструменты, вы должны понимать свою проблему и четко объяснить ее в подсказке. Качество кода, возвращаемого на выходе, зависит от того, как вы сформулируете свои вопросы на входе, рассказал Инбал Шани, директор по продукту GitHub. Регистр.

Пользователи должны взаимодействовать с Второй пилот GitHub «Как будто они разговаривали с коллегой», — предположила она. «Чем больше вы расскажете сидящему рядом с вами помощнику о своих намерениях и направлении решения проблемы, которую пытаетесь решить, тем лучший ответ вы получите, потому что ИИ получает больше контекста. Он знает, как выполнить более детальный поиск, чтобы найти нужный фрагмент кода или порекомендовать вам подходящую инфраструктуру тестирования», — сказала она. 

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

Филипп Компо, доцент Университета Карнеги-Меллон, создавший Розалинда платформы и Программирование для влюбленных учебник для людей, интересующихся вычислительной биологией, согласен.

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

«Одна из вещей, которые я показываю студентам, заключается в том, что лучший способ получить чистый и правильный ответ от кода, генерирующего инструмент искусственного интеллекта, — это если вы сможете четко и правильно указать, что именно компьютер должен делать. Это само определение программирования компьютера, и со временем языки программирования, которые мы используем, стали больше соответствовать человеческому языку; инструменты чата — это лишь следующий шаг в этой эволюции», — сказал он. Регистр

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

Отметка времени:

Больше от Регистр