我用AI写了半年代码——回头看,这5个能力正在退化

从年初开始,我几乎每天都在用Claude Code或Cursor写代码。效率确实高了不少------以前要写半天的CRUD页面,现在二十分钟搞定。

但最近发生了一件事让我警觉:同事问我一个Promise.allSettledPromise.all的区别,我张了张嘴,发现自己需要"想一下"才能回答。这个问题两年前我能脱口而出。

不是我变笨了。是我把这块肌肉交给AI练了半年,它萎缩了

Anthropic最近的一项研究给了一个具体数字:重度依赖AI编程工具的开发者,独立调试和代码阅读能力比手动编码组低17个百分点。美国心理学会今年的报告也指出,过度依赖生成式AI会降低批判性思维和岗位专项技能。

The Register上甚至出现了一个新词叫"AI Atrophy"------AI导致的技能萎缩。

我花了一个周末盘点了自己的变化。以下5个退化最明显。

1. Debug能力:遇到bug第一反应变了

以前遇到bug,我的流程是:看报错信息→定位文件→打断点→看调用栈→找到原因。

现在呢?遇到红色波浪线,第一反应是把报错复制给AI

typescript 复制代码
// 以前:我会看这个报错,思考为什么
// Type 'string | undefined' is not assignable to type 'string'
// → 哦,可能是可选链返回了undefined,需要给默认值

// 现在:直接丢给AI
// "帮我修这个TypeScript报错"
// AI秒回:加个 ?? '' 就行
// 我:哦好,下一个

问题不在于AI给的答案对不对------大部分时候是对的。问题在于我跳过了"理解为什么出错"这一步

连续半年跳过这一步,你对类型系统的心智模型就变得模糊了。以前能凭直觉判断"这里可能有空值",现在要等TypeScript报错了才知道。

自测方法: 下次遇到TypeScript报错,先不问AI,自己读完报错信息。如果你发现自己读不懂了------那就是退化的信号。

2. 代码阅读能力:看别人的代码变吃力了

以前review同事的PR,我会逐行看逻辑、想边界情况、考虑性能。

现在呢?打开一个200行的组件,第一反应是让AI帮我总结

typescript 复制代码
// 以前review这段代码,我会注意到问题
function useDebounce(value, delay) {
  const [debouncedValue, setDebouncedValue] = useState(value);
  
  useEffect(() => {
    const timer = setTimeout(() => {
      setDebouncedValue(value);
    }, delay);
    return () => clearTimeout(timer);
  }, [value, delay]);
  
  return debouncedValue;
}

// 问题:delay变化时会重置timer,可能导致永远不触发
// 以前我一眼能看出这个问题
// 现在我需要"想一下"才能想到

Anthropic研究里那个"代码阅读能力低17%"就是这个意思。不是看不懂语法,是看代码时主动思考的密度降低了

你习惯了让AI总结代码、解释逻辑,自己的"阅读肌肉"就在萎缩。就像天天打车的人,突然发现自己不记得路了。

自测方法: 找一个你没参与的开源项目,随便打开一个核心模块,看15分钟。如果你发现自己频繁想"好复杂,让AI解释一下"------那就是退化的信号。

3. 从零搭建能力:离了模板不会开始

现在让你不用create-next-app、不用AI、从一个空文件夹开始搭一个React项目------你能搞定吗?

bash 复制代码
# 你还记得从零开始需要什么吗?
mkdir my-app && cd my-app
npm init -y
npm install react react-dom
npm install -D webpack webpack-cli webpack-dev-server
npm install -D babel-loader @babel/core @babel/preset-react
# 然后呢?webpack.config.js怎么写?
# entry、output、module rules、devServer...
# 你还记得吗?

我发现自己不记得了。以前这些我闭着眼都能写,现在需要查文档。

不是说你每次都要手搭------脚手架工具存在就是为了省时间。但知道底层是怎么运作的不知道是两码事。

当你的create-next-app出了奇怪的构建错误时,知道底层原理的人能定位问题,不知道的人只能问AI碰运气。

自测方法: 试着不用任何脚手架,手搭一个最小的React开发环境。如果你发现自己连webpack.config.js的基本结构都要查------那就是退化的信号。

4. API记忆:常用方法都要问AI了

javascript 复制代码
// 这些你还能不查就写出来吗?

// 数组去重
[...new Set(arr)]  // 还是 Array.from(new Set(arr))?都行

// 深拷贝
structuredClone(obj)  // 你还记得这个API吗?还是会写JSON.parse(JSON.stringify())?

// 日期格式化
new Intl.DateTimeFormat('zh-CN', { 
  year: 'numeric', month: '2-digit', day: '2-digit' 
}).format(date)  // 还是直接问AI?

