第八章 · 从Vibe-Coding到Vibe-Learning

8.3 "不必弄懂一切"的新契约

本节最后更新:2026-05-12
验证环境:无(纯理论章节)

抽象层的再提升

在传统的学习中,"弄懂一切"被认为是理想状态。你学编程,最好从二进制一直学到高级框架,这样才能"真正理解计算机在做什么"。

但这种想法是基于一个已经过时的前提:你需要在所有层级上都拥有控制权,因为你要手动操作它们。

在 Vibe Coding 时代,这个前提已经不成立了。你不需要理解 TCP/IP 协议也能做 Web 开发——AI 帮你处理了网络通信的细节。你不需要理解 BPE 算法也能用 AI——切分器在模型内部工作,你只需要知道 Token 存在。

这就是抽象层的提升。软件开发的抽象层一直在升高,而 Vibe Coding 把抽象层提升到了一个新的高度:

抽象层历史上的几次跃迁:

每一次抽象层的提升,都让开发者站得更高、看得更远——能做的事情更多,但需要亲手操作的细节更少。

回头看,那些曾经"必备"的技能——写汇编、管理内存、配置 webpack——对于今天的 Web 开发者来说,已经不是必须掌握的了。Vibe Coding 会继续这个趋势:越来越多的"必备技能"会变成"不需要你自己做"。

你站得越高,需要关注的细节越少,但你能做的事情越多

这不是说底层知识没有价值。理解底层当然能帮你做出更好的决策——但"理解"不等于"手动执行"。

Vibe Coding 的核心理念是:让 AI 处理你能交给 AI 的,让你自己专注于只有你能做的。 这个分工的核心基石是判断力——不是记忆力,不是执行力。

抽象层提升的代价:

每次抽象层提升,都有它的代价。高级语言的代价是性能损失(编译器生成的代码不如手写汇编高效)。框架的代价是"你不知道底层在做什么"——当框架出错时,你更难排查原因。Vibe Coding 的代价是:你需要学会判断 AI 的输出质量。

这个代价是真实的。当你不知道底层在做什么时,你可能会:

但这不是"放弃学习底层"的理由——而是"有策略地选择学习内容"的理由。你不需要什么都懂,但你需要在"AI 最容易犯错"的领域有足够的判断力。

何时信任 AI,何时深入底层

"不必弄懂一切"不是"什么都不用懂"。你需要知道什么时候该信任 AI,什么时候该自己介入。

一个实用的判断方法:如果 AI 在这个问题上连续犯错两次,你就应该沉下去看看。

这个方法背后的逻辑:

连续犯错的处理流程:

假设 AI 连续两次在实现"用户权限校验"逻辑时出错:

  1. 第一次出错:AI 生成的代码没有校验管理员权限。你告诉它"需要加管理员权限校验"。AI 道歉并修改。
  1. 第二次出错:AI 修改后,校验逻辑写错了——它把"用户 ID 在管理员列表中"写成了"用户名称等于 admin"。你指出错误,AI 再次修改。
  1. 这时候你停下判断:你发现两次错误的性质不同——第一次是忘记需求,第二次是逻辑歧义。可能原因是权限校验逻辑本身比较绕,AI 对"谁可以做什么"的理解不够精确。
  1. 深入底层:你把权限规则用文字明确列出——"只有 role 为 admin 的用户可以访问 /admin 路径。role 字段在 users 表中。如果用户未登录,返回 401,不是 403。"——然后要求 AI 严格按照这个规则重写。
  1. 验证:AI 按照你明确的规则生成了正确的代码。这次对了。

在这个流程中,你没有在第一次出错时就自己写代码——你给了 AI 两次机会。但你在第二次出错的信号出现时,做出了"需要我提供更精确的规则"的判断,而不是继续让 AI 猜。

学习目标变了

传统编程的学习目标:"记住语法和 API,能够独立写出可运行的代码。"

Vibe Learning 的学习目标:"培养判断力,能够判断 AI 生成的代码是否正确、安全、合适。"

这是两个完全不同的目标。前者需要你记住大量的细节信息,后者需要你建立起"什么是好的代码"的认知模型。前者是记忆问题,后者是判断问题。

记忆可以被 AI 替代。判断不能。所以你的学习重心应该从"记忆"转移到"判断"。

