超越记忆与能力的幻觉
摘要
文章认为,围绕编程中AI的辩论错误地聚焦于代码创作;真正的风险在于外包理解,这可能导致能力的幻觉,而没有发展系统直觉。
<p><a href="https://lobste.rs/s/tv1xpz/beyond_recall_illusion_competence">评论</a></p>
查看缓存全文
缓存时间: 2026/08/26 11:12
# 超越代码复现与能力幻觉 — var0.xyz
来源:https://var0.xyz/posts/beyond-recall-and-the-illusion-of-competence.html
2026年8月25日
关于人工智能与编程,目前似乎存在两种主流观点。一种认为AI大多无用,因为它生成的代码质量低下,修复其错误比自己编写代码耗时更长。另一种则认为AI生成的代码非常出色,最终将使程序员变得多余。
我认为这两种观点都聚焦于错误的层面,因为它们都关注“谁来写代码”。
## 我们从未独自编写所有代码
我从不认为凭记忆复现语法和输入代码的能力对我的工作特别重要。我会使用文档、搜索网络、从Stack Overflow复制示例、阅读博客文章,并查看同事编写的代码。
在现代软件系统中,这几乎是不可避免的。一个典型的应用可能涉及TypeScript、Python或Go、YAML、Dockerfile、SQL、配置文件、CI流程以及其他十几种技术。没有人能记住所有技术的每一个细节。
因此,如果从Stack Overflow复制一段有用的代码始终是被接受的,那么让机器生成这段代码又有什么根本不同呢?
## 代码所有权从未关乎作者身份
我不太认同“AI写代码”这一论点的另一个原因是:我们始终在维护自己并非从头编写的系统。
你会从其他团队接手一个服务。某位已离职的同事编写了其中一半代码。三个人为你负责的部分做出贡献,而你甚至不记得哪个函数是谁写的。然而在熟悉系统之后,你开始将其视为自己的。为什么?
不是因为你写了每一行代码。而是因为你理解它。
你知道它的功能,知道它为何如此运行,知道它的边界在哪里、依赖项是什么,以及出错时会发生什么。
这才是所有权真正的感觉。
## 警惕外包“思考过程”
我认为这是人工智能辅助编程最有趣的地方。问题不在于机器编写代码,而很容易让机器也接管了思考过程。
“我理解需要实现什么,请为我编写代码”与“让它能运行”然后接受任何结果,这两者之间有天壤之别。
前者你委托的是输入工作,后者你委托的是理解过程。二者完全不能等同。
## 调试是暴露问题的关键环节
编写代码外包起来出奇容易。但调试却很难在不牺牲重要能力的情况下被外包。
当你亲自调试系统时,你被迫构建关于它的心智模型。你有一个预期结果,但发生了不同的情况。于是你逆向推导:应该发生什么?需要满足哪些条件才会产生观察到的结果?在哪个环节现实偏离了你的预期?
经过足够多这样的练习,你会培养出一种极其宝贵的能力:对系统行为的直觉。
我曾与缺乏这项技能的开发者共事。当系统出错时,他们随机尝试各种修改,漫无目的地尝试直到某个方案奏效,却完全不明白原因。这不是调试。
AI使你极易陷入这种模式。给机器一个错误信息,让它提出修复方案,尝试修复,报告下一个错误,重复直到测试通过。你可以产出可运行的软件,却从未对正在开发的软件建立起有效的心智模型。
## 能力幻觉
这比AI取代程序员更让我担忧。AI可能制造一种你理解系统的幻觉——因为它能让系统按你的要求运行。你提出问题,得到答案;遇到错误,获得修复补丁;补丁无效,于是你提供新错误,得到另一个补丁;最终机器找到了可用方案。
从外部看,这似乎体现了能力。但如果你不理解解决方案为何有效,你实际上并未提升自身能力,而是依赖机器来维持这种幻觉。
当机器无法解决问题或你用尽令牌额度时,后果会变得尤为严重——因为那时你需要从未建立的心智模型。
## 对初级开发者影响尤甚
对于经验丰富的开发者,至少还有多年解决问题积累的知识库;但对于今天入行的人,同样的经验可能永远无法以相同方式积累。
如果每次挫败的调试过程都可以交给AI,人们便缺乏花四小时探究系统行为原因的动力。而这四小时绝非浪费时间——正是心智模型的来源。
你无法通过成功修改系统来学习系统,只有当你能解释系统为何失效时,才能真正学会修改它。
## 不要外包理解过程
我认为答案不是停止使用AI,恰恰相反。应积极使用它:让它编写样板代码、提醒语法细节、探索陌生库、实现繁琐部分。
但请将重要部分留给自己。
你应理解问题本质,决定系统应如何运行,做出架构决策,并能解释各组件如何协同以及为何如此设计。
让AI编写代码,而非设计方案。
## 开发者将更侧重架构角色
如果编写代码变得廉价且人人可用,编写代码本身将不再是核心优势。真正脱颖而出的将是那些理解系统的开发者。
架构设计、系统集成、分布式系统、可观测性、故障模式、边界处理、权衡取舍——这些围绕代码而非代码本身的要素。
从这个意义上说,AI可能实际上推动开发者走向更偏架构师的角色。
最佳的开发者不会是拒绝让机器编写代码的人,而是那些利用机器更好地理解系统,同时牢牢掌控决策权的人。
---
我制作了这个讨论的视频版本,如果您更倾向于观看:《超越代码复现:人工智能时代软件工程师的角色》(https://youtu.be/W3MmWqd1Ecs)。
感谢阅读。
相似文章
问题不在于AI,而在于你把思考外包了。
文章认为,人工智能真正的问题不在于技术本身,而在于人们倾向于依赖它,而不运用自己的批判性思维能力。
最大的AI风险可能不是超级智能,而是优化的误解
文章认为,主要的AI风险可能不是超级智能,而是那些优化了有缺陷、不完整的现实表征的系统,从而导致制度漂移、自动误分类和隐蔽的治理失败。
认知依赖
一篇简短的评论文章,探讨依赖AI进行软件开发是否会导致工程师技能退化,并可能造成AI进展停滞,直至递归自我改进(RSI)成为可能。
不要把学习外包出去
一篇文章指出,过度依赖AI编程助手而不主动学习会逐渐削弱技能,引用了Anthropic、MIT和CHI 2026的研究。
关于AI编程及其不满
卡尔·纽波特反思了人们对Claude Code等AI编程工具的最初热忱,以及开发者因隐藏漏洞、质量问题和不持续的工作流而日益幻灭,认为目前将所有代码生产外包给AI并不可行。