You may think that even if you do not find patterns yourself, you can get patterns by reading a book of patterns. Although it seems reasonable, if you read a pattern book, you often feel it is too abstract and difficult to understand. *1
- *1: Originally in Japanese, I used a word with bodily feelings. However, I replace it with the word “understand” now.
By reading a book on how to solve mathematics, without solving the problem yourself, you cannot get the skill to solve new problems. Reading the book on how to design a program, without writing programs yourself, you cannot get the skill for good design. Pattern books can help you find patterns yourself from your concrete experiences, but you can not learn patterns without concrete experience.
Let me express this with a metaphor of boxes. Someday you see someone’s pyramid. You see the top box is nice, and want it. Without preparing the foundation, the box just falls on the ground. (Footnote: other metaphors for taking the top of pyramid.)
Fig: I took the top box of the pyramid but it is different from my expectation.
Let’s pay attention to the following three points to find out whether you place the box on the floor or you stack it properly.
- Can you explain it in your own words?
- Can you give concrete examples based on your own experience?
- Can you use the knowledge to achieve your purpose?
Let’s say you read the word “public-key cryptography is like a padlock” in a book. Even if you do not understand the concept of public-key cryptography, you can remember the phrase. You can answer the fill-in-the-blank question: “filling out the blank space: public-key cryptography is like a _____.”
On the other hand, if you do not understand, you can not explain in your own words why they are similar. You can not show other examples. Also, you do not notice that the public-encryption cryptography can solve your problem. So, you can not apply the knowledge to the real problems.
You often misunderstand your understanding. Even if you do not understand the concept, you sometimes feel you understand it. To notice the misunderstand, and refine your understanding, it is important to verify your understanding.
This page is auto-translated from [/nishio/(1.5.3) Learn from patterns](https://scrapbox.io/nishio/(1.5.3) Learn from patterns) using DeepL. If you looks something interesting but the auto-translated English is not good enough to understand it, feel free to let me know at @nishio_en. I’m very happy to spread my thought to non-Japanese readers.