如果你想让人工智能教你如何编码,请自己思考

如果你想让人工智能教你如何编码,请自己思考

源节点: 3087147

专栏 使用人工智能学习如何编程现在可能比以往任何时候都容易,尽管必须明智地使用为您建议或生成源代码的工具。 

编程需要耐心和坚持,尤其是在学习过程开始时,什么都没有多大意义。编写代码的规则似乎令人困惑。有各种各样的标点符号和符号,必须小心使用。缺少冒号或逗号,或者弄乱缩进可能会导致错误,具体取决于所使用的语言。随着时间的推移,经过足够的练习,它确实会到位。

像大多数学习如何在线编码的初学者一样,我首先观看教程并解决一系列编程练习中的问题。当我遇到问题时,我很想求助于 ChatGPT,它可以轻松帮助我找到正确的解决方案。这些类型的助手擅长生成简单的代码,其中一些甚至可以给您一个完整的答案,正如您所描述的那样。

我在努力实现特定函数时意识到了这一点,并关闭了 Visual Studio Code 中 GitHub Copilot 的自动完成功能以防止自己作弊。

不要只是复制和粘贴

David Malan,哈佛大学计算机科学教授,教授 CS50,这是一门流行的计算机科学入门课程(可以免费学习) 在线),同意人工智能有时有点太有帮助了。 

为了阻止学生使用 OpenAI 的 ChatGPT 或 Google 的 Bard 等工具来完成作业,老师们为他们提供了另一种选择:虚拟橡皮鸭。 CS50 duck 是一款由 GPT-4 提供支持的编码聊天机器人,但设有护栏以防止学生 作弊.

您可能知道,橡皮鸭调试, 是一件事 在软件开发中:如果你被某些代码困住了,与一些玩具或其他无生命物体讨论问题可以帮助你自己找出解决方案。这是相当有效的。

CS50 鸭子调试器就是对此的致敬:该机器人已经准备好友好和支持,它只响应与课程相关的查询,并且不提供家庭作业问题的答案,马兰告诉 注册

“我们在课程开始时的政策是,学生不得使用 ChatGPT 和 Copilot 等第三方软件;他们只是太乐于助人,太愿意直接为学生提供解决方案,而不是像一个好老师那样引导他们走向解决方案。但学生被允许并鼓励使用 CS50 自己的基于人工智能的软件,该软件有这些教学护栏,”他说。

CS50 duck于去年推出,得到的反馈大多是积极的。拥有虚拟导师意味着学生可以随时寻求帮助。但与所有人工智能模型一样,它可能会犯错误并且并不总是准确的。初步测试表明,它能够正确回答大约 88% 的与课程相关的问题。 

编码机器人对于教师来说也很有用。这让他们有更多的时间来帮助学生完成家庭作业以外的其他领域。在一篇研究论文中[PDF] 在分析鸭子调试器的影响后,哈佛大学的老师们表示,他们构建虚拟人工智能编码助手的实验已经取得了回报。他们相信“生成式人工智能可以促进学生的学习,而不仅仅是破坏它”,并且正在寻找将该技术应用于其他学科的方法。

减少谷歌搜索,节省时间

无论如何,我的学术背景是物理和科学新闻,而不是计算机科学。就在最新一代聊天机器人兴起之前,我开始学习如何编码。以前,我会像许多人一样,通过阅读博客文章或在 Stack Overflow 等网站上搜索类似代码的示例来尝试理解软件概念或修复错误。人工智能让我可以缩短这个过程。

我现在可以向大型语言模型寻求直接帮助,而不是筛选大量信息来寻找最适合我的问题的解决方案。我学习是为了更好地理解其他人正在使用的技术;这些数字助理让我更快地掌握速度,而不是仔细阅读多篇有关切片与数组的文章,或者翻阅其他人的软件项目。

然而,机器编写的代码并不总是有用的,并且可以 降低品质 的代码库。如果我将人工智能助手的输出复制并粘贴到我的源中,它通常会引入新的错误,因为它与我程序的其余部分不匹配。尝试修复这些错误可能会很棘手,尤其是当您不了解生成的内容时。作为新手,并不总是清楚这些错误是否是因为代码完全错误,或者是否在错误的上下文中使用。

“我认为,如果有人想学习[使用当前的]人工智能工具进行编码,他们应该有两个目标:花时间学习足够的编码,以了解该工具正在生成什么。 [并且]扮演‘代码审查者’的角色,研究如何识别和改进不良代码。”软件开发人员、《代码审查员》的作者 Zed Shaw 学习Python是一种艰辛的方式告诉 注册

程序员应该能够发现机器代码中的错误,并且不应该完全信任机器人。 “事实上,ChatGPT 可以更快地提供解决方案,并包含一些令人放心的短语,例如‘我认为这应该可以解决您的问题......’,因此我们关闭了批判性思维,并且我们不会像我们应该的那样仔细地质疑其解决方案,”Charles 说Severance 是密歇根大学信息学院的计算机科学教授, 发布 免费在线编码课程。

“永远假设 ChatGPT 是一个比你技术水平低的程序员。使用人工智能工具的唯一安全方法是当你确信它产生的解决方案是正确的时,”他补充道。 

你需要知道你在做什么

要有效地使用这些工具,您必须了解您的问题并在提示中清楚地解释它。 GitHub 首席产品官 Inbal Shani 表示,输出中返回的代码质量取决于您在输入中构建问题的方式 注册.

用户应该与 GitHub 副驾驶 她建议说,就好像他们在和同事交谈一样。 “你向坐在你旁边的助手提供的关于你的意图是什么、你想要解决的问题的详细信息越多,你就会得到更好的响应,因为人工智能获得了更多的背景信息。它知道如何进行更详细的搜索来找到正确的代码或为您推荐正确的测试基础设施,”她说。 

我们使用的编程语言已经变得更加符合人类语言;聊天工具只是这一演变的下一步

菲利普·康波(Phillip Compeau)是卡内基梅隆大学的助理教授,他创立了 罗莎琳德 平台和 恋人编程 教程,对于对计算生物学感兴趣的人来说,同意。

当他教开始编码的学生时,他鼓励他们远离人工智能。但对于了解基础知识的高级学生,他教他们如何使用该技术来提高工作效率。

“我向学生展示的一件事是,从生成代码的人工智能工具中获得清晰、正确答案的最佳方法是,你能够清楚、正确地指定计算机需要做什么。这就是计算机编程的定义,随着时间的推移,我们使用的编程语言变得更加符合人类语言;聊天工具只是这一演变的下一步,”他告诉我们 注册

弄清楚你想要你的程序做什么、它应该如何工作以及哪里出了问题,这对于编码至关重要。学习者只能随着时间的推移通过持续的练习来培养这些核心技能。如果你想成为一名称职的软件开发人员,就不能依靠人工智能来跳过这个过程。但如果你明智地使用它,你可以快速提高并成为一名优秀的程序员 - 也许它甚至会很有趣。 ®

时间戳记:

更多来自 注册