你肯定听过费曼学习法。

“把学到的东西教给别人”——全网公认的顶级学习方法,被写进无数效率博主的推荐清单。你也试过:写了几篇技术博客,给同事讲了一次午间分享会,对着镜子练习过面试答案。

但说实话,你觉得效果一般。

写博客更像是在整理笔记,分享会讲完就忘,准备面试还是一到真正被追问就卡壳。你开始怀疑:这方法是不是被吹过头了?

不是方法不行。是你用错了重点。

你以为的费曼 vs 真正的费曼

大家对费曼学习法的理解,基本停留在一句话:”能教会别人,说明你学会了。”

于是所有人都在拼命练”输出”——写博客、做视频、搞分享。好像只要表达够多,知识就自动扎实了。

但这就像一个程序员,写完代码就直接部署上线,从来不跑测试。领导问”测了没?”,你说”我看了一遍,应该没问题”——然后周五晚上八点收到线上告警。

费曼学习法的真正威力,不在”输出成功”的那个瞬间。恰恰相反——它的全部价值,藏在”输出失败”的那个瞬间

当你试图给别人解释一个概念,突然发现自己说不清楚了、逻辑断了、找不到合适的类比——那个”卡壳”的地方,就是你真正没学会的地方。

找到卡壳点才是目的。”教别人”只是手段。

这就是99%的人用错的地方:他们把手段当成了目的。

费曼自己怎么说的

费曼有句名言:”如果你不能用简单的话解释一件事,说明你没有真正理解它。”

大多数人把这句话理解成:要练习表达能力,要学会深入浅出。

完全理解反了。费曼强调的不是”你要变得更会讲”,而是”你要发现自己哪里没搞懂”。

认知科学里有个概念叫”生成效应”(Generation Effect):当你主动尝试从记忆中提取信息时,大脑会暴露存储中的缺陷。注意关键词——”暴露存储缺陷”,不是”锻炼表达能力”。

这两件事的区别,就像”体检”和”化妆”的区别。一个是为了发现问题,一个是为了掩盖问题。大多数人把费曼学习法用成了化妆术。

99%的人用错了费曼学习法

你的大脑就像一个数据库。平时你以为数据都存好了(”我学了,我记住了”),但只有当你真正发起一次查询(”能不能解释给别人听?”),才会发现哪些字段是null,哪些外键关联断了。

学习不是写入,验证才是。

给你的知识跑一遍单元测试

如果你是程序员,下面这个类比你一定秒懂——

费曼学习法,本质上就是给你的知识体系跑一遍单元测试。

你以为自己学会了——代码写完了,编译通过了,看着挺对的。但你从来没跑过测试。你甚至连测试文件都没建。

“教别人”这个动作,就是在跑测试。

那些你讲得顺畅的部分?测试通过,绿色,没问题。

那些你突然卡壳、开始绕弯子、或者只能说”这个你去查一下文档”的部分?测试失败了。红色。这就是你的bug。

大多数人用费曼学习法的方式是这样的:跑完测试,看到一片绿就高兴了,红的直接跳过。然后跟自己说”大部分都会了嘛”——这就像考试考了59分,然后安慰自己”至少比0分强”。

费曼学习法真正的价值在于:专门去修那些红色的 test case。

测试不是为了让你发朋友圈”今天又学了一天”。测试是为了帮你找到 bug。

你跑完一遍”教别人”的测试,收获的不应该是”我讲得真棒”的成就感,而应该是一份清晰的失败清单——”这5个点我讲不清楚,说明我没真正理解”。

这份清单,才是费曼学习法的真正产出。

给知识跑一遍单元测试

程序员版费曼:TODO盲区法

道理你可能认了。但具体怎么做?

给你一个我自己在用的实操流程——”TODO盲区法”。三步,今天就能开始:

第一步:橡皮鸭升级版

你可能知道”橡皮鸭调试法”——对着桌上的鸭子解释你的代码,往往就能发现bug。

现在升个级:打开一个空白的 Markdown 文件。假装你在给一个完全不懂技术的产品经理写一封邮件,解释你刚学的那个技术概念。

写到哪里卡住了——打不出下一句话了,或者发现自己在绕圈子——在那个位置标记一个<!-- TODO -->

不要停下来查资料,不要回头补。先一口气写完,能写多少写多少。卡壳的地方全部标TODO。

第二步:TODO即盲区

写完之后,数数你有几个TODO。

每一个TODO,就是你知识体系里的一个bug。它精确地标记了”你以为懂了但其实没懂”的位置。

现在,只学这些TODO对应的知识点。不要从头看一遍书,不要重新刷一遍课程。只打这些点。

这比”从头到尾重新学一遍”效率高10倍——因为你已经知道bug在哪了。debug的第一步永远是定位问题,而不是重新写一遍代码。

第三步:迭代而非完美

学完TODO对应的内容后,重新打开那个Markdown文件,再写一遍。

第二遍,你的TODO会变少。也许从8个降到3个。

再去学那3个点,再写第三遍。

当你的TODO清零时——恭喜,你是真的学会了。

这不是一次性行为,是迭代。像跑CI一样:改代码→跑测试→修bug→再跑测试。直到全绿。

有个加速技巧:找一个真人当”测试用例”。同事、朋友、甚至你妈。如果你能让一个完全不懂技术的人听明白什么是”分布式锁”——你的测试覆盖率基本拉满了。听不明白?恭喜,又收获了几个新TODO。

TODO盲区法三步实操

一个反直觉的心态切换

用这个方法有个隐藏门槛:你得愿意跟自己过不去。

大部分人学东西,追求的反馈是”我好棒”。写篇技术博客,发到掘金上,收获几个赞,感觉自己已经精通了。那些讲不清楚的部分?跳过就好,反正读者也不会追问。

TODO盲区法的反馈完全相反——它追求的是”我又找到一个不会的”。

这感觉就像主动去做体检。没人喜欢体检报告上出现异常值,但你得承认:那些你不知道的异常,才真正要命。

心态一旦从”证明自己会了”切换成”找出自己哪里不会”——学习效率会发生质变。好的工程师不怕看到红色test case,怕的是测试覆盖率太低。

你不怕发现bug,你怕的是有bug但你不知道。

回到开头那个问题

你觉得费曼学习法没用,不是方法的问题。

是你一直在跑测试,但从来不看失败报告。

费曼学习法不是表达训练。它是知识debug。

下次学完一个新东西——不管是 Kubernetes 的网络模型,还是分布式一致性,还是你刚面试被问懵的那个概念——别急着写博客。

打开一个空白文件。写到卡壳为止。

那个卡壳的地方,就是你花了三天”学习”但其实一直在假装的地方。

现在你知道了。去修它。