在 AI 时代,学习编程仍然值得吗?
Source: Dev.to
Introduction
说实话,我最近有过一瞬间的怀疑。我正处于大学最后一年半,主修人工智能,越是关注科技界的动向,我心里那句轻声的疑问就越揪心:这还有价值吗?
每个学期,我都要上 C++、Java 和 Python 的课——面向对象概念、数据结构和设计模式。与此同时,我看到社交媒体上有人只需在 ChatGPT 中敲一句话,就能生成完整可运行的应用程序。*“Vibe coding,”*他们这么叫。而且真的能跑。于是我自然会想:如果 AI 能写代码,我为什么还要花上数百小时去学习自己写代码?
我需要一个真正了解情况的人给出答案,而不是 AI,也不是网上的随意帖子。我需要一个有真实经验的真人。于是我想到了我的老教授:一位计算机科学教授兼系主任,见证了这个领域数十年的演变。
于是我给他发了一封邮件。
我问了什么
我把 ChatGPT 告诉我的内容分享给了他——编程不会消失,AI 只会帮助开发者并提升他们的效率,人类的创造力和解决问题的能力始终是必需的。听起来很有道理,但我想知道 他 的想法。
编程仍然重要吗?我毕业时它还会重要吗?
他的回复比我预期的要长。而且它彻底重新定义了我对整个问题的思考方式。
Source: …
我未曾意识到需要的历史课
与其直接给我一个“是”或“否”的答案,我的教授通过一个简单的任务——求一系列数字的和——向我展示了整个编程历史的演变。每个时代面对同样的问题,却处在完全不同的世界中。
| 阶段 | 语言 / 范式 | 示例 |
|---|---|---|
| 1 | 纯二进制 | 0001 0001 0010 |
| 2 | 汇编语言 | ADD R1, R2 ; R1 = R1 + R2 |
| 3 | Fortran(第一代高级语言) | DO 10 I = 1, 10 |
| 4 | Ada(第二代高级语言) | FOR I IN 1 .. 10 LOOP |
| 5 | Java(面向对象) | for (int i = 1; i |
Vibe 编程让程序员能够在思想和设计层面思考,而不是专注于写代码的机械细节。
听起来像是纯粹的自由。从某种意义上说,确实如此。
但随后他补充了我意想不到的部分:
编写提示的人必须真正理解生成的代码。
为什么?因为软件并不是写一次就可以永久使用。它有生命周期,而生命周期的每个阶段都需要真正的理解:
- 设计——选择合适的架构。
- 实现——编写或生成代码。
- 测试——验证行为。
- 维护——更新、修补、扩展和修复。
最后一项——维护——最为关键。真实的软件会在多个版本中持续更新。如果你不理解 AI 生成的代码,就无法自信地维护、调试或演进它。
他简明扼要地说:AI 消除了已经存在的一些工作——机器编码员、汇编程序员。但它也创造了新岗位:提示工程师、Vibe 程序员。这个领域没有缩小,只是发生了转变。
计算器类比
- 没有人说“数学已经死了”。
- 没有人停止在学校教授算术。
相反,你能够完成的下限大幅提升,但上限只会为真正理解其背后原理的人提升。
在不懂数学的人手中,计算器不过是一台产生数字的机器。而在懂数学的人手中,它是一种能够放大其所有能力的工具。
AI 与代码生成也是一样。工具变得更强大,但使用它们的人仍需了解自己在做什么——否则他们只会产生无法解释、验证或修复的输出。
我从中得到的收获
我带着“我的课程可能在我毕业前就已经过时”的担忧进入了那段邮件讨论。讨论结束后,我终于明白了我的课程为何存在。
学习 C++、Java 和 Python 并不是在记忆 AI 能在几秒钟内生成的语法。
而是构建对软件实际工作方式的心理模型——包括内存如何管理、对象如何交互、算法在大规模下的表现。这个心理模型让我能够:
- 批判性地阅读 AI 生成的代码,
- 捕捉错误,
- 提出更好的问题,
- 最终构建更优秀的作品。
在 AI 驱动的世界里,真正会吃力的程序员不是会写代码的人,而是那些只会复制粘贴、却不理解背后原理的人。AI 并没有改变这个公式——它只是把赌注提高了。
所以,学习仍然是值得的。
不是尽管有 AI,而是因为有 AI。