其实这种情况早就见过了,很多初级开发者都会碰到类似的问题。
结果工作量不但没有减少,反而增加了不少。更麻烦的是,你还得判断哪些代码是开发者自己写的,哪些是AI胡乱生成的。
真是无奈。
不是说不信任AI,而是实在不太能信赖……
AI能帮忙的前提是,得有人和它一起协作。
很多人幻想着让Vibe coding来完全取代程序员。
听说已经有不少程序员因此失业了。
AWS的CEO Matt Garman甚至直言“用AI取代初级开发者”是“最愚蠢的想法之一”!
作为在技术圈摸爬滚打多年的老手,我只能说:终于有大佬敢说真话了。
那么,为什么会这么说呢?
并不是因为节省不了钱,而是这些人根本没搞明白两件事:第一,AI到底能做什么,不能做什么;第二,初级开发者在技术团队中的作用是什么。
根据我的开发经验,AI确实能帮你节省一些时间去搜索API,但它能帮你做架构决策吗?
能替你背负技术债的责任吗?
能培养出下一个高级工程师吗?
懂行的人自然会明白。
AI到底能干些什么?
弄清楚这些界限是必须的
先说说AI确实能做的事情。
Kent Beck在2025年12月的文章中提到了一组数据:初级开发者使用AI后,以前花3小时找API的工作,现在仅需20分钟就能搞定。

听起来不错吧?但问题来了!
我来给你举几个AI可能出问题的例子……
翻车案例一:SQLite+Litestream的误用,AI给你挖坑
我们团队有人让Claude Opus做了个任务:用SQLite和Litestream VFS为REST服务添加读副本。
任何学过分布式系统基础的人都知道,这根本就是个大坑!
Litestream的VFS模式明明说不能这么用,会有脏读和隔离性的问题。
可AI乐呵呵地接下了任务,给你写了段用Django的数据库路由器的代码:

最搞笑的是,AI明明可以访问Litestream的官方文档,文档里清清楚楚写着“别这么用”,它却完全不在意。
这就是AI最糟糕的地方:它不知道自己不知道什么。
一个初级开发者起码还会怀疑一下,AI却满怀信心把你带入坑中。
翻车案例二:代码库崩溃周期加速,AI让你走向绝境
我之前接手过一个创业公司的代码库,通常6到8年就会达到“屎山临界点”!
每个设计模式的例外比遵循的代码还多,遇到bug总能追溯到一堆历史遗留问题。
AI加速开发?没错,但它同样在加快这个崩溃的周期。

更可怕的是,等代码库变成“屎山”后,AI反而最难以应对!
因为它的训练数据里根本没有你们公司的独特历史和各种奇葩约定。
AI确实能提效的场景:搜索空间压缩
说了这么多翻车的情况,也得说说AI真正有用的地方。
初级开发者过去的痛点是“在Stack Overflow上照抄代码、写样板代码写到手抽筋、因为少个import卡好几个小时”。
AI解决了这些麻烦,新手可以把精力放在理解系统架构上。

还有AWS SDK文档的例子!
那个文档真是一言难尽,加载一个条目得等半天,实际用的API就那么几个。
在这种情况下让AI帮忙找,完全合理。
不过!理解原理和会按按钮是两码事
这里必须说一个很有意思的比喻。
真正“学会”平方根的人,给他一个只有加减乘除的计算器,他能用迭代法算出来;只“学会”按√键的人,换个计算器就傻眼了。

我也很认同一个关于正则表达式的观点:每次遇到复杂正则,选择深究规范、把它推到极限,甚至发现任务超出正则的能力!
这个过程才能建立真正的判断力。复制粘贴AI给的正则?
你永远不会知道在边界情况下会出现什么问题。
对那些因为看不懂黑格尔就去读AI摘要的人,我绝对不信任他们说的话。
文档浏览的偶然发现,AI给不了你
最后说一个容易被忽视的点。
有资深工程师提到,翻看Microsoft文档时,左边的目录常常能让人惊喜地发现“卧槽还有这个功能”——这些都是你没想到要搜索的内容。
AI搜索像什么?
就像跟团游,只去打卡景点。读文档就像自己闲逛,沿途发现意想不到的宝藏。
当你只问AI要直接答案的时候,你永远不会知道“你不知道自己需要知道什么”。
初级开发者到底是干嘛的?
说了AI的界限,再来说说为什么削减初级开发者无疑是在自杀。
很多人觉得初级开发者只不过是“便宜的劳动力”,这种想法可真离谱。
他们的真正价值在于:在技术传承链条上不可或缺的一环。
资深工程师总有退休的一天,谁来接班呢?

再聊聊程序员的发展历程。
2005到2008年,业界普遍建议大家别学计算机,理由是印度和东南亚的外包会把薪资压到5万美元以下。
结果呢?
接下来的十年,参加个3到6个月的JavaScript训练营出来就能月入上万。
放射科医生也曾被预测会被深度学习取代,五年内失业。
现在呢?美国放射科医生的平均年薪是34到50万美元,活得好好的。

