「感觉像作弊」:AI 编程时代,什么能力才是护城河?
Andrej Karpathy 最近在社交媒体上说了一句话,引发了大量讨论:
“It feels like I’m cheating. Which is a very weird feeling to have.”
— Andrej Karpathy
他说的是用 LLM 写代码的体验。那些曾经需要高智商、深厚知识积累才能写出的代码,现在是"免费且即时的"(free and instant)。这种"作弊感"来自于一个事实:写代码这件事本身,正在从稀缺技能变成基础设施。
这篇文章整理了 Karpathy 以及围绕他这条推文的几个核心观点,试图回答一个问题:当代码不再稀缺,什么才是工程师的护城河?
1) LLM 像一个初级工程师:执行力强,判断力弱
Karpathy 给了一个很精确的类比:
“The nearest neighbor really is some kind of a junior engineer. Its ideas about what experiments to run have been surprisingly bad, but its execution on ideas I’ve given it have been surprisingly good.”
这和很多人的直觉相反。大家以为 AI 最厉害的是"能想出方案",但实际上它最可靠的能力是"你告诉它做什么,它做得又快又好"。
这意味着:
- 方向判断仍然是人的工作。选什么技术栈、做什么实验、先解决哪个问题——这些 LLM 给不了可靠答案。
- 执行层的效率被极大压缩。从"想清楚做什么"到"拿到可运行的代码",中间的时间成本接近于零。
- 瓶颈从"写得出来"转移到"判断得了"。你需要能快速识别 AI 输出的代码是对是错、能不能用、有没有隐患。
2) 10X 工程师变成 100X 工程师
Yuchen Jin 提了一个有意思的观点:
“10X engineer becomes 100X engineer, simply because they can verify the AI results and they are the best at catching up with all the progress of models/tools.”
这不是修辞。逻辑链条很清楚:
- AI 让所有人的"代码产出速度"都提升了。
- 但产出质量取决于验证能力——你能不能快速判断输出是否正确、是否安全、是否可维护。
- 原来的 10X 工程师恰好在验证这件事上有最大优势:他们有足够的知识储备来判断代码的边界情况、性能陷阱、安全漏洞。
- 加上他们学习新工具的速度更快,差距不是缩小了,而是拉大了。
这对初级工程师意味着什么?不是"不需要学代码了",而是学习重心需要调整:
- 读代码的能力比写代码更重要。
- 理解系统行为比理解语法更重要。
- 构建验证闭环(测试、类型检查、代码审查)比单纯提高编码速度更有价值。
3) 专精 vs 通才?这不再是关键轴
Daniel Miessler 的观点切到了一个更深的层面:
“Specialist or generalist isn’t really the axis anymore I don’t think. It’s how much you want to make.”
当执行成本趋近于零时,“你会什么"变得不如"你想做什么"重要。一个有强烈造物欲望的人,加上 AI 工具,能做出原来需要一整个团队才能交付的东西。
这和我们在 设计师用 Claude Code 上线产品 中看到的趋势一致:设计师不需要学会编程的全部语法,只需要能把想法说清楚、能判断结果好不好,就能独立交付一个可用的产品。
护城河不是"你是前端还是后端”,也不是"你精通 5 种语言",而是:
- 你想造什么:目标越具体、越独特,AI 越能帮你。
- 你对"好"的标准:你能看出什么是好的 UX、好的架构、好的安全边界,这些 AI 还做不到。
- 你推进项目的意愿:从想法到上线之间有大量"不性感"的工作(部署、调试、处理边界情况),愿意持续推进的人才能交付。
4) 「作弊感」背后的真正转变
回到 Karpathy 的"作弊感"。这种感受值得认真对待,因为它指向一个更大的变化:
过去:代码 = 技能证明。你能写出高效的算法、优雅的抽象,这本身就是价值。
现在:代码 = 中间产物。它只是从"想法"到"可运行的产品"之间的一个步骤,而这个步骤的成本正在被 AI 极大压缩。
一个写了 8 年代码的工程师(@0xabi96)说这是他"最近读过的最有共鸣的帖子",因为他的工作在过去几年已经发生了巨大变化。他甚至说"几乎为那些还没用上这些工具的人感到惋惜"。
这不是一个关于"AI 会不会取代程序员"的讨论。这是一个关于价值重心转移的讨论:
| 过去的价值锚点 | 现在的价值锚点 |
|---|---|
| 写代码的速度 | 验证代码的能力 |
| 记住 API 和语法 | 理解系统行为和边界 |
| 技术栈专精 | 把想法变成产品的完整闭环 |
| 编码是核心技能 | 判断、指导、验证是核心技能 |
5) 对使用 Claude Code 的启示
这些讨论落到实操层面,对 Claude Code 的使用方式有直接影响:
先验证,再扩展。不要让 Claude 一次性写完所有代码。分步骤来,每步都验证。这比"一口气写完再找 bug"高效得多。详见 Claude Code 最佳实践。
把约束写清楚。Claude 的执行力很强,但方向判断弱。你的提示词里应该包含:目标、约束、验收标准。缺任何一个,返工概率都会显著上升。
建立可复用的上下文。CLAUDE.md 文件、plan.md、architecture.md——这些不是形式主义,而是让你的"判断力"可以持久化和复用的方式。
把"验证能力"当作核心技能来练。读代码、写测试、做 code review、理解报错信息——这些能力在 AI 时代的杠杆比以前更大,不是更小。
参考链接
- Claude Code 最佳实践:/blog/claude-code-best-practices-playbook/
- 设计师用 Claude Code 上线产品:/blog/claude-code-for-designers-from-idea-to-ship/
- Claude Code 安装与配置:/docs/claude-code/getting-started/installation/