---
title: "使用 AI 学习编程时，切记还需独立思考 [译]"
url: "https://paooo.com/ai-study/8594/"
author: "宝玉的分享"
published_at: "2024-10-09T18:15:28+08:00"
updated_at: "2024-10-09T18:15:28+08:00"
categories: "强化 AI 学习"
tags: "AI编程, ChatGPT, Cursor, GitHub Copilot, OpenAI"
source: "Prompt 语宙 (https://paooo.com)"
ai_tools_directory: "语宙 AI 导航 (https://ai.paooo.com)"
---

# 使用 AI 学习编程时，切记还需独立思考 [译]

> 来源：[Prompt 语宙 (paooo.com)](https://paooo.com/ai-study/8594/) · 作者：宝玉的分享 · 发布时间：2024-10-09

## AI 30 秒核心看点 (TL;DR)

- AI 能快速解释概念、生成示例代码，但新手最容易因此跳过思考过程。
- 哈佛 CS50 用带防作弊机制的“小黄鸭”替代直接给答案，强调引导式学习。
- 实测与专家都指出：AI 代码可能出错或引入新 bug，必须先理解再采用。

**计算机科学教师和软件专家对机器学习辅助工具的建议**

在 AI 的帮助下，学习编程可能比以往任何时候都要容易。然而，这些能够为你提供建议或生成源代码的工具必须谨慎使用。

编程需要耐心和坚持，尤其是在学习的初期，当一切似乎难以理解时。编码规则可能会让人感到困惑，涉及到的各种标点符号和符号都需小心处理。忽略一个冒号或逗号，或者缩进错误，都可能导致错误，这还取决于所用的编程语言。但随着实践的积累，这些知识终将被掌握。

像许多初学者一样，我通过在线观看教程和完成一系列编程练习来学习编码。当我在某个问题上遇到难题时，向 ChatGPT 寻求帮助是非常诱人的，它能轻松引导我找到正确的解决方案。这类辅助工具擅长生成简单代码，有些甚至能在你描述问题时直接给出完整答案。

在尝试实现一个特定功能时，我意识到这一点，并在 Visual Studio Code 中关闭了 GitHub Copilot 的代码自动补全功能，以避免依赖它而失去自主解决问题的机会。

### 
不只是复制粘贴

哈佛大学的计算机科学教授 David Malan 教授一门颇受欢迎的入门计算机科学课程 CS50，该课程还提供了免费的在线学习方式。他认为，AI 有时候帮助过头了。

为了防止学生依赖像 OpenAI 的 ChatGPT 或 Google 的 Bard 这类工具来完成作业，老师们提出了一个别出心裁的解决方案：一个虚拟的小黄鸭。这只 CS50 小黄鸭是一个采用 GPT-4 技术的编程聊天机器人，它设有防作弊机制，避免学生抄袭。

你可能听说过软件开发中的“小黄鸭调试法”：当你在编程中遇到难题时，向一个玩具或其他非活物讲解问题，这样做经常能帮你独立找到解决方案。这方法实际上相当有效。

CS50 的小黄鸭调试器正是基于这一理念：这个机器人旨在提供友好和支持性的互动，它仅针对课程相关的问题做出响应，不会直接给出作业答案，Malan 在接受 The Register 采访时如是说。

他还提到：“课程一开始，我们就明确规定学生不能使用诸如 ChatGPT 和 Copilot 这样的第三方软件，因为这些工具往往会提供完整的解决方案，而不是像优秀老师那样引导学生。但我们鼓励学生使用 CS50 自己开发的、带有教学防护机制的 AI 软件。”

去年推出的 CS50 小黄鸭获得了大部分积极反馈。拥有这样一个虚拟导师，学生可以随时求助。然而，就像所有 AI 模型一样，小黄鸭并非总是准确无误的，它在初步测试中大约能正确回答 88% 的课程相关问题。

对教师而言，这个编程机器人也大有裨益；它让他们能把更多时间用于协助学生的其他领域，而非仅仅是作业辅导。哈佛的教师在一篇分析小黄鸭调试器影响的研究论文中指出，他们构建虚拟 AI 编码助手的尝试取得了成功。他们相信“生成式 AI [能] 加强学生的学习过程，而不仅是单纯的干扰”，并且正在研究如何将这项技术应用到其他学科中。

### 
利用少量搜索节约时间

个人而言，我的专业背景是物理学和科学新闻传播，而不是计算机科学。我在最新一代聊天机器人兴起前开始学习编程。过去，像许多人一样，我常常通过阅读博客或在像 Stack Overflow 这样的网站上寻找类似代码的例子来理解软件概念或解决编程问题。现在，借助 AI 的帮助，我可以更高效地完成这些任务。

以往我需要筛选海量信息来寻找适合我问题的解决方案，但现在我可以直接向大语言模型寻求帮助。我之所以学习，是为了更好地理解其他人使用的技术；而这些数字助手能让我更快地掌握诸如切片和数组之类的概念，或是了解别人的软件项目。

然而，机器编写的代码并非总是有效，有时甚至会降低代码库的质量。如果我直接把 AI 助手的输出加入我的代码中，它经常会引入新的错误，因为它可能与程序的其他部分不兼容。特别对于像我这样的新手来说，理解并修复这些错误很有挑战，有时我甚至分不清错误是由于代码本身错误还是使用场景不当。

- 关于模型崩溃以及如何避免它的讨论

- 
西蒙·威利森访谈：AI 软件仍需人类智慧

- OpenAI 表示，不使用受版权保护的材料，现今领先的 AI 模型无法培训

- 计算机科学学位是否应包括安全课程的要求？

《用困难的方式学习 Python》的作者、软件开发者 Zed Shaw 在接受The Register采访时表示：“我认为，想通过当前 AI 工具学习编程的人应该设定两个目标：一是学会足够的编程知识以理解工具生成的内容；二是扮演‘代码审核员’的角色，学会识别和改进劣质代码。”

程序员需要能够识别机器生成代码中的错误，并且不应盲目信赖这些机器人。他们还应当警惕明显的版权代码潜入模型输出的可能性。

密歇根大学信息学院的计算机科学教授 Charles Severance 认为，ChatGPT 能够迅速给出解决方案，并配以“我认为这应该能解决你的问题...”等让人放心的话语。这种做法可能会让我们不自觉地放松警惕，减少对其提供解决方案的质疑。他还在网上发布了免费的编程课程。

他进一步指出，“永远记住，相比于你，ChatGPT 可能是一个技术水平更低的程序员。正确使用 AI 工具的唯一方法，是在你确信其给出的解决方案无误时才采用。”

### 
明白自己在做什么是关键

要有效使用这些工具，你需要深解自己的问题，并且要能在提示中清晰地表达。GitHub 的首席产品官 Inbal Shani 在接受 The Register 采访时指出，你提出问题的方式直接影响输出中代码的质量。

她建议，用户应该像和同事交流一样使用 GitHub Copilot。她解释说：“你对坐在你旁边的助手提供的细节越多，比如你的目的、你要解决的问题的方向，你得到的答案就会越好。因为 AI 能获得更多上下文信息，它能更精准地搜索到合适的代码片段，或为你推荐适当的测试基础设施。”

> 
编程语言正变得越来越接近人类语言，而聊天工具正是这一进程的新阶段

卡内基梅隆大学的助理教学教授 Phillip Compeau，他创立了 Rosalind 平台和 Programming for Lovers 教程，专为对计算生物学感兴趣的人设计，也持同样的看法。

他在教授编程初学者时，会建议他们暂时不要使用 AI。但对于已经掌握基础知识的进阶学生，他会教授他们如何利用这项技术提高工作效率和生产力。

他在接受 The Register 采访时表示：“我向学生展示的是，从 AI 工具生成的代码中获取准确无误答案的最佳方法，就是你能够清晰且准确地指明计算机需要执行的具体操作。这其实就是计算机编程的本质。随着时间推移，我们所用的编程语言已经越来越贴近人类的语言；而聊天工具正是这一进化过程的新步骤。”

明确你的程序要完成什么任务、应该如何工作，以及在哪些方面存在问题，这对于编程来说至关重要。这些核心技能只能通过持续不断的练习，随着时间逐渐掌握。你不能靠依赖 AI 就想跳过这个过程，如果你想成为一名合格的软件开发者。但是，如果你明智地使用 AI，你会快速提升，成为一名优秀的程序员——这个过程甚至可能会很有趣。®

## 常见问题解答 (FAQ)

### AI 学编程为什么不能直接复制答案？
因为 AI 生成的代码可能与项目其他部分不兼容，甚至引入新错误。直接复制会削弱你对语法、逻辑和调试方法的理解，遇到问题时也更难独立排查。

### CS50 的“小黄鸭”编程助手有什么作用？
它是一个基于 GPT-4 的课程专用聊天机器人，带有防作弊机制，只回答课程相关问题，不直接给作业答案。它的目标是引导学生自己思考，而不是替代学习。

### 学习编程时怎样正确使用 ChatGPT 或 Copilot？
先自己分析问题，再用 AI 辅助理解概念、检查思路或对照示例；对生成结果要像代码审核员一样逐行验证，确认无误后再使用，避免盲目信赖。

---
探索 2,800+ 全球实用 AI 工具与官方直达入口：[语宙 AI 导航 (https://ai.paooo.com/)](https://ai.paooo.com/)
