In an industry that moves as quickly as programming, you could easily spend every waking second of your life plowing through books and blogs that are relevant to your work, especially in the first few years of learning to code. For most people, this isn’t exactly “beach-reading” and I would certainly count myself among that group. With so many new skills to acquire and hone, and only so much time, it’s easy to slip into the routine of reading for knowledge and information and forget about the escapism and delight of reading a good story.
I am, by-and-large, a fiction reader, so I find this conflict especially troubling. Only so many hours a day to read and it’s very easy for those to be spent as an extension of my profession, rather than as a joyous exploration of someone’s else’s artistic vision of the world. The former somehow feeling more productive in the short-term, though in actuality, perhaps less-so in the long-term.
I’d base this claim on three main points. The first is, that I (and I’m sure many people) tend to retain knowledge or facts better when they are presented as a cohesive story. Secondly, reading something that is, by definition, different than what you’ve been doing all day offers new perspective and opportunities for your mind to wander. Lastly, lots of people will retain only so much information every day regardless, so by the evening, it may be more productive to make sure that time spent is pleasant and recuperative, rather than trying to be productive.
Just to be clear, I am in no way saying that you should forego learning about your job or field promptly at 5pm and focus solely on pleasure reading. Rather, I think there are plenty of books which can both benefit the knowledge-hungry developer and offer the escape of a great read. Below are just a few suggestions near the top of my list:
Contents
1. Thinking Fast & Slow by Daniel Kahneman
This book makes today’s short-list for it’s focus on how we actually think and learn. As any programmer – aspiring or veteran – knows, learning the skills to learn and to think in a certain way, are more important in the long-run than the nuts and bolts of any language you decide to hack in.
This hefty work of nonfiction is the product of decades of research by the author, a Nobel Prize Winner in Economics. Simply put, it asserts that thinking is divided into two systems: “System 1 is fast, intuitive, and emotional; System 2 is slower, more deliberative, and more logical.” As you might guess, we humans are often terrible and recognizing when we are, or should be, employing one system versus the other. To that point, I would say that programmers can often get stuck in a single mode, despite the variety of their tasks, and it is therefore beneficial to spend real time exploring their metacognition.
If my sales pitch hasn’t convinced you, perhaps it’s worth knowing that this book was the Winner of the National Academy of Sciences Best Book Award in 2012 and named one of the Economists Best Books of 2011, among many other similar accolades.
2. Zen and the Art of Motorcycle Maintenance by Robert M. Pirsig
If you’ve ever read a list of “best books” for just about any topic, there’s a good chance you’ve seen this one listed before – and with good reason. Pirsig crafts a uniquely balanced and deep story of a motorcycle journey with his young son, wherein he explores his own consciousness, love of nature, bike mechanics, personal relationships and much more. Continually connecting the underlying dots between seemingly disparate topics like philosophy and auto-repair, the book is simply packed with “ah-ha” moments.
If you’ve ever been struck with how your weekend chore of fixing a broken appliance is somehow just like debugging code, or how your thought patterns can be completely upended by a simple change of scenery, then this book is for you. Actually, scratch that. If you can read and you haven’t read this book, then this book is for you. It deserves all the praise it gets.
3. Moneyball by Michael Lewis
First things first: it’s totally different than the movie. I liked the movie plenty, but I don’t think it comes packed with the same kind of noggin-food as the book. I know, big shock there.
This book explores, in a fun page-turning narrative, how one baseball manager uses his very limited payroll to craft winning teams in the big-money Big Leagues. Ample time is spent decoupling the statistics baseball fans traditionally obsess over from the actual drivers of winning and losing. If that intellectual journey doesn’t appeal to you, then you should probably pass on this one, but if it does, you’ll be richly rewarded.
Much like we spend weeks refactoring something that already “works” or spend years refining software to solve a single problem, this book beautifully illustrates how a new perspective and just a few new tools can turn a system on its head.
4. The Goal by Eliyahu M. Goldratt
A staple of business school curriculae worldwide, this book takes a fictional stroll through the world of operations and efficiency. How can a so-called agile team of developers work long hours and still not ship features on time? How can a single developer seemingly move forward and not get anywhere worth being? Goldratt gives insights to these types of problems and their solutions. Using a series of clever analogies, our protagonist, an operations consultant, finds connections between his technical work and unrelated everyday phenomena like leading a cub scout troop on a hike. The book is brief and full of enough simple and powerful examples that one can look past the utilitarian turn of phrase.
5. Brave New World by Aldous Huxley
A masterpiece on many levels, this book deserves its spot right next to Orwell’s 1984, but is perhaps even more relevant in our modern day, especially in terms of programming. Huxley sets a strange but all too plausible scene given our societal march towards science, virtual living and technology. Taking themes like perfection, harmony, hygiene and pleasure to absurd ends, we see how close utopia and dystopia might be to each other.
Thought provoking in a similar way to the quasi-sleeper hit Black Mirror, Brave New World sacrifices neither plot, nor substance, nor beauty. Will our fascinations with screens completely undermine our personal relationships? Will genetic modification forever change what it means to procreate? Will the Oculus Rift be the soma of the next decade? These are interesting things to consider as we spend our hours coding our newly digitized version of the real world.
6. Mother Night by Kurt Vonnegut
This may be the first time in history that a Vonnegut book, other than Player Piano, was listed directly after Brave New World. Along with 1984 and perhaps a few others, they constitute an exclusive club of prescient and compelling technologically-oriented classics. But let’s wheel out a slightly more obscure Vonnegut gem for this particular list.
Mother Night is, by Vonnegut standards, very light on science-fiction. No aliens or ice-nine in sight. It does however, have one unique distinction, by Vonnegut’s own account:
“This is the only story of mine whose moral I know. I don’t think it’s a marvelous moral, I just happen to know what it is: We are what we pretend to be, so we must be careful about what we pretend to be.”
We as developers often enter the field because of the thrill and freedom of creating magic from nothing. Marvelous machines from tiny bits, which we can, nowadays, share across continents with a tap or a swipe or a click. There is joy in the activity itself as well as hope in the blue-sky of limitless opportunity and potential. It is therefore doubly unfortunate that so many once-pie-eyed programmers settle for spending their days toiling for little more than a paycheck or even worse aiding those forces they would rather be fighting. As you might expect, Vonnegut spins a satire far darker and more intriguing than a disillusioned coder working for some soulless bank, but as always, his insight transcends both time and culture.
I hope these books find their way onto at least a few more nightstands as a result of my ramblings, but I am equally hopeful that you all might suggest some other great books that might be of both “use” and pleasure to the growing throngs of our ilk.
If you’d like to read more from Gabe, check out some of his post recent posts: The Programmer’s Journey: Ends, Means and the Stuff In-Between(s) and What Every Junior iOS Developer Needs to Know.
You can also browse all of his iOS courses and workshops in the Treehouse Library.