“知新”的关键——类比

·  阅读 1698
“知新”的关键——类比

这一年来,由于各种原因,需要不断地学新东西。于是如何高效地学习,就成了一个随之而来的问题。最近看了一些书和公开课,包括 Scott H Young 的 Learn More, Study Less[1](以下简称 LMSL),和 Coursera 上的公开课学会如何学习[2](Learning How to Learn,以下简称 LHL),发现了一些有意思的观点,趁着热乎(虽然都还没看完),记下来梳理一下,也希望能对大家有所启发。

这两个资源在进行讲解时,都使用了类比(analogy)。

LMSL 中提出了整体学习法(Holistic learning),其基本思想是:你不可能孤立地学会一个概念,而只能将其融入已有的概念体系中,从不同角度对其进行刻画来弄懂其内涵和外延。

并且书中使用三个类比对整体学习法进行拆解:

  1. 构件(Constructs):一组紧密相关的知识。如学习 C++ 时,构件就是 C++ 所涉及到的各种知识。

  2. 模具(Models):对构件抽象出的可以进行移植和复用的主要特点。所谓“举一隅不以三隅反,则不复也”。

  3. 高速路(Highways):看似毫不相干的概念间的连接。如跨领域、交叉学科间的某些概念的相似性。

概念团之间的高速路

即,你在做了足够多的构件之后,就可以抽象出某些可复用的模具,以快速地造新构件。而由于复杂构件的组合性,不同领域的构件可能在某些角度具有相似性,这些相似性便是不同概念团之间的高速路。这个模型很像求 K 临近的 HNSW[3] 算法中所涉及到的小世界[4]模型思想。实践多了(构件)大家都会有一些总结(模型),但真正让你与众不同的是,这些跨领域、多维度的连接(高速路)。

LHL 中提出了专注模式( Focused Mode)和发散模式(Diffuse Mode)的两种思维方式。前者我们常常提起,就是指我们一心一意扑在某个东西上;而后者,我们可能不太熟悉,是指我们处于相对放松的状态,原本不太相干的知识团发生了连接。为了进行说明,课程使用我们小时候玩的弹珠游戏来进行类比。

专注模式和发散模式

在专注模式下,缓冲器(图中蓝色的点)很密集,已经学到的知识就像是在小范围内形成的一些固定通路(图中橙色通路)。我们在对熟悉的事务相关联的注思考时,可以思路顺畅的进行推理和思考。但是对于一些从未接触过的新的概念(图中绿色通路),则不知道这个模式在哪里、看起来如何。对应到图中,我们不知道如何让弹珠抵达这个区域。

这时,要开启一种新的思维模式,我们需要一个不同的思路——发散模式。在发散模式下,橡胶缓冲器很稀疏,想法(弹珠)蹦出来后,由于阻碍较少,可以在大范围内跳来跳去。在这种模式下,我们可以从更高的维度、全局鸟瞰的视角来在不同的概念间进行穿梭,从而建立新的连接、打开新思路的入口。这两种模式是互斥的,比如你在进行全景式思考时,势必就不能让思维陷入到某个细节问题的详细解决办法中。

从上面两个例子,我们可以看出:虽然用来类比的意象并非百分之百贴切,但确实抓住了所阐述道理的一些核心特点。这便是类比的威力所在,通过大家熟知的意象来对新概念体系进行“速写”,然后再展开细节,对这些意像进行适当地裁剪,从而达到对真实的逼近。总的来说,类比既是我们进行学习的重要倚靠,也是我们进行阐释的强力手段。

类比,或者隐喻(metaphor)在软件工程中也非常重要。代码大全[5](code complete)在第二章中提到了这一点。我自己的感受是,通过隐喻选取合适的概念体系对你的代码进行组织,可以大大降低代码编写和维护的成本。随便举个例子,在构造分布式任务调度系统时,我们通常会涉及以下概念:

  1. Job:逻辑上的一个任务

  2. Tasks:物理上调度到不同节点上的、属于同一个任务的一组子任务。

  3. Hint:用以任务调度的约束,如容错域、资源余量。

  4. Scheduler:组织调度策略的任务调度方。

这些概念最初取材于现实的工业生产,我们将其拿来,通过合理地定义这些概念的含义和联系,可以轻松地构造复杂的任务调度系统。

最后,希望类比成为你打开新世界大门的钥匙。

参考资料

[1] Learn More, Study Less: book.douban.com/subject/116…

[2]学会如何学习: www.coursera.org/learn/ruhe-…

[3] HNSW算法: arxiv.org/abs/1603.09…

[4] 小世界维基百科: en.wikipedia.org/wiki/Small-…

[5] 代码大全: m.douban.com/book/subjec…


我是青藤木鸟,一个喜欢摄影的分布式系统程序员,欢迎关注我的公众号:“木鸟杂记”。如果感觉还不错,就点个在看吧,这对我真的很重要。

另外,我搭了一个专门讨论分布式系统和数据库的论坛:distsys.cn/ 。如果你对上述观点有什么想法,欢迎留言讨论。

题图故事

阿尔山的小木屋

迟来的 2022 年终总结
如何画技术架构图
分布式&数据库的交流群

分类:
代码人生
标签:
收藏成功!
已添加到「」, 点击更改