8.3 "不必弄懂一切"的新契约
抽象层的再提升
在传统的学习中,"弄懂一切"被认为是理想状态。你学编程,最好从二进制一直学到高级框架,这样才能"真正理解计算机在做什么"。
但这种想法是基于一个已经过时的前提:你需要在所有层级上都拥有控制权,因为你要手动操作它们。
在 Vibe Coding 时代,这个前提已经不成立了。你不需要理解 TCP/IP 协议也能做 Web 开发——AI 帮你处理了网络通信的细节。你不需要理解 BPE 算法也能用 AI——切分器在模型内部工作,你只需要知道 Token 存在。
这就是抽象层的提升。软件开发的抽象层一直在升高,而 Vibe Coding 把抽象层提升到了一个新的高度:
抽象层历史上的几次跃迁:
- 机器码时代(1940s~1960s):你在二进制层面操作计算机。每个指令都是 0 和 1。你需要理解 CPU 的每一条指令。没有任何抽象。
- 汇编语言(1950s~1970s):人类可读的指令替代了二进制代码。你不再需要记住操作码的数字表示,但你仍然需要理解 CPU 的寄存器、内存地址、栈操作。抽象层提升了一点点。
- 高级语言(1970s~2000s):C、Java、Python 等语言出现。你不再需要管理寄存器——编译器替你做了。你不再需要手动管理内存(在 Java/Python 中)——垃圾回收器替你做了。抽象层大幅提升。
- 框架和库(2000s~2020s):React、Django、Spring 等框架出现。你不再需要从头实现每一个功能——框架替你处理了路由、状态管理、数据库连接。抽象层再次提升。
- 低代码/无代码(2010s~2020s):拖拽配置替代了手写代码。你在平台预设的组件内填空。抽象层提升到了"不需要写代码"的程度——但代价是灵活度受限。
- Vibe Coding(2025~):自然语言对话替代了手写代码。你不再需要写代码——你描述意图,AI 生成代码。抽象层提升到了"意图"的层面。
每一次抽象层的提升,都让开发者站得更高、看得更远——能做的事情更多,但需要亲手操作的细节更少。
回头看,那些曾经"必备"的技能——写汇编、管理内存、配置 webpack——对于今天的 Web 开发者来说,已经不是必须掌握的了。Vibe Coding 会继续这个趋势:越来越多的"必备技能"会变成"不需要你自己做"。
你站得越高,需要关注的细节越少,但你能做的事情越多
这不是说底层知识没有价值。理解底层当然能帮你做出更好的决策——但"理解"不等于"手动执行"。
Vibe Coding 的核心理念是:让 AI 处理你能交给 AI 的,让你自己专注于只有你能做的。 这个分工的核心基石是判断力——不是记忆力,不是执行力。
抽象层提升的代价:
每次抽象层提升,都有它的代价。高级语言的代价是性能损失(编译器生成的代码不如手写汇编高效)。框架的代价是"你不知道底层在做什么"——当框架出错时,你更难排查原因。Vibe Coding 的代价是:你需要学会判断 AI 的输出质量。
这个代价是真实的。当你不知道底层在做什么时,你可能会:
- 写出低效的代码——AI 生成了一个 O(n²) 的算法,你没发现。
- 引入安全隐患——AI 生成的 SQL 查询没有参数化,你没注意到。
- 构建不可维护的系统——AI 生成了一套混乱的架构,你没有及时纠正。
但这不是"放弃学习底层"的理由——而是"有策略地选择学习内容"的理由。你不需要什么都懂,但你需要在"AI 最容易犯错"的领域有足够的判断力。
何时信任 AI,何时深入底层
"不必弄懂一切"不是"什么都不用懂"。你需要知道什么时候该信任 AI,什么时候该自己介入。
一个实用的判断方法:如果 AI 在这个问题上连续犯错两次,你就应该沉下去看看。
这个方法背后的逻辑:
- 第一次犯错:可能是沟通问题——你没说清楚,或者 AI 理解错了。
- 第二次犯错:AI 正确理解了你的意思,但在实现上出了问题。这是一个更强的信号——说明这个问题可能触及了 AI 的能力边界。
- 如果还有第三次:说明你不能把这个问题交给 AI 单独处理。你需要介入——要么自己写这段逻辑,要么给 AI 提供非常具体的指导。
连续犯错的处理流程:
假设 AI 连续两次在实现"用户权限校验"逻辑时出错:
- 第一次出错:AI 生成的代码没有校验管理员权限。你告诉它"需要加管理员权限校验"。AI 道歉并修改。
- 第二次出错:AI 修改后,校验逻辑写错了——它把"用户 ID 在管理员列表中"写成了"用户名称等于 admin"。你指出错误,AI 再次修改。
- 这时候你停下判断:你发现两次错误的性质不同——第一次是忘记需求,第二次是逻辑歧义。可能原因是权限校验逻辑本身比较绕,AI 对"谁可以做什么"的理解不够精确。
- 深入底层:你把权限规则用文字明确列出——"只有 role 为 admin 的用户可以访问 /admin 路径。role 字段在 users 表中。如果用户未登录,返回 401,不是 403。"——然后要求 AI 严格按照这个规则重写。
- 验证: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 连续出错时(前面说的"两次原则")。
- 当这段代码涉及安全敏感操作时(用户数据、支付、权限控制)。
- 当这段代码是产品的核心竞争力时(如果你的产品核心是一个推荐算法,你应该理解这个算法在做什么)。
- 当你想从这段代码中学到新东西时(你主动选择的学习时刻)。
其他时候——放心让 AI 去处理,你不需要搞懂一切。
什么时候你不需要深入:
- AI 用了一个你没见过的库——只要它能工作,不需要翻它的文档。
- AI 生成了一个配置文件的写法——复制粘贴就行,不需要研究每个配置选项的意思。
- AI 用了一种你没见过的设计模式——如果代码可读性好、能工作,不需要现在就搞懂它。
- 抽象层的提升是软件开发的历史趋势——Vibe Coding 把抽象层提升到了"意图"层面。你站得越高,能做的事情越多,需要手动操作的细节越少。
- "不必弄懂一切"不是"什么都不用懂"——你需要的是判断力,不是记忆力。判断力不可被 AI 替代。
- 判断 AI 何时需要你介入的实用原则:连续犯错两次就沉下去看。按照"出错→判断→深入→验证"的流程处理。
- 学习目标从"记住语法和 API"转变为"培养四个判断力":功能正确性、安全性、可维护性、效率。
- 新的学习契约:不需要记住所有 API(但需要知道"什么概念存在")、需要理解"为什么"多于"怎么做"、建立 T 型知识体系(广度优先,深度按需)。
- 不需要为自己"不知道"感到羞愧——你的目标是做出产品,不是搞懂每行 AI 生成的代码。
- 四个需要深入的标准:AI 连续出错、安全敏感、核心竞争力、主动学习。其他时候,放心交给 AI。
选一个你经常使用的技术概念(比如 "HTTP 请求"、"数据库索引"、"CSS Flexbox"、"Promise"),然后做两个步骤:
第一步:尝试用自己的话解释它。能解释到什么程度算什么程度。不要查资料,就凭你现在已有的理解。
第二步:让 AI "用最简单的话解释这个概念,并告诉我,作为一个 Vibe Coder,我需要理解它的什么程度才能做出好的判断"。
比较两者的差距。这个差距不是你的问题——它是你下一个"Vibe Learning"的起点。
然后做一个更深入的练习:
回顾你最近使用 AI 开发的项目。找到一段你完全"跳过"了(没有阅读、没有追问)的 AI 生成代码。现在回过头来问 AI:"帮我解释一下这段代码,特别是那些可能影响我后续修改的部分。"——看看你有没有因为这个"跳过"而错过了什么重要的东西。