// URL参数解析
const params = new URLSearchParams(window.location.search)
params.get('id')  // 你还记得URLSearchParams吗?

// 数组分组(ES2024)
Object.groupBy(items, item => item.category)  // 这个你知道吗?

这不是记忆力的问题。是你不再需要记这些了------问AI比翻MDN快十倍。但代价是:你对JavaScript标准库的掌握从"信手拈来"变成了"知道有这么个东西但要查"。

写代码时的流畅感没了。以前写代码像说话一样自然,现在像在翻译------你知道要做什么,但需要AI帮你"翻译"成具体的API调用。

自测方法: 打开一个空文件,不查任何东西,写一个函数:接受一个URL字符串,返回所有查询参数的对象。如果你卡在URLSearchParams的用法上------那就是退化的信号。

5. 方案设计能力:不再自己想架构了

这个最隐蔽,也最危险。

以前遇到一个新需求,我会先在脑子里过一遍:这个功能的数据流是什么样?状态放哪?组件怎么拆?要不要用Context还是状态管理库?

现在呢?直接告诉AI需求,让它出方案。

arduino 复制代码
// 以前的思考过程
// 需求:做一个支持筛选、排序、分页的数据表格
// 我的思考:
// 1. 筛选和排序状态放URL params(便于分享/刷新保留)
// 2. 数据用React Query管理(缓存+自动重新获取)
// 3. 分页用cursor而非offset(大数据量性能更好)
// 4. 表格组件和数据逻辑分离(hook管数据,组件只管渲染)

// 现在的"思考过程"
// → "帮我做一个支持筛选、排序、分页的数据表格"
// → AI直接输出500行代码
// → 我看了看能跑,就用了

AI出的方案不一定差。但你跳过了"思考为什么这样做"的过程。下次遇到类似需求时,你还是不知道应该用cursor分页还是offset分页,还是需要问AI。

技术方案设计能力不像写代码------它需要不断在真实场景中做判断、犯错、修正,才能建立起直觉。把这个过程交给AI,你的"技术直觉"就停止生长了。

自测方法: 试着在纸上(不看任何东西)画出你现在项目的前端架构图------数据流、状态管理、API调用层、组件层级。如果你画不出来------不是因为架构复杂,而是你没有真正思考过它。

能力退化自测清单

能力 退化信号 自测方法
Debug 遇到报错先问AI不看信息 下次报错先自己读完再说
代码阅读 看PR想"让AI总结一下" 看一个开源项目核心模块15分钟
从零搭建 离了脚手架不知道怎么开始 手搭一个最小React开发环境
API记忆 常用方法要先问AI 不查东西写一个URL参数解析函数
方案设计 需求来了直接丢给AI 纸上画出当前项目的架构图

不是要你戒掉AI

说清楚:我不是说AI不该用。这半年AI帮我省了无数时间,这是事实。

我想说的是:AI是外骨骼,不是替代器官。

你穿上外骨骼能举起200公斤,但你自己的肌肉至少要能举起40公斤。否则有一天外骨骼出故障------断网、API挂了、或者你需要在一个不能用AI的环境里写代码------你就废了。

上个月海外AI编程工具大规模封禁国内账号的事还历历在目。那些完全依赖AI的开发者,突然发现自己"不会写代码了"。

每周花2小时不开AI写代码。 不需要多。就像健身不需要每天去,但需要保持频率。保持你的"编程肌肉"不萎缩。

你用AI写代码多久了?有没有发现类似的退化?

相关推荐
Ai拆代码的曹操13 小时前
project/workspace设计:monorepo下工作单元的组织与隔离策略
ai编程·opencode·源码拆解
CHAM_GJ14 小时前
AI日报-让生活更美好
人工智能·ai编程·ai coding 动态·具身智能动态
IT_陈寒14 小时前
Vite静态资源路径这个坑差点让我加班到凌晨
前端·人工智能·后端
掘金酱14 小时前
「TRAE Work 实战帮」征文启动!你沉淀的经验,值得被看见!
前端·人工智能·后端
橙子家14 小时前
Windows 上同时安装多个 node 版本
前端
晓说前端15 小时前
TypeScript 高级特性 —— 类型断言与泛型
前端·typescript
大龄秃头程序员15 小时前
iOS 客户端视角扫盲:WKWebView 里 window、messageHandlers 与 Native 回调到底怎么工作?
javascript
爱勇宝15 小时前
DeepSeek V4-Flash 更新:代码与 Agent 能力全面增强
前端·后端·deepseek
GuWenyue15 小时前
90%前端写React+TS都踩坑!从组件类型、单向数据流到本地存储完整实战
前端·react.js