想象一下,你站在一座摇摇欲坠的梯子底下。梯子曾经稳固,每一阶都承载着无数新人向上攀爬的梦想。可如今,最下面的几阶突然消失了,取而代之的是一个闪闪发光的AI喷气背包——它能让你瞬间飞到半空,却无法教你如何在高空稳住身体。我就是那个曾经亲手拆掉梯子底层的人。五年前,我会把写单元测试、修复遗留模块这样的苦活交给初级开发者。今天,我直接丢给Copilot或Claude。它更快、更便宜、语法上往往更完美。可正是这种“完美”,让我夜不能寐:我们正在亲手制造一场软件行业的灾难。
回想五年前,我负责一个老旧的支付模块重构。任务琐碎:补全缺失的单元测试、转换JSON schema、处理边缘case。我把这些交给了一个刚毕业的初级开发者。他写得乱七八糟,我花了整整两周陪他review、讲解、让他自己修复错误。可几个月后,他已经能独立接手新功能了。那种成长的喜悦,我至今难忘。
如今呢?同样的任务,我输入提示词,AI几秒钟就吐出一堆代码。干净、符合规范、测试覆盖率100%。我只需快速扫一眼,就能合并进主干。短期速度飙升,可我突然意识到:那些曾经让新人“摔跤”的低阶任务,正是他们学习系统如何崩溃、代码如何耦合、边界如何失守的唯一机会。
“职业阶梯”比喻:就像飞行员训练,不能直接坐进F-35战斗机就上天。必须先在模拟器里摔几十次小飞机,学会处理发动机失灵、仪表失准。AI让我们跳过了“摔小飞机”的阶段,直接给了战斗机——却没人学会手动拉杆。
(图:传统阶梯断裂,AI提供捷径却无根基)
如果我们继续把“无聊但宝贵”的入门任务全丢给AI,2030年的资深开发者从哪里来?答案可能是:无处可寻。
我把这种现象叫“氛围编码”(Vibe Coding):只要描述一个模糊的“感觉”,AI就能生成看似完美的代码。原型阶段神器,上线维护阶段灾难。
上个月,我让AI帮我快速实现一个分布式锁。生成的代码优雅极了:Redlock算法、Lua脚本、超时重试一应俱全。我兴奋地合并了。结果凌晨三点,生产环境突然死锁——因为AI“合理”地假设了Redis主从延迟永远小于1秒,而我们的集群在高峰期延迟偶尔达到3秒。
如果是一个初级开发者写出这段代码,我会和他坐下来一句句拆解:为什么这个假设危险?如何添加健康检查?如何写压力测试?他会记住一辈子。可AI写错时,我只是骂一句“又幻觉了”,改个提示词重新生成。没人真正学到东西。
“干净代码bug”:指那些表面完美、符合所有最佳实践,却在逻辑上彻底错误的代码。它们最可怕,因为不会触发警报——你的直觉不会拉响“这里有问题”的铃声。
(图:AI加速开发,却带来维护隐患)
现在的行业正形成一个可怕的杠铃结构:
(图:类似经济利润分布,技术能力两极化)
我见过太多新人,他们能用AI一天搭出一个完整应用,却无法解释为什么这个应用在高并发下崩溃。他们不是不聪明,只是从未被迫去理解底层。
在社区讨论中,有人提出“法医编码”(Forensic Coding)这个概念,我认为这是救赎之道。让初级开发者的新角色不是“写代码”,而是“审计AI生成的代码”:
(图:开发者审视AI输出,寻找隐藏问题)
在DEV社区的那篇帖子下,151条评论让我既安心又担忧。有人分享类似经历:公司冻结初级招聘,把预算全砸进AI工具。有人乐观地说“这是过渡期,尘埃落定后基础能力会重新被重视”。还有初级开发者现身说法:他们在做三份副业、修Chromebook、接线缆,只为积累经验,等着公司“醒悟”那天冲到招聘前列。
最打动我的是Anna的故事:她白天修电脑、晚上自学,靠着对问题的执着坚持下来。她说:“嚼一个难题几个小时,比刷社交媒体有成就感多了。”这样的人,不会灭绝。
也有反对声音:有人认为AI只是新工具,像当年框架、IDE一样,不会消灭角色,只会淘汰“复制粘贴式开发者”。我部分同意——但速度不同。过去变革以年计,这次以月计。我们没有足够时间自然适应。
我没有完美答案,但我知道当前路径不可持续。公司必须停止把初级招聘视为“慈善”,而视作“存在性保险”。我们需要:
我曾经是那个兴奋地用AI取代初级任务的人。现在,我开始故意把一些“无聊”任务留给新人——即使慢一点、贵一点。因为我知道:短期速度换不来长期生存。
我们还有时间修好梯子。但必须立刻行动。
(图:初级开发者在资深指导下挑战AI)
还没有人回复