Agile Zone is brought to you in partnership with:

John Esposito edits Refcardz at DZone, while writing a dissertation on ancient Greek philosophy and raising two cats. In a previous life he was a database developer and network administrator. John is a DZone Zone Leader and has posted 320 posts at DZone. You can read more from them at their website. View Full User Profile

Ask DZ: What Book Do You Think Every Programmer Should Read?

  • submit to reddit

Do you ever think about all the great books for programmers, and then form your opinion on the one book that every programmer should read?  Maybe a traditionalist will pick Donald Knuth's The Art of Computer Programming. Or maybe Fred Brooks' The Mythical Man-Month, for a more human-oriented take.

If you're really deep into a particular language, then perhaps you really love something like Dennis Ritchie's The C Programming Language or (even for non-Python coders?) How to Think Like a Computer Scientist.

Grigory at Online Hut recently claimed that the best programming book is Charles Petzold's Code: The Hidden Language of Computer Hardware and Software. His reason? It helps you understand how computers work.

So maybe include some reasons why your chosen book is so great, and/or some examples of how it helped you. Maybe the book you choose won't be strictly about programming.  Just think about the books you've read and if there's one that stands above the rest as a must-read for any programmer.




John Esposito replied on Mon, 2011/10/31 - 11:34am

I really like Steve McConnell's Code Complete: strong claims, clearly stated, presented with a practical eye and plenty of nice graphical summaries.

Roger Studner replied on Mon, 2011/10/31 - 12:01pm

Wow.. hard to pick one.. i'm going to go off the obvious track:


Rob Harrop's Pro Spring (from back in the 1.2 days).  I had come from years of Swing and JESS coding.. C++ before that.. and had just gotten into doing web apps.. and Spring + DI changed my view of constructing software more than anything before or since.



Michael Wooten replied on Mon, 2011/10/31 - 12:29pm

By far the most important programming book I ever read was Martin Fowler's "Refactoring: Improving the Design of Existing Code". That book completely changed how I program.

Cristian Vasile... replied on Mon, 2011/10/31 - 12:41pm

I would heartly recommend "Clean Code: A Handbook of Agile Software Craftsmanship" by Robert C. Martin. It's about how to write maintainable programs: naming, method length, etc. If all developers would read it, the maintainance cost (and maintainers unhapiness) would decrease dramatically.

To quote Martin Fowler, "Any fool can write code that a computer can understand.  Good programmers write code that humans can understand."

Josh Chappelle replied on Mon, 2011/10/31 - 12:45pm

I believe everyone should read "Design Patterns: Elements of Reusable Object-Oriented Software" from the gang of four. I believe that knowing the basic design patterns that are described in this book are crucial to being a good software developer.

Attila Magyar replied on Mon, 2011/10/31 - 1:36pm

Growing Object-Oriented Software Guided by Tests is one of the best about object oriented design and TDD.

Albert Liptay replied on Mon, 2011/10/31 - 3:01pm

After reading all of the above, I recommend: "Domain-Driven Design" by Eric Evans Makes you think twice about the heart of your code and the rest is just plumbing...

dennis sellinger replied on Tue, 2011/11/01 - 5:05am

Supposing that everyone has read the Clean Code, Design Patterns, etc. books. I do like Holub on Patterns for a fresh, alternative look at OO design and implementation

Sina Bagherzadeh replied on Tue, 2011/11/01 - 5:37am

I suggest "Introduction to Algorithms" by CLRS (Cormen,Leiserson,Rivest,Stein). I believe a programmer without datastrcture and algorithm design knowledge is not a real programmer. I am sure it is useful for every programmer from server-side programmer to device programmer.

Sivaprasadreddy... replied on Tue, 2011/11/01 - 7:19am

As a Java Developer I love the following books:
1. Expert One-on-One J2EE Design and Development
2. Clean Code: A Handbook of Agile Software Craftsmanship
3. Effective Java

Bogdan Marian replied on Tue, 2011/11/01 - 8:52am

I would choose "Patterns of Enterprise Application Architecture" by Martin Fowler - contains lots and lots of patterns...

Nick Portelli replied on Tue, 2011/11/01 - 10:43am

I tried reading Code Complete, never finished nor got much out of it. Too dry. Must reads are Passionate Programmer and even How to Win Friends and Influence People. What good is being an excellent programmer if you can't communicate?

Rafal Borowiec replied on Tue, 2011/11/01 - 11:58am

The pragmatic programmer A. Hunt, D. Thomas, Clean Code: A Handbook of Agile Software Craftsmanship Robert C. Martin, Implementation patterns K. Beck. And I believe these books changed the way I program.

Mladen Girazovski replied on Tue, 2011/11/01 - 1:38pm

1. "Refactoring - Improving the Design of existing Code" by Martin Fowler

2. "Clean Code" by Robert C. "Uncle Bob" Martin

3. "Domain Driven Design" by Eric Evan

4. "Test Driven Development" by Kent Beck

5. "XUnit Test Patterns - Refactoring Test Code" by Gerard Meszaros

 "Design Patterns - Elements of Reusable Object-Oriented Software"  by the GoF is a bit outdated imho, but the patterns of course should be well known to a developer  (and one them should be avoided ;))

"Effective Java 2nd Edition" by Bloch should also be well known to any Java Developer.

Funny to see how many othes here have the same opinions about the same books :)

Andrew Spencer replied on Tue, 2011/11/01 - 4:26pm

Whilst I approve of nearly all the recommendations above, if there can be only one, then it has to be The Pragmatic Programmer.  It's the foundation text for the profession of programming.

dennis sellinger replied on Fri, 2011/11/04 - 2:01pm

From the list above, there seems to be about 5 (reoccurring) programming books that are good... pretty slim pickin's when you consider all the books published every year... In addition, there are no surprises or unknown gems.

Giorgio Sironi replied on Sun, 2011/11/06 - 5:28am

Since it has not been cited yet, I'd like to address a different bottleneck. My book of choice would be Peopleware: Productive Projects and Teams by Tom DeMarco and Timothy Lister.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.