我用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写代码多久了有没有发现类似的退化

相关新闻

STM32CubeIDE调试失败:GDB服务器启动错误排查指南

STM32CubeIDE调试失败:GDB服务器启动错误排查指南

1. 问题现象与初步排查:当调试器“失联”时如果你正在用STM32CubeIDE调试你的STM32项目,满怀期待地点下那个绿色的小虫子图标,结果弹窗里赫然出现“Error in final launch sequence: Failed to start GDB server”,然后调试会话瞬…

2026/10/13 4:56:32 阅读更多 →
UniApp分包后静态资源加载失效:原理、诊断与解决方案

UniApp分包后静态资源加载失效:原理、诊断与解决方案

1. 项目概述:当UniApp分包遇上Static资源“失踪”做UniApp开发的朋友,尤其是项目体积逐渐膨胀之后,分包几乎是绕不开的优化手段。它能有效解决小程序平台对主包体积的严格限制,提升首次加载速度。但最近在社区和实际项目中&#x…

2026/10/11 19:28:21 阅读更多 →
SpringBoot+Vue校园社团管理系统全栈开发实践

SpringBoot+Vue校园社团管理系统全栈开发实践

1. 项目背景与核心价值校园社团信息管理系统是高校信息化建设中不可或缺的一环。传统的手工登记、Excel表格管理方式已经无法满足现代学生社团活动的需求。这个基于SpringBootVueMySQL的全栈解决方案,正是为了解决以下痛点:信息孤岛问题:各部…

2026/10/11 19:28:26 阅读更多 →

最新新闻

GongBU模型评估详解:如何用BERTScore、BLEU和Distinct-n指标科学判断微调效果

GongBU模型评估详解:如何用BERTScore、BLEU和Distinct-n指标科学判断微调效果

【免费下载链接】GongBU Paper accepted by CIKM 2024. Codes of GongBU, a LLM fine-tuning platform for domain-specific adaptation. 项目地址: https://gitcode.com/gh_mirrors/go/GongBU 点击查看 免费下载 微调完成之后,最让人头疼的问题往往是&…

2026/10/13 12:49:58 阅读更多 →
Context Hub 多版本 API 文档机制详解:从 versioned-api 目录结构到 chub 版本解析原理

Context Hub 多版本 API 文档机制详解:从 versioned-api 目录结构到 chub 版本解析原理

【免费下载链接】context-hub 项目地址: https://gitcode.com/gh_mirrors/co/context-hub 点击查看 免费下载 本文以 Context Hub 仓库中的多版本文档测试样例 v1/DOC.md 为线索,系统讲解 Context Hub(chub CLI)如何组织、构建、…

2026/10/13 12:49:58 阅读更多 →
WinForm角色权限设计实战:五表RBAC动态菜单与反射窗体实现

WinForm角色权限设计实战:五表RBAC动态菜单与反射窗体实现

简介:这份C# WinForm角色权限菜单源码包,面向需要在Windows桌面应用中实现权限控制的开发者,提供了一套基于角色的动态菜单完整解决方案。核心设计思路是让权限与角色绑定,用户通过分配角色自动获得对应操作权限,从而大…

2026/10/13 12:49:58 阅读更多 →
侯捷 C++ 系列课程与陈硕 Linux 网络编程视频:InterviewGuide 收录的 C++ 求职进阶资源全解析

侯捷 C++ 系列课程与陈硕 Linux 网络编程视频:InterviewGuide 收录的 C++ 求职进阶资源全解析

教程 【免费下载链接】InterviewGuide 🔥🔥「InterviewGuide」是阿秀从校园->职场多年计算机自学过程的记录以及学弟学妹们计算机校招&秋招经验总结文章的汇总,包括但不限于C/C 、Golang、JavaScript、Vue、操作系统、数据结构、计算机…

2026/10/13 12:49:58 阅读更多 →
Forest Pack 7真实感植被布设核心原理与避坑指南

Forest Pack 7真实感植被布设核心原理与避坑指南

简介:本资源是3ds Max用户必备的Forest Pack 7官方帮助文档PDF,面向建筑可视化、游戏场景与影视特效领域的中高级三维设计师,解决大规模自然环境(如森林、草地、岩石群、人群等)高效建模与智能散布的技术难点。文档全面…

2026/10/13 12:49:58 阅读更多 →
AutoGen接入MCP工具全指南:原理、API与避坑实践

AutoGen接入MCP工具全指南:原理、API与避坑实践

这两天我在调AutoGen智能体的时候,发现一个很容易被忽略但非常关键的扩展包:autogen_ext.tools.mcp。如果你已经在用AutoGen做智能体,大概率接触过原生工具注册,也就是把函数直接塞给Agent。但实际项目里工具一多,函数…

2026/10/13 12:48:56 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →