I have been an avid reader my entire life, and I have a variety of book preferences in different subjects, fiction and non-fiction alike. However, in adult years, people usually let this passion of theirs fade away into oblivion, instead devoting their time to other endeavors. It is no surprise that few adults read on a regular basis, regardless of book format (we’re counting e-books and audio-books as well!). But I am not going to write about the impact of social media on our attention span, nor am I going to judge from my nerdy high horse. I will, however, try to convince you that in our profession it is necessary for people to read. A lot. I also have some book recommendations for programmers out there, and I hope you’ll give them a shot.
Here at Horus Habari we have recently started to invest in our very own library of (mostly) technical books. Some of these books have been a godsend for us, since we expanded our horizons in a very exciting fashion. Each book contributes in its own way to our development, and I believe that a good programmer must be well read in the following topics:
Biographies for programmers
Biographies and, of course, autobiographies can be a great source of inspiration for professional programmers, especially for those having the ambition to innovate. One of the most important features of human kind is that they do not need to re-live the same stories over and over again. They can analyse others’ perspectives, learn from their successes and failures, expand on the knowledge of their peers.
A high number of inspirational figures are notable as true examples, which makes for great biographies. Among the recommendations:
- “Steve Jobs” (by Walter Isaacson), the “official” biography of Apple’s founder. Walter Isaacson is a phenomenal biography writer, which probably explains why Jobs approached him.
- “Losing My Virginity” (an autobiography by Richard Branson). The founder of the Virgin group is a very interesting character, with a wonderful personality. Fans might also appreciate Branson’s other books, since he leaves his characteristic mark on all his work.
- “Elon Musk” (by Ashlee Vance). The biography of the well-known innovator and entrepreneur is a must read for those who need inspiration. Elon Musk’s young-age hardship and his continuous strive to change the world will undoubtedly leave a mark on you.
Bonus: “I am Zlatan Ibrahimovic” (by David Lagercrantz and Zlatan Ibrahimovic). Although this book doesn’t touch technology-related subjects, as do the other recommendations here, you will absolutely love this book if you are one of those “rock-star/ninja” programmers. Even if you’re on the shy and introverted side, you can learn about appreciating your self-worth from the one and only Zlatan.
Programming… well, programming books for programmers
The most difficult part about reading a good technical book is choosing it. Many a times there’s intricate coursework and/or swamp-like text, which makes you dread ever starting reading on that subject. But once in a while, a really good technical book comes along. It makes the subject easy to understand and apply, it is easy to read and… we’ll probably call it “The [subject] Bible” at some point.
A problematic issue with technical books (unfortunately not restricted to programming), is that many a times you can’t tell hype apart from quality. Therefore, remember to always read the reviews of a technical book, and consider the number of ratings as well. A good technical book should have a high number of readers and a high average review score. For a pleasant experience, choose wisely and only after much considerations. Or, why not, have a pick from our recommendations:
- The Algorithms Bible: “Introduction to Algorithms” (by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein)
- -The Artificial Intelligence Bible: “Artificial Intelligence: A Modern Approach” (by Stuart Russel and Peter Norvig). Often called AIMA, and part of many university curricula.
- The work ethics Bible: “The Clean Coder” (by Robert C. Martin). If I’d have to recommend just one book for programmers world-wide, I would recommend this book. It contains a lot of valuable information and tips for a balanced programming work life and true professionalism.
- The Design Patterns Bible: “Elements of Reusable Object-Oriented Software” (by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, also known as the Gang of Four or GoF).
- The Enterprise Patterns Bible: “Patterns of Enterprise Application Architecture” (by Martin Fowler et al.). This one in case the previous one already seems simple.
Social studies books for programmers
It took me a while to come up with an umbrella term large enough to encompass psychology, economics, history and self-development. Recently there has a been an explosion of books in these subjects, but with simple, lay-person language. There are many resasons why these books are so popular, one of which is that you have the opportunity to learn about humans without going through the mistakes yourselves. As you might recall, I’ve said this before, with biographies. Now, it’s just the scale that differs. Here are our “gateway to social studies for programmers” picks:
- “David and Goliath: Underdogs, Misfits, and the Art of Battling Giants” (by Malcolm Gladwell). This book argues that many of the things we consider disadvantages are in fact advantages. Gladwell’s writes in a very light and easy to understand tone, with lots of real-life examples. It is a must read for start-up owners!
- “Predictably Irrational: The Hidden Forces That Shape Our Decisions” (by Dan Ariely). Reading this, you will get insight on how we make decisions, and how our rationality is sometimes not part of the equation.
- “The Undercover Economist” (by Tim Harford). Do you think that each action (even the ones generally thought of as non-economics related) happen in isolation? Tim Harford will convince you of the opposite. In his economics-driven world, everything is interconnected in a game of strategy and negotiation. Game Theory aficionados will surely click with this book.
- “The Third Chimpanzee” (by Jared Diamond). A book on the evolution of early humans, it goes into much detail regarding our societies, and the biological reasons of our behaviours. What I like most about Jared Diamond is his macro-view on things. Just like in his other book, “Guns, Germs and Steel”, another of my favourites, he does not go into irrelevant minor details, but rather has a very top-down approach of complex topics.
Science fiction books for programmers
Robert C. Martin (also known as “Uncle Bob”), one of the best-known software engineers and authors world-wide, stated in his book “The Clean Coder” that often he feels the need for creative input such as books and movies, to support his creative output of qualitative code. His personal preference? You guessed it. Science Fiction.
A good Science Fiction book makes you wonder. It makes you think about ethical dilemmas and future possibilities. It is also a subject that “sits well” with programmers, since future technology is something we often think about. I often feel defensive about this particular area of fiction, mostly because many people start off with “if it’s those robots things, I don’t like them”, while I generally enourage people to try a few times before they make up their mind. Some of the best Science Fiction books I’ve ever read are:
- “The Naked Sun” (by Isaac Asimov). In fact, you can take up any of Asimov’s books and you’ll probably be satisfied.
- “Ender’s Game” (by Orson Scott Card). A Harry Potter-esque story of a special boy, student in a space war academy, but with a very interesting twist at the end. Shhh, spoilers!
- “The Old Man’s War” (by John Scalzi). Set in a future where old people can sign up for an interplanetary defense army, this book’s twist will blow your mind. Shall I give you a small hint? Well, you should firstly ask yourselves: “How can 75-year olds fight space wars?”
- “1984” (by George Orwell). This is a classic. Actually, we might say this book invented the dystopia genre itself, with its bleak version of a future where every action is under complete surveillance. Not only is the premise interesting, but the narrative is great itself.
So what do you think? Let us know in the comments below if you think other genres need to be represented here. Have you read these books? Keep us posted with your progress and we would love to give you more recommendations in the future. Happy reading!