CRITIQUE · 学习体验 · ~25 MIN
不是你笨,是套娃
你想知道 HTML 是啥,文档里冒出 CERN、SGML、URL、HTTP。你想知道 CERN 是啥,又冒出超文本、TCP/IP、物理论文共享。每个概念背后站着 5 个更陌生的概念,像俄罗斯套娃,打开一层还有一层。这不是你笨,是计算机这个领域结构上就这样——抽象分层 + 缩写文化 + 历史路径依赖,三件套叠加。看清这个结构,你就能用"够用就行"对抗它。
从骂街走到应对策略
先把现象拆给你看(HTML 套娃树长啥样,不是你眼花),再讲三个结构性原因(分层抽象、缩写文化、路径依赖),然后跟其他领域比一下(看看法律 / 数学 / 厨艺是不是也这样),最后给你 5 条应对策略。综合判断段直接告诉你下次再骂街时怎么破局。
套娃长啥样——以 HTML 为例
你说你想知道"HTML 是什么"。咱们模拟一下你的查询过程,看你到底碰上了几层套娃。
第一步,你查 Wikipedia "HTML":开头第一句话——"HTML 是一种标记语言,用于在 WWW 上创建网页,由 Tim Berners-Lee 在 CERN 发明"。
好,一句话四个陌生词:标记语言、WWW、网页(网页本身啥东西?)、CERN。你点"CERN",维基说"欧洲核子研究组织,粒子物理实验室"——啥?核子物理跟我看个网页有啥关系? 你点"标记语言",维基说"基于 SGML 的文档表示形式"——SGML 又是啥?你点 SGML,维基说"ISO 8879 标准,源自 IBM GML"——又两个新缩写。
你只想知道这玩意儿是个啥,结果浏览器开了 12 个标签页,每个标签页都引出新的标签页。这不是你笨——这是个可观察的现象,有名字,叫 concept dependency hell(概念依赖地狱)。
"我应该先把基础打牢,再来查 HTML。"——你以为先学完计算机基础(操作系统 / 网络 / 编译原理)再来碰 HTML 就不晕了,其实更不可能。基础课本身就是几十层套娃,你从 CPU 一路学到 HTML 得花 4 年(本科 CS),而且学完你也不会写 HTML——它根本不是从基础推出来的,是侧面塞进来的产物。换路径,别从底学。
认知科学里把这种现象叫认知超载(cognitive overload)——working memory 一次只能装 4-7 个新概念1。你查 HTML 一句话冒出 4 个新词,你的 working memory 已经满了,再 +1 就忘前面的。这不是修养问题,是大脑结构限制。🟢 high
三个结构性原因——为啥就这样
套娃这事儿不是"老程序员故意刁难新手",也不是"计算机概念天生难"。是三个东西叠加,缺一个都没这么严重。
第一个原因:抽象分层(Abstraction Layers)
计算机这门学科的底层设计哲学就是分层抽象。你看到的 HTML 跑在浏览器里,浏览器跑在操作系统上,操作系统跑在 CPU 上,CPU 跑在电路上,电路跑在物理原子上。每一层都把下一层的细节藏起来,只暴露一个简洁接口2。🟢 high
这种分层是计算机能 scale 的根本——没有抽象层,你写个 hello world 就得管 CPU 寄存器。但代价是你想理解任何一层,都默认假设你懂下面所有层。HTML 的文档假设你懂 WWW,WWW 假设你懂 TCP/IP,TCP/IP 假设你懂 networking 基础——这就是套娃的结构源头。
第二个原因:缩写文化(TLA Culture)
1988 年 Edsger Dijkstra(图灵奖得主)就讽刺过:"这年头没有 TLA 的事业都不配叫事业"(No endeavour is respectable these days without a TLA)3。TLA = three-letter acronym(三字母缩写)——这个词本身就是 TLA,套娃讽刺。🟢 high
计算机领域为啥这么多缩写?——因为程序员讨厌打字。HTTP / TCP / IP / DNS / SSL / TLS / DOM / API / SDK / IDE / CLI / IPC / RPC / CDN / CRUD / REST / GraphQL……这些每一个都是一个待解释的黑盒。文档里堆这些缩写假设你都懂,实际上对新人完全是天书。一篇 3 段技术文章可能塞 15 个 TLA——你查每一个都开新标签页,套娃就这样起来的4。
第三个原因:历史路径依赖
HTML 长那样、CSS 长那样、JavaScript 长那样,都不是因为"设计得好",是因为90 年代某个特定时刻、某个特定的人、在某个特定的需求下随手做出来的。Berners-Lee 是物理学家,他想分享论文,所以做了 HTML——一个 SGML 的简化版加几个标签。这事儿本来可以换十种方式做,但历史选了这条,后面所有人都得跟着这条走。
结果就是——你要真理解 HTML 为啥长那样,必须懂它的 origin story(CERN、物理论文、1989 提案)。这不是装腔,是历史路径依赖的必然——文档不讲 CERN,HTML 的某些古怪设计(为啥这种语法?为啥这种约定?)就解释不通。我专门讲过一篇 HTML 怎么从 CERN 一路走到主流,可以对照看。
| 原因 | 怎么造成套娃 | 典型例子 |
|---|---|---|
| 抽象分层 | 每层都假设你懂下面所有层 | HTML → WWW → TCP/IP → networking → ... |
| 缩写文化(TLA) | 每个缩写是个待解释的黑盒 | HTTP / DOM / API / CDN 一段话塞 15 个 |
| 历史路径依赖 | 解释设计必须讲 origin context | HTML 必须讲 CERN / 物理论文共享 |
这三个原因为啥不能解决?——抽象分层是结构必需(没分层 scale 不了),TLA 是从业者效率刚需(老手用着省事),历史路径依赖是沉没成本(改了几亿个网页崩了)。三个都是有合理性的副作用,不是 bug。这就是为啥这事儿永远不会被"修好"——你只能学着应对。
计算机为啥比别的领域狠
有人会说"哪个领域学起来不套娃啊,法律 / 医学 / 数学也都这样"。这话对一半,错一半。其它领域确实也套娃,但计算机有个独特的"加成 buff",让这事儿格外难。
咱们拉个对照表:
| 领域 | 套娃严重度 | 独特特点 |
|---|---|---|
| 计算机 | ★★★★★ | 分层 + TLA + 历史依赖 + RTFM 文化 + 概念半年迭代 |
| 法律 | ★★★★ | 术语严密,但有标准教材(本科 4 年线性安排) |
| 医学 | ★★★★ | 术语多,但有人体作为最终 anchor(模型 stable) |
| 数学 | ★★★★ | 层层依赖,但底层稳定(几百年的公理基础不变) |
| 厨艺 | ★★ | 有套路但 anchor 是物理感受(口感 / 香气) |
计算机狠在哪儿?四个独特点:
- 概念半年迭代——法律 100 年才大改,数学公理几百年不动,计算机概念半年更新(2025 你学的工具栈,2026 就过时了)。前端这五层每年都在洗牌。
- 没有"标准教材"——你学法律有民法教材,你学医学有解剖学教材。你学"现代 Web 开发"?没有教材。每个公司、每本书、每个 tutorial 讲的栈都不一样。
- RTFM 文化的恶意——"Read The F***ing Manual"——这条文化沿袭自 80 年代,程序员对新手默认敌意:"你不懂?自己看文档去"5。讽刺的是,这种文化反过来让文档变得更烂——既然能 RTFM 推回去,就没人去把文档写好6。🟢 high
- 没有物理 anchor——医学有人体,厨艺有食物,数学有几何直觉。计算机所有东西都是抽象,你看不见、摸不着,只有"你脑子里的模型"对不对。所以新手没有"那种东西就在那儿摆着我看着就懂了"的依靠。
"医学不也是套娃吗?学个解剖学也是几千个名词。"——是套娃,但程度不同。医学的 anchor 是人体本身——你切开看一眼,所有名词都有具体物理对应。计算机没这个 anchor。你"看到"HTML 是啥?你看到的是浏览器渲染出的画面,HTML 本身只是文本文件里的字符——你脑子里有个模型叫"DOM 树",但那东西不存在物理世界,只存在程序员的脑里。本讲稿仍倾向"计算机的抽象套娃比物理 / 生物领域更难",原因是缺最终物理 anchor。
五条应对策略——怎么破
讲完诊断,讲打法。下面五条不是"鸡汤",每一条都是反直觉的——但对治套娃确实有效。
策略一:从产物入手,不从基础入手
你想懂 HTML——别从 SGML / WWW 历史开始,直接打开 Chrome 按 F12,看一个真实网页的 HTML source。看 5 个不同网站的 source,你已经掌握 80% 实战 HTML。剩下 20% 等需要的时候再补7。🟡 med
这跟传统教育反着来——传统是"先学公理再做应用"。计算机这套不工作,因为底层公理本身就是套娃。从产物倒推更有效。
策略二:够用就行,别学透
你查 HTML 时碰到 CERN——别去查 CERN。承认"我不需要知道 CERN 是啥",继续看 HTML 主线。这是个心理 discipline——大多数人在 CERN 这种历史背景上浪费了 70% 时间,真正学 HTML 的时间不到 10%。"够用就行" 这套打法我专门讲过。
策略三:用"5 句话内能解释"作为停止线
遇到新概念,问自己:"我能不能用 5 句话向不懂的人解释这是个啥?"——能,就过。不能,就停下来查一查直到能为止。这条停止线很 strict 但很有效——避免你在某个概念上死磕,也避免你不懂装懂往下走。
策略四:把套娃当 normal,情绪 dismount
这一条最重要。你每次碰到新缩写都骂街,你的认知带宽就被情绪占了,真正学习的带宽反而剩不下。学会把"看到陌生概念→ frustration"这个反应解开——告诉自己"这是个 normal 状态,所有人都这样",然后该跳过的跳过,该查的查。🟡 med
策略五:利用 LLM 当"翻译层"
2026 年这事儿有个新打法——遇到看不懂的文档,直接扔给 LLM:"用大白话给我讲讲 X 是啥,假设我啥都不懂,不要用任何缩写"。LLM 干这事儿比 Wikipedia 强多了——Wikipedia 的写法假设你懂相关概念,LLM 能主动展开你不懂的词。这是过去 2 年才有的工具,计算机概念套娃问题第一次有解药。
| 策略 | 对治的痛点 | 立刻能做的动作 |
|---|---|---|
| 从产物入手 | 从底学永远爬不上来 | F12 看真实网页 source |
| 够用就行 | 每个细节都要懂 → 永远学不完 | 主线 80%,细节 20% 留到需要时 |
| "5 句话"停止线 | 不懂装懂 / 死磕一个概念 | 遇到新概念问自己能不能解释清楚 |
| 情绪 dismount | frustration 占了认知带宽 | 承认套娃是 normal 状态,不是你的问题 |
| 用 LLM 当翻译 | 文档假设你懂前置概念 | "用大白话讲 X,假设我啥都不懂" |
你下次查 HTML 时,这么干:(1) 直接打开任意网页按 F12,看 source。(2) 发现一堆 <div> <p> <a> 标签——HTML 就是这种 "<...>" 包文本的格式。(3) 文档里看到 SGML / CERN / DOM 这些词——心里说"知道这是历史背景,跳过",继续看主线。(4) 想了解更多某个细节,扔给 LLM:"用大白话讲 DOM 是啥,假设我没编程基础"。30 分钟下来你已经掌握了 HTML 的实际用法,而不是被套娃绕晕。
下次再骂街时,做这两件事
把整篇压成一句话:套娃不是你的问题,是计算机这个领域的结构性副作用。但你能用打法对治它,不需要被它打死。
具体落到你下次碰到陌生概念时——做两件事:
第一件:换问题。不要问"X 是什么",问"X 在实际产品里怎么用 / 长啥样"。前者会把你拉进定义套娃,后者直接给你具体场景。比如不要问"DNS 是什么",问"我浏览器输入 google.com 后 DNS 干了啥"——后者你能感性理解。
第二件:扔给 LLM。把文档原文复制给 LLM,加一句"用大白话给我讲,我啥都不懂,把所有缩写都展开,假设我没编程基础"。这事儿 2024 年之前没解药,2026 年有了——别浪费这个工具。
记住一件事——骂街是正确的情绪。你骂"这他妈是什么玩意儿"的时候你是对的,不是你笨。但骂完之后,情绪 dismount,换打法继续。计算机这领域的套娃不会因为你骂街就消失,只能用打法绕过去。
下次再碰到 "想知道 A 又冒出 B"——记得:这是 normal,不是 bug。是计算机的结构副作用,不是你的智力问题。你的真正任务不是"把所有套娃打完",是"学会跳着走"——跳过不必要的层,直接到达你想用的那一层。
这些地方我说实话也没全把握
- "5 句话停止线" 是不是普适——我自己用着有效,但没大规模实验数据支持。可能对偏理论的概念(分布式一致性、密码学)5 句话讲不清,这时候停止线得放宽到 1 段话。具体阈值因人而异。🔴 low
- LLM 当翻译层的失败率——LLM 解释概念时偶尔会 hallucinate(把不存在的细节讲得头头是道)。对于核心技术决策(选什么数据库 / 选什么架构)别完全信 LLM,要交叉验证。对入门级"X 是啥" 这种问题 LLM 现在已经基本不出错。🟡 med
- "够用就行" 跟 "理解透" 的边界——这条策略的极端是"反智",我也认。具体哪里该深 / 哪里该浅,跟你做啥有关。做应用层别死磕底层,做底层就得死磕底层。🟡 med
- RTFM 文化是不是真在变好——有报道说 2020 年后开发者社区对新手更友好了(因为 dev tools 商业化,toolchain 厂商有动力维护好文档)5,但 Stack Overflow / GitHub issues 上 RTFM 风的回复依然常见。我倾向"局部变好,整体没大改",但说不准。🟡 med
Sources
- Cognitive Load Theory in Computing Education Research: A Review (ACM Transactions on Computing Education, 2021) — https://dl.acm.org/doi/10.1145/3483843
- Abstraction layer — Wikipedia(分层抽象作为软件架构核心理念) — https://en.wikipedia.org/wiki/Abstraction_layer
- Three-letter acronym — Wikipedia(包含 Dijkstra 1988 "No endeavour is respectable...") — https://en.wikipedia.org/wiki/Three-letter_acronym
- What's in a name? Three-lettered acronyms and their impact on development culture — Ben Morris — https://www.ben-morris.com/whats-in-a-name-three-lettered-acronyms-and-their-impact-on-development-culture/
- RTFM — Wikipedia — https://en.wikipedia.org/wiki/RTFM
- The Clash Between RTFM Culture and Developer Experience — Akita Software — https://www.akitasoftware.com/blog-posts/the-clash-between-rtfm-culture-and-developer-experience
- Computer Science Learning Curve Survey 2024 (JetBrains) — 学习者最大困难是复杂概念 51% / 文档差 40% / 领域太广 38% — https://lp.jetbrains.com/cs-learning-curve-report-2024/