Having good fundamental with software development craftsmanship is really important for software developers.  No matter if you are new to programming or if you are a seasoned professional with various platforms or programming languages, understanding broad range of algorithms and design patterns help will help you quickly finding the solution to solve software problems.

Here are the 5 books that every (self-proclaimed) software developers should read (more than once):

1. Introduction to Algorithms by Thomas Cormen, Charles Leiserson, Ronald Rivest, Clifford Stein

This is a very useful reference book and a leisure reading.  Seriously!  You can use it as reference when programming and designing algorithms.  Knowing when to apply different algorithms will help you create software magic.  And for folks with good computer science and mathematics background, this is a fun read.

2. The Art of Computer Programming by Donald Knuth

Depends on your background, you may not be able to understand every details in this series.  But the books cover everything you need to know to become a computer scientist.  Whenever software developers claim that they are computer geeks, the first question I ask is usually “do you know who Donald Knuth is and what’s your opinion on his books.”  You can really tell how good one is just by asking that question.

3. Design Patterns (the original Gang of Four version, 1994) or Design Patterns Explained

Ideally, you should read both!  But depends on what you do for work, you may prefer one over the other.  The use cases in the Design Patterns Explained may be more suitable for today’s web developers.

 4. Patterns of Enterprise Application Architecture by Martin Fowler

This is one of the best books on enterprise architecture.  You should have it handy!  Though some of the techniques may not apply exactly to programming languages and platforms designed in 2010+.  (e.g. Node.JS, NoSQL) But you will gain a lot from reading this book.

5. Code Complete by Steve McConnell

To learn how to write and maintain good code, this book is the definite read!  This may be one of the classic.  And good reference on techniques and rational behind different practices.

Enhanced by Zemanta