On Literature & Linked Lists
Why software engineers should read more than just Cracking the Coding Interview
Up until recently, my experience with reading for pleasure followed a typical-but-sad trajectory. I got hooked on reading at a young age, often consuming several novels per week. Then, high school extracurriculars and college applications caused my reading frequency to nosedive to almost never. This habit followed me into college: part of why I studied computer science was its promise of project-based work instead of the incessant reading that characterizes many other majors.
Reading decline is not a new story, and fortunately, it was not the end of mine. Remembering the glory days of elementary school, I grabbed Make It Stick and The Glass Palace — two books that friends had lent to me— and finished them over my winter break. These books drew me back in, hook, line, and sinker. Since winter break, I have pored through ten other books. It feels fantastic to reconnect with this childhood joy!
However, as a computer science latecomer, I’ve always felt the pressure to code, code, code in my spare time. I couldn’t help but wonder:
Would spending my free time reading hinder the development of my software engineering skills?
My conclusion? Improving technical acumen is super important, but readers have a few traits from which software engineers can learn. I present to you the ways in which I believe reading can make someone — like me, and perhaps like you! — a better software engineer.
(Slight caveat: my arguments may also apply to non-engineering roles, but I frame them in the context of the career I know best.)
Reading books from different voices enhances your empathy.
One research study suggests that fiction books build more empathy in readers than nonfiction books. Another study detailed in Scientific American corroborated these results in comparing popular fiction, literary fiction, and nonfiction books.
I think what explains this result is that reading fiction — especially literary fiction — encourages the reader to develop empathy. While many of us are guilty of pigeonholing people on the Internet into stereotypes (picture any toxic comments thread), literary fiction discourages such stereotyping. Because the characters in literary fiction tend to have complex personalities that defy labels, readers have to work harder to understand them. Through this work, readers gain a sorely needed ability: imagining reality from a different perspective.
So why should you, an engineer, get comfortable with new perspectives? You hopefully want to design a product that suits your users well. How can you learn what works well for your users? It takes empathy to understand your user’s needs, potential pain points, and goals. You must put yourself in the target user’s shoes — sometimes literally — to build meaningful products.
Reading fiction is a practice that fosters empathy, and a great place to start developing the empathy necessary for your engineering work. But, let’s say fiction isn’t your cup of tea. Not to worry — the next three takeaways focus on the benefits of a broader selection of books, not just fiction.
Reading can make you a better problem-solver.
To most software engineers, “problem-solver” sounds like an cliché resume buzzword that suggests that someone is adept at addressing bugs and failed deployments. However, the problems that engineers must solve in their day-to-day work go beyond the technical.
Engineering takes teamwork, so software engineers often need to deal with team-related problems. Engineers also write a good deal of code on their own, so they also need to be able to address blockers: technical and non-technical impediments on their progress. Fortunately, reading can build the unspoken but essential problem-solving skills needed to overcome personal and interpersonal issues.
As silly as it sounds, reading books like the Harry Potter series and comics like Avatar: The Last Airbender when I was younger taught me the importance of healthy team dynamics. These children’s books guided me to behave with respect, honesty, and kindness in all of my relationships. If I see a teammate in trouble, I’m more than willing to take a stab at the problem myself, or connect them with someone else who can help. If a conflict arises in my team, I know that the books I have read shown me how to resolve it without damaging the integrity of my team.
I also draw upon books to guide myself and others through the personal struggles we face in our professional lives. When my sister faltered in her study habits as a college freshman, I relayed advice that I had read in Make It Stick about how to maximize information retention. When younger members of Women in Computing — a club I co-organized in college— wanted to rekindle their passion for technology, I suggested they read pop science books like The Code Book.
Readers act as a net that accumulates knowledge from a variety of sources. Upon encountering a problem, they can use any pertinent knowledge that they’ve picked up to provide advice, direction, or even a solution. This is how reading can impact a software engineer’s problem-solving skills.
Reading inspires constant curiosity.
Readers are inherently curious people. After all, why even pick up a book if you weren’t curious about learning something?
Many software engineers treat a technical career as something routine: from stand-up to stand-up, they fall under the illusion that they must do the same thing day in and day out. They trudge along, waiting for a clear-cut promotion from engineer to senior/staff engineer or engineering manager. Even in that new role, they lapse into the same old patterns.
With this mindset, it’s easy to live humdrum lives and work humdrum jobs.
I see curiosity as the antidote to monotony.
Curiosity is a spark that makes you wonder about everything. The more you wonder, the more you question, and the more you question, the more you can create! Software engineering is meant to be a creative practice, one in which you can slip indefinitely into flow state.
Of all the takeaways I’ve outlined, I think the benefits of curiosity are most noticeable in an engineering career. Though we tend to praise ‘geniuses’ in the tech industry, I believe that we should just as strongly exalt engineers who are curious. After all, research suggests that curiosity leads to higher investment in intellectual pursuits over time. Curiosity becomes its own kind of genius.
Curiosity is impactful in the short-term, too. Curious engineers may express new ideas in meetings or try new ways of approaching bugs. Curiosity underpins empathy. Unsurprisingly, research shows that curiosity leads to greater performance at work because curiosity drives engineers to perform several notches above what is expected of them.
Curiosity is the ultimate game-changer in software engineering careers.
Reading reduces stress.
Stress management is nothing new. Many people already have techniques that they use to keep their stress levels low; from meditation to morning walks, I applaud those who have found what works for them.
However, in the office, we don’t always have the space to meditate, or the time to get outside and move around. Reading acts as a convenient alternative: it’s never disruptive to pull out a book at one’s desk or in a lounge area. Better yet, researchers found that reading reduces stress by as much as 68 percent — significantly more than any other stress-relieving activity tested — and that as little as six minutes of reading is enough to notice these benefits. Social anthropologist Ceridwen Dovey even penned a piece in The New Yorker about the effectiveness of bibliotherapy on increasing happiness.
It has been shown that happiness really does boost productivity, and that too much stress can destroy it. Since reading has the power to lessen stress and raise happiness, I believe that it is the key to a more productive workplace with more content engineers.
There you have it, future employers. Ask me how I can apply the books I’ve read to software engineering, not how to implement yet another balanced binary tree. 😉
In all seriousness, the impact that reading books — yes, even non-technical, non-Cracking the Coding Interview books — can have on a software engineer’s career is tremendous. Just as it is never too late to start coding, it is never too late to bury your nose in a good book and benefit from these takeaways.