程序员最好的时代结束了吗?DHH最新观点解读
程序员最好的时代可能已经结束了。这句话来自著名程序员、Ruby on Rails框架的作者DHH。
我刚刚听完他最新一期的播客。DHH很平静地分享了一个判断:过去十多年程序员能拿高薪,本质上是因为瓶颈溢价。
整个市场对程序员的需求太大,供给跟不上,价格就上去了。但现在,AI正在让这个瓶颈消失。
但同时他也说,现在反而是自己写代码最带劲的时候。每天指挥AI写代码,自己负责把关和修改。以前一个人埋头写一整天的东西,现在一两个小时就搞定了。
一边说程序员的好日子到头了,一边说自己写代码比任何时候都开心。这两件事怎么能同时成立?下面是我的播客读后感。
一
程序员过去二十年能拿高薪,本质上是因为程序员是系统里的瓶颈资源。
回想一下过去十年发生了什么。很多人从培训班出来,培训半年多就能上岗,薪水还不低。这在其他行业几乎不可想象。
因为这十几年,互联网在快速爆发,市场对程序员的缺口太大了。需求超过供给。
经济学有个基本原理:价格由稀缺性决定。能写代码的人是整个系统里最稀缺的环节,所以工资水涨船高。
现在,这个瓶颈正在被松动。
一个资深工程师配上好的AI,产出能翻好几倍。当效率提升到这个程度,写代码就不再是瓶颈了。
有人会说,软件需求还在增长。AI让生产效率提高了,需求也会跟着涨,程序员不还是很抢手吗?
过去两年,大家管这个逻辑叫杰文斯悖论:当一种资源的使用效率提高,对它的总需求反而会增加。煤炭效率提高了,煤的用量反而更大了。
听起来程序员也能被这个逻辑拯救。但事情没那么简单。
因为会有两类公司走向完全不同的方向。
一类公司会用多出来的产能去做更多创新。以前不敢想的项目现在可以做了,以前觉得性价比太低的优化现在可以搞了。对他们来说,AI带来的是更多可能性。
另一部分公司把研发视为成本中心。他们需要的只是完成一件确定的事。如果能用十分之一的成本完成同样的事,那就是竞争优势。
他们不会选择多做十倍东西,他们会选择少花十倍钱。
第一种情况,不需要更多程序员。第二种情况,需要更少程序员。
杰文斯悖论救不了每一个程序员。
二
AI对工程师的冲击,不能一概而论。
如果是一个资深工程师,而且愿意拥抱新工具,现在可能是职业生涯里最好的时候。但如果是刚入行不久的初级工程师,情况就没那么乐观了。
因为现阶段的AI可以理解为一个超级初级程序员。它写代码很快,产量很高,不抱怨,不要加班费,可以同时干很多事。
但它会犯错。它不知道这段代码部署到生产环境会出什么问题,不知道这个架构决策对未来三年的影响,不知道这个API设计会让后面的人骂娘。
它需要有人把关。
AWS已经出现过AI代码导致严重事故的案例。事后复盘的结论是:不能让初级工程师在没有复审的情况下,直接部署AI生成的代码。因为初级工程师还没有形成好的判断力。
一种新的分工出现了。资深工程师做把关人,同时指挥多个AI。AI负责写代码、改Bug这些体力活。资深工程师负责架构设计、质量判断、方向把控。
这对资深工程师来说是一次很实在的红利。他们的杠杆被放大了,变得比以前更值钱。
但对初级工程师来说,处境变得尴尬。
现在,如果一个初级工程师的主要工作是体力实现和简单查Bug,那这正好是AI最擅长的事。如果只是抄AI代码再贴上去,在这种新分工里就变得很鸡肋。
以前初级工程师存在的意义是:资深工程师太贵了,不可能让他们干那些简单重复的活,所以需要初级工程师来分担。
现在AI可以干这些活了,而且干得更快、更便宜、不需要休息。
分化的逻辑很简单:谁能驾驭AI,谁就被放大;谁的工作内容和AI重叠,谁就被挤压。
三
对工程师来说,这是一个全新的时代。旧的逻辑行不通了,需要新的思路。
招聘标准这些年一直在变。十年前刚毕业那会儿,大家特别看重编程语言的经验。简历上Java五年、C++三年,这些很重要。
因为那时候大部分公司还在做业务系统,对语言的成熟度要求高。
后来2015年左右,字节这批公司起来了,风向变了,大家开始特别重视算法。逻辑很简单,编程语言可以学,但一个人聪不聪明,基本功扎不扎实,这个学不来。语言只是工具,换一个很快能上手。
现在又在变。变化还没那么明显,但趋势已经能感受到了。一些走在前面的公司开始招Product Engineer,除了技术能力,还要求好奇心、沟通能力、产品Sense。会写代码越来越像一个基本前提。
这个演变背后有一条暗线:约束在转移。
以前是什么情况?产品经理想到一个功能,要等程序员来实现。程序员忙不过来,产品经理只能干等。
在这个链条里,实现是瓶颈,所以实现能力最值钱。产品经理反而是被低估的角色,因为他们不是卡脖子的地方。
现在不一样了。实现正在被AI解决。那什么变成了新的稀缺?是知道该做什么、为什么做、怎么判断做得对不对。
换句话说,是定义问题的能力。
Taste、判断力、产品Sense、沟通能力,这些听起来有点虚的东西,其实都是定义问题需要的能力。
什么是好的代码结构?这个功能该不该做?做完之后用户会怎么用?这些判断,目前AI给不了。
还有一个趋势很明显。在一些走得比较前的团队里,工程师和设计师的边界在模糊。
设计师不只是把界面做漂亮,还要参与决定做什么、为什么做。工程师也不只是写代码,还要理解业务、理解用户。大家都在往中间靠。
那种只想安静写代码、不跟人打交道的路线,以后会越来越难走。
很多人当初选这个行业,就是因为喜欢跟机器打交道,觉得比跟人打交道简单。但现在跟机器打交道这件事,AI也能做,而且做得又快又便宜。
如果谁的技术能比AI还要强,写出来足够好的代码,那另说。但这条路对绝大多数人来说都不现实。
对于大部分工程师而言,方向有两个。
第一,远离成本中心岗位。成本中心是最危险的位置,因为砍成本是最直接的选择。如果所在的部门只是为了完成一件确定的事,而这件事AI能做,那处境会比较被动。
第二,如果暂时离不开,就在里面变得不可替代。怎么不可替代?深入业务、流程、系统脉络。成为那个知道为什么要做这件事、做完之后会影响什么的人。这种理解,不是看几天代码就能有的。
说到底,是从单一的实现者向复合角色演化。能定义问题,能和用户沟通,能用AI驱动交付。
越来越觉得,对于能驾驭这波变化的人来说,现在确实是最好的时代。杠杆被放大了,能做的事情变多了,工作本身变得更有趣了。
但对于整个行业来说,那个人人都能分一杯羹的黄金时代,可能真的过去了。
本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!