Book Recommendations for Software Developers
Important Articles from the history of Software development
- Humble Programmer by Edsger W. Dijkstra.
- Published in 1972
- On the criteria to be used in Decomposing systems into Modules by David Parnas
- (Published in Communications of ACM 1972)
- Basics of the Unix Philosophy
- Fail Fast by Jim Shore and Martin Fowler.
- (Note : Fail fast principle was discovered by many different people. However, I saw it first time in this article and it changed the way I think about programming )
Design Patterns: Elements of Reusable Object-Oriented Software
Authors :Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides
No introduction required. If you have not read this book, then you seriously missed an extremely important book.
Code Complete 2
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.
Mythical Man-month
Author : Frederick Brooks
Published in 1975 with 40 reprints but still relevant. Fred Brooks coined the term 'No Silver Bullet' (meaning "there is no single development, in either technology or management technique, which by itself promises even one order of magnitude (10x) improvement within a decade in productivity, in reliability, in simplicity."). This claim remains valid even now.
Refactoring - Improving the design of existing code
Author : Martin Fowler
Every software you write eventually starts degrating as teams do enhancements and bug fixs on this code. Refactoring book talks about how to slowly cleanup the code and seriously reduce the rate of degradation Today's world 90% developers work on maintaining the code rather than writing entirely new software from scratch. So this book is more and more relevant now.
Feynman Lectures on Computation
Author : Richard Feynman,David Pines, Anthony Hey, J.G. Hey (Editor), Robin W. Allen (Editor)
You may have seen famous 'Feynman Lectures of Physics' (book and the lecture videos). For many years I did not even knew that Richard Feynman took lectures of 'computations'. Sometime in Aug 2018 I finally got a copy of this book and I am hooked. This book starts from NAND gate and goes on building and explaining all the critical and fundamental concepts of computers