惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MongoDB | Blog
MongoDB | Blog
博客园 - 聂微东
Attack and Defense Labs
Attack and Defense Labs
WordPress大学
WordPress大学
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Spread Privacy
Spread Privacy
AI
AI
宝玉的分享
宝玉的分享
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
C
Cyber Attacks, Cyber Crime and Cyber Security
爱范儿
爱范儿
Help Net Security
Help Net Security
V
Visual Studio Blog
大猫的无限游戏
大猫的无限游戏
Forbes - Security
Forbes - Security
P
Privacy & Cybersecurity Law Blog
Project Zero
Project Zero
IT之家
IT之家
Hugging Face - Blog
Hugging Face - Blog
博客园 - 三生石上(FineUI控件)
S
SegmentFault 最新的问题
有赞技术团队
有赞技术团队
T
Troy Hunt's Blog
美团技术团队
T
Threatpost
K
Kaspersky official blog
V
V2EX
Scott Helme
Scott Helme
Vercel News
Vercel News
T
The Blog of Author Tim Ferriss
T
Tailwind CSS Blog
V
Vulnerabilities – Threatpost
Last Week in AI
Last Week in AI
PCI Perspectives
PCI Perspectives
Google Online Security Blog
Google Online Security Blog
Apple Machine Learning Research
Apple Machine Learning Research
Engineering at Meta
Engineering at Meta
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
I
InfoQ
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
酷 壳 – CoolShell
酷 壳 – CoolShell
GbyAI
GbyAI
L
LINUX DO - 最新话题
T
The Exploit Database - CXSecurity.com
L
LangChain Blog
S
Security @ Cisco Blogs
The Last Watchdog
The Last Watchdog
H
Hacker News: Front Page
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
TaoSecurity Blog
TaoSecurity Blog

博客园 - 后端AI实验室

我带的那个实习生,比我更依赖AI——但他的问题和我完全不同 我用AI把一个外包需求从30天压到5天交付,然后客户说:下次还找你 我用 AI 设计了一套新人 onboarding 方案,两周后他的产出超出了我的预期 裁员后我被迫负责运维,用AI从0搭建了可观测性平台 我把代码审查权交给AI两个月,团队发生了什么 等保三级整改,敏感数据加密,数十个系统——3个人用Cursor一周搞定了 我让AI模拟面试官考了我一个小时,然后我沉默了 同一个需求,我先出技术方案,再让AI出方案——差距让我沉默了 3年没人敢碰的老代码,我用AI重构了它——然后翻车了 我让AI review了自己写的代码,然后删掉了30% 我把一个生产Bug的排查过程,交给AI处理——20分钟后我关掉了它 我把同一个需求分别交给初级程序员、高级程序员和AI,结果让我沉默了 用AI写代码,我差点把漏洞发上线:血泪总结的10个教训 我用Cursor开发了3个月,整理出这套提效4倍的工作流 IntelliJ IDEA的统治即将终结?我已经3个月没怎么用它了 公司给团队配了Cursor,然后开始裁员:一个残酷但必须面对的真相 黄仁勋说编程只是打字?一个12年老程序员的冷静思考 springcloud-nacos配置中心 springcloud-nacos服务注册 springcloud-bus消息总线 springcloud-configclient手动刷新
AI编程一年后,我还记得怎么手写代码吗?答案让我沉默了
后端AI实验室 · 2026-04-09 · via 博客园 - 后端AI实验室

上周,团队来了一个实习生。

第一天熟悉环境,他坐在我旁边看我写代码。

看了一会儿,他问我:

"老师,你平时不用AI的话,能写多快?"

我当时很自然地回了他一句:"当然能写,我写了12年代码。"

然后他问了第二句:

"那你上次不用AI手写代码,是什么时候?"

我愣了一下。

认真想了想,想不起来了。

那天晚上,我做了一个决定:把Cursor关掉,Copilot也关掉,ChatGPT也关掉,用最原始的IDEA,手写两个小时代码,看看到底会发生什么。


一、测试规则

随便找个需求练练手,意义不大。我想要一个真实的对照。

于是我翻出了一年前写过的一个功能——用户标签系统。

逻辑不复杂:用户可以打多个标签,支持按标签查用户,标签可以批量导入,有优先级排序。当时纯手写,大概花了4小时。

这次的规则:

  • 关掉所有AI工具,包括IDEA自带的AI插件
  • 不查Stack Overflow,不查文档(API记不住就记不住)
  • 可以用IDEA的基础补全,但不依赖它
  • 全程计时,记录每次卡住的时间和原因

两小时,看能做到几成。


二、第一个小时:手感退化,但没到让我慌的程度

前20分钟,感觉还好。

核心的数据库表结构、实体类、Mapper接口,这些是肌肉记忆,脑子里还有。

@Data
@TableName("user_tag")
public class UserTag {
    @TableId(type = IdType.AUTO)
    private Long id;
    private Long userId;
    private String tagCode;
    private Integer priority;
    private LocalDateTime createTime;
}

这种东西,一年前会写,现在还会写。

但写到Service层,第一次卡住了。

我想用Stream做一个分组聚合,脑子里知道是Collectors.groupingBy,但后面那个参数怎么接,想了大概30秒才想起来。

// 卡在这里30秒
Map<Long, List<UserTag>> tagMap = userTags.stream()
    .collect(Collectors.groupingBy(UserTag::getUserId));

30秒不算什么,但以前这行代码是不用停顿的,手直接就打出来了。

类似的停顿,第一个小时里出现了5次。

每次都不是因为不会,而是因为那个"手感"消失了。

就好像一个打字很快的人,突然要用一个月没摸过的键盘,知道字母在哪,但手速和肌肉反应跟不上。

