只会写代码的人正在被淘汰,但能解决“烂摊子”的人永远稀缺
最近半年,AI编程助手的能力进化快得吓人。
你给它一个需求描述,它能一口气吐出整个模块;你让它重构一段老代码,它几秒钟就能给你三套方案;甚至前端页面、后端接口、数据库表结构,它都能一条龙包办。
很多人开始慌了:“照着这个速度,初级程序员是不是马上就要失业了?”
但真正在一线深度使用AI编码的团队,正在形成一个共识——AI可以吃掉80%的编码工作量,但剩下的20%,才是决定项目生死、产品好坏、系统能否撑过下个双十一的关键。而这20%,恰恰是高级工程师存在的全部意义。
那80%:AI已经做得比大多数人都好

坦白讲,AI在哪些地方强得离谱?
重复性模板代码:增删改查接口、表单校验、列表分页……这些东西AI生成得又快又稳,几乎不会犯低级拼写错误。
标准化方案落地:只要你把技术选型讲清楚,“用Redis做缓存,过期策略是惰性删除+定期删除”,它就能把代码实现得明明白白。
单元测试和文档:让AI为一个函数写测试用例,或者根据代码注释生成API文档,质量常常超过很多程序员手动写的版本。
跨语言翻译:把一段Java逻辑翻译成Go或者Rust,几秒钟出活,而且语法习惯很地道。
有一个很形象的比喻:AI就像一个能把乐高图纸搭得飞快的高级技工。图纸越清晰,指令越明确,它就干得越快越好。在这80%的领域里,拼的是速度和体力,人类确实卷不过机器。
但问题在于,真实世界的软件开发,从来不是拼乐高。
那20%:每一行代码背后都有“脏东西”
剩下的20%,往往是这样的场景:
1. 需求本身就是一坨浆糊
产品经理说:“这个页面要加一个‘智能推荐’功能。”然后就没有然后了。推荐什么?基于什么规则?冷启动怎么办?性能扛得住吗?这些模糊的东西,AI根本无从下手。
AI需要极度明确的上下文。而高级工程师的第一项看家本事,就是把一团浆糊翻译成计算机能理解、能落地的结构化描述,并且在这个过程中温和地告诉产品经理:“你说的这个功能,底层其实是三件完全不同的事。”
2. 非功能性需求是隐形大坑
AI生成的代码,功能上看起来跑得通,但一上量就原形毕露。
你让它写个秒杀接口,它确实能返回“扣减库存成功”。但它不会主动告诉你:你这个Redis的扣减操作在大并发下会超卖,数据库连接池可能在压测到一半时被打爆,而且日志打得太密,磁盘会先撑不住。
性能、安全、可扩展性、可观测性——这些东西从来不会写在需求文档的功能描述里,但它们决定了系统是能用三个月,还是能用三年。把一段功能正确的代码变成生产环境可用的代码,中间隔着巨大的鸿沟,而这道鸿沟只有经验能填。
3. 架构决策是在无数坏选择里挑一个最不坏的
当需求变成“我们未来的订单量可能会翻十倍,而且要做多活”,问题就从“怎么写代码”变成了“怎么拆服务、怎么选中间件、数据一致性到底要强还是最终”。
没有一个AI能替你拍这个板。它可以把每种方案的优缺点列表给你看,但它不知道你们团队的运维能力边界在哪,不知道隔壁支付系统已经老得经不起任何额外的网络抖动,也不知道你们CTO对引入新技术栈有多保守。
架构即取舍,而取舍的底气,来自于你曾经为某个错误的取舍在凌晨三点爬起来救过火。
4. 调试和生产事故排查是终极噩梦
AI可以帮你写代码,但极难帮你修一段它自己没见过的、在特定并发时序下才会触发的幽灵Bug。尤其是那种日志不全、监控缺位、用户描述只有一句“页面有时候会卡一下”的灵异事件。
高级工程师在这种时候的表现,有点像老侦探:翻几行日志就能闻出不对劲的味道,看一眼堆栈就知道该去查网络还是查GC,甚至仅凭直觉就能圈定问题范围。这种“直觉”,本质上是被无数事故训练出来的模式匹配能力,不是从GitHub的代码里学来的。
5. 维护和演进是真正的持久战
写代码是瞬间的快感,维护代码是漫长的折磨。AI可以帮你生成一个新模块,但当它需要和项目里已经跑了两年的祖传逻辑对接时,往往会写出“看起来干净但完全打破原有约定”的代码。
一个老手会怎么做?他会读一遍旧代码里的注释和commit记录,顺着当时设计者的思路,找到一个最小的、最安全的切入面,然后用一种让未来接盘者不会想骂人的方式,把新逻辑“嵌”进去。这种对代码历史感的敬畏,和对长期维护成本的敏感,是AI目前完全不具备的。
高级工程师的新角色:从砌砖工到指挥家
既然AI已经包揽了80%的脏活累活,高级工程师的工作内容就必然被重新定义。我们不再是那个一行一行垒代码的砌砖工,而要变成:
需求翻译官:把模糊的业务意图,转化为AI能精确执行的提示工程。
代码守门员:审查AI生成代码的非功能质量,对安全漏洞、性能陷阱和架构破坏性变更有一票否决权。
系统总导演:决定哪些部分可以让AI放手去干,哪些部分必须人工精雕细琢,以及各个AI生成的模块如何有机地拼在一起而不打架。
技术传火者:在团队里建立“如何用好AI”的最佳实践,教会新人如何写出高质量的Prompt,以及为什么某种看起来能跑的代码绝对不能合入主干。
这很像乐队指挥。乐器演奏(具体编码)可以由演奏家(AI)来完成,但选什么曲目、怎么诠释、各个声部如何配合、哪里该强哪里该弱,必须由指挥来定。乐手可以换,但指挥丢了,就是一场灾难。
所以,我们该怕AI吗?
如果你是那个过去几年一直在做重复性、低认知密度开发的程序员,的确应该怕。因为那80%的工作,AI不仅比你快,还比你便宜,而且从不抱怨996。
但如果你已经开始训练自己专啃那20%的硬骨头——追查诡异的生产问题、设计能撑住爆发式增长的架构、在模糊不清的需求里找到真正的骨架、用工程纪律守住质量底线——那你不仅不用怕,反而会发现:有了AI帮你打扫掉那80%的体力活之后,你终于有时间去做那些真正值钱、真正能体现工程师尊严的事了。
代码会贬值,但解决问题的能力不会。
把这句话焊死在脑子里:未来属于那些知道该让AI写什么,以及更重要的,知道AI写出来的东西为什么能跑、哪里会炸的人。

夜雨聆风