大神 Andrej Karpathy 亲自公布 vibe coding 心得,谷歌实验室产品总监第一个下场评论
8月25号,大神 Andrej Karpathy 发布了一条推文,公布了他自己 vibe coding 的一些心得。
可能有的小伙伴还不了解 Andrej Karpathy,他是前特斯拉 AI总监,前 OpenAI 创始研究科学家,Vibe Coding(氛围编程)的概念也是他首次提出来的。
推文实在是太长,一屏截不下,截了一个简略版
原文链接地址:
https://x.com/karpathy/status/1959703967694545296
这篇推文也吸引了谷歌产品实验室总监,闪现评论区榜一
这是 Kath Korevec 主页的介绍
随着 AI 编程工具越来越多,开发者常常纠结,是用 Cursor 还是 Claude Code?哪个才是编程效率神器?
Karpathy 在推文中分享了一套四层 LLM 编程工作流,他并没有专注于某个完美的编程工具,而是将几种工作流组合起来,取长补短。
第一层:主力工具,Cursor 的代码补全
Karpathy 平常大概 75% 的时间都在使用 Cursor 的代码补全功能,他觉得自己日常开发直接在代码的正确位置写下具体的代码块或注释,然后 Cursor TAB 直接补全来的更快,更高效。
相比之下,用文字去描述想要的功能,需要啰里吧嗦说一大堆,说完以后 Cursor 生成的还慢,你需要等它慢慢生成,所以还不如直接在代码里面演示来的快。
但与此同时 cursor 代码补全不好的一方面就是,这个补全模型也很烦人。
比如,当你正在集中精力思考一个复杂的逻辑问题时,AI 突然弹出一个巨大的代码块建议,这就像你正在解一道数学难题,旁边有个人不停地给你递小纸条。这会严重打断你的思考节奏。
有时候 AI 并不总是能完全理解你的意图,它可能会给出一个看似正确但实际上有细微逻辑错误,或者不符合你项目代码风格的建议。你需要花时间去甄别、修改甚至删除它,这反而降低了效率。
所以他会经常开关这个功能。
和平觉得,如果你是一个程序员有一定的代码功力,那可以尝试一下 Karpathy 分享的这种方式,优点就是快、精准,不需要傻等 cursor 缓慢的生成,缺点就是,有时候会跑偏,需要随时关闭。
如果你不是程序员,一点代码都不懂的话,这种方式用起来可能就没有那么顺畅了。
第二层:代码块修改
选中一块具体的代码,然后让 AI 做修改。它比自动补全更强大,但又比让 AI 从零开始写一个大功能更精确。
具体工作流程:
在你的代码编辑器(Cursor, VS Code)里,用鼠标选中一段已经存在的代码,可以是一个函数,一个循环,甚至只是一行代码。
然后通过快捷键调出聊天窗口,给 AI 发送一个针对这段代码的具体修改指令,AI 会理解你选中的代码和你给出的指令,然后直接提供一个修改后的版本让你预览或替换。
举例 1,代码重构:
假设你写了一段 Python 代码,用一个 for 循环来创建一个新的列表,但是我嫌这段代码不够简洁
于是我选中这段代码,调出 AI 聊天窗口,告诉 AI:「把这段代码改成列表推导式」
AI 会立刻给你一个修改后的版本:
代码一下子优雅、简洁了很多,这种方式修改更精准,也不需要你自己去想怎么写,只需要下个命令就行。
举例 2,添加功能:
假设你有一个函数,但忘了加错误处理:
跟上面一样,你给 AI 下一个指令:「给这个函数加上 try/except,处理列表为空的情况」
AI 会返回修改后的代码:
第二层这个「代码块修改」对比第一层「代码补全」区别就是,「代码补全」是 AI 预测你下一步要写什么。而「代码块修改」是你主动命令 AI去改变已经写好的东西。
同样,也需要你看懂代码是什么意思才能做到精准修改。
第三层:辅助窗口的代码生成器(如 Claude Code / Codex)
1)当需要实现一些功能代码块比较大、又比较容易用 prompt 描述清楚时,Karpathy 说他会在 Cursor 旁边开一个这样的工具,像 Claude Code CLI ,它们超级有用,但总体体验好坏参半,有的时候表现也一般。(所以这里可以看出来,不是说 Claude Code 到了大神手里,就一直都是屠龙刀,有的时候大神也用的很沮丧...)
2)Karpathy 说他不会用「YOLO 模式」不经思考就完全接受建议,因为它们可能会跑偏,做一些你根本不想要或不需要的蠢事,所以他会经常按 ESC 键打断它。
3)Karpathy 甚至坦言他还没学会怎么同时高效地使用多个实例,因为只用一个就感觉够费劲了。
多个实例,意思就是开多个 AI 对话窗口,让它们并行工作。为什么 Karpathy 用一个就感觉够费劲了呢?
因为与 AI 高效协作,关键在于管理上下文,你需要不断地跟 AI 沟通:
- 提供背景信息: 把相关的代码文件、错误信息、项目需求粘贴给 AI。
- 纠正它的错误: 当 AI 的回答跑偏时,你要引导它回到正轨。
- 更新最新进展: 当你根据 AI 的建议修改了代码后,你需要把新的代码再告诉 AI,否则它会基于旧的信息继续提供建议。
这个过程本身就要耗费相当大的精力,就像在指导一个虽然聪明,但是完全不了解你们公司项目背景信息的实习生,这个时候如果你还开多个窗口,用多个实例,那就是带多个互相不沟通的实习生,双倍/多倍的上下文管理难度。
4)Karpathy 还说他还没找到好的办法来维护 CLAUDE.md 这种自动生成的文档。
5)Karpathy 经常会在 AI 写完代码之后,进行一轮代码优化,因为 AI 生成的代码总是不够优雅,比如:
- 写法过于保守,滥用
try/catch - 过度抽象,把简单问题复杂化。
- 代码臃肿,比如明明一个列表推导式或单行
if-else就行,非要写个嵌套的if-else结构。 - 代码重复,而不是创建一个好用的辅助函数。
6)不过当 Karpathy 涉足一些自己不太熟悉的领域(比如最近写 Rust 或 SQL),AI 的强大能力立马就凸显出来了。
7)另外一个场景下 AI 也超级有用,就是编写各种不那么重要、一次性的自定义可视化或调试代码。
要是没有 AI ,开发人员压根就不会去写,因为太浪费时间了。
比如说,AI 可以一口气生成 1000 行高度定制化的一次性可视化代码,只为了帮你定位一个 bug,找到后这些代码就没用了,可以全删了。
这就是「代码后稀缺时代」你现在可以轻松创建然后删除成千上万行超级定制化、超短生命周期的代码,没关系,代码不再是过去那种宝贵又耗时耗力的东西了。
第四层:最后一道防线 ,GPT-5 Pro
这是 Karpathy 用来处理最棘手问题的工具。他已经遇到好几次这种情况:他自己、Cursor 和 Claude 都被一个 bug 卡了 10 分钟,但当他把整个问题粘贴给 GPT-5 Pro 后,GPT 琢磨了 10 分钟,结果真的找到了一个非常隐蔽的 bug。
Karpathy 说 GPT-5 Pro 非常强大,能挖出各种生僻的文档和论文。他经常会用 GPT-5 Pro 来处理一些更重量级的任务,比如就如何优化代码抽象提建议(结果好坏参半,有时想法不错,但并非全都好用),或者让它就某个主题做一份完整的文献综述,它给出的资源和参考都相当不错。
Karpathy 上面提到了两个点,一个是就优化代码抽象提建议。
代码抽象它不是指写一段具体的功能代码(比如登录、保存文件),而是指如何设计代码的结构。
好的抽象意味着代码清晰、易于理解、易于维护和扩展。
比如,应该把哪些功能放在一个类里?函数应该如何拆分?模块之间应该如何交互?
这更像是一种建筑设计或艺术,需要经验、远见和代码品味。
第二个点就是,让它就某个主题做一份完整的文献综述。
文献综述意思是,在开始一个新项目或研究一个新领域之前,去搜集、阅读、并总结所有关于这个主题的现有知识。
你需要知道:这个领域最重要的论文是哪些?主流的方法有哪些?最新的进展是什么?大家都在讨论什么?这是一个非常耗时耗力的信息搜集和整理工作。
对于 GPT-5 Pro 这样的顶级模型来说,他的表现相当不错。因为它的训练数据几乎涵盖了互联网上公开的论文、技术博客、文档和书籍。它就相当于一个博览群书的超级大脑,核心能力就是阅读海量文本,并从中提炼、总结出关键信息。这正是做文献综述所需要的。
总结
Karpathy 说在各种 AI 编程工具的加持下,现在 vibe coding 充满了无限的可能性。同时 Karpathy 他自己也很难避免会有一种担心自己没跟上技术发展最前沿的焦虑感(笑死,他跟不上这地球上就没人能跟上了🤣)。所以写下这些心得随想,他也很好奇大家都有什么新发现和好用的方法。

浙公网安备 33010602011771号