Book Recommendations for Software Developers

Important Articles from the history of Software development

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