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):
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.
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.
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.
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.
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.
Will this be the future of books and publishing?