费曼学习法你用废了:重点从来不是"教别人"
你肯定听过费曼学习法。
“把学到的东西教给别人”——全网公认的顶级学习方法,被写进无数效率博主的推荐清单。你也试过:写了几篇技术博客,给同事讲了一次午间分享会,对着镜子练习过面试答案。
但说实话,你觉得效果一般。
写博客更像是在整理笔记,分享会讲完就忘,准备面试还是一到真正被追问就卡壳。你开始怀疑:这方法是不是被吹过头了?
不是方法不行。是你用错了重点。
你以为的费曼 vs 真正的费曼
大家对费曼学习法的理解,基本停留在一句话:”能教会别人,说明你学会了。”
于是所有人都在拼命练”输出”——写博客、做视频、搞分享。好像只要表达够多,知识就自动扎实了。
但这就像一个程序员,写完代码就直接部署上线,从来不跑测试。领导问”测了没?”,你说”我看了一遍,应该没问题”——然后周五晚上八点收到线上告警。
费曼学习法的真正威力,不在”输出成功”的那个瞬间。恰恰相反——它的全部价值,藏在”输出失败”的那个瞬间。
当你试图给别人解释一个概念,突然发现自己说不清楚了、逻辑断了、找不到合适的类比——那个”卡壳”的地方,就是你真正没学会的地方。
找到卡壳点才是目的。”教别人”只是手段。
这就是99%的人用错的地方:他们把手段当成了目的。
费曼自己怎么说的
费曼有句名言:”如果你不能用简单的话解释一件事,说明你没有真正理解它。”
大多数人把这句话理解成:要练习表达能力,要学会深入浅出。
完全理解反了。费曼强调的不是”你要变得更会讲”,而是”你要发现自己哪里没搞懂”。
认知科学里有个概念叫”生成效应”(Generation Effect):当你主动尝试从记忆中提取信息时,大脑会暴露存储中的缺陷。注意关键词——”暴露存储缺陷”,不是”锻炼表达能力”。
这两件事的区别,就像”体检”和”化妆”的区别。一个是为了发现问题,一个是为了掩盖问题。大多数人把费曼学习法用成了化妆术。

你的大脑就像一个数据库。平时你以为数据都存好了(”我学了,我记住了”),但只有当你真正发起一次查询(”能不能解释给别人听?”),才会发现哪些字段是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盲区法的反馈完全相反——它追求的是”我又找到一个不会的”。
这感觉就像主动去做体检。没人喜欢体检报告上出现异常值,但你得承认:那些你不知道的异常,才真正要命。
心态一旦从”证明自己会了”切换成”找出自己哪里不会”——学习效率会发生质变。好的工程师不怕看到红色test case,怕的是测试覆盖率太低。
你不怕发现bug,你怕的是有bug但你不知道。
回到开头那个问题
你觉得费曼学习法没用,不是方法的问题。
是你一直在跑测试,但从来不看失败报告。
费曼学习法不是表达训练。它是知识debug。
下次学完一个新东西——不管是 Kubernetes 的网络模型,还是分布式一致性,还是你刚面试被问懵的那个概念——别急着写博客。
打开一个空白文件。写到卡壳为止。
那个卡壳的地方,就是你花了三天”学习”但其实一直在假装的地方。
现在你知道了。去修它。