Reading is inevitable to keep up to date with the latest technologies and rapid changes happening in the programming world. But technology is nothing but a tool for getting things done. What one has to understand are the concepts and principles underlying these technology and the core principles of development. These are to be gained through our own experiences and also from the learnings and the experiences of others. Books are a great source of such experiences, and this post is a list of those that I have found interesting and helpful. I have not read all these nor was I able to fully understand whatever I have. These books are to be read/referred to multiple times, practiced and adopted into our work. It’s also worth referring other books from the same author’s or other writings as they are among the pioneers in our industry.

The books would speak for themselves and I don’t think I can do justice writing a summary to any of these. So I have decided to just list them down here(in no specific order). It’s worth having a personal copy of each one of these in your bookshelves. (mine is still short of some of them).

Code Complete
Test Driven Development
Applying UML and Patterns

Domain Driven Design

Rest in Practice
The Pragmatic Programmer

UML Distilled

The Mythical Man-Month

Structure and Interpretaion of Computer Programs
Agile Principles, Patterns and Practices

Patterns of Enterprise Application and Architecture

Hope you start of this year off with some nice readings and gift yourself with some these master pieces. I am sure that I have not covered all of them and there are still more to be ‘chewed and digested’. Do drop in with a comment on Which books have helped you be better in programming.