从年初开始我几乎每天都在用Claude Code或Cursor写代码。效率确实高了不少——以前要写半天的CRUD页面现在二十分钟搞定。但最近发生了一件事让我警觉同事问我一个Promise.allSettled和Promise.all的区别我张了张嘴发现自己需要想一下才能回答。这个问题两年前我能脱口而出。不是我变笨了。是我把这块肌肉交给AI练了半年它萎缩了。Anthropic最近的一项研究给了一个具体数字重度依赖AI编程工具的开发者独立调试和代码阅读能力比手动编码组低17个百分点。美国心理学会今年的报告也指出过度依赖生成式AI会降低批判性思维和岗位专项技能。The Register上甚至出现了一个新词叫AI Atrophy——AI导致的技能萎缩。我花了一个周末盘点了自己的变化。以下5个退化最明显。1. Debug能力遇到bug第一反应变了以前遇到bug我的流程是看报错信息→定位文件→打断点→看调用栈→找到原因。现在呢遇到红色波浪线第一反应是把报错复制给AI。// 以前我会看这个报错思考为什么 // Typestring | undefinedis not assignable totypestring// → 哦可能是可选链返回了undefined需要给默认值 // 现在直接丢给AI //帮我修这个TypeScript报错// AI秒回加个 ??就行 // 我哦好下一个问题不在于AI给的答案对不对——大部分时候是对的。问题在于我跳过了理解为什么出错这一步。连续半年跳过这一步你对类型系统的心智模型就变得模糊了。以前能凭直觉判断这里可能有空值现在要等TypeScript报错了才知道。自测方法下次遇到TypeScript报错先不问AI自己读完报错信息。如果你发现自己读不懂了——那就是退化的信号。2. 代码阅读能力看别人的代码变吃力了以前review同事的PR我会逐行看逻辑、想边界情况、考虑性能。现在呢打开一个200行的组件第一反应是让AI帮我总结。// 以前review这段代码我会注意到问题functionuseDebounce(value, delay){const[debouncedValue, setDebouncedValue]useState(value);useEffect((){const timersetTimeout((){setDebouncedValue(value);}, delay);return()clearTimeout(timer);},[value, delay]);returndebouncedValue;}// 问题delay变化时会重置timer可能导致永远不触发 // 以前我一眼能看出这个问题 // 现在我需要想一下才能想到Anthropic研究里那个代码阅读能力低17%就是这个意思。不是看不懂语法是看代码时主动思考的密度降低了。你习惯了让AI总结代码、解释逻辑自己的阅读肌肉就在萎缩。就像天天打车的人突然发现自己不记得路了。自测方法找一个你没参与的开源项目随便打开一个核心模块看15分钟。如果你发现自己频繁想好复杂让AI解释一下——那就是退化的信号。3. 从零搭建能力离了模板不会开始现在让你不用create-next-app、不用AI、从一个空文件夹开始搭一个React项目——你能搞定吗# 你还记得从零开始需要什么吗mkdirmy-appcdmy-appnpminit-ynpminstallreact react-domnpminstall-Dwebpack webpack-cli webpack-dev-servernpminstall-Dbabel-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了// 这些你还能不查就写出来吗 // 数组去重[...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 paramsnew URLSearchParams(window.location.search)params.get(id)// 你还记得URLSearchParams吗 // 数组分组ES2024 Object.groupBy(items, itemitem.category)// 这个你知道吗这不是记忆力的问题。是你不再需要记这些了——问AI比翻MDN快十倍。但代价是你对JavaScript标准库的掌握从信手拈来变成了知道有这么个东西但要查。写代码时的流畅感没了。以前写代码像说话一样自然现在像在翻译——你知道要做什么但需要AI帮你翻译成具体的API调用。自测方法打开一个空文件不查任何东西写一个函数接受一个URL字符串返回所有查询参数的对象。如果你卡在URLSearchParams的用法上——那就是退化的信号。5. 方案设计能力不再自己想架构了这个最隐蔽也最危险。以前遇到一个新需求我会先在脑子里过一遍这个功能的数据流是什么样状态放哪组件怎么拆要不要用Context还是状态管理库现在呢直接告诉AI需求让它出方案。// 以前的思考过程 // 需求做一个支持筛选、排序、分页的数据表格 // 我的思考 //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写了半年代码——回头看,这5个能力正在退化
从年初开始我几乎每天都在用Claude Code或Cursor写代码。效率确实高了不少——以前要写半天的CRUD页面现在二十分钟搞定。但最近发生了一件事让我警觉同事问我一个Promise.allSettled和Promise.all的区别我张了张嘴发现自己需要想一下才能回答。这个问题两年前我能脱口而出。不是我变笨了。是我把这块肌肉交给AI练了半年它萎缩了。Anthropic最近的一项研究给了一个具体数字重度依赖AI编程工具的开发者独立调试和代码阅读能力比手动编码组低17个百分点。美国心理学会今年的报告也指出过度依赖生成式AI会降低批判性思维和岗位专项技能。The Register上甚至出现了一个新词叫AI Atrophy——AI导致的技能萎缩。我花了一个周末盘点了自己的变化。以下5个退化最明显。1. Debug能力遇到bug第一反应变了以前遇到bug我的流程是看报错信息→定位文件→打断点→看调用栈→找到原因。现在呢遇到红色波浪线第一反应是把报错复制给AI。// 以前我会看这个报错思考为什么 // Typestring | undefinedis not assignable totypestring// → 哦可能是可选链返回了undefined需要给默认值 // 现在直接丢给AI //帮我修这个TypeScript报错// AI秒回加个 ??就行 // 我哦好下一个问题不在于AI给的答案对不对——大部分时候是对的。问题在于我跳过了理解为什么出错这一步。连续半年跳过这一步你对类型系统的心智模型就变得模糊了。以前能凭直觉判断这里可能有空值现在要等TypeScript报错了才知道。自测方法下次遇到TypeScript报错先不问AI自己读完报错信息。如果你发现自己读不懂了——那就是退化的信号。2. 代码阅读能力看别人的代码变吃力了以前review同事的PR我会逐行看逻辑、想边界情况、考虑性能。现在呢打开一个200行的组件第一反应是让AI帮我总结。// 以前review这段代码我会注意到问题functionuseDebounce(value, delay){const[debouncedValue, setDebouncedValue]useState(value);useEffect((){const timersetTimeout((){setDebouncedValue(value);}, delay);return()clearTimeout(timer);},[value, delay]);returndebouncedValue;}// 问题delay变化时会重置timer可能导致永远不触发 // 以前我一眼能看出这个问题 // 现在我需要想一下才能想到Anthropic研究里那个代码阅读能力低17%就是这个意思。不是看不懂语法是看代码时主动思考的密度降低了。你习惯了让AI总结代码、解释逻辑自己的阅读肌肉就在萎缩。就像天天打车的人突然发现自己不记得路了。自测方法找一个你没参与的开源项目随便打开一个核心模块看15分钟。如果你发现自己频繁想好复杂让AI解释一下——那就是退化的信号。3. 从零搭建能力离了模板不会开始现在让你不用create-next-app、不用AI、从一个空文件夹开始搭一个React项目——你能搞定吗# 你还记得从零开始需要什么吗mkdirmy-appcdmy-appnpminit-ynpminstallreact react-domnpminstall-Dwebpack webpack-cli webpack-dev-servernpminstall-Dbabel-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了// 这些你还能不查就写出来吗 // 数组去重[...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 paramsnew URLSearchParams(window.location.search)params.get(id)// 你还记得URLSearchParams吗 // 数组分组ES2024 Object.groupBy(items, itemitem.category)// 这个你知道吗这不是记忆力的问题。是你不再需要记这些了——问AI比翻MDN快十倍。但代价是你对JavaScript标准库的掌握从信手拈来变成了知道有这么个东西但要查。写代码时的流畅感没了。以前写代码像说话一样自然现在像在翻译——你知道要做什么但需要AI帮你翻译成具体的API调用。自测方法打开一个空文件不查任何东西写一个函数接受一个URL字符串返回所有查询参数的对象。如果你卡在URLSearchParams的用法上——那就是退化的信号。5. 方案设计能力不再自己想架构了这个最隐蔽也最危险。以前遇到一个新需求我会先在脑子里过一遍这个功能的数据流是什么样状态放哪组件怎么拆要不要用Context还是状态管理库现在呢直接告诉AI需求让它出方案。// 以前的思考过程 // 需求做一个支持筛选、排序、分页的数据表格 // 我的思考 //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写代码多久了有没有发现类似的退化