Book Recommendations for Software Developers
Some time back I prepared a list of books for C/C++ developers based on my experience. Similarly this is a list of books, about general software developments (not specific to any programming language or technlogy). I am linking the book titles to their wikipedia pages or their author or book site.
This book focuses on topics like testing, performance optimization, portability, design, good coding practices,etc. Each chapter introduces the topic with case study. It is like reading 'stories' about programming told by a master story teller. Each story teaches an important aspect of programming.
Authors : Dave Thomas and Andy Hunt
This was the first book in 'Pragmatic Bookself' series of book. It is also one of the BEST. It is most practical advise to practicing software developers that I have seen. Especially for developers who want to develop and improve their skills.
Official "pragmatic programmer bookself" site is http://www.pragprog.com/
Author : Mike Mason
There are 3 variations of this title. (For Subversion, For CVS and For Git.) Anyone using Subversion for their project, this book is a must read. It explains practical aspects of using Subversion in day-to-day work (e.g. repository layout of directories, subversion hook scripts etc, handling binary files and best practices in using subversion).
Author : Mike Clark
"project automation" is an often neglected part by project teams. Usually a good 'automation' infrastructure is developed by product companies. This book talks about continuous build/integration, one click releases, integrating automated testing in the build process etc. The examples are about Java. But the concepts are applicable to every project.
Authors :Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides
No introduction required. If you have not read this book, then you are seriously missed an important book.
Author : Steven C. McConnell
As the name suggests this book is about practical aspects of entire SDLC. It talks about everything from estimation, design to good coding practices, naming conventions, good testing practices, debugging. Just have a look at 'detailed contents'. In short, this is a 'must have' reference book.
Authors : Andrew Oram, Greg Wilson
On internet you will find conflicting opinions about this book. Personally I liked it and I recommendation it. It is great experience learning from the thoughts of software designers like Sanjay Ghemavat (architect behind the google map-reduce), Small regex matcher from Kernighan, Design of Subversion Delta Editor, Design of NumPy iterators, Desing of Pythons dictionaries. Many of those we are using regularly. Its nice to have some understanding of what is going behind the scene. Each author has his own view and ideas about what is a 'beautiful code'. Understanding those different aspects and view points is an education.