AI 时代了,还需要学编程吗

6 阅读12分钟

"以后写代码只需要说话就行了,还学编程干什么?"

2025 年,一个名为 Cursor 的编辑器让「对话式编程」从概念变成了日常。你输入一句自然语言请求,AI 直接生成完整的函数、模块甚至整个项目。GitHub Copilot 每月为超过 200 万开发者生成代码,全球约 29% 的新增 Python 代码由 AI 代笔。与此同时,一个尖锐的问题摆在了每个计算机专业学生面前:如果 AI 把编程降维成了对话,我们还有必要花几年时间学习写代码吗?

这个问题有一个简洁但危险的答案:"没必要,学 prompt 就够了。"但在做出这个决定之前,我们应该先看清一张更大的图景。

对于未来的计算机专业人员,答案不是"学"或"不学"的二元选择。正确答案是:先通过扎实的训练奠定基础编程素养,再以 AI 作为效能 放大器 。跳过基础直接依赖 AI,等于用一个自己无法验证的工具去建造自己无法理解的系统。 这不是保守主义,而是对技术本质的清醒认识。

编程基础是不可替代的认知底座

要理解为什么基础编程训练不可跳过,首先要回答一个更根本的问题:学编程到底在学什么?

如果你的回答是"学语法"或者"学写代码",那么 AI 时代确实不需要你学——AI 的语法比绝大多数人类都好。但计算机专业训练的核心从来不是语法,而是三样无法通过"观看"获得的东西:调试的耐心、抽象的能力、系统的直觉

关于调试,有一个常见的误解——认为调试就是"找错"。实际上,调试的本质是在黑暗中对系统行为建立心智模型,然后反复修正它。你的 bug 导致了什么?为什么是这个结果?哪一部分的假设错了?这个过程没有捷径可走:只有亲手写过足够多的错误代码、经历过足够多次从困惑到通透的"啊哈"时刻,你才能在未来面对 AI 生成的代码时,一眼看出它哪里可能有问题。

关于抽象,编程的本质是把一个复杂问题拆解成精确的、机器可执行的步骤。这和用自然语言描述需求完全不同——后者天然包含歧义和模糊。当你习惯了用变量、函数、接口来"切割"世界时,你的思维方式已经发生了不可逆的变化。AI 可以生成这些抽象,但生成抽象和理解抽象是两种完全不同的能力

关于系统直觉,它是最难言说但又最真实的东西。一个有经验的开发者打开一段代码,常常说不清为什么觉得"这里有问题",但直觉是对的。这种直觉来自成千上万次亲手构建系统的经验——你对内存布局的感觉、对网络延迟的体感、对并发竞争的警觉,都是在反复实践中刻入认知的肌肉记忆。

或许有人会反驳:"AI 也能解释和调试代码,我为什么非要自己写?"Anthropic 在 2026 年的一项随机对照实验给出了有力的回答。研究发现,使用 AI 辅助的开发者在一项技能理解测试中的得分比手动编码组低 17%(50% 对 67%),而习惯于将任务完全委托给 AI 的开发者得分甚至低于 40%。换句话说,长期依赖 AI 解释代码的人,对代码的理解在持续退化。 你无法通过让别人代替你跑步来训练自己的耐力。

没有基础素养的人无法有效判断和引导 AI 输出

假设你跳过基础训练,直接让 AI 帮你写代码。AI 返回了一段看似完美的工作,你把它部署到生产环境。然后出了问题。你有能力判断问题是出在 AI 的代码里,还是出在你的系统配置中,还是出在需求理解上吗?

这个场景不是假设。普渡大学的一项研究发现,ChatGPT 对编程问题的回答中有 52% 是不正确的,而约 40% 的提问者无法察觉这些错误。纽约大学的研究进一步显示,GitHub Copilot 在 89 个场景中生成的代码约 40% 存在安全漏洞——从 SQL 注入到跨站脚本攻击。这些代码在功能上是正确的——它能运行、能通过测试——但暗藏的危险对没有编程基础的人来说完全不可见。

我称之为**"好看陷阱"**:AI 生成的代码在语法和结构层面往往无可挑剔,但错误集中在语义理解、边界条件和安全维度。一个典型的例子是:让 AI 写一个读取 CSV 文件的 Python 脚本,它会默认使用 UTF-8 编码打开文件。如果实际文件是 GBK 编码,程序会直接崩溃。但用 UTF-8 测试文件测试时,一切正常。没有编程经验的人根本不会想到"编码"这个维度。

更隐蔽的是 API 幻觉问题。AI 经常生成直觉上完全合理但实际上不存在的 API。比如让 AI 用 pandas 筛选某列以字母开头的行,它可能生成 df['col'].str.match('^[A-Za-z]')——str.match 这个方法名听起来完全合理,但实际上 pandas 中根本不存在这个方法,正确的写法是 str.contains。没有基础的人看到这段代码,会认为"看起来没问题",然后花上几个小时去调试一个自己连错在哪都找不到的 bug。

这引出一个更深刻的推论:有效的提示词工程恰恰依赖于编程思维。 你给 AI 的指令越精确、结构越清晰、边界条件越明确,AI 的输出质量就越高。而编写高质量 prompt 的能力——把模糊需求拆解成精确子任务的能力、预判 AI 可能在哪一步出错的能力——正是编程训练所培养的。这不是巧合:那些"写 prompt 很厉害"的人,往往正是有编程背景的人。

AI 作为放大器的前提是"有东西可放大"

到这里,有人可能会说:"我承认 AI 有局限,但我直接用 AI 来学编程不行吗?用它写代码、让它解释给我听,效率不是更高?"

这个问题的答案,藏在两组看似矛盾的数据里。

