Make It Stick - 学习本身是一件值得思考的事情
前段时间,我的朋友「肚子」向我推荐了 Make It Stick: The Science of Successful Learning 这本书 (以下简称 MIS),读毕感觉相见恨晚。该书的讨论主题是学习这件事情本身,即研究人类学习的特点,找到适合人类的高效学习策略。如果用一句话向其它朋友推荐这本书,我想这句话一定是:学习本身是一件值得思考的事情。
Update: 关于这个话题,我还推出了一集播客,感兴趣欢迎收听。
读后感
在这里我不会总结或重述原书的核心观点和主要内容,相信你有足够多的途径能够获得它们。我想简单谈谈看完全书后的三个思考:
从「自举」到「吃自己的狗粮」
在计算机科学中,如果一个编程语言的编译器可以用这个语言本身来构建,我们就称它可以自举 (bootstrapping)。换句话说,这个语言既可以用来表达实现任意目的的程序,也可以用来表达自己的工作原理。
MIS 的作者在书的结构设计方面也加入了类似的巧思。既然这本书介绍的是人的认知特点,以及提高学习效率的一些方法论,那为什么不用书中推荐的方法论来讲述这些知识?MIS 在第一章将书中的所有核心观点串讲一遍,在之后各章陆续介绍各个核心观点。在每个章节中,既会有意引用之前讲述过的内容,也会有意让不同观点交叉出现。这样的组织正好与书中介绍的「检索练习」、「间隔练习」、「交叉练习」暗合。如果读者发现读完这本书后记忆、理解地比阅读其它书籍更加深刻,就正好证明了书中观点的合理性。
类似的思路还出现在开发新产品的最佳实践——「吃自己的狗粮 (eating your own dog food)」中。「吃自己的狗粮」说的是在开发产品的过程中,自己也在体验和使用该产品。比如对工程师来说,开发一个面向研发的工具或服务,如 Git/GitHub,正是在「吃自己的狗粮」。
人脑与电脑
碳和硅同是元素周期表中的同族 (IVA) 元素,它们分别作为人脑和电脑的核心元素,大概不是巧合。在读完 MIS 后,我又发现了更多人脑和电脑相似的「证据」。
工作记忆 (Working memory) 与内存
每个人在解决问题的过程中,可以在脑中临时存储有限容量的信息,我们称这部分记忆为工作记忆,工作记忆的容量大小与人的智商成正相关关系。这并不难理解,如果你能够在解决问题的过程中同时考虑更丰富的信息,就可能给出更明智的解决方案。有趣的是,工作记忆可能被大脑中的多个任务挤占,比如当你在考试的时候,因为紧张,你可能忽然解不出一道平时轻松就能解的题目,这可能是因为抑制紧张的情绪会占据一部分工作记忆,导致留给解题的工作记忆不足。
电脑的内存是一种读写效率极高的易失性存储器,其读写效率是硬盘的几十到几百倍,但一旦电脑断电、重启,其中存储的内容就会消失。内存是衡量电脑性能的重要指标之一,它也可能被多个任务共享,使得相同任务在不同时刻表现出不同的执行效率。
记忆术 (Mnemonic device) 与多级存储管理 (Hierarchical storage management)
生活中,我们会用到许多顺口溜来辅助记忆,比如:
- 「伸手要钱」:身份证、手机、钥匙、钱包
- 「一韩一柳一欧阳,三苏曾巩带一王」:唐宋八大家
- 「一三五七八十腊,三十一天永不差,其余都是三十日,只有二月二十八」:每月天数
- ...
这些就是最基本的记忆术。我们需要记忆术的原因是:原先的信息内容过多,且分布教散,缺乏好的方式将它们串联。比如身份证、手机、钥匙、钱包就是四种出门常带的物件,它们之间并没有明显的关系,但当我们需要这些信息的时候,又期望能够它们一起出现,缺一不可。那么记忆术在这里的作用就是充当一个线索,这个线索是压缩编码过后的原文内容,更方便记忆,只要记住线索,我们就能够利用它顺藤摸瓜地把全部信息提取出来。人脑中能支持快速检索的长期记忆容量是有限的;但人脑的总体信息容量目前还没有发现上限,即人脑中似乎存在一种二级存储结构,其中一级被快速检索,但容量有限;另一级检索速度慢,但容量尚未发现上限。
电脑中同样存在这种多级存储管理结构,寄存器、缓存、内存、固态硬盘、磁盘、光盘、磁带,检索效率从高到低,存储容量由小到大。
思维模型 (Mental Model) 与抽象 (Abstraction)
当我们反复学习某个领域的知识或技能时,会逐渐形成一些稳定的思维模型,这些思维模型能够帮助我们在利用该知识解决类似问题的过程中,跳过思考、分析的过程,快速做出决策。比如在吉他弹唱的过程中,当我们需要从 C 和弦切换到 G 和弦时,不会去思考 C 和弦、G 和弦的组成音分别是什么,而只是告诉自己现在应该从 C 和弦换成 G 和弦,大脑会自动控制手指完成实际的切换。
SICP 中的很大篇幅是在教工程师如何管理复杂度 (manage complexity),而抽象就是重要手段之一。将过程抽象成函数、将数据和读写数据的接口抽象成对象、将网络抽象成多个层级等等。当某个程序与其它抽象交互时,无需关心其内部实现。如此一来就可以有效减少工程师在解决复杂问题时所需的工作记忆容量,换句话说,用有限的工作记忆解决更复杂的问题。
关于思维模型还有一个经典问题,就是在某领域深耕十年的人与接触该领域一两年的人,他们之间的差距在哪?其中一个解释就是思维模型的复杂度。更复杂的思维模型可以解决更多样场景中的问题。比如练习一年羽毛球的业余爱好者肯定能理解杀上网、吊上网这样的技战术,而专业运动员在真正比赛中使用的也是这样基本的技战术,二者之间的差距在哪呢?应对复杂情况的能力不一样,比如如何融汇贯通各种基本技战术,如何在赛场上随机应变处理各种变化的球路等等。我们在上大学的时候常常抱怨一些教授,科研做得很好,但是上课讲的内容过于深奥,对初学者不友好。其中一个解释也是思维模型的复杂度:这些教授在科研过程中已经在该领域建立了极其丰富多样的思维模型,可以加速他们的思考过程,而初学者则需要先把思维模型建立起后,才能逐渐提高思考领域问题的速度。
明白了这个道理,你就会在学习过程中自动忽略「XX 天让你熟练掌握 YY」这样的速食材料,世上并不存在真正的速成学习,learn-the-hard-way 是每个人深入理解任何一个领域的必经之路。
元认知 (Metacognition)
元 (Meta) 在希腊语中表示「超越」,即更加本质的内容。比如:
- 元数据 (Metadata):关于数据的数据
- 元语言 (Metalanguage): 描述语言的语言
- ...
MIS 中出镜率很高的一个词是元认知,即关于认知本身的认知,比如:
- 人的学习过程、特点以及高效的学习策略
- 人思考过程的优势、劣势,如何扬长避短
- 人对自己和他人认知水平的判断、评价
- ...
学习它有什么用呢?举个例子:在日常的认知过程中,我们倾向于采用自己舒服的方式去摄取养分,听公开课、看教材、读论文、听播客,或者上 B 站找一些 up 主的总结视频,关注一些细分领域的公众号,关注技术大 V 的 twitter 或微博,订阅它们的博客等等。这些方式大多数是令人舒适的方式,基本上你的学习越是被动,付出的努力越少,感到越舒适。但从学习质量和记忆效果角度出发,你的学习越是主动,付出的努力越多,会让你感到越不适,但学到的内容越扎实。
如果你的学习目的只是消除自己的焦虑感,那么被动学习可能是最好的方法,它既让你觉得时间没有白费,又让你感觉自己都学懂了。但如果你的目的是真的把它学懂,变成你的思维武器库中的一部分,那你就必须离开舒适区。
这本 MIS 其实就是在向你讲述元认知的内容,如果你想了解自己作为人类的学习特点以及如何提高学习效率,不妨一看。
尾声
电脑本身是人造的,所以电脑与人脑之间的相似也许只是一种自我实现预言 (Self-fulfilling prophecy),如果看到上句话你不理解我在说什么,只是说明「自我实现预言」暂时还不是你脑中的思维模型而已。将新到的知识与已经固化在脑中的知识建立连结能够帮助二者相互加固,是 MIS 介绍的高效学习策略之一,本节的内容正是在实践这一策略。