AI 编程时代,最有价值的技能是"知道什么时候不让 AI 做"
我平时用的 AI 编程工具不少。早期的 Trae 国内版和海外版、Cursor、OpenCode、Codex、Claude Code 都试过,目前用得最多的是 Claude Code。
做了十多年技术管理,传统的代码编程已经生疏了。但 vibe coding 让我能更好地对公司项目做评审、对开源项目做贡献、甚至用没接触过的语言来开发适合场景的项目。
所以当我看到斯坦福 CS336——一门从零构建大语言模型的课程——在 GitHub 上放了一份 CLAUDE.md,登上 Hacker News 热帖 #1(423 分、140 条评论),我立刻被吸引了。
因为这份文件回答的问题,恰好是我每天在使用 AI 编程工具时反复遇到的:
AI agents should function as teaching aids that help students learn through explanation, guidance, and feedback — not by completing assignments for them.
它说的是学生作业场景,但映射到开发者日常就是:AI 替你写代码很快,但出了 bug 谁来修?
AI 编程的核心矛盾
我觉得 AI 时代编程的核心矛盾不是"用不用 AI",而是"怎么让 AI 放大你的能力,同时不削弱你自己",并且能共同成长。
斯坦福 CLAUDE.md 的本质,其实是一份 AI Agent 产品设计约束。它定义了"好的 AI 编程助手"应该怎么做。
但落到每个开发者手里,每个人需要根据自己的场景来设定这条线。
斯坦福这份指南到底在管什么
CLAUDE.md 不是一份泛泛的"建议使用 AI"的政策声明,而是一份精确到操作级别的行为规范。课程讲师是 Percy Liang(斯坦福 CRFM 主任)和 Tatsunori Hashimoto——他们太清楚 AI 能做什么了,正因为他们教的就是怎么造 AI。
🧠 AI 应该做的:
• 当学生困惑时,引导他们自己建立理解
• 审查学生写的代码,指出改进方向、边界情况、不变量
• 通过引导性问题帮助调试,而不是直接给修复方案
• 解释 Python、PyTorch、CUDA、Triton、分布式训练工具的错误信息
• 建议合理性检查、玩具示例、断言、profiler 调查
⚠️ AI 不应该做的:
• 写任何 Python 或伪代码
• 完成作业代码中的 TODO 部分
• 给学生问题的答案或解决思路
• 编辑学生仓库中的代码、运行 bash 命令
• 把作业要求直接转成可运行的代码
• 实现 tokenizers、transformer blocks、optimizers 等核心组件
"不应写任何 Python"——对一个编程课来说,这意味着 AI 被限制在纯解释和引导层面。但它不是"禁止使用 AI",而是"使用 AI 的方式被重新定义了"。
6 步把"替你做"换成"教你做"
CLAUDE.md 给了一个结构化的交互流程,我觉得这个流程的价值远超课堂:
1. 问澄清问题:你试过什么?你期望什么?实际发生了什么?
2. 引用概念:指向课程讲义、文档,而不是给答案
3. 建议下一步:指出方向,不要动手实现
4. 对话式审查:通过对话指出改进区域,不打补丁
5. 解释"为什么":理解原因比拿到修复更重要
6. 优先测试而非修复:建议断言、玩具输入、profiler 检查,而不是重写代码
这 6 步的本质是把"替你做"替换为"教你做"。HN 评论区也有资深开发者指出:这套流程同样适用于高级工程师带新人——每一步都在用"教"替代"做"。
AI 帮我写的代码,我会修吗
我的看法是,得分开看。
如果是纯粹靠自己、不用 AI,那我确实可能不会——尤其是十多年技术管理下来,传统编程已经生疏了。但结合 AI,我可以修复大部分 BUG。
关键区别在于:我是让 AI 直接给我修好,还是让 AI 解释问题在哪、我怎么理解、然后我来决定怎么修。
这也是 CLAUDE.md 的核心逻辑:AI 不替你修 bug,而是告诉你怎么查。你省下的不只是时间,更是下次遇到类似问题时的判断力。
我们公司内部就有类似场景。同样是用 AI 编程,有两种工作方式:一种很快,完全由 AI 生成代码,效率高;另一种是用 AI 生成一部分,但生成后会通过 AI 来分析和解读代码,帮助自己理解,然后再进行下一步——这种时间长得多。
我觉得可以分场景来看:
• 对于自己熟悉的编程领域,可以完全由 AI 生成,通过多个 agent 做设计、review、测试,最后再人工介入。你懂这个领域,AI 产出什么你能判断。
• 对于不熟悉的编程领域,通过 AI 帮助理解,先搞懂再动手。高校的做法值得借鉴——先教方法,再出结果。
最重要的原则是:在 AI 时代,怎么通过 AI 来放大成果,同时提升自己。
我自己的 CLAUDE.md 情况
我用的是 Claude Code,项目里会生成 claude.md。说实话,我目前的 claude.md 更多是写项目情况和代码约定,完全没有限制 AI 的生成行为——跟斯坦福这份比,差距挺大的。
Cursor 的规则配置(.cursorrules):

