“Perilous to all are the devices of an art deeper than we possess ourselves.” – Gandalf the White
I have a monthly textbook budget of $200/month. For the last year, I’ve exclusively spent that on hardcopy Computer Science and Software Engineering textbooks. Whenever anyone catches me reading these eight hundred page beasts, they always ask the same question:
I’m already employed as a Software Engineer, and I’m not reading these books to earn an additional degree, moreover, these books can’t be fun to read, so why would I spend time doing this when I could be smelling the roses or whatever normal people do with their spare time.
In the following thousand or so words, I’ll do my best to answer that question.
Reason 1: Arts Deeper Than I Possess
That Gandalf quote encapsulates the sum-total of my experience using open-source tools and projects. While using others’ tools saves valuable time and provides an assurance that I’m using engineering a thousand times better than my chicken scratch attempts at good work, to get the most out of other peoples’ code, I still must understand what the damn thing does, and hopefully some of how.
The chances of finding well-documented open-source projects… Well, would you spend your valuable off-work time writing documentation? I read Computer Science textbooks for fun and I think people who write technical documentation for fun are weird. It sounds a lot like work.
Accepting the above paragraph’s premise, the odds of finding well-documented open-source projects is like finding that a squirrel hid a cache of Cadbury Creme Eggs right where you hunted for food when you’re starving in the wilderness. So what’s a developer to do? Read the self-documenting code.
Self-documenting code isn’t really real, but understanding what’s going on might be easier if you’ve eaten your textbooks… or read your vegetables.
Just this reason should be enough for any sane developer to continue studying long after they leave academia.
Reason 2: Superior Depth of Coverage
When I hear others talk about how they continue their education, I most often hear about Reddit’s r/programming, or so-and-so’s blog.
While I love blogs to gain a shallow understanding of the subject, they’re appetizers, not main meals. First off, a thousand words isn’t enough to convey complex ideas. Second and more importantly, microeconomic incentives differ between textbook writers and software bloggers. Software bloggers usually blog about what they’re doing or what excites them. They rarely write about fundamental research, a chronically underfunded and undervalued part of the engineering ecosystem.
Textbook writers want to sell copies, and the name of the game there is supplanting prior seminal works in the field with the most well-researched and relevant work they can provide. They evenly bake their cookies.
Lest I be accused of placing myself above others in regards to my technology coverage, I am not. I blather on about type safety, functional languages, and lately, compilers. I rarely write about more common Software Engineering paradigms and concepts, like Object-Oriented Programming, Test-Driven Development, Dependency Injection…
While I’d love to say that others write more passionately on these topics, I actually just don’t find these subjects as interesting and time is limited. Besides, these topics get rammed down my throat during corporate work anyways, why would I cover them in my off-time?
I do refer textbooks as often as I can. They’re more valuable than my facile coverage here, and why should I reinvent the wheel?
Reason 3: Exposure to Broad Domain Spaces
Reason 4: I prefer hardcopies
Growing up, I read the Lord of the Rings and the image of Saruman’s library at Isengard or Gandalf in the Steward’s Library at Gondor enraptured me more than which humans killed which orcs in which war.
Working in technology, almost every person who sees me carrying a hardcover copy of a textbook reminds me I could have it on Kindle. If that works for you, by all means, save yourself some space. For me, an unread pile of meatspace books commands more attention than a digital backlog. Studies have also shown that people remember what they read in a hardcopy for longer.
Practicality aside, I want my wizard’s library, and I’m willing to pay for the books and the space they occupy.
Reason 5: Because it IS fun, dammit!
When I’m caught reading textbooks, people assume I’m going for another degree. If I say I’m doing it just for fun, people assume it must be WRONG BAD FUN.
Yes, I enjoy reading textbooks. It’s not mindless goof-off fun, but it’s mind-expanding, active, and challenging in a way my Netflix and anime backlog isn’t. On some days, I refuse to read textbooks, write code, learn a new natural language, or dig into a novel. Some days, moving pictures is all I’ve got energy for.
These more intensive activities can still be pleasurable.
And even if it isn’t fun right now, I think of the Japanese phrase
Three years on a rock
Translating the intent: without spending three years on a topic, you cannot know whether it’s for you or not. My first years of programming and Japanese both were a pain in the ass: Tons of heavy-lifting for no emotional payout and constant mental fatigue from continuously being exposed to totally unfamiliar concepts.
It’s only now, after years, that I get to do fun things, like tinker with evolutionary algorithms or read Japanese-language novels. If I’d given up because it wasn’t initially fun, I’d never know the joy I have now.
So to summarize, buy and read a textbook. Doesn’t matter the subject. Because who knows, the subject could be fun.