Iris Classon
Iris Classon - In Love with Code

Stupid Question 117: For the new year- which books are a must read for developers?

[To celebrate my first year of programming I will ask a ‘stupid’ questions daily on my blog for a year, to make sure I learn at least 365 new things during my second year as a developer]

For the new year- which books are a must read for developers?

I’ve been recommended so many books, and as the list grew longer I somehow even managed to misplace it. During one of my frequent clean reinstalls it vanished among my backups and I just can’t find it.
So I searched the internet so I could plan my reading for 2013 and came across a post on StackOverflow where the SO users had together created a must-read list for programmers.

What is the single most influential book every programmer should read?

The top ten looks like so (and thankfully I have some of the books, and have even read/am reading some of them):

  1. Code Complete (2nd Ed) by Steve McConnell.
  2. The Pragmatic Programmer by Andrew Hunt and David Thomas.
  3. Structure and Interpretation of Computer Programs by Harold Abelson, Gerald Jay Sussman and Julie Sussman.
  4. The C Programming Language by Brian W. Kernighan and Dennis M. Ritchie.
  5. Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein.
  6. Refactoring: Improving the Design of Existing Code by Martin Fowler, Kent Beck, John Brant, William Opdyke and Don Roberts.
  7. Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides.
  8. The Mythical Man-Month by Fredrick P. Brooks, Jr.
  9. The Art of Computer Programming by Donald E. Knuth.
  10. Compilers: Principles, Techniques, and Tools by Alfred V. Aho, Monica S. Lam, Ravi Sethi and Jeffrey D. Ullman.

(Have a look at the full list on SO to see which other programming books are on the list but didn’t make the top ten)

I will – and I promise this – read the top ten books. But before I go ahead and purchase them, I would like to ask you – my dear friends and trusted advice givers , how would your top ten look like, and what do you think is missing from the list?
I’m currently finishing Code Complete and I’ve read the Pragmatic programmer. I have also started on Patterns of Enterprise Application Architecture by Martin Fowler (it’s a heavy read so I’m giving it a little bit of time). Tell me what to read next, and I’ll make sure to write a blog post about the book :)

Comments

Leave a comment below, or by email.
Lars Wilhelmsen
1/1/2013 1:15:33 PM
10000x kudos if you manage to get through TAOCP in a year - or a lifetime, for that matter :) Excellent bookset - but *very* math/theory heavy.

 --larsw 
Roland Zwaga
1/1/2013 1:22:34 PM
That list is pretty excellent actually, I guess one of the few missing from it is this one:

http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882

cheers,

Roland 
Roland Zwaga
1/1/2013 1:23:45 PM
Reply to: Roland Zwaga
Aha, and then I read the actual list and saw that Clean Code was actually at number 11 :) So, never mind... :) 
Iris Classon
1/1/2013 1:23:57 PM
Reply to: Roland Zwaga
The very first book I read actually,- it is such a good book! And easy to read! I couldn't even code when I first read it, but it helped lay a good thinking foundation. I have had to re-read it thou,- you get more once you code more :) 
Josh
1/1/2013 1:25:52 PM
Head First Design Patterns! 
Robb
1/1/2013 1:26:17 PM
Refactoring: Improving the Design of Existing Code.  Only because at some point in the next couple of weeks and over the year, you will have to. 
Robb
1/1/2013 1:29:17 PM
Reply to: Robb
Doh!!!  Forgot this great book; Agile Principles, Patterns, and Practices in C# 
Iris Classon
1/1/2013 1:29:18 PM
Reply to: Josh
I read that one but stopped halfway, it's a bit messy if you know what I mean? Maybe I should give it a second try, I really like the Head First books otherwise I must say :) 
Claudio Bernasconi
1/1/2013 1:45:47 PM
Clean code from Bob Martin and Head First Design patterns were mentioned above from others. If you're interested in C# there is a book which is definitely a must read:

C# in Depth (2nd edition) from Jon Skeet: http://www.amazon.de/C-Depth-Jon-Skeet/dp/1935182471/
Maybe there is a 3rd edition to come with C#5? But up to now I would still highly recommend the 2nd edition.

Short comments about these books on my blog after I read them: http://www.claudiobernasconi.ch/books/

Have fun, hope you'll find the time to read whatever you chose. It's pretty hard to read all of them I believe ;-) 
Mike Reynolds
1/1/2013 2:03:05 PM
Hi Iris,

Clean Code by Uncle Bob Martin has changed how I approach and think about development.  In many ways, it has changed my life.  

