Favorite Books of 2014
It’s been a slow year. After reading 100 books in 2013, I’ve slowed down to just 27 this year. On the brighter side, I was more picky about what I read this year, so I got to quite a few books that I’ve been meaning to read.
1. Schindler’s List (Thomas Kenneally): This book presents the horrors of the concentration camps during the Holocaust, and tells the true story of Oskar Shindler’s attempts to protect the Jews working in his factory. The Spielberg movie based on this was brilliant, but reading the book gives more background about those horrific times.
2. Ptolemy’s Gate (Jonathan Stroud) is the final part of the Bartimaeus trilogy, and might have one of the best endings I’ve seen in a fantasy series. I didn’t start the book as a huge fan of the series, but the final quarter of the book changed that.
3. The Shadow Rising (Robert Jordan): As I mentioned in last year’s list, I took my time to like the Wheel of Time series, but this 4th book is where it really kicked off for me.
4. Goat Days (Benyamin): I’d heard a lot about the Malayalam novel Aatujeevitham, and was delighted to find an English translation. This tale of a man who ends up in slavery in Saudi Arabia was an extraordinarily touching story.
5. And Then There Were None (Agatha Christie): I’ve been a fan of Christie novels since I was a kid, but haven’t read too many of her books recently. So it’s been a nice to run into what is considered as one of her very best novels.
6. 1984 (George Orwell): This classic work of dystopian fiction has been on my to-read list for a while. I can see why this book has been so influential. With the world growing ever more Orwellian, this seemed like the perfect time to read this.
Apart from these, Neal Stephenson’s Cryptonomicon, Hemingway’s The Old Man and the Sea, and JK Rowling’s The Silkworm (written under the pseudonym, Robert Galbraith), were all excellent reads as well.
Most of the non-fiction I read were technical books, but there were two non-programming books that really stood out:
A Short History of Nearly Everything (Bill Bryson) is one of the most entertaining books about science that I’ve read in a while. Bryson isn’t a scientist, but he’s a fantastic writer, and is thorough in his research about the topic he’s writing about.
On Writing Well (William Zinsser) was another great read. When writing about how to write well, an author sets a pretty high bar for themselves, and Zinsser easily exceeds those expectations.
Structure and Interpretation of Computer Programs took more of my time this year than any other book, but I’m still only a quarter of the way through it. Of the books I did finish reading, there were three that I really enjoyed.
1. The Pragmatic Programmer (Dave Thomas, Andrew Hunt)
This is one of the most highly recommended programming books, and I wish I had read this years ago. It’s packed full of programming wisdom and common sense advice about becoming a better programmer.
The best thing about the book is how it gave me ideas about how to do something more elegantly in the codebase I’m working on. Six months down the line, I’m really grateful for those ideas.
2. Build Your Own Lisp (Daniel Holden)
I’m not sure how to describe it - a book that teaches how to build a Lisp using C code, or one that teaches C using a Lisp interpreter as an example? Either way, I enjoyed working through the code examples.
It’s been nearly 3 years since I last worked on C professionally, and this was a good reminder how challending debugging C code can be. In the process I also managed to learn how to properly use a debugger.
3. Understanding Computation (Tom Stuart)
As a programmer without a CS degree, I’ve been curious about CS topics but always found them intimidating. This book helps bridge some of the gaps, and the fact that the code examples are in Ruby helped a lot.
I still don’t understand most of the topics that the book covers, but reading it certainly made me think more about the fundamentals of computing.
For this year, there are a bunch of technical books sitting on my desk, waiting to be read: SICP, Programming Pearls, Seven Languages in Seven Weeks, and Patterns of Enterprise Application Architecture. There’s also the Wheel of Time series that I’ve been meaning to finish off since last year.
So many books. So little time. [sigh]