当 AI 帮你绕过了所有坑——痛感消失之后,判断力从哪儿来?
当 AI 帮你绕过了所有坑——痛感消失之后,判断力从哪儿来?
去年十一月,我让 Claude Code 写一段处理并发请求的逻辑。
它直接给我上了 Mutex,加了超时控制,还写了优雅降级的 fallback。代码跑起来一切正常,测试全过,我扫了一遍 diff,合并了。
后来跟一个朋友聊到并发控制,他问我:“你那个场景为什么不用读写锁?Mutex 在读多写少的情况下会有性能问题。“我愣了一下。他说的对。我的场景确实是读多写少。但 AI 给了我 Mutex,我没有想过还有别的选项,因为它给的方案能跑。
更让我不舒服的是:我从来没有经历过”不上锁会怎样”。没见过竞态条件把数据搞乱的现场,没有凌晨被告警叫醒去查日志的记忆。我知道”并发要加锁”这个结论,但我不知道这个结论的重量。
AI 帮我绕过了一个坑。但那个坑本来可以教会我一些东西。
痛是怎么变成经验的
回想一下你职业生涯里学到最深刻的东西,大概率跟一次事故有关。
我问过七八个工程师朋友同一个问题:“你印象最深的一次技术教训是什么?“没有一个人提到看书或者上课。答案全是事故:上线把数据库锁了、配置改错导致全站宕机、SQL 注入被人刷了接口、忘记处理时区导致财务报表算错了一个月的数据。
每一次事故都很疼。疼完你记住了。下次遇到类似场景,身体里会有一个信号跳出来:“等一下,这个地方我踩过。”
这个信号就是直觉。直觉不是天赋,是被疼过之后长出来的条件反射。
学习的过程说白了就是这样:你做了一个决定,结果出了问题,你复盘为什么出了问题,下次遇到类似场景你的判断会更准。中间那个”出了问题”是整条链的关键环节。没有它,后面的复盘和判断力提升就不会发生。
医学教育里有个老话:“See one, do one, teach one.” 看一遍,做一遍,教一遍。但最重要的不是看也不是教,是”做一遍”里面那些搞砸的部分。实习医生第一次缝合缝歪了,指导医生指出来,他下次就知道力道该怎么调。如果一台机器替他缝了,缝得完美,他全程在旁边看,他的手指学到了什么?
AI 正在把坑填平
AI 写代码的强大之处在于:它见过太多代码,知道大部分场景的”正确做法”。你让它写一段逻辑,它会直接给你一个成熟的、包含了常见错误处理的方案。它不会忘记加锁,不会忘记处理 null 值,不会忘记边界检查。
这些”不会忘记”的东西,以前恰恰是你犯过错之后才记住的。
你第一次忘记处理 null,程序崩了,你记住了。第一次忘记边界检查,数据溢出了,你记住了。第一次忘记关数据库连接,连接池耗尽了,线上告警了,凌晨被电话叫醒,你记住了。
AI 在生成代码的那一刻就把这些坑全绕过了。你的代码库里不会出现忘记处理 null 的低级错误,你的测试不会因为边界条件没覆盖而失败。表面上看,一切都更好了。
但你没有经历过那个”忘记了,出事了,记住了”的循环。结论到手了,得出结论的过程被跳过了。
之前有篇文章我写过一句话:“AI 对待每一个问题的态度是一样的——自信。“这里我想补一个推论:AI 给你的每一个方案,也是一样的——干净。 你不会看到它犹豫、尝试、犯错、修正的过程。你只看到最终输出。
而那个”犹豫、尝试、犯错、修正”的过程,就是人类学习的全部。

学徒没有搬砖活了
这个问题对新人来说尤其严重。
传统的软件工程师成长路径很朴素:你刚入行,写增删改查、修小 bug、做数据迁移。这些活看起来没技术含量,但它们是训练场。你在写 CRUD 的时候搞错了外键关系,在修 bug 的时候第一次读懂了别人写的代码,在做数据迁移的时候学会了”先备份再动手”这条铁律。
每一件”搬砖活”都在教你东西,只是当时你不觉得。
现在这些活正在被 AI 接管。增删改查?Claude Code 两分钟搞定。小 bug?把报错贴进去,AI 直接给你修好。数据迁移?AI 帮你生成脚本,你跑一下就完事了。
效率高了。但学徒期正在被压缩到近乎消失。
一个 2024 年入行的初级工程师和一个 2020 年入行的,虽然都叫”初级”,但他们经历过的训练密度完全不同。2020 年那个人花了两年自己写代码、自己踩坑、自己修,积累了大量犯错的记忆。2024 年这个人从第一天就在用 AI,他的产出量可能更大,但他的经验厚度更薄。
有个类比你一定有体感:学开车。以前你得自己摸方向盘、踩离合器、熄火、被教练骂、重新来。搞砸过足够多次之后,手感就有了。现在假设有人给你一辆自动驾驶的车,你坐在驾驶座上”监督”它开。你看着它完美地完成每一次变道、每一次泊车。但如果有一天系统出了问题需要你接管,你的手感在哪?

