Tuesday, August 3, 2010

Top books that I recommend for programmers

In selecting the below books, I try not to choose books that are very language specific (no python in 24 hours kind of book) but rather books that I find are general enough to be of use to most programmers.

Head First Design Patterns
Head First Design Patterns
The Head First series of books takes a fun approach to tackling topics, when I first got back in the programming business this was one of the first books i bought to brush up on Design Patterns instead of the dryer Gang of Four book. You get nice diagrams, background stories and illustrations to make a dry topic fun.

Clean Code: a handbook of agile craftsmanship
Clean Code: A Handbook of Agile Software Craftsmanship
Great book by "Uncle Bob" for all software developers, tells you what makes code clean and readable, gives lots of heuristics and guides. Just go read it, you will become better.

Effective Java
Effective Java (2nd Edition)
Not just for the Java Language, contains lots of tips in general for OO languages, but in general tells you how to write better Java code. Joshua Bloch lead the design and implementation of Java Collections Framework.

Ship It!: A practical guide to successful software practices
Ship it! A Practical Guide to Successful Software Projects

From the pragmatic programmers, all developers know how to code (I hope :) ) but what is important is to actually ship the damm thing. This book gives a nice overview of what are the techniques, infrastructure and process that you will need in order to Ship It!. Although the book doesn't really claim to be Agile but most of the techniques they use all come from the Agile philosophy like continuous integration, small iterations, daily meetings.

The Pragmatic Programmer: From Journeyman to Master 
The Pragmatic Programmer: From Journeyman to Master

Pragmatic advice for programmers covers everything from using editors, version control debugging to requirements.  I guess if there is just one book that covers lots of ground it would be this. Everyone should read this, since its not dry and at time humorous.

 Coders at Work
Coders at Work

I don't think that there is another book quite like this. The book contains 15 people who are considered great programmers, the questions for each person are quite standard and repetitive but that's just the beauty of it. You will see how people mostly agree or disagree about a certain topic. Read it so that you will learn a bit about the history of the programing craft since schools don't really teach the history of programming.

What other good books do you recommend?