有人形容这是在“血流成河时才买入”的职业版本!
当所有人都在担心某个领域会被技术替代时,恰恰是进入该领域的最佳时机。
我个人觉得,现在关于“AI替代初级开发者”的论调,可能也是同样的剧本。
OpenCV LUT映射的案例让我大开眼界。
有人在代码审查中看到AI生成的OpenCV查找表映射代码,写了一大堆。
问题是什么?初级开发者根本不知道,他只需要一个简单的插值函数。

你不知道你不知道什么?
这是AI修复不了的难题。
它只会自信地给你一个复杂但不合适的方案,而没有经验的人根本看不出问题所在。
初级开发者对AI工具的适应性更强
说点积极的。
初级开发者的工作流程可塑性更高,可以围绕AI工具原生构建。
对比一下:用了十年vim的老鸟,让他用个需要跑Electron的AI工具,他可能会直接拒绝。
但从VS Code过来的人就没这个包袱。
所以正确的思路不是”用AI替代初级”,而是”用AI增强初级”——他们学得更快、产出更多,但仍然需要资深工程师的指导来避免那些坑。
之前聊天时提到程序员与德国手工业的传统培养体系,我觉得这很有参考价值:

现在行业大幅削减初级招聘,四到五年后会怎样?
即使AI真的遇到瓶颈(很多人认为已经遇到了),所有公司都会争抢资深工程师,却发现市场上根本没有人可用!
因为没人培养过。
有个经典段子:某人的表弟第一天上班就把整个数据库清空了。

资深同事对此很理解,更重要的是这个事故引发了关于备份策略、环境隔离、权限控制的一系列讨论和改进。
这种通过真实错误触发的学习和流程改进,是AI无法模拟的。
初级开发者的“天真错误”往往能暴露组织流程中长期存在但被忽视的漏洞。
AI为什么不行?
因为有些东西只能由人传授(CoreFoundation的goto模式)。
有个案例:一位资深工程师分享了向新人传授Apple CoreFoundation代码模式的经历。
当技术遇上管理:从工程师到管理者的那些事
说到CF的设计,真是让人感到复杂。每次调用API都有可能返回NULL,而如果给CF的函数传了NULL参数,系统就会直接崩溃。为了追求性能,CF选择不检查参数,这就让人不得不采用goto标签来处理错误。

新来的工程师一开始就问:“goto不是有害的吗?”
但当他理解了CF对NULL的敏感性后,发现其实在这种情况下,使用goto确实让代码看起来更简洁,避免了层层嵌套,同时还能确保资源得到正确释放。
这虽然听起来有点反直觉,但也合情合理。AI在这方面的建议往往只会告诉你“要避免使用goto”,可是真正的经验却是需要人来传授的。
说到组织设计,其实把最优秀的工程师提拔到管理层,有时候能培养出出色的管理者,但更多的时候却是以优秀工程师的流失为代价,换来一个平庸的管理者。
为了避免这种情况,Staff Engineer的职业路径设计就很有意义:那些有10到15年经验的工程师,如果不想做管理,应该能继续享受管理层的薪水,并发挥自己的技术影响力,而不是被迫去开1对1的会议和搞年度评审。

这样的设计确保了技术知识不会因为晋升的障碍而中断。
我们不能完全依赖AI,并不是因为AI没有用,而是提这个想法的人根本没搞懂AI的技术边界,以及初级开发者在团队中的重要性。
AI可以帮助我们提高效率,但它无法替代架构决策,弥补技术债务,也无法传递隐性知识,更不能培养出下一代工程师。
其实,初级开发者正是最能与AI协同工作的群体——他们的工作流程灵活,能够围绕AI构建,同时又需要经验丰富的工程师指导,避免各种陷阱。
如果我们用AI替代初级开发者,那就相当于同时切断了效率提升和人才培养的两条路,这种短期思维只会牺牲长期利益。
简单来说,就是一些只盯着季度报表的人在做技术决策。
参考链接
Kent Beck: The Bet On Juniors Just Got Better :https://tidyfirst.substack.com/p/the-bet-on-juniors-just-got-better
Staff Engineer职业路径 : https://staffeng.com/about/
Peter Norvig: Teach Yourself Programming in Ten Years https://www.norvig.com/21-days.html
Cargo Cult Programming定义 http://www.catb.org/jargon/html/C/cargo-cult-programming.html
Litestream VFS使用指南 https://litestream.io/guides/vfs/#when-to-use-the-vfs
Amazon $350亿印度投资公告 https://www.aboutamazon.com/news/company-news/amazon-35-billion-india-investment
Practical Common Lisp https://gigamonkeys.com/book/practical-a-simple-database
