On Code
Have you ever suffered from the problem of "too steep a Learning Curve" or "Information Overload"? This is the problem where the information you're trying to absorb forces you to try to adapt your Internal Model too quickly for our brains to keep up.
Commonly, the easiest option is just to ignore the information completely in these cases!
Code and Information Overload
It has often been said that code is harder to read than to write:
"If you ask a software developer what they spend their time doing, they'll tell you that they spend most of their time writing code. However, if you actually observe what software developers spend their time doing, you'll find that they spend most of their time trying to understand code. " - When Understanding Means Rewriting, Coding Horror
By now it should be clear that it's going to be both quite hard to read and write: the protocol of code is actually designed for the purpose of machines communicating, not primarily for people to understand. Making code human-readable is a secondary concern to making it machine-readable.
But now we should be able to see the reason why it's harder to read than write too:
- When reading code, you are having to shift your Internal Model to wherever the code is, accepting decisions that you might not agree with and accepting counter-intuitive logical leaps. i.e. Internal Model Risk. (cf. Principle of Least Surprise)
- There is no Feedback Loop between your Internal Model and the Reality of the code, opening you up to misinterpretation. When you write code, your compiler and tests give you this.
- While reading code takes less time than writing it, this also means the learning curve is steeper.