就在去年夏天,我和著名的技术播客主进行了一场对话。我毫不客气地指出了当时AI代码生成的局限性:你很容易构建出一些看起来能跑、但内部充满缺陷的东西,并且陷入修复一个错误却引入更多错误的迷宫。
但仅仅几个月后,风向就发生了剧烈的转变。原因很简单:模型本身进化了。
01 技术领袖们为何集体“转向”?
当初对我评价颇为不屑的Ruby on Rails之父DHH,在经历了模型能力迭代后,态度发生了180度转弯。他坦言,早期的阻力很大程度上是因为模型不够好,导致重构AI生成的代码比自己从头写还耗时。而现在,情况完全反转了。

紧接着,他甚至在社交媒体上分享了自己的心路历程,明确指出了模型能力是关键转折点。

不仅是他,来自谷歌的首席工程师Jaana Dogan也分享了一个令人印象深刻的案例。她所在的团队曾花费大量时间尝试构建分布式代理编排器,而如今,她向Claude Code描述了同样的问题,后者仅用一小时就生成了功能类似的系统。

Vercel的CTO Malte Ubl的表述则更为激进。他通过假期亲自实践后断言,在Opus + Claude Code的组合下,AI的表现已经如同高级软件工程师,能够理解指令并执行,虽然困难任务仍需监督,但对反馈反应极快。他得出了一个大胆的结论:软件的生产成本正在趋近于零。

从质疑到拥抱,顶尖技术领袖们的集体转向,清晰地勾勒出一条技术能力突破的曲线。这不仅仅是实验室里的进展,更是开发一线可感知的、真实的效率革命。几乎所有从业者,无论是大厂精英还是初创团队,在2025年都有一个共同的感受:AI编程,真的变得聪明且实用了。
当然,关于它究竟相当于“高级”还是“中级”工程师仍有争议。但一个基本共识是:在规范清晰、指令明确的前提下,让AI扮演一个合格的“初级程序员”角色,已经完全可行。
这直接指向了一个核心命题:单纯以“将需求翻译成代码”为核心价值的编程工作,其生存空间正在被急剧压缩。
起初,开发者们为效率的暴涨而兴奋。一个人借助AI就能从前端到后端快速搞定原型和开发。但兴奋很快被一种更深的迷茫取代:如果AI现在就能做到这样,那么2026年、2030年呢?未来的软件开发图景会是什么样子?
02 编程语言还需要学吗?
答案是:必须学,而且其重要性在某种层面上不降反升。
未来的程序员必须具备一种核心能力:看到一段代码,能在“脑子里跑一遍”。你需要能判断这段代码的意图、它是同步还是异步、是否存在阻塞风险、对象生命周期如何、异常是否被正确处理等等。如果不理解编程语言本身的语义和运行时特性,你根本无法做出这些关键判断。
有人可能会反驳:AI不是已经支持用自然语言编程了吗?直接用口语描述需求不就行了?
诚然,对于简单的小型项目或原型,这确实可行。但问题的关键在于,复杂的商业项目是由无数细节堆砌而成的。自然语言天生是模糊的、不精确的,很难面面俱到地描述所有隐含的前提、边界条件和异常流程。
当你用模糊的自然语言表达意图时,AI生成的代码也必然遗漏某些细节。如果你看不懂代码,就无法发现这些遗漏。这在个人项目中或许可以容忍,但在严肃的商业软件开发中,这足以致命。
此外,当项目复杂度上升到一定程度,AI也容易“犯晕”。你会发现,对于一些看似微小的逻辑问题,无论你怎么用自然语言提示、解释,它都可能无法正确修正。这时候,如果你不懂编程语言,不能直接介入代码层进行精准调整,将会无比抓狂。
因此,自然语言适合表达“意图”,而编程语言才是人与机器、人与AI之间精确的“契约”。想做正式的、复杂的项目,掌握相应的编程语言不仅不是过时的技能,反而是确保你能有效驾驭AI、把控项目质量的基础。这也意味着,理解计算机基础原理,对于读懂代码背后的代价至关重要。
03 未来的软件工程:人当“包工头”,AI当“施工队”
大学里的《软件工程》课程,在实际工作中往往会显得理想化。传统开发中,“设计”与“施工”(编码)常常混杂在一起,系统成功与否高度依赖于程序员个人的经验、状态和“手艺”。这也是为什么我们总会看到加班堆出的“代码山”。
AI代码生成的出现,彻底改变了这一局面。将想法(哪怕是粗略的)转化为可运行代码的成本变得极低。程序员的注意力被迫“上移”。
- 我们是否对需求进行了正确的领域建模?
- 系统模块的边界是否得到了清晰的定义?
- 架构是否具备良好的可测试性、可演化性和可回滚能力?
未来的软件工程,可能会无限趋近于传统工程领域的成熟模式:
- 人扮演“包工头/架构师”角色:负责顶层设计、制定技术约束与规范、定义验收标准、评估和规避系统级风险。
- AI扮演“施工队/高级技工”角色:负责根据精确的图纸(设计稿和约束)进行快速实现、完成重复性编码、支持快速试错、生成大量设计方案变体以供评估选择。
这种分工的演进,将直接导致开发者价值的强烈分化:
- 只会“敲代码”、实现简单功能的“翻译型”程序员,其价值将迅速萎缩。
- 而擅长抽象建模、定义约束、评估系统复杂度和演进方向的“设计型”人才,其价值会愈加凸显。
这种趋势也促使开发者们更早地从工程全局视角思考问题,这无疑加速了新手工程师的成长过程。在技术社区,比如 云栈社区的开发者广场板块,这类关于职业转型和技能提升的讨论也日益增多。
04 初级程序员,路在何方?
在过去二十年,一个典型的程序员成长路径类似“修仙”:
- 练气期(真正的Coder):写CRUD,调接口改页面,修低级Bug。核心是语法和框架熟练度。
- 筑基期(模块负责人):独立负责小功能模块,开始参与设计讨论。
- 结丹期(系统参与者):参与核心模块设计,处理跨模块问题,解决线上故障和进行重构。在此阶段积累大量“踩坑”经验。
- 元婴期(架构师):决定整体技术方案,控制系统复杂度,为长期演进负责。
在AI时代,“练气”和“筑基”这两个以编码实现为主的初级阶段,其必要性被大幅削弱。新入行的程序员必须想方设法“快速结丹”,否则将面临被替代的风险。
具体来说,初级程序员需要快速提升以下两种能力:
1. 把“会写代码”升级为“会拆解需求”
AI不会主动替你思考需求的完整性、隐含前提和边界条件。你的任务是将一句模糊的“人话”,拆解成一组精确、无歧义、可验证的约束条件集合和验收标准,然后交给AI去执行。否则,AI很容易“自由发挥”,做出突破你预期边界的事情。
2. 从“代码编写者”转变为“代码审阅者”
AI“下笔如飞”,但不为结果负责。背锅的依然是你。因此,你必须能深度审查AI生成的代码,并做出关键判断:
- 这段代码在未来是否易于维护和扩展?
- 是否存在隐藏的性能瓶颈或安全风险?
- 当前的抽象设计是恰到好处,还是过度设计?
- 错误处理是否完备,是否存在异常被静默“吞掉”的情况?
当然,AI也带来了利好。新手无需再过分纠结于编程语言或框架的琐碎语法细节,也无需死记硬背设计模式的多种实现。AI能快速搞定这些“体力活”,让新手从一开始就站在“工程”和“设计”的层面去审视项目,这是过去资深工程师才有的特权。
05 计算机基础知识,从未如此重要
AI非常擅长生成逻辑上看起来正确、优雅的代码,但它并不真正理解这段代码在真实物理世界中的运行代价。
它只是一个基于概率预测下一个Token的模型,要求它“理解”代码的底层含义,确实有些强“模”所难。因此,AI最容易“翻车”的领域,恰恰是那些需要深厚计算机基础知识的领域:
- 进程、线程、协程的区别与适用场景
- 并发控制与竞态条件
- 内存管理与资源泄漏
- I/O模型与阻塞/非阻塞
- 超时、重试、幂等性设计
- 网络协议(如TCP与HTTP)的底层特性
- 延迟、丢包、乱序等网络问题
- 分布式系统下的失败模式
如果你不理解CPU、内存、数据结构、并发原理、I/O、网络和系统边界,如果你不知道何时该抽象、哪里该缓存、何处必须保证强一致性……而盲目信任AI生成的、在这些领域看似完美的代码,将会引入巨大的、难以调试的系统风险。扎实的算法与数据结构功底,也是你评估AI方案优劣的重要标尺。
06 结语
科幻作品中,AI常被描绘成替代体力劳动的“蓝领”。现实中,它却首先冲击了被认为是“白领”的程序员职业。这或许是因为,编程世界为AI的成长提供了最肥沃的土壤:海量开源代码供其学习,严谨、结构化的编程语言又比模糊的自然语言更易被掌握和形式化。
因此,“编码”作为一种独立职业,其边界会逐渐模糊直至部分消失。但作为“包工头”的程序员——那些能够深刻理解业务、精于系统设计、并能有效驾驭AI工具的人才,尤其是在各垂直业务领域,他们的价值将愈发凸显。
时代变了。程序员们,是时候从“代码工人”升级为“AI驱动下的软件架构师与工程管理者”了。单纯编程的时间或许不多了,但用工程思维创造价值的空间,刚刚打开。