In Japan, “Shakyo” is a popular method to learn a new programming language. You type the source code in the textbook by yourself with your keyboard, execute the source code, and see the result. It seems not efficient. However, it is useful for those who do not have enough knowledge for efficient learning.
The word Shakyo ( copying of a sutra , Sutra copying) is named after the East Asian Buddism practice of hand-copying Buddhist sutras. By the origin, sometimes Buddhists misunderstand the learning method. In the original religious practice, you need to write without changing a single word, and you must not have a question to the original text. However, today I introduce you is not a religious practice, but a learning method. Do not think it as a religious practice. If you think so, the learning efficiency goes lower. (*24)
While you are doing Shakyo, you may find a similar pattern, “I saw the pattern before.” After that, you may think “it resembles the pattern, but it is slightly different.” You are discovering similarities and differences. That helps the modeling process in your mind.
Also, to have questions is good for learning. For example, “why this code is different from the pattern?”, “why it happens?” after you see the result of the execution, and “what happens if I rewrite the code like this?” Those questions are the clarified goals. You should better to write down those questions and thoughts as comments. (*25)
Footnotes:
- *24: According to experiments of cognitive scientists Craik and Tulving, the strength of long-term memory is stronger as the processing level performed on the input is deeper. In other words, rather than copying without thinking about the input, you can remember the input after you think various things. I tell more about the memory in Chapter 3.
- *25: In (4.4.1) How to read philosophical books you are recommended to record whatever you do not understand. It is a similar pattern.
Small Start Principle
This page is auto-translated from [/nishio/(1.3.4.1) Shakyo](https://scrapbox.io/nishio/(1.3.4.1) Shakyo) 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.