人工智能来了,我们还要学习编程吗?
黄仁勋说"所有人都不再需要学编程",李彦宏说"以后不会存在程序员了"——但编程语言真的会消失吗?这篇文章从四代编程语言的演化历史出发,拆解 Copilot 和 Cursor 带来的真实改变,重新定义 AI 时代程序员不可替代的三项核心能力,以及编程教育的正确打开方式。
ai · programming · education · cursor · career
这篇是 《科技慢半拍》EP69:人工智能来了,我们还要学习编程吗? 的文字稿整理版,把节目里来不及展开的编程语言历史、低代码演化和教育分析一并补齐。
楔子:那些言之凿凿的预言
2024 年 11 月,几件事几乎同时发生:
阿里发布了 Qwen2.5-Coder-32B-Instruct,开源,测评结果与 GPT-4o 和 Claude 3.5 Sonnet 持平——这两个名字代表当时全球最高水平,而国内模型在两到三个月内就追上了。更震惊的是,Qwen2.5-Coder 已经集成进了 Cursor。
百度在 2024 年百度世界大会上发布了无代码工具”秒哒”,李彦宏现场说:“基本上以后不会存在程序员这种职业了……未来的编程语言只会剩下两种:一种叫英文,一种叫中文。”
英伟达 CEO 黄仁勋早些时候也说过类似的话:“生成式 AI 的未来发展大幅降低了学习编程的意义,人类应该专注于生物学、教育学、制造业或农业。所有人都不再需要学习编程。”
Stability AI 的 CEO 莫斯塔奎更直接:“五年后,就不会再有程序员了。”
谷歌 CEO Pichai 补充了一个数据:谷歌超过四分之一的新代码由 AI 生成,再由工程师审查接受。
这些人没有一个是外行。他们的预言引发了两类人的焦虑:一是正在学编程的大学生,担心毕业即失业;二是把孩子送进编程培训班的家长,不确定还值不值得继续。
这期节目和这篇文章,试图给出一个更有依据的答案。
编程语言的四代演化:一部向自然语言靠近的历史
要判断编程会不会消失,先要理解编程语言从哪里来,又在往哪里去。
第一代:机器语言
1940 年代,世界第一台计算机 ENIAC 诞生时,没有编程语言。控制计算机靠物理方式——插线板上的数千个开关和电缆,打孔代表 1,不打孔代表 0。这是计算机唯一能直接理解的语言。
机器语言的优点:运行速度极快,直接映射硬件。缺点:一旦出错,极难排查;换一台机器,一切从头来。
第二代:汇编语言
汇编语言用助记符代替二进制指令——MOV代表移动数据,ADD代表加法。仍然是低级语言,与硬件体系结构强相关,但至少人类能读懂。
1950 年代末,汇编语言开始被更高级的语言取代。但直到今天,驱动程序、嵌入式系统、早期游戏机(Atari、NES)仍在使用汇编语言——它在资源极度受限的场景下仍有不可替代的价值。
第三代:高级编程语言
第三代语言的出现是一次质的跨越:程序员不再需要关心寄存器、内存地址这些底层细节,转而处理变量、函数、循环、对象等更接近人类思维的概念。
几个标志性节点:
Fortran(1958):IBM 的约翰·巴克斯设计,世界上第一个被实际使用的高级编程语言,今天仍然跑在数值天气预报和有限元分析的程序里。
BASIC(1960 年代):达特茅斯学院的凯梅尼为了普及编程而设计,“尽量简单”是核心原则。比尔·盖茨高中时代就在用 BASIC 编程,微软最初靠给 Altair 微型计算机写 BASIC 起家。
C(1970 年代):Dennis Ritchie 创建,今天仍是计算机领域的核心语言。它既是高级语言(不依赖特定硬件),又是低级语言(能直接操作内存)。C 语言启发了 C++、Objective-C、C#,在流行度榜单上几十年从未跌出前三。
Java(1991):“编写一次,随处运行”——跨平台是它最大的特性,依靠 JVM(Java 虚拟机)在任何支持 Java 的系统上运行。Sun 公司的詹姆斯·高斯林发起,后来 Sun 被 Oracle 收购。
第四代:更接近人类语言的编程语言
Python、Ruby、SQL——这些语言的设计哲学是”可读性第一”。Python 的创始人吉多·范罗苏姆有一句名言:“代码被阅读的次数远多于被写作的次数。”
Python 被称为”自带电池”的语言,标准库极其丰富。它成为 AI/机器学习社区的首选语言,部分原因正是:数学家和科学家能快速上手,不用先学低级语言。
一条清晰的轨迹
从第一代到第四代,编程语言的演化有一条清晰的轨迹:从机器逻辑走向人类自然语言。
每一代语言,都把程序员从更多的底层细节中解放出来,让他们能专注于更高层次的逻辑。AI 辅助编程让这个趋势加速——但它是这条轨迹的延伸,不是终点。
编程语言和软件不会消失
先给出一个明确的结论:只要冯·诺依曼架构的计算机不发生根本性变革,编程语言就不会消失。
计算机的底层逻辑是:CPU 只能执行机器指令,所有的高级语言最终都要编译或解释成机器指令来运行。无论自然语言有多接近,中间始终存在一个”翻译层”——这个翻译层就是编程语言存在的原因。
那软件呢?软件的需求还会增加吗?
两个说法给出了答案:
“软件吞噬世界”——软件的广度
2011 年,Marc Andreessen 在《华尔街日报》发表了《为什么软件正在吞噬世界》。他预言软件会重塑汽车、零售、物流、金融、医疗保健、教育——所有传统行业。
十年后回望,这个预言兑现得比他说的更彻底。SaaS 渗透进企业业务流程的每一个环节,Zapier 一家公司连接了超过 6000 个软件的 API。“软件吞噬世界”已经不是预言,而是现实。
“软件定义一切”——软件的深度
软件从应用层下沉到基础设施层。软件定义网络(SDN)、软件定义存储、软件定义数据中心——原本由硬件固化的逻辑,被软件接管,变得灵活可编程。
这意味着:对软件的需求只多不少,对代码的需求只增不减。
未来可能的问题不是”不需要代码了”,而是”需要更多更复杂的代码,但写代码的人门槛在降低”。
AI 编程工具的演化:从 Copilot 到 Cursor
AI 辅助编程不是 2024 年才出现的新鲜事,它有一个完整的演化脉络。
IDE:程序员工具箱的底座
集成开发环境(IDE)是 AI 编程工具的前身。达特茅斯 BASIC 是第一种在 IDE 中创建的语言,Maestro I 是世界上第一个商业 IDE(1970 年代,2.2 万名程序员在用)。
IDE 的核心功能:代码编辑、编译/解释、调试、语法高亮、代码补全。这些功能减少了低级错误,但没有减少程序员需要”想清楚”的部分。
低代码:让非程序员能搭应用
低代码平台(LCDP)用拖拽取代手写代码。业务流程系统(BPMS)、报表平台、前端界面构建器——这些工具让”公民开发者”能自己搭建简单应用。
但低代码平台的边界很清晰:只能在预设范围内操作。 一旦需求超出模板,仍然需要程序员手工编写代码。低代码平台没有消灭程序员,而是创造了一个新的工作分层:复杂逻辑还是程序员的领地。
GitHub Copilot:副驾驶时代
2020 年,GPT-3 发布。最早对此最敏感的不是普通用户,而是全球最大代码库 GitHub——因为代码正是高度规范、整理得最好的语言,大语言模型最擅长处理的就是这类语料。
GitHub Copilot 诞生,基于 OpenAI Codex(GPT-3 的代码专化版本)。2022 年的学术评估发现:Codex 的平均表现已经优于大多数编程学生,但在复杂的条件判断和循环逻辑上仍有不足。到 2023 年底,Copilot 切换到 GPT-4,能力已不可同日而语。
Copilot 的定位是”副驾驶”——它帮你写代码,但你仍然是那个知道去哪里的人。
Cursor:从副驾驶到自动驾驶的临界点
Cursor 的出现让很多程序员感到真正的震撼。
让 Cursor 出圈的是一个现场直播:Cloudflare 副总裁 8 岁的女儿,用 Cursor,45 分钟内搭出了一个功能完整的聊天机器人。180 万人在线观看。OpenAI 创始成员 Karpathy 看完大为赞叹,并在 X 上大胆预言:“未来编程只需要狂按 Tab 就够了。”
还有人 5 分钟内用 Cursor + 语音构建了财务仪表盘;有人 3 周用 11000 行代码写出了网页和移动端都支持的视频编辑器。
Cursor 背后的 Anysphere 公司由 4 位 MIT 高材生创建,团队只有 12 人。它同时集成了 Claude 3.5 Sonnet、GPT-4o 和 Qwen2.5-Coder,流量已经超过了 GitHub Copilot。
Cursor 真正做到了”让人人都可以写代码”。 但这恰恰引出了一个更重要的问题:当代码可以被自动生成,人的价值在哪里?
程序员不可替代的三项核心能力
即使 AI 能生成所有代码,仍然有三件事需要人来做。
一、编程思维:把模糊需求变成精确指令
让 AI 生成代码的前提是:你能把需求说清楚,而且没有歧义。
听起来简单。试试看:
让计算机给你一杯水。
你需要描述:水的类型(矿泉水/自来水/开水)、温度(多少度、如何达到这个温度)、容量、盛水的容器、运送方式、溢出处理、容器破损处理……这些细节软件早就帮你做好了,你才能一键操作。但现在是你来设计这个系统,这些问题你必须提前想清楚。
这就是编程思维:把复杂问题拆解成精确的、无二义性的小步骤。
编程思维的四个要素:
- 问题分解:把一个大问题拆成可执行的小步骤(如何做汉堡?→ 买食材、准备面包、煎肉饼、组装……)
- 模式识别:发现问题中的规律和重复性(看到鱼鳍就知道它用来游泳)
- 抽象:从具体事物中提取本质特征,忽略无关细节(长方形 = 四个直角 + 四条边)
- 算法设计:设计解决路径(排序算法、分类算法)
随着 AI 能力提升,“代码实现”这一步可以交给 AI,但前四步——尤其是问题分解和抽象——仍然需要人来做。而且 AI 生成的代码,质量完全取决于你提供的需求描述质量。
能够精确描述需求,这是多年编程训练出来的肌肉记忆。
二、专业领域知识:把业务逻辑翻译成 AI 能理解的语言
就算你描述清楚了”我要一个财务管理系统”,AI 也无法自动理解”借方贷方""科目轧差""余额方向”这些财务专业逻辑——除非你告诉它。
这就是专业领域知识的价值:把领域逻辑翻译成 AI 能接受的精确描述。
看现在用 AI 编程成功的例子,大多数是 2C 的消费级应用——音乐播放器、天气 App、简单的聊天机器人。这类应用逻辑相对简单,普通人凭直觉就能描述需求。
但 2B 的企业级系统——医院的 HIS 系统、银行的核心交易系统、电信的 BSS 系统——背后有几十年积累的行业逻辑和约束规则。没有领域专业知识的人,根本提不出正确的需求,AI 再强也无济于事。
甚至 2C 应用也需要领域知识。做一个音频播放器,你真的了解什么是”好的播放器体验”吗?还是只是在模仿现有产品?纯粹的模仿,价值极其有限。
从传统开发流程看,这件事就是”需求分析”——把业务人员的自然语言转化成专业的系统需求文档,再从需求文档转化成代码。这个过程 AI 可以大幅加速,但不能取消。
三、框架、补齐与串接:帮 AI 走最后一公里
即使有了清晰的需求描述,AI 生成的代码也常常存在漏洞——逻辑断点、边界条件处理缺失、模块间无法串接。
程序员的第三项核心能力,是发现这些漏洞并填补它们。这不是写一段新的完整代码,而是在 AI 生成的代码基础上,做精准的修复和连接。
这件事比”从头写代码”更难,因为:
- 你需要理解 AI 代码的逻辑(即使你可能不熟悉所有语法细节)
- 你需要判断哪里是问题所在,而不只是看到”程序报错了”
- 你需要和 AI 反复磨合,不断提炼需求,直到输出达到要求
另外,AI 对整体架构的把握目前还比较弱。如何设计一个系统的模块结构、数据流向、扩展性——这些架构能力,仍然是经验积累的产物,不是 AI 能自动生成的。
所以 AI 时代的程序员工作流是:开头做分析 → 搭框架 → 提炼需求 → 让 AI 写代码 → 找漏洞 → 帮 AI 补全最后一公里。
这与传统程序员的工作方式已经截然不同,但并不意味着程序员消失——而是职业转型。
程序员职业的未来:转型而非消失
判断一个职业是否会消失,可以看一个标准:生产资料是否消失,或是否被高度自动化替代。
电报收发员消失了,因为电报技术本身消失了。底片冲洗工消失了,因为胶片摄影被数码摄影替代。
但程序员不同:编程语言不会消失,软件需求还在增加。生产资料(编程语言)和产出物(软件)都还在,只是生产方式变了。
更接近的类比是:数控机床取代了传统车工/铣工,但没有消灭这个职业——它要求工人转型为数控操作员,精度和效率大幅提升。
同样,AI 会让程序员职业转型:
- 高端方向:懂架构、懂原理、懂 AI 的全能型工程师——需求只增不减,薪水更高
- 专业方向:懂行业、懂领域逻辑、能和 AI 协作的 2B 开发人才——仍然不可替代
- 被淘汰的方向:没有专业积累、做通用 2C 应用、薪水要求高但价值贡献低的中端程序员
这不是预测,而是已经在发生的事。近期程序员裁员的主要灾区,正是这第三类人。
AI 科研论文的结论也印证了这个判断:整体产出增加,顶尖人才收获更多,没有专业积累的底层人才价值接近于零。
编程教育怎么做?
理清了程序员职业的未来,教育问题就有了答案。编程教育分两类,答案不同。
少儿编程:学的是思维,不是语法
家长让孩子学编程,通常有三种动机:
- 普及性技能:编程像外语一样,未来每个人都应该懂
- 职业规划:学好编程,将来好找工作、好赚钱
- 升学加分:竞赛证书,为高考铺路
如果是第二和第三种动机,结论很清晰:意义不大。 技术变化太快,今天学的具体语法四年后可能完全不同。奥数这类基础能力训练,性价比远高于学一门可能很快过时的编程语言语法。
如果是第一种动机,问题就变成:少儿编程课应该教什么?
答案是:计算思维,不是语法。
Logo 语言(1967 年)和 Scratch(MIT 媒体实验室,2000 年代)是儿童编程教育的两个里程碑。Scratch 今天已有超过 70 种语言版本,国内的编程猫、猿编程都基于 Scratch 框架。
这类工具的价值不是让孩子学会”写代码”,而是:
- 在约束条件下解决问题的能力
- 把大问题拆解成小步骤的习惯
- 发现规律、建立模型的思维方式
- 理解计算机如何被人类指挥——去掉对技术的神秘化
好的编程教育,评价标准不应该是”能不能写出能跑的程序”,而是”孩子是否学会了用结构化方式思考问题”。
职业教育:重点不是写代码,是领域能力和 AI 协作
以找程序员工作为目的的职业教育,面临的是同一个问题:程序员职业要转型,职业教育的内容也必须同步转型。
传统职业培训的重心是语法和框架——学 Java Spring、学 Python Django、学 React。这些仍然有价值,但已经不是瓶颈。
新的职业教育重心应该是:
- 领域专业能力:你要服务的是医疗行业还是金融行业?先学懂这个行业的运作逻辑和专业术语,再谈开发。
- AI 协作实战:如何与 Cursor、Copilot 这类工具高效协作?如何提炼需求、发现 AI 代码的漏洞、做最后一公里的补全?这些是新的核心技能。
- 补齐和串接能力:这部分很难通过培训课传授,只能靠实战积累——在真实项目中与 AI 反复磨合。职业培训机构能做的有限,真正的成长在工作中。
理想的编程教育结构
综合下来,理想的编程教育路径是:
- 儿童和少年阶段:学编程思维,了解计算机如何被人类指挥,去神秘化,锻炼在约束条件下解决问题的能力
- 大学和入职前阶段:学领域专业能力,熟悉要进入的行业术语和运作机制
- 工作阶段:在真实项目中通过实战积累框架能力和 AI 协作能力
回到最初的问题:人工智能来了,我们还要学习编程吗?
答案取决于你”学编程”的目的。如果是学语法、学框架、为了写出让编译器通过的代码——这件事 AI 会越来越能替代你。如果是学会把事情讲清楚、学会在复杂问题里找到逻辑、学会用结构化方式思考——这些能力在 AI 时代只会更值钱。
黄仁勋和李彦宏说的对了一半:写代码这件事的门槛确实在大幅降低。但他们忽略的另一半是:当写代码变容易,真正成为瓶颈的是”知道要写什么”的能力。
这,才是编程教育应该专注的地方。