最近技术圈流行一句话,都快被说烂了:“AI可能会写代码,但软件开发最难的不是写代码。”

翻译成人话就是:敲键盘那点活儿不值钱,值钱的是想清楚“到底该敲什么”。

听着特别有道理,特别安慰人,对吧?但我读着总觉得哪里不对劲,像是被人拍着肩膀说“别担心,你的体力活虽然要被机器取代了,但你的脑力活还是值钱的”,然后我低头一看,自己干的不就是脑力活吗?

直到我看到程序员兼创业者Senko Rašić的一篇博客,标题跟吵架似的:“说写代码不难,是对全世界程序员的侮辱”。

我心想,终于有人把我想说的话说出来了,而且还说得这么冲。

如果写代码真的不难

咱们来做个思想实验。

如果写代码真那么简单,那程序员这行当怎么就成了香饽饽,供不应求还死贵?公司们犯得着为招个人搞五轮技术面再加一轮系统设计吗?随便拉个刚毕业的小孩,培训两周不就上岗了?

如果写代码真那么简单,那《代码整洁之道》《程序员修炼之道》这种书怎么卖出去的?总不能是买来垫桌脚的吧。《计算机程序设计艺术》那几大本,是厕所读物吗?SICP是拿来当装饰画挂墙上的?

如果写代码真那么简单,那卡马克(John Carmack)凭什么封神?法布里斯·贝拉(Fabrice Bellard)一个人捣鼓出FFmpeg和QEMU,是运气好赶上好时代了?

如果写代码真那么简单,那为什么软件里还有那么多Bug?Bug是程序员故意留的彩蛋吗?

最扎心的是,如果写代码真那么简单,那为什么AI替你写了5000行代码,你不但不感激,反而有种被冒犯的感觉?你生气的样子,像是有人偷了你辛辛苦苦捏了一下午的泥人,结果人家说“不就是坨泥巴嘛”。

你管这叫“不难”?

打开网易新闻 查看精彩图片

图片由豆包AI生成

那“搞清楚做什么”总难了吧

行,那换个说法:“写代码不难,难的是搞清楚要写什么。”

这个说法更高明,更难反驳。毕竟产品经理天天在那儿挠头想需求,也没见他们想出朵花来。

但问题来了。如果“搞清楚做什么”才是难点,那为什么产品经理的工资普遍没有程序员高?为什么他们不用刷LeetCode,不用过五关斩六将?如果这活儿最难,市场研究员、用户访谈专家是不是应该拿最高的薪水、坐最好的工位?

现实是,销售为了冲业绩随口给客户承诺个新功能,回来程序员就炸了。你说销售发现了“真实需求”啊,是“有人愿意付费的需求”啊,程序员为啥不爽?因为程序员知道,说句话只需要一秒钟,把这句话变成能跑的代码可能需要一个月。

“搞清楚做什么”难不难?难。但把“做什么”变成“做出来了”,也没简单到哪里去。

打开网易新闻 查看精彩图片

图片由豆包AI生成

别骗自己了,你就是爱写代码

有人说,软件开发的核心是跟利益相关者沟通,是理解客户需求,是梳理优先级。

我干了这么多年,认识的程序员没有一千也有八百,真心喜欢跟客户打交道的,一个手数得过来。绝大多数人听到“开个需求会”三个字,表情比吃了苦瓜还苦。

你说程序员是“解决问题的人”,不是“敲代码的猴子”。但转头一看,他们在群里争论的是Monad、内存安全、DRY原则,讨论的是用Rust还是Go重写那个服务,吵的是这个设计模式到底合不合理。

他们嘴上说“我在解决客户问题”,心里想的是“这个抽象写得真漂亮”。

这有什么问题吗?没问题。这就是程序员的体面。我们就是那种会为了一个优雅的实现开心一整天的人,这没什么丢人的。

非要把自己包装成“用户代言人”,反而显得有点假。

打开网易新闻 查看精彩图片

图片由豆包AI生成

两件事都难,不行吗?

为什么非要二选一?

理解用户很难,写出优秀的代码也很难。跟利益相关者达成共识很难,在共识频繁变化的情况下保持系统不崩也很难。

这两件事在一个人身上同时做到,是难上加难。但这恰恰是我们应该追求的方向,而不是为了安慰自己,硬说其中一件事“不难”。

说“写代码不难”,其实是在否定自己过去十年、二十年积累的所有手艺。那些踩过的坑、熬过的夜、调试到凌晨三点的Bug,那些你看一眼报错信息就知道问题出在哪里的直觉,全被这句话一笔勾销了。

这是自己给自己喂的毒鸡汤。

打开网易新闻 查看精彩图片

图片由豆包AI生成

什么变了,什么没变

AI来了,确实变天了。

以前你花三天写的功能,现在AI十分钟就能生成一个能跑的版本。以前你要翻半天文档才能搞定的API调用,现在AI帮你把参数都填好了。

但有些东西没变。

软件还是会越变越复杂,代码还是会腐烂,需求还是会变来变去,客户还是不知道自己要什么但坚持你做得不对。

江湖骗子也还在,只不过以前叫“低代码平台布道师”,现在叫“AI Agent赋能专家”。

程序员这个群体,从诞生那天起就在干一件事:革自己的命。打孔卡没人用了,汇编现在成了小众爱好,C++的内存安全问题在Rust面前像个笑话。我们早就习惯了一波又一波的技术浪潮把上一波拍在沙滩上。

但这不代表我们之前做的事情“不难”。今天觉得简单的东西,当年都是硬骨头啃下来的。

打开网易新闻 查看精彩图片

图片由豆包AI生成

那怎么活下来

别把脑子外包给AI。

AI可以帮你写代码,但不能替你判断这段代码该不该写。AI可以帮你生成方案,但不能替你在五个方案里选那个最合适的。AI可以帮你优化性能,但不能替你在性能和可读性之间做权衡。

保持好奇,保持批判,别被“技术炒作”带着跑。今天炒得最凶的东西,两年后可能连个水花都看不见。

如果你是老手,别光顾着卷技术深度,也去了解一下用户体验、商业策略。理解一个软件从想法到交付到底要经过多少关,对你没坏处。

如果你是新手,沉下心把底层的东西搞明白。指针、递归、网络协议、数据结构,这些东西十年后还在用。别因为AI能生成代码,就不去理解代码到底在干什么。

最后,别再说什么“写代码不难”了。承认吧,写代码就是很难,我们为这件事骄傲过,痛苦过,也靠它养家糊口过。

AI来了,它依然很难。只是难的地方,又多了一个。