具体来说,判断力包括这几个能力:

能力一:功能正确性判断。 这段代码能完成预期的功能吗?你不需要逐行理解每段代码,只需要在关键路径上知道"这样写是对的"。

能力二:安全判断。 这段代码有没有安全漏洞?有没有 SQL 注入风险?有没有暴露不该暴露的数据?这不是让你成为安全专家——而是让你在常见的安全问题上保持警觉。

能力三:可维护性判断。 这段代码是"能运行但一团糟"还是"清晰的实现"?AI 经常生成"能用但不好维护"的代码。你需要判断什么时候接受(功能优先级高),什么时候要求重构(这个功能后续还会改很多次)。

能力四:效率判断。 这段代码的性能合理吗?对于大多数 Web 应用来说,AI 生成的代码性能就够了。但当你发现 AI 在一个循环中反复查询数据库时,你需要能够识别这个模式并说"这样写不行,优化一下"。

一个新的学习契约

Vibe Learning 本质上定义了一个新的"学习契约"——你不再对自己说"我必须学会所有东西",而是说"我需要学会那些让我能做出更好判断的东西"。

这个契约包括以下几个条款:

条款一:你不需要记住所有 API 和语法。 可以查、可以问 AI。但你需要理解"什么概念存在"——你不知道解构赋值的语法细节没关系,但你需要知道"JavaScript 有一种从对象提取属性的简洁写法"这个事实存在。知道存在,需要用时你才知道可以去问 AI。

条款二:你需要理解"为什么"多于"怎么做"。 当你问 AI "为什么这里要用 async/await"时,你学到的不是具体的语法(那是 AI 帮你写的),而是"处理异步操作的概念和原则"。这些原则性的知识,是你判断 AI 输出质量的基础。

条款三:你的知识体系是"T 型"的——广度优先,深度按需。 你在很多技术方向上都有基本了解(能判断 AI 生成的东西对不对),但在少数几个方向上深入(你主动选择的领域,或者你的核心产品涉及的技术)。

不需要为"不知道"感到羞愧

很多人在使用 AI 编程时会有一种隐性的焦虑:"我不知道这段代码在做什么,我是不是不够好?"

如果你有这种感受,我想直接告诉你:不需要。

你不知道一段代码的工作原理,不是因为你不够好,而是因为这段代码不是你写的——它是 AI 在几十毫秒内从它的训练参数中生成的。你是一个人类,人类的学习速度本来就比 AI 慢,这不是你的问题。

一个类比:

你开车去一个陌生的城市。你不需要知道发动机的工作原理、变速箱的齿轮比、导航系统的算法。你只需要知道:踩油门车会走、打方向盘车会转弯、导航告诉你在下一个路口右转。

如果你每开一次车都焦虑"我不知道发动机是怎么工作的,我是不是不够好"——这听起来很荒谬。因为你知道开车的目的是到达目的地,不是搞懂发动机。

Vibe Coding 也是一样。你的目的是做出产品,不是搞懂每一行 AI 生成的代码。你把"搞懂全部"的期待放下,专注于"搞懂我需要搞懂的那部分"——这个心态的转变,是 Vibe Learning 的起点。

什么时候你需要深入:

其他时候——放心让 AI 去处理,你不需要搞懂一切。

什么时候你不需要深入:

本节要点
Vibe 练习

选一个你经常使用的技术概念(比如 "HTTP 请求"、"数据库索引"、"CSS Flexbox"、"Promise"),然后做两个步骤:

第一步:尝试用自己的话解释它。能解释到什么程度算什么程度。不要查资料,就凭你现在已有的理解。

第二步:让 AI "用最简单的话解释这个概念,并告诉我,作为一个 Vibe Coder,我需要理解它的什么程度才能做出好的判断"。

比较两者的差距。这个差距不是你的问题——它是你下一个"Vibe Learning"的起点。

然后做一个更深入的练习:

回顾你最近使用 AI 开发的项目。找到一段你完全"跳过"了(没有阅读、没有追问)的 AI 生成代码。现在回过头来问 AI:"帮我解释一下这段代码,特别是那些可能影响我后续修改的部分。"——看看你有没有因为这个"跳过"而错过了什么重要的东西。