木鸟杂记

大规模数据系统

The Key to Learning Something New — Analogy

Over the past year, for various reasons, I’ve needed to constantly learn new things. Thus, how to learn efficiently has become a natural question. Recently, I read some books and watched some open courses, including Scott H. Young’s Learn More, Study Less (hereinafter referred to as LMSL) and the Coursera open course Learning How to Learn (hereinafter referred to as LHL). I discovered some interesting ideas and, while they’re still fresh (though I haven’t finished either yet), I’m writing them down to organize my thoughts and hopefully offer some inspiration.

Both resources use analogy when explaining concepts.

LMSL proposes Holistic Learning, whose basic idea is: you cannot learn a concept in isolation; you can only integrate it into your existing conceptual system and understand its connotation and extension by characterizing it from different angles.

Author: Muniao’s Notes https://www.qtmuniao.com/2023/08/21/use-analogy-to-know-more Please indicate the source when reposting

The book uses three analogies to break down holistic learning:

  1. Constructs: A tightly related set of knowledge. For example, when learning C++, constructs are the various pieces of knowledge involved in C++.
  2. Models: The main features abstracted from constructs that can be ported and reused. As the saying goes, “If I show one corner and the student cannot come back with the other three, I do not repeat the lesson.”
  3. Highways: Connections between seemingly unrelated concepts. For example, similarities between concepts across different fields or interdisciplinary areas.

highway-in-brain.pnghighway-in-brain.png

In other words, after you have built enough constructs, you can abstract certain reusable models to quickly build new constructs. And because complex constructs are compositional, constructs from different fields may share similarities from certain angles — these similarities are the highways between different conceptual clusters. This model is very similar to the small-world model idea involved in the HNSW algorithm for K-nearest neighbors. Everyone develops some summaries (models) after enough practice (constructs), but what truly sets you apart are these cross-domain, multi-dimensional connections (highways).

LHL proposes two modes of thinking: Focused Mode and Diffuse Mode. We often talk about the former — it refers to concentrating wholeheartedly on something. The latter may be less familiar to us: it refers to being in a relatively relaxed state where previously unrelated clusters of knowledge form connections. To illustrate this, the course uses the pinball game we played as children as an analogy.

brain-two-models.pngbrain-two-models.png

In focused mode, the bumpers (the blue dots in the figure) are densely packed, and already learned knowledge is like some fixed pathways formed within a small range (the orange pathways in the figure). When we think about matters related to familiar topics, we can reason and think with a smooth train of thought. But for some never-before-encountered new concepts (the green pathways in the figure), we don’t know where this pattern is or what it looks like. Corresponding to the figure, we don’t know how to get the pinball to reach this area.

At this point, to open up a new mode of thinking, we need a different approach — diffuse mode. In diffuse mode, the rubber bumpers are sparse; after ideas (pinballs) bounce out, they can jump around in a wide range because there is less obstruction. In this mode, we can shuttle between different concepts from a higher-dimensional, bird’s-eye-view perspective, thereby establishing new connections and opening entrances to new lines of thinking. These two modes are mutually exclusive: for example, when you are engaged in panoramic thinking, you certainly cannot let your mind get bogged down in the detailed solution of some specific problem.

From the two examples above, we can see that although the imagery used for analogy is not one-hundred-percent accurate, it does capture some core characteristics of the principle being explained. This is the power of analogy: using well-known imagery to create a “sketch” of a new conceptual system, then expanding on the details and appropriately trimming these images to approach reality. In short, analogy is both an important crutch for our learning and a powerful tool for our explanation.

Analogy, or metaphor, is also very important in software engineering. Code Complete mentions this in Chapter 2. My own feeling is that by using metaphors to select an appropriate conceptual system for organizing your code, you can greatly reduce the cost of writing and maintaining code. As a casual example, when building a distributed task scheduling system, we typically involve the following concepts:

  1. Job: A logical task
  2. Tasks: A set of subtasks belonging to the same job that are physically scheduled onto different nodes.
  3. Hint: Constraints used for task scheduling, such as fault domains and resource headroom.
  4. Scheduler: The party that organizes scheduling policies.

These concepts were originally drawn from real-world industrial production. By adopting them and reasonably defining their meanings and relationships, we can easily construct complex task scheduling systems.

Finally, I hope analogy becomes the key that opens the door to new worlds for you.


This article is from my paid Xiaobot column System Thinking Daily, focusing on distributed systems, storage, and databases. It includes series on graph databases, code reading, high-quality English podcast translations, database learning, paper interpretations, and more. Welcome friends who like my articles to subscribe 👉Column to support me — your support is very important for my continued creation of high-quality articles. Below is the current article list:


我是青藤木鸟,一个喜欢摄影、专注大规模数据系统的程序员,欢迎关注我的公众号:“木鸟杂记”,有更多的分布式系统、存储和数据库相关的文章,欢迎关注。 关注公众号后,回复“资料”可以获取我总结一份分布式数据库学习资料。 回复“优惠券”可以获取我的大规模数据系统付费专栏《系统日知录》的八折优惠券。

我们还有相关的分布式系统和数据库的群,可以添加我的微信号:qtmuniao,我拉你入群。加我时记得备注:“分布式系统群”。 另外,如果你不想加群,还有一个分布式系统和数据库的论坛(点这里),欢迎来玩耍。

wx-distributed-system-s.jpg