招聘市场已经在反映这个变化。根据 SignalFire 的统计,美国前 15 大科技公司的应届生招聘量在过去几年下降了 55%。同时,资深工程师的需求在上升。市场在告诉你:它愿意为判断力付费。但这个判断力,本来需要在学徒期里慢慢攒出来。
学徒期被跳过了,市场对判断力的要求没有降低。中间这个缺口,目前没有人知道怎么填。
老手的直觉也在退化
如果你觉得这只是新人的问题,我说说自己的感受。
用 AI 写代码一年多之后,我发现自己在某些场景下的”第一反应”变弱了。
以前看到一段涉及并发的代码,脑子里会自动跳出几个检查项:锁的粒度对不对?有没有死锁风险?超时怎么处理?这些检查项不是刻意去想的,是多年踩坑之后形成的自动反应,跟你过马路会看两边一样。
现在我看到 AI 写的并发代码,第一反应变成了”看起来没问题”。不是因为我仔细检查过了,是因为 AI 写的代码太干净了——格式规范、逻辑流畅、看上去没有任何破绽。那些自动跳出来的检查项,出现的频率在降低。
新人的问题是”从来没长出过这块肌肉”。老手的问题不同:肌肉是有的,但在萎缩。而萎缩比从未拥有更危险,因为你会误以为自己还行。你以为那个检查清单还在脑子里自动运转,其实它已经好几个月没被触发过了。你扫一遍 diff 觉得”没问题”,但你分不清这个判断是真正的审查结论,还是因为你的警觉阈值已经悄悄抬高了。
之前我在另一篇文章里引用过一个读者的留言:“那种看 AI 代码时’感觉不对但说不出为什么’的直觉,其实不是代码审查能力,是身体在替你的元认知报警。”
这个报警系统需要持续被喂养。喂养它的材料,就是你亲手犯过的错、亲手修过的 bug、亲手做过的决定。当这些来源减少,报警的声音就会越来越小,小到你不再注意它。

主动制造痛感
说到这里你可能会问:那怎么办,不用 AI 吗?
当然不是。AI 是好工具。关键在于你有没有意识到工具替你跳过了什么。
我在过去几个月里摸索出了几个对自己有效的做法。不是什么系统性方法,就是一些帮我保持手感的小习惯。
最有用的一个:每周给自己留一段”裸写”时间。不用 AI,不用补全,从空白文件开始自己写。不需要很长,半小时到一小时。目的不是产出,是保持手感。就像钢琴家每天弹音阶一样——那个练习本身没有演出价值,但它让你的手指记住键盘的距离。
上个月我用”裸写”时间自己写了一段 WebSocket 心跳检测逻辑。写到一半发现自己忘了处理断线重连。如果是 AI 来写,它会直接把重连逻辑加上,我甚至不会意识到这是一个需要被考虑的场景。但因为是自己写的,我经历了那个”忘了,发现,补上”的过程。下次再碰到 WebSocket 相关的代码,我脑子里会多一个检查项。
另一个习惯更简单:AI 给我方案之后,在接受之前问自己一句——“如果不用 AI,我会怎么写?“不需要真的写出来,在脑子里过一遍就够。如果你发现自己完全想不出另一种方案,那说明你对这个问题的理解还不够深,可能需要先自己想十分钟再看 AI 的输出。
还有一个我加在复盘环节里的问题:“这次如果没有 AI,我会在哪一步犯错?“这个问题帮你看见 AI 替你绕过了哪些坑。看见了,你可以有意识地去补那块认知。看不见,那块空白就会一直留在那里,直到某天它变成一个你处理不了的线上事故。
这些做法的本质是一样的:主动给自己制造学习的机会。 速度会慢一点。但你换回来的,是对代码的掌控感,和一个持续在工作的报警系统。
你最近一次从零开始、不借助 AI 写一段完整的代码,是什么时候?
版权声明
- 作者
- XingKaiXin
- 标题
- 当 AI 帮你绕过了所有坑——痛感消失之后,判断力从哪儿来?
- 发布时间
- 2026年4月16日
本作品采用 CC BY-NC-ND 4.0 DEED 许可。