I figured out how to do book reports without reading when I was a kid. I wouldn’t say I liked reading, so I created a system to minimize it. Little did I know this system was the precursor to Speed Readable Code.
Why did I try to avoid reading when I was a kid? It seemed slow, and I wasn’t interested in most books in our school’s little library. Reading was just not worth the effort. I might have done better if I had the patience to practice more or a better selection of exciting books. But that’s a story for another time. Please don’t follow in my footsteps here! Reading is crucial.
I went through a season in elementary school where I had to write many book reports. So I devised my way to speed read. My speed reading system consisted of three basic steps. I started by selecting a book that was easy to read; I chose well-written books whose authors had highly organized their work. The second step was using the book’s table of contents, chapters, and other building blocks to digest high-level information and skip the rest. The final action was to drill down into select story portions to understand essential aspects. In summary, the most effective way to increase your reading speed is to skip as much as possible while still digesting what you need to learn.
Quickly digesting books requires a facility for how they’re organized. I used and honed this knowledge to complete many book reports without reading more than a few pages. However, my speed reading spree as a child set a level of mental expectation for everything I read. I want to be able to consume everything efficiently. Unfortunately, we can’t read most source code using this strategy. It contains no table of contents and no chapters. While computer languages provide mechanisms to organize code, we need to do a better job using them to make code fast to read. Details of one topic get intertwined with another, either during initial construction or throughout many modifications. And, you’ll rarely find a spelled-out hierarchical layering of conceptual complexity in the software you read. Once you read software that does a great job organizing for speed of readability, you’ll only want to work with code like that.
I didn’t make the connection between software and my speed reading system for many years. And when I had the epiphany, it wasn’t when writing software. Instead, I discovered the relevance of my speed reading system while reading large amounts of poorly organized code. The desire to digest it more quickly led me to imagine ideas about how to write it better. Necessity is the mother of invention.
I hope you are already trying to prove or disprove the claims I’m making here. It’s so simple in concept, but practicing it is non-trivial. Give it a chance. In my next post, I’ll talk about my first experience putting Speed Readable Code together in the real world. We’ll start covering concrete steps to make your code faster to read. Stay tuned.