Clean Coder by Uncle Bob Martin -- http://www.amazon.com/Clean-Coder-Conduct-Professional-Programmers/dp/0137081073 -- is another good one, albeit more around professional etiquette as a developer.

I would recommend reading the following two books on design patterns before reading the GoF's book:

http://www.amazon.com/Design-Patterns-Explained-Perspective-Object-Oriented/dp/0321247140

http://www.amazon.com/First-Design-Patterns-Elisabeth-Freeman/dp/0596007124

These two books will give you a good foundation, and perhaps fill in some blanks you'll encounter while reading the GoF's book.  I am happy to have read the first one before reading the GoF book, and wish I had read the latter before but hadn't.

Mike 
Mark Kola
1/1/2013 2:08:06 PM
I would recommend reading The Nomadic Developer.  I had this as pretty much required reading for any consultant that was working for me.  It talks about being a developer from a consultant perspective.

http://www.amazon.com/The-Nomadic-Developer-Technology-Consulting/dp/0321606396

Thanks for the great posts! 
Scott Koon
1/1/2013 3:45:01 PM
I think this list is too academic, Even Donald Knuth says not to read his book. :P I'm 99% sure that the list on Stack Exchange is not in order of importance.
I would remove these from the list, or at least put them WAY down on the list:
SICP
TACP by Donald Knuth
The Compiler book (aka the Dragon book)

I would substitute:
The Little Schemer - It's not about the Scheme language at all, it's about teaching recursive thinking. Once you "get it", it changes the way you think about programming.

Code by Charles Petzold - Explains how computers work by starting with Boolean arithmetic and working towards RAM and video cards. Short read, but essential in today's throw-away culture.

Don't Make Me Think - I've bought this book 3 times, every time someone borrows it they keep it. Essential if you are doing ANY kind of UI or UX work.

Test-Driven Development: By Example - Nice and practical. Resolves a lot of the questions that surround TDD like "How much should I test?" and "What should I test?". Shows how TDD is less about the tests and more about the design of your code.

Writing Secure Code (2nd Edition)  - You won't work for me or with me if you don't own this unless there is a threat involved. 
Richard Beier
1/1/2013 5:01:08 PM
Seconding The Pragmatic Programmer, Clean Code, TDD By Example, and Agile Principles, Patterns, and Practices in C#.

Domain-Driven Design is the best book I've read about designing enterprise software - though it is quite dense.

Specification By Example is another great book. It's all about how to work with customers and product owners to collaboratively specify and automatically verify requirements.

Growing Object-Oriented Software Guided by Tests is the best technical book I read last year. It shows how to use TDD to drive out the design of a system, using a single extended example. 
Jon
1/1/2013 5:06:25 PM
If doing .NET, I strongly recommend CLR via C# by Jeffrey Richter. The 4th edition was just released! 
Johan Sundström
1/2/2013 1:41:31 AM
Hi Iris,

It is a very nice list of books you have there. I've read most of the books and agree that they are among the best books out there in our field. 

Another book that is also worth reading is the The Passionate Programmer by Chad Fowler . I found it to be a good resource to take your programming mindset to the next level. 

For a little more lightweight read I'd recommend Why Software Sucks by David S Platt - this one is a little bit like the  "Don't make me think" book mentioned in the comments above. 
Roland Zwaga
1/2/2013 10:04:13 AM
Reply to: Iris Classon
Maybe a dumb question from me, but are you familiar with Uncle Bob's website http://www.cleancoders.com/ ? I can really recommend the series of video tutorials he has up there. Watch them with your team, they are very funny and very educational. 
Sean Kearon
1/3/2013 1:23:07 PM
Best programming book overall: Code Complete.
Runner up programming book: GoF Design Patterns.

Best .NET books = Framework Design Guidelines and CLR via C#. 
Markus
1/6/2013 7:59:51 PM
Hi Iris, 

I would recommend Pro C# 5.0 And The .NET 4.5 Framework (6th Edition) by Andrew Troelsen. On nearly 1500 pages it covers almost the complete ".NET Universe", it's easy to follow and full of examples.

Markus 
Mark Carr
1/11/2013 5:52:42 PM
The Art of Computer Programming - Donald E. Knuth. I challenge you to read this in one year! All 4 books (published so far). Computer science 
Nagy Ladislau Radu
1/22/2013 3:11:03 PM
I would recommend Effective C# (Covers C# 4.0): 50 Specific Ways to Improve Your C#. It covers many C# and .NET toolsets, comparing similar ones with very good use case scenarios, in a pragmatic way. 


Last modified on 2012-12-31

comments powered by Disqus