5 books all professional programmers should read...
Has anyone read any of these books? Are they worth reading? This first is available at my library. I would have to buy the rest.
I found this list and the descriptions on this story on digg.
by Steve McConnell
Some will say that the majority of the knowledge in this book is common sense, which reminds me of the quote, "Common sense is instinct. Enough of it is genius." by George Bernard Shaw. It covers just about every aspect of programming. McConnell is a great writer. Although the book is large, it's easy to read and understand.
The Pragmatic Programmer: From Journeyman to Master
by Andrew Hunt, David Thomas
I really can't decide if I like The Pragmatic Programmer or Code Complete better. They are both similar books in that they cover a lot of general programming practices. Andy and Dave have a very down to earth writing style. The book, like Code Complete, is very easy to read. This book is fully of practical advise, that for some reason just does not seem to get taught in computer science courses. If every computer science graduate was required to read this book before graduating, I think the world would be a better place.
Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development
by Craig Larman
Don't be mistaken by the title of this book. This is THE book for learning object-oriented analysis and design. Larman goes through each step of the process, taking an application from concept to completion. It covers requirements gathering, creating use cases, agile development, iterative development cycles, testing, and of course UML. The code examples are in Java, but you don't really need to know Java to understand what is going on.
Design Patterns: Elements of Reusable Object-Oriented Software
by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
If you're a programmer I'm sure you've heard of this book. It's one of the most famous software engineering books ever written. This book is a tough read. The examples are in C++, which might be why I had such a difficult time with it. It's well worth it though. Recognizing and using software patterns is an important part of being a good programmer.
Refactoring: Improving the Design of Existing Code
by Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts
If you're a professional coder, more than likely you're going to spend a large part of your time fixing/modifying code that someone else wrote. It's the nature of the beast. This book is a catalog of common problems in code, and the best way of Refactoring them. Reading this book will greatly increase your ability to detect bad code and fix it.