Whether you understand correctly can be verified by making something based on the understanding and observing whether it works as expected.

The understanding in programming is relatively easy to verify. You can write and run a program. If your understanding is incorrect, you get an error. You can also modify the program a little and rerun it.

Let’s compare with the understanding in other domain. Woodworking is an act similar to programming in that it is to make things. Imagine making a chair with wood. You cut the woods and assemble it. After that, you realize that the design drawing is incorrect. You can not successfully assemble the piece of woods. Already it takes more time than programming. Suppose you misunderstand the position to open the hole, and you opened it where you should not open it. That piece of woods is useless anymore. You need to cut the woods again. Since programming is to make thing using digital data, the cost of trial and error is relatively low.

Let’s compare with another domain: drawing. After drawing, you often feel something unnatural. You know that it is unnatural, but you do not know what is wrong. If you show it to the right person, he can point out that a line is tilted, but you can not notice it by yourself. For programming, the error message tells us what is wrong in most cases. *46

In this way, learning in programming is faster than other domains. In the chapter, “(1.2.2) How to keep motivated?”, I told you to get rewards at short intervals is important to keep motivated. When the program you wrote worked as expected, you receive a reward of the sense of accomplishment. When it does not work as expected, you get a chance to deepen your understanding by digging down. Why does it not work as expected? What is the difference between the expected phenomena and the actual phenomena?

Programming is suitable to learn the cycle of learning. By learning programming, you can learn how to learn. Knowledge of the way of learning is not obsolete even after 10 years.


  • Footnote 46: Even in programming, sometimes the behavior is wrong but the error message does not appear. In the case, we suffer what is wrong like a drawing.
en.icon --- This page is auto-translated from [/nishio/(1.6.1) Varification by making](https://scrapbox.io/nishio/(1.6.1) Varification by making) 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](https://twitter.com/nishio_en). I'm very happy to spread my thought to non-Japanese readers.