Claude Code 的规则配置(claude.md):

这两份规则文件更多是如对输出格式的要求、对项目结构的约定、对某些操作的限制。
斯坦福给的claude.md给我挺大启发,后续会持续摸索。当前的想法是:在项目根目录放一个 CLAUDE.md,定义 AI 助手在你项目里的行为边界。 不一定要像斯坦福那样写几百行,但至少要回答一个问题:在你的项目里,AI 被允许做到什么程度?
Cursor vs Claude Code:我实际在怎么用
这两个是我目前最常用的工具。有意思的是,它们涉及 bash 操作等都会弹出提示,反而给我一种"束手束脚"的感觉——开发一个模块要反复点确认。我的做法是:对确定性的操作会开放权限,减少不必要的拦截。
至于哪个更"听话",目前我没有明确的判断。我更多是把它们当互补工具:
• Cursor:我看中它能调用海外模型,比如 Opus 4.8 等。在架构设计、重要项目、复杂 BUG fix 上会用 Cursor。
• Claude Code:日常开发主力,配合 claude.md 管理项目上下文。
它们各有优势,互补使用比单押一个工具更实用。
当 AI 开始按 token 收钱了
CLAUDE.md 出现的时间点不是巧合:
• GitHub Copilot 转向 token 计费
• Anthropic 递交了 IPO 申请
• Alphabet 宣布 $800 亿 AI 基建投入
行业在押注 AI Agent 无处不在,但计费模式也在从"免费试"变成"按量付费"。
我对 GitHub Copilot 这个做法的理解是:从企业成本导向的角度可以理解,但作为消费者我不认同,也只能无奈接受。国内也有类似做法,比如阿里的 Coding Plan,虽然还能用 Pro,但也基本抢不到。
所以我现在的做法是:OpenClaw 使用 Codex,Claude Code 使用 DeepSeek V4,也挺好的。
当"让 AI 全做"的经济学在变的时候,一个知道如何把 AI 当老师而不是拐杖的开发者,跑起来更便宜,成长也更快。
几点注意
CLAUDE.md 是一份教学场景下的规范。直接搬到企业开发中需要调整——生产环境里"不要写代码"可能不现实。但它的核心判断——AI 应该帮你理解,而不是替你做——是一个值得每个使用 AI 编程工具的人思考的问题。
HN 评论区也有不同声音。有人认为这份指南过于冗长,精简到 30 行核心规则效果更好。这个观点值得参考:规则的价值不在于覆盖所有场景,在于使用者真正记住并执行。
最后
斯坦福 CS336 的 CLAUDE.md 登上 HN 热帖 #1,不是因为它是一份"完美的 AI 使用规范",而是它触碰到了每个 AI 编程工具使用者迟早要面对的问题:你怎么用 AI,会影响你成为什么样的开发者,会有什么样的成长
AI放大能力,提升效率,同时帮助自己成长,这个思路很重要,需不断践行。
参考来源
• CLAUDE.md:
https://github.com/stanford-cs336/assignment1-basics/blob/main/CLAUDE.md
• HN 讨论:
https://news.ycombinator.com/item?id=48359232
夜雨聆风