TLDR; Even Knuth says it makes more sense to dissect and study code as a specimen than read it like literature
Great read! I had exactly the same misguided idea that to read code would be beneficial but never really get around to it in a structured way. And if I need to understand some code I have to dissect it and dig deep.
As an avid Neal Stephenson reader I also love the Royal Society throwback going on at twitter ;)
The author pries open the gaps between reading code and literature quite effectively here and much of it resonates for me. In particular, the notion that when we look at idiomatic examples of coding concepts, while they are instructive, we are missing some essential context. And by looking at a complete program (with its attendant warts and blemishes) we are getting a slightly more honest version of reality, one that seems reasonable for even our own imperfect selves to inhabit. Having a guide that can brush away some of the dust and debris to reveal the supporting structure beneath is a great way to present a topic without simultaneously hiding from it. Rather than solemnly erected in a museum, we would see the bones where they fell, and perhaps learn something more subtle from their arrangement.
I’m actually not entirely sure that literature is also not studied as specimen, but I did enjoy reading the article anyway.
Certainly literature can be examined and picked apart. I think the point the author was trying to make is that you can get something out of a book by reading it from start to finish, but you can’t do the same with large codebases.
I think reading large books and large code bases are similar. A one time reading through both will yield a bit of understanding. For literature you’ll know that there are some characters and they followed some particular arc, but probably wont remember exactly how they crossed it. Similarly, with code, a first reading will give a glimpse of what it does but perhaps not exactly how. Both require re-reading whereby a deeper understanding is gained due to having more pre-existing context.
For instance, when re-reading a novel one might come across a passage and suddenly realize it was setting up an event that wont occur for a dozen chapters. With code it might be that you skimmed the implementation details of some utility function, but on re-reading know that it’s going to be used in a bunch of critical places.
My hypothesis is that, as a species, we have been telling stories for millennia thus our brains are wired to the structure common to story telling. Perhaps in a few more millennia our brains will be better able to process code as well. Or maybe we’ll simply find ways of writing it that better fit how we think.