We learned that there are common concepts between reading source codes and reading books, such as focusing on folder hierarchy and table of contents in (4.3.3) Attention to headlines. Both are the hierarchical, place-based arrangement of information.
On the other hand, there are two different ways of reading source codes. One of them is the reading along the execution time, such as the step execution using the debugger tools. The other is the reading along the creation time, such as commit logs on a version control system.
Let me pull the source code reading back to the book reading. The reading along the creation time corresponds to reading the books of the same author along with their creation date.
Especially, when the author repeatedly thinks and writes about similar themes, you can trace the transition of the author’s thought.
Although the reading is expensive, it is valuable. You can see what does not change as time goes by, and you can see what a temporary idea is.
Some people think that the contents of books are like rules which should not be changed. They think they should execute the techniques on the book in completely the same way as written. It is like a “copy of sample code,” without considering the techniques meet your situation.
However, the book only contains what the author thought correct at the time of writing. The philosopher Ludwig Wittgenstein pointed out that serious mistake is in his book about 25 years after published the book. Even a smart person like him makes a mistake, so the author of a book released this year also makes a mistake.
The wrong mental model that contents in the book are correct is widely spreading because textbooks tend to be educated as if it is universally correct. However, sometimes the discovery of new fact denies the knowledge of history and science in textbooks.
Universal correctness is only in limited fields such as mathematics.
This column is an example of (1.5.1.3) Focus on the difference and pull back of analogy.
Original footnote written in 2017:
- What does correspond to the reading along the execution time? I have no answer yet.
My answer in 2019:
- The source codes of a program are one-dimensional texts, but often it executes different paths depends on the input to the program. The program and the source codes of it are different. The former can input and output. So, the program corresponds to the author. If you discuss with the author, it is similar to the reading along the execution time.