I read a lot. But not much the kind of books that everyone reads like novels, I mostly read books that have some connexion with programming, entrepreneurship and creativity.
You can find in my bookshelf the following books:
Books about personal development, like: How to be more productive? How to be happier? How to control your emotions? How to unleash your creativity?
High level books about my discipline that I read to grow up as a better software engineer (or as I like to call myself, as a better craftsman).
Technical books related to the technologies and tools that I use everyday.
My addiction to reading has become worse since I bought an iPad, which combined to the Kindle application makes my reading experience a blast! Although, to be honest with you I miss how books smell sometimes – Yeah, I am that weird dude who smells books at the library, and you know what? It turns out that I am not the only one.
Anyway, now that 2012 is over, I wanted to take a step back to look at my last year’s favorite books. The goal is not only to keep track of what I read, but also to keep track of what I don’t read (Yes I often buy many books at the same time and often forget to read them after a while).
Coders At Work This book offers a collection of interviews with very famous developers (and sometimes even legends), to name a few: Jamie Zawinski, Douglas Crockford, Ken Thompson, Joshua Bloch and even Donal Knuth in person! Each interview is very rich both in terms of length (above 30 pages) and content. Indeed, the author, asks very interesting questions about their what brought them to programming, their programming style, the tools they use, the most difficult bug they had to solve as well as other questions that depend on who the interviewee is. So far, I have been reading 50% of that book and I have learned a lot.
Effective Java – Second Edition I bought this book when I started using Java professionally (when I started Android development during my internship 2 years ago) and I urge you to do the same if you haven’t read it yet. It is written by Josh Bloch the guy who designed many Java features: generics and collections for example. This book covers topics like: patterns to object creation, generics or concurrency. The best way to master a language is to read its specification, but this book might be a good replacement to it.
The architecture of Open Source Applications I bought this one after a colleague recommended it. It’s a collection of reflections on different Open Source projects. A non exhaustive list of these projects include: Asterisk, Bash, Eclipse, LLVM and Mercurial) written by the authors of those projects themselves. The premise of this book is, as quoted from the introduction, that Building architecture and software architecture have a lot it common, but there is one crucial difference. While architects study thousands of buildings in their training and during their careers, most software developers only ever get to know a handful of large programs as well. And more often that not, thsoe ar eprograms they wrote themselves. They never get to see the great programs of history, or read critiques of those programs design written by experienced practitioners. As a result, they repeat one another’s mistakes rather than building on one another’s successes. I couldn’t agree more. It is really valuable to be able to read some thoughts shared by the authors of the most important open source projects out there, who have been putting so much effort on their design!
The Algorithm Design MANUAL Every serious software engineer should keep handy a serious manual about algorithms and data structures. I hesitated a lot between buying this one or buying the very famous Introduction to Algorithms from MIT press. I finally went for this one because it provides both practical and theoretical insights on most of algorithm topics. The killer feature of this book, is also its war stories which tell you how algorithm problems arise in the real world. Highly recommended.
Effective Programming More Than Writing Code CodingHorror is one of the most popular blog written by a programmer for fellow programmers. It is also one of my favorites, given how much quality Jeff Atwood (also the father of StackOverflow) put into each blog post. When I saw that he wrote a book and that he was only selling it for 2.99$, I ran on my wallet and pullet out my credit card to buy it. Of course I don’t regret that decision as the book covers a lot of topics dear to my software programmer’s, engineer’s, craftsman’s (pick the term you wish) heart: How to get shit done, how to hire good programmers, how to test your code, how to design with your users in mind, working remotely etc. The format of the book itself makes each section very easy to read as each chapter is only 2-3 pages long max.
REWORK This is an excellent book written by DHH (the original creator of Ruby On Rails) and Jason Fried on how business should be done differently than what it is right now. It is a highly opinionated book that basically breaks all the current business norms. For instance: planning is guessing, don’t hide your idea from your competitors, don’t kill yourself at work, avoid meetings etc. It is very easy to read as each story is a page or so long only.
Rails AntiPatterns Yes while I am doing Android development at the moment, I have also been doing a lot of server side programming with RoR. One of the things I noticed when I was doing it, is that it’s very easy to come up with a messy codebase. This is the book I have read to improve my skills back then. Have you heard of: Fat Models? Spaghetti SQL? Fat Controller? Bloatted Sessions? Well, these are all anti-patterns covered by the book along many others.
The App & Mobile Case Study Book I bought this book at the San Francisco Museum of Modern Art. It was supposed to contain a list of mobile apps case studies (for iOS though but anyway). I have to say, I was a little disappointed as the case studies where not very constructive. Each case study is composed of 4 sections: The brief, the challenge, the solution and the results.It might sound good but it actually isn’t due to how super short each section is. Sometimes it’s mostly advertisement in my opinion. The only positive thing about this book is that you get to see a lot of app screens that could inspire you. Also, the book itself (not the content) is high quality and it smells good (I smell it every night before heading to bed. I’m kidding of course…). By the way, did you know that TASCHEN (the editor of this book) published a 15 000$ book about Muhammad Ali once? I am not kidding (Although it appears to be selling at 6000$ now).
Outliers: The Story of Success Always wondered why are some people highly successful where others are just above average? Malcom Gladwell, in this book discusses the factors that contribute to high level of successes. Ever heard of the 10 000 hour rule, by which some people agree is the minimum amount of time needed to be an expert on anything? Well, this is where it comes from. Of course, I have always been interested in this topic as I explained earlier on a blog post (beware it stinks cheese as it’s written in french) and I enjoyed this reading a lot.
I was blind but now I see Let me save you some time by cutting the crap and by telling you what this book is really about. In this book, James Altucher, bitches about life. He has obviously gone through a lot of drama in his life, so he wrote a book to share his opinions on what life is really about and how not to fall into some traps (like buying a house, going to college, being stuck at a job you don’t like etc.). A good read overall. Just wear your critical thinking hat while reading it.
Endurance: Shackleton’s incredible voyage This is the story of Sir Ernest Henry Shackleton who was leading a ship named Endurance during an expedition that turned into a disaster. The ship became trapped in pack ice and was slowly crushed before the shore parties could be landed. But thanks to Shackleton good leadership, there was no loss of life during this expedition. I am still going through the very first pages of this book so I can’t tell you more about it now.
The How of Happiness: A New Approach to Getting The Life You Want I bought this book after reading an interesting quote from the book on Eric Larchevêque’s blog Find a happy person, and you will find a project. And honestly, I think, this is by far the most serious book about happiness that you can find out there. The reason why it’s serious is because every statement is backed by some scientific evidences. The author, Sonja Lyubomirsky who holds a PhD in psychology, starts by explaining why some of us are born more disposed to be happy or depressed and in that case describes some daily activities that one could accomplish to feel better and happier.
La Théorie de L’information This is a french novel that relates the digital revolution that started in France 30 years ago with the creation of the Minitel and then describes the chain of events that happened up until now. This book is half fiction and half real. Why? Because, this is based on a real story but the characters are fictional to some degrees. Actually, the hero of the book, Pascal Ertanger, is said to be the fictional representation of Xavier Niel the founder of Iliad/Free. By the way, this is the book that sits on my bedside table right now. So far entertaining and full of information about things that happened before I was born (and even things that happened the day I was born like the launch of a Pink Minitel Service by Xavier N… Pascal Ertanger, hmm).
Steve Job’s biography. Should I say more?
Of course this is what I have been reading (or started reading) in 2012. There are other programming books that I have been reading before and that I highly recommend like: Code Complete (specially if you just started as a professional developer), Design Patterns Head First or The Well Grounded Rubyist (if you want to start learning Ruby – I have of course other programming language books but this one is just excellent that I just decided to mention it). There are also entrepreneurship books that I recommend like Once You Are Lucky Twice You Are Good that talks about the PayPal Mafia or Founders At Work (an equivalent to Coders At Work for entrepreneurs).
So now that a new year has started, I need to start looking for other books. There are probably some good classics that I am planning to buy real soon like the Structure and Interpretation of Computer Programs (who everybody agrees on being one the most important books that any serious developer should read) and I might also buy some books from Martin Fowler. Besides that, what books do you recommend me reading? What books have you read the last year or so? What books are you going to read this year?
Please share your list and cross link it here!!