第一组数据来自短期任务。Microsoft 和 MIT 等机构 2024 年对 4,867 名开发者进行的三项随机对照实验发现,使用 GitHub Copilot 的开发者提交的拉取请求数量增加了 26%,初级开发者的获益最大——他们采用率更高、持续使用更久。GitHub 2023 年的早期实验也显示 Copilot 让开发者完成任务的速度提升了 55.8%,同样是经验较少的开发者获益更多。

第二组数据则讲述了一个不同的故事。CSH 在 2026 年的一项研究发现,初级开发者的 AI 使用频率高达 37%,但生产力提升几乎只出现在经验丰富的开发者中。METR 2025 年的另一项实验发现,16 位资深开发者在 110 万行代码的真实项目中使用 Cursor Pro 后,完成时间反而延长了 19%——因为审查 AI 输出的时间超过了直接写代码的时间。

这两组数据并不矛盾。它们揭示了一个关键的机制:验证成本。

对于简单、定义明确的任务,AI 生成的代码质量足够好,新手可以直接使用,所以短期效率提升明显。但对于复杂的、需要深度理解业务上下文和系统架构的任务,验证 AI 输出是否正确所花费的时间和认知成本,往往超过了自己写一遍。经验丰富的开发者之所以能从中获益,不是因为他们写代码更快,而是因为他们审查代码更快——他们知道该看哪里、什么值得怀疑、什么情况下 AI 最可能犯错。

Science 杂志 2026 年 1 月发表的一项大规模研究印证了这一判断。研究者分析了全球 16 万名开发者的 3,000 万次代码修改,发现 AI 已经占到了 Python 新增代码的 29%。但 AI 的受益并不平均——资深开发者正在利用 AI 进一步拉大与新手之间的差距。AI 没有让编程变得更公平,它让强者更强。

Karpathy 在 Sequoia AI Ascent 2026 峰会上用一句话点明了这个道理:"你可以外包思考,但不能外包理解。"你的编程基础决定了两件事:一是你能让 AI 做什么(上限),二是你知道 AI 做的东西对不对(底线)。没有这个底线,AI 对你来说不是放大器,而是放大风险的加速器。

真正的创新需要理解"为什么这个方法行不通"和"哪里可以突破"。AI 可以帮助你快速验证想法、生成原型、跨越从知道到实现的鸿沟——但前提是你自己知道要验证什么、为什么要验证、验证结果意味着什么。没有基础,"快速迭代"就变成了"快速在黑暗中跌跌撞撞"。

基础不是一成不变,但取消基础是危险的幻觉

这篇文章的立场可能会被误解为"固守传统、抵制 AI"。恰恰相反——如果你观察全球顶尖计算机院校 2023 至 2026 年间的课程改革,你会发现一个清晰的趋势:没有一所院校取消或弱化编程入门课程,但所有院校都在重新定义"编程教育"的内涵。

MIT 在 2022 年完成了课程编号体系的全面改革,将传统的 6.0001 升级为 6.100A/L,核心理念是分层教学而非缩减编程内容。教职人员在一场教学研讨会上达成共识:AI 应该作为学习的"脚手架",而不是学习的替代品。

Stanford 的 CS106A 和 CS106B 保留了核心内容,同时明确了一条款:允许使用 AI 工具,但必须强制披露。更有趣的是,2025 年秋季 Stanford 开设了一门名为 CS146S "不写一行代码教你编程"的实验课——全程使用 Cursor 和 Claude,候补名单超过 200 人。这门课的存在本身就是对"不学编程"的反驳:它试图用 AI 来教编程思维,而不是用 AI 来替代编程思维。

UC Berkeley 的 CS 61A 恢复了线下闭卷手写代码考试,以杜绝 AI 作弊。Harvard 的 CS50 推出了自研 AI 助教 Duck(基于 GPT-4 加检索增强生成),目标是实现 1:1 的师生比——但同时明确禁止使用 ChatGPT 和 Copilot。

在国内,上海交通大学发布了全国最完善的 AI 使用分级规范,将课程场景分为禁止、有限、鼓励、开放四类。ACM 班创始人俞勇教授直言:"当 AI 能瞬间生成标准答案,教师仍执着传统知识灌输是在刻舟求剑。"但他没有说"不需要基础知识"——他说的是"教学方法需要变革"。

这些改革共同指向一个结论:基础编程素养的定义正在改变,但取消基础是一个危险的幻觉。 10 年前,"基础"意味着手写排序算法、记忆 API、手工管理内存。今天,基础不再是记忆 API(AI 比你记得更全),而是理解架构、抽象、复杂系统、数据流和控制流的能力。翁恺教授在浙江大学坚持用 C 语言作为第一门编程课,他的理由朴素而有力:"编程只能练会。"

回到问题的起点

"AI 时代要不要学编程?"

对于未来的计算机专业人员,这个问题的正确问法不是"要不要学",而是"学什么、怎么学"。你需要的不是花四年时间背诵语法手册,而是在一个已经发生根本变化的技术生态中,有策略地建立自己的核心素养。

这套素养包括三件事:亲手写够代码,直到调试变成直觉理解系统的底层逻辑,直到你能判断 AI 输出的质量然后,再用 AI 把你已经具备的能力放大十倍。

AI 不是编程的终结者——从 MIT 到 Stanford,从 Harvard 到清华,全球最顶尖的计算机教育者用行动给出了同一个回答。AI 是那个你终于可以放心使用的放大器,但前提是你手里有东西可以放大。

Karpathy 还说过另一句话,可以作为这篇文章最好的注脚: "门槛从来没有消失,只是转移到了更高的地方。"

而你,应该站在门槛的高处。