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

- Link: https://paooo.com/ai-study/8594/
- Published: 2024-10-09T18:15:28+08:00
- Author: 宝玉的分享

⚡ [Prompt](https://paooo.com/ai-image-prompts/) 语宙 AI 导读 · 30 秒核心看点

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

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

阅读目录

 * [不只是复制粘贴](https://paooo.com/ai-study/8594/#%e4%b8%8d%e5%8f%aa%e6%98%af%e5%a4%8d%e5%88%b6%e7%b2%98%e8%b4%b4)
 * [利用少量搜索节约时间](https://paooo.com/ai-study/8594/#%e5%88%a9%e7%94%a8%e5%b0%91%e9%87%8f%e6%90%9c%e7%b4%a2%e8%8a%82%e7%ba%a6%e6%97%b6%e9%97%b4)
 * [明白自己在做什么是关键](https://paooo.com/ai-study/8594/#%e6%98%8e%e7%99%bd%e8%87%aa%e5%b7%b1%e5%9c%a8%e5%81%9a%e4%bb%80%e4%b9%88%e6%98%af%e5%85%b3%e9%94%ae)

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

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

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

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

###  不只是复制粘贴

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

为了防止学生依赖像 [OpenAI](https://paooo.com/tag/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 工具](https://ai.paooo.com/)学习编程的人应该设定两
个目标：一是学会足够的编程知识以理解工具生成的内容；二是扮演‘代码审核员’的角色，
学会识别和改进劣质代码。”

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

密歇根大学信息学院的计算机科学教授 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，你会
快速提升，成为一名优秀的程序员——这个过程甚至可能会很有趣。®

🧭 文中关联 AI 工具官网与参数卡（语宙 AI 导航）

**GitHub Copilot ↗**

GitHub Copilot：GitHub推出的AI编程工具，面向AI 编程辅助场景提供便捷实用的在线功能
支持，

**Stack Overflow ↗**

Stack Overflow is the largest, most trusted online commu

**ChatGPT ↗**

OpenAI 研发的通用人工智能对话大模型，支持多模态交互与深度推理。

❓ 常见问题解答（FAQ）

AI 学编程为什么不能直接复制答案？

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

CS50 的“小黄鸭”编程助手有什么作用？

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

学习编程时怎样正确使用 ChatGPT 或 Copilot？

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

🔬 语宙深潜追问 · 进阶实操拆解

怎样用AI练出真正的编程能力？

把 AI 当成陪练而不是代写：先自己写思路，再让它指出漏洞、补充测试和解释报错。重点
训练的是拆解问题、验证假设和读懂代码，而不是复制最终答案。

新手如何避免被AI带偏代码习惯？

要求 AI 给出多种方案、解释取舍，并强制自己阅读文档和运行测试。不要直接粘贴不理解
的代码，尤其要警惕过度抽象、隐藏副作用和不符合项目规范的实现。

🗳️ 读者观点微投票 · 您的实战立场是？

AI学编程时该不该直接让它写答案？

🕸️ 语宙向量知识图谱 · 语义强关联深度内链

[💻 所属权威专题：Claude & AI 编程 / MCP →](https://paooo.com/topics/claude-mcp-coding/)

 * [利用 AI 教学哈佛 CS50 课程 —— 在计算机科学教育中的生成式人工智能应用 [译]](https://paooo.com/ai-study/8581/)
 * [人工智能辅助程序员的三种类型 [译]](https://paooo.com/ai-study/7095/)
 * [为何有科学家不用 ChatGPT？他们这样说 [译]](https://paooo.com/ai-study/7135/)
 * [ChatGPT Code Interpreter 代码解释器](https://paooo.com/ai-tool/6337/)

[🏛️ 宝玉的分享](https://paooo.com/author/baoyu/) · 前沿大模型翻译与提示词工程实战
分享专栏，聚焦海外一手 AI 技术动态与工程实践。

[📄 Markdown 纯净版](https://paooo.com/ai-study/8594/?format=md)

💡 这篇内容对您有启发吗？

[📡 RSS 订阅](https://paooo.com/feed/)[✨ 提交 AI 工具 / 合作](https://paooo.com/submit-tool/)

**🚀 Prompt 语宙 AI 创作者生态：**探索 2,800+ 全球实用 AI 工具与高精度生图提示词
咒语库

[🧭 语宙 AI 导航 (ai.paooo.com)](https://ai.paooo.com/)[🎨 AI 生图 Prompt 库](https://paooo.com/ai-image-prompts/)
[📚 核心专题导航](https://paooo.com/topics/)[⚡ AIGC 早报生成器](https://paooo.com/mtool/)