这一层退化,我接受。

用进废退,很正常。一年没手写,手感生疏了,符合预期。


三、第二个小时:真正让我不安的事开始出现

第一个小时结束,我完成了大概40%,算正常节奏。

进入第二个小时,写到批量导入的逻辑,出现了一个我没预料到的情况。

我在方法体里写了几行逻辑,写完之后,突然停下来了。

不是因为卡住了。

是因为我不确定自己写的对不对,想——

让AI帮我看一眼。

这个念头出现的那一刻,我意识到了一些东西。

我按住了这个冲动,自己把逻辑重新过了一遍,确认没问题,继续往下写。

但接下来,这个念头又出现了两次。

两小时结束,我统计了一下数据:

完成度:约55%
卡住次数:11次
卡住原因:
  API/方法名想不起来:5次
  逻辑起点不确定,不知从哪里动手:3次
  写完之后想"让AI验证一下":3次

前两类我能接受,最后那3次让我停下来想了很久。

不是写不出来,是写完之后不信任自己的判断。

这和手感退化是两回事。

手感退化是技能问题,练一练能回来。

不信任自己的判断,是心理依赖。


四、退化的到底是什么

两小时测试结束,我坐在那里复盘,发现退化的不是一件事,而是三件事,严重程度依次递增。

第一层:肌肉记忆退化(轻微)

API名字、方法签名、语法细节,这些记不住了。

这是正常现象,不用担心,一周刻意练习就能回来。

就像长期用计算器之后心算变慢,但不代表你不会算数。

第二层:起手式消失(值得注意)

这一层比手感更隐蔽。

以前写代码,习惯是:想清楚逻辑 → 动手写。

用了一年AI之后,习惯变成了:写个注释描述意图 → 等AI补全 → 我来改。

这是两种完全不同的思维模式。

关掉AI之后,我坐在空白的方法体前面,发现自己不知道从哪里开始了。不是不会写,是那个"主动构建逻辑"的起手式,被"描述意图,等待生成"替代了。

一旦没有了AI,这个起手式就得重新找回来。

第三层:自我验证能力的转移(需要警惕)

这是最严重的一层,也是最难察觉的。

写完一段逻辑,以前的第一反应是:跑一下单元测试,或者自己重新过一遍逻辑。

现在的第一反应是:让AI看一下。

这不只是习惯问题,是信任的转移。

我开始把"这段代码是不是对的"这个判断,从自己转移给了AI。

这一点长期累积下去,会在两个场景里暴露出来:白板面试、以及真正紧急的生产故障。

这两个场景有一个共同特点:没有AI,你只能靠自己。


五、一个让我更清醒的对比

测试结束后,我做了一件事:打开Cursor,把同样的任务重新做了一遍,计时。

结果:

有AI:1小时10分钟,完成度95%
无AI:2小时,完成度55%

差距比我预期的大。

但更让我在意的不是这个数字,而是两种状态下我脑子里的感受。

有AI的时候,我在想:这个需求怎么描述清楚,生成的代码哪里需要调整,有没有遗漏的边界。

没有AI的时候,我在想:这个方法名怎么拼,这个Stream能不能这么用,这段逻辑我写的到底对不对。

一个是设计者的状态,一个是执行者的状态。

AI让我长期保持在设计者的状态里——这是好事,效率高,产出质量也更好。

但代价是,执行者状态的肌肉,一年没练了。


六、我不打算"戒掉AI",但我改了3个习惯

看到这里,你可能以为我接下来要说"AI有害,要多手写代码"。

不是的。

AI工具我还在用,而且会一直用。效率摆在那里,没有理由放弃。

但那3次"想让AI验证一下"给了我一个信号:如果不刻意做一些事,这个依赖会越来越深,直到某天真正需要独立解决问题的时候,才发现自己已经不行了。

所以我改了3个习惯。

习惯1:每周一次"无AI时段"

每周选一个固定的2小时,完全关掉所有AI工具,手写代码。

不求快,不求完成多少,只求保持那个"从空白开始构建逻辑"的能力不生锈。

就像跑步不是每天都要跑马拉松,但如果一年不跑,你跑不动了。

习惯2:关键逻辑,先自己写,AI后验证

把顺序调回来。

以前是:AI生成 → 我来改。

现在是:我先写 → AI来review,找我遗漏的地方。

这个顺序调整,不影响最终效率,但能保持"我是主导"的状态,而不是"AI是主导"。

习惯3:写完代码,先自己过一遍再开口问AI

这针对的就是那3次"想让AI验证"。

不是不能让AI看,而是先自己逼自己把逻辑重新梳理一遍,再让AI找补充。

这是在重建自我验证的肌肉,而不是把这个判断永久外包出去。


写在最后

回到那个实习生的问题:你上次不用AI手写代码,是什么时候?

我现在有了答案——就在上周。

结果是,两小时完成了55%,卡了11次,写完代码的第一反应是想让AI看一眼。

这不是灾难。

但这是一个信号,信号说:有一些能力,在你没有察觉的时候,正在悄悄变弱。

AI让写代码变快了,但"会写代码"和"离开AI也能写代码",正在悄悄分开。

我不想等到真正需要的那一天,才发现自己已经不行了。


那个实习生现在每天都在用Cursor。

我没有阻止他。

但我告诉他:

工具用得越顺手,越要偶尔关掉它,确认自己还是那个会用工具的人,而不是没了工具就不会干活的人。

他想了一下,说:"那就像开惯了导航,也要偶尔认路?"

我说对。


你有没有试过关掉AI,看看自己还能写多快?

欢迎评论区聊聊。


后端AI实验室 不讲概念,只谈实战 代码开源,每周更新

image