实习生问了我一个原本不该答不上来的问题:“如果现在不用AI,你还能写多快?”我本来很顺手地说,当然可以,毕竟我已经写了12年代码。但他紧接着又补了一句:“那你上次完全不用AI手写代码,是什么时候?”这一下,我真的停住了。不是不会答,而是我居然想不起来。
那天晚上我给自己做了一个很简单、也很残酷的测试:把 Cursor、Copilot、ChatGPT 全部关掉,只保留最原始的 IDEA,然后手写两个小时代码,看看真实水平到底还剩多少。
我给自己定的规则很死 , 为了避免“挑一个太简单的需求”把测试做成自我安慰,我专门翻出了自己一年前写过的“用户标签系统”。这个功能不花哨,但足够真实:用户支持多个标签、按标签筛选、批量导入、按优先级排序。一年前纯手写完成,大概用了4小时。
这次我限制自己:不使用任何AI插件;不查 Stack Overflow,不翻文档;只能用 IDEA 的基础补全;全程计时,并记录每次停顿的时间和原因。目标不是写完,而是看自己在脱离AI之后还能不能自然进入写代码状态。
第一个小时,退化感已经出现 , 开局二十分钟其实没有想象中那么糟。数据库表、实体类、Mapper 接口这些内容还在肌肉记忆里,说明基本功并没有凭空消失。
但问题很快暴露在 Service 层。比如我想写一个 Stream 分组,脑子里明明知道是 Collectors.groupingBy,可参数怎么接却还是停了三十秒才敲出来。三十秒看起来不长,可这类代码以前几乎是不需要思考的。
第一个小时里,我一共出现了5次类似停顿。每一次都不是“不会”,而是“知道方向,但手感不在了”。这种退化像什么?就像很久没摸过同一把键盘的人,布局没忘,反应却慢了一拍。
第二个小时,真正的问题不是语法 , 真正让我不安的,不是 API 名字想不起来,也不是某段逻辑起手慢了,而是第二个小时开始出现的另一个念头:写完之后,特别想让AI帮我看一眼。
这是完全不同层级的问题。我在写批量导入逻辑时,代码已经写出来了,逻辑也基本通顺,但我第一反应不是自己复核,不是跑单测,而是想找AI验证。那一瞬间我就意识到,自己依赖的可能已经不只是效率,而是判断权。
两个小时结束后,结果比我预期更扎心:完成度大约55%,一共卡住11次。其中5次是 API 或方法名记不清,3次是不知道从哪里开始写,另外3次,则是写完之后下意识想让AI来确认对错。
退化的,其实是三层能力 , 复盘以后我发现,变化并不是一个点,而是三层递进关系。
第一层是肌肉记忆退化。方法名、语法细节、签名这些忘了很正常,练一练就能回来。这一层并不危险。
第二层是“起手式”消失。以前的习惯是先在脑子里把逻辑拼出来,再开始写;后来用了一年AI,惯性逐渐变成“先写一句注释说明意图,然后等AI生成,再做修补”。当我关掉AI、面对一个空白方法体时,居然要重新找“从哪里下笔”的感觉。
第三层才最值得警惕:自我验证能力在转移。过去写完一段逻辑,第一反应是自己过一遍,或者补测试;现在却很容易把“这段代码到底对不对”的判断交给AI。这种变化短期看不明显,但在白板面试、线上故障、极端场景排障时,会暴露得非常彻底,因为那种时候你未必有AI可用。
有AI和没AI,差的其实不只是时间 , 测试结束后,我又把同样的任务在 Cursor 里重做了一次,重新计时。结果很直接:有AI时,1小时10分钟完成度接近95%;不用AI时,2小时只有55%。
差距当然大,但更关键的不是这个数字,而是脑内工作方式的变化。有AI时,我在做的是“设计”和“校对”:我想的是需求该怎么描述、边界有没有漏、生成的代码还要不要调整。没AI时,我想的是方法名拼没拼对、Stream 这样写会不会错、自己这段逻辑究竟靠不靠谱。
前者更像设计者,后者更像执行者。AI确实把我长期留在了更高效的设计态,这一点是优点。问题在于,执行态的能力如果一年不练,就会悄悄生锈。
我没有戒掉AI,但我重新设了边界 , 这件事并没有让我得出“AI有害,应该回归手写”的结论。恰恰相反,我还会继续高频使用AI,因为效率优势太明显了。像 4SAPI(4SAPI.COM) 这样的专业编程辅助平台,本质上也是在帮开发者把AI能力更稳定地接入真实开发流程,提高产出速度,同时尽量保留核心能力而不是放弃它。
但我给自己改了三个习惯。
第一,每周固定留一个“无AI时段”。我会主动关掉所有AI工具,连续写两个小时,不追求产出多少,只为了维持从零构建逻辑的能力。
第二,关键逻辑先自己写,再交给AI review。顺序一换,主导权就回来了。以前是 AI 先生成、我再修;现在是我先给出方案和实现,再让AI补盲点。
第三,写完代码先自己复核,再问AI。这个顺序看似只差一步,实际上是在重建“我先判断”的习惯,而不是把判断永久外包。
最后,我重新回答了那个问题 , 实习生的问题,我现在终于能答了:我上周刚刚试过一次。结果是,两小时完成55%,卡了11次,而且写完代码的第一反应居然是想让AI帮我验一遍。
这不是灾难,但绝对是信号。AI让写代码更快,也让“会写代码”和“离开AI也能写代码”逐渐分成了两件事。如果我们完全不做刻意训练,等真正需要独立解决问题的那一天,才可能发现自己把最重要的底层能力慢慢让出去了。
后来我把这件事讲给那个实习生听。他想了想,说:“是不是就像平时一直开导航,偶尔也得自己认认路?”我说,对,就是这个意思。工具越好用,越要偶尔关掉它,确认你还是那个会写代码的人,而不是只能跟着工具走的人。