序员,你造吗?编程的范式在转变
这一篇写给广大的程序员群体。程序员,亲切一点,我就叫你序员吧。虽然是写的编程的事,但其中的趋势和道理,是无人能幸免的,几年之后再回来看我说得对不对。
序员,那我们开始吧。
1. 越来越眼高手低
我用 AI 写程序有快一年了,时下流行的说法叫 Vibe Coding(氛围编程),大概是编程像是聊天,AI 对编程人成天吹捧,吹捧完人类之后又开始自夸,洋溢着一片你好我好大家好的气氛吧?
用 AI 编程我试过下不同的工具,都很有意思。2024 年还是在 ChatGPT 或者 DeepSeek 这样的聊天应用中生成程序,然后再复制到 IDE。2025 年各种 AI 编程 IDE 齐飞,Agent 使用工具已经是标配,最早是 VSCode Copilot,后来用得比较多的是 Cursor,Claude Code,CodeX,字节的 Trae 我也用过,这些工具又各有特色。
改天我再对比不同 AI 编程工具,今天想分享的是一份自我观察。
一开始我是全然接受 AI 写的程序,天真地期望能躺平等着收货,现在已经变得非常批判和主动。我会重视文档,保持文档更新、关注测试用例,也会认真阅读它的思考过程,每一个编辑和运行命令,我都会严密监视,经常拒绝它的命令。发现它在无效打转犯糊涂的时候果断结束,然后自己孤军深入代码,分析和猜测原因,再把我的分析告诉它,或者重新描述需求。
总之,我想说明自己不是被动接受,而是保持积极参与,和 AI深度协同工作。最近我发现,我的编程技能依然在退化。具体表现是,有一天,所有模型的token 都消耗光了,于是我准备在它的程序基础上手工编程,最后失败而归。我审核 AI 的代码,能看懂,甚至看出一些考虑不周的逻辑问题,但是当自己建设时,手已经不听使唤,脑子也是模糊的,显得非常笨拙。
四个字形容:眼高手低。回想古法编程时代,我能徒手从 0 开始,用 C++写 Feed 推荐系统,对话系统。技能退化完全可以理解,因为程序大多数不是我写的嘛。其实这种感觉并不是第一次有,从 2021 年到 2024 年,这三年我上班就没有写过一行程序,工作内容就是开会和写汇报材料,我的汇报材料几乎都自己写,身边很多总监连汇报材料都不会自己写的,所以技能退化不是用 AI 编程导致的,是 AI 编程让我意识到这一点。
我开始推演,如果 AI 编程真的交付得很好,我也不会像现在这样和他深度协同,那么编程技能岂不是退化得更厉害吗?那时候人的价值是什么呢?还需不需要学习编程呢?
2. 别回头,向前走
编程是一项思维活动,从对问题建模,到系统设计,最后编码交付。在编程之前,还有一个更重要的活动是发现问题,所以全流程是这样:发现/提出问题,问题建模,系统设计,编码交付。交付的系统不能解决问题,还要继续调整。
这个过程中,最不确定但最有价值的是发现问题,或者说提出问题。在互联网公司中,常常由产品经理行使该职责,人工编程的时代,大多数程序员是在末端:编码交付。少数精英程序员,称为架构师,行使问题建模和系统设计职责。
如今 AI 编程,大行其道,构成抢夺优势,是在编码交付这一环节。如果一个程序员赖以谋生仅仅是对编程语言十分熟悉,只在编码交付这一环节产生价值的话,的确很危险。所以我产生眼高手低的紧迫感,正是来源于这一趋势:编程的最后一个环节,根据问题建模和系统设计方案生成代码,逐渐不再需要人参与,越来越黑盒了。原来习惯手工写代码的人,就要做好准备让渡这部分价值创造的权利,这就产生了一点危机感。
我推测,这个趋势在任何需要“制造”东西完成交付的行业,都有这个相似的转变范式:人的价值创造越来越往上游走,产出那一端逐渐都交给机器完成,人最终退守到“提出问题”这座孤岛。要接受这个趋势,并且早早做好准备。我感觉AI 写的程序我都能看懂,自己写又很迟钝,这是一个趋势演变中的剧烈摩擦现象,应对的方式绝不是再从AI 手中把工作夺回来。
过去,蒸汽机出现后,工人们去砸机器,以为就能保住工作。今天,城市的人们,去健身房撸铁,在户外跑步,因为下地劳作的这样既谋生又锻炼体力的工作少了,这时候人们就得主动找一些机会磨练体能,否则就会变得肥胖,带来健康问题,缓慢地被剥夺生存权利。未来,L4 的自动驾驶普及后,开车也将是一项兴趣活动,今天以开车为生的司机们会经历一个剧烈痛苦过程。
3.与其焦虑,不如行动
站在未来,看现在,应该做些什么呢?眼高手低的情况要不要改变呢?就以编程这项活动为例,其他行业我想是类似的道理。
首先要明白,战略上要清楚,AI 的潮水只会越涨越高,哪怕如今有一些泡沫未来可能会破裂,断无退潮的道理。建立了这个战略,才好思考应对。既然潮水只会越涨越高,我们只能往那座价值孤岛——提出问题去,且战且退。所以,善于发现问题,对问题做抽象,分清主要问题次要问题,这些能力需要有意识锻炼,这是人类最后的圣杯。
其次要有定力,人类有高维的优势,不要主动降维自己。今天的 AI 底层还是一个序列模型,它是一个语言模型,是在预测下一个 token 的基础上发展而来。这样的模型,很难处理高维全局的问题,因此系统设计、问题分解,这些工作它就完成得一塌糊涂。为了突破它相关的能力,现在业界都在研究如何更多更高效给 AI 提供上下文,发展出“上下文工程”这样的技术路线。即便如此,底层模型的原理决定了,在高维、全局和长远考虑方面,它有明显的天花板,除非有一天 Transformer 这个 AI 的基础神经网络解构被完全颠覆。在问题建模和系统设计方面,人类和 AI还有一个战略相持时期,多花时间锻炼这方面的能力。
第三,绝对不要放弃躬耕劳作。就像我们今天不需要种地,不需要大量的步行,已然要通过健身、跑步,甚至发明出各种有趣味的体育活动,来磨练人的肌肉、协调性等。在编程这件事上,也要有健脑的习惯。给自己建设一个 No AI Gym,每周就像安排运动一样,安排一些徒手编程的活动,不为了熟悉编程语言,只为了保持大脑的活跃,只有眼、脑、手三位一体才能起到健脑的效果。也只有保持躬耕这样的“实在”活动,才能度过范式剧烈改变过程中,摩擦带来的眼高手低这类痛苦。
第四,选择和问题更近的工作。编程这项活动,在大厂里已经是一个流水线了。业务提出问题,产品转化问题,研发解决问题,这样层层传递的工作大家习惯了。在我前司,一直弥漫着一种“程序员和产品经理离业务远”的认识,虽然产品和程序员们要么浑然不知,要么无所谓,但事实上的确如此。我还在前司工作时,就常跟周围小伙伴们讲,所谓“业务”,就是问题,是价值链的源头。
既然价值链下游的工作被 AI 取代已经板上钉钉了,程序员应该想办法迁徙到价值链上游去。可以在同行业转变身份,也可以是不变身份变行业。前者就不展开说,关于后者,换个说法是,是否有那种编程就有利于发现问题的?其实有,处理数据,数据分析,从数据中发现问题,发现价值,会编程就有很大的优势,这个就不过多说了,等我有了更多实践经验再分享。最近中美都有很多大厂在裁员,有的是因为范式改变导致,有的是泡沫破裂导致的,有兴趣聊转行话题的朋友,我们私下再交流。