默认陷阱:我们正在用未来能力换当下速度
Addy Osmani 指出,大多数人已经陷入一个默认循环:粘贴 spec 或报错 → 模型给修复 → 症状消失 → 提交。在这个循环中,问题与解决方案之间的「 messy struggle」彻底消失了。
这不是反 AI——Osmani 自己也承认过去一年用 AI 交付的代码比之前几年都多。问题在于:默认使用方式只为一个目标优化——关闭任务。 这与「保持足够敏锐以驾驭长期职业生涯」是完全不同的目标。
研究证据:三条独立路径,同一个结论
Anthropic 实验:Python 库学习
工程师分组学习新 Python 库,一半用 AI 辅助,一半不用。两组完成任务速度相同,但后续理解测试:
- AI 组整体:50%
- 手动组:67%
- 调试题差距更大
关键切分在 AI 组内部:
- 用 AI 问概念问题的工程师:65%+
- 直接复制粘贴生成代码的工程师:<40%
工具不决定结果,使用姿态决定结果。
MIT 研究:Essay 写作与 EEG
对比 LLM、搜索引擎、纯大脑三组。EEG 显示每增加一层外部支持,大脑连接性就下降一层。LLM 组耦合最弱。
写完 essay 后,83% 的 LLM 用户背不出自己刚产出的任何一句话。研究者称之为 cognitive debt(认知债务):今天省下的脑力,明天用批判性思维偿还。
锚定效应研究
任务开始时就有 LLM 访问权限的人,LLM 会框定整个问题。即使后续工作由人类完成,初始锚定仍导致显著更差的决策。
操作顺序比 AI 使用总量更重要。
为什么工具不会帮你解决这个问题
如果你启动一个 coding agent 并接受所有默认设置,一切都被调优为一个指标:完成任务。
模型写代码,你接受,循环重复。工具从不会暂停问:「你觉得问题是什么?」或「试着自己写前五行」。
产品团队因合并变更和更短周期时间而获得奖励,不是因让你成为更敏锐的工程师。我们都想要更少按键,所以工具把摩擦打磨掉了。但摩擦正是学习发生的地方。
Anthropic 为 Claude 推出的 Learning Mode(苏格拉底式提问,要求你先写代码再继续),OpenAI 和 Google 也有类似功能。但几乎没人用于真正的生产工作——我们默默把它们归档为「给学生用的」。这是一个错误:帮助大二学生学习 React 的功能,同样适用于资深工程师学习 Rust。你只需要愿意再次感受像初学者一样。
什么时候可以真正委托给 AI?
Osmani 的答案是:样板代码、胶水代码、一次性 CI 脚本——这些你永远不会再看的东西。记忆某些语法的机会成本太高。
但对于真正的软件工程,纯委托会在五个特定场景崩溃:
1. 当东西坏掉时
AI 生成的代码和人类代码一样会崩溃。「agent 写的」对调试毫无帮助。团队中必须有人理解架构。
2. 当它自信地犯错时
LLM 仍会幻觉。对抗看似合理实则错误的答案的唯一防御,是足够的专业知识来发现它。Skills、CLI 等创可贴只能帮你到这里。
3. 当基础变化时
代码是暂时的,系统是永久的。框架更新或安全审查标记结构性问题时,你无法通过重新 prompt 解决。你需要足够理解系统以迁移它的工程师。
4. 当你偏离中位数时
AI 在 GitHub 上被解决过一百万次的问题上表现出色。偏离中位数越远,表现越差。那些难的、未记录的问题——那些证明资深工程师薪水合理的问题——仍然需要深度理解。
5. 当市场调整时
只能借助 AI 交付、不能独立交付的工程师,正在进入一个已经在重新定价专业价值的劳动力市场。如果你用 AI 跳过学习,你是在用未来相关性换取稍微轻松的周二。
六条具体策略:从认知债务到认知资产
好消息是,制造认知债务的同样工具也可以制造更敏锐的工程师。区别在于你向它们要求什么。
1. 提问前先形成假设
请求修复前,写下两三句话你认为问题是什么。用模型的答案来测试你的理论,不是替代它。
2. 先问解释,再要代码
在不熟悉的领域,第一个 prompt 应该是:「解释这是如何工作的,有哪些替代方案,权衡是什么。」掌握概念后再要代码。
3. 超出舒适区时开启 Learning Mode
是的,感觉更慢。这就是重点。
4. 把 AI 输出当作 junior 工程师的 PR
阅读它。批判它。Push back。你会只因为测试通过就 merge 吗?如果不会,这里也不要。
5. 偶尔手工重新推导
拿一段模型为你写的代码,尝试从零重建。这是校准检查,告诉你悄悄失去了多少。
6. 让模型教你它刚做了什么
模型写了一个巧妙的函数后,问它用了什么概念,你需要读什么来理解设计选择。一个额外 prompt 改变你从 session 中带走的东西。
这些都不戏剧化。它们是你已经在使用的同样工具中的微小姿态调整。
一个自检问题
Osmani 现在开始用一个问题结束每个编码 session:
「我今天学到了什么,还是只是关闭了 issue?」
有时诚实答案是「只是关闭了 issue」——这没问题。但如果连续几个月都是这个答案,认知债务正在背景中累积。
Ship 和 learn 是两个独立的指标。你的经理和客户只会问第一个。第二个取决于你。
「我宁愿 ship 80% 我能做的,但 learn 100% 我需要学的,而不是反过来。多年来,这两种策略会产生非常不同的工程师。」
工具已经准备好了。下一个你正要委托的无聊任务,就是开始的好地方。