A Philosophy of Software Design
This is a wonderful book that every novice programmer should read. It’s full of stunningly good advice about how to plan and write good code.
However, it was wasted on me, because I’ve learned all these lessons. In no way is this a brag – rather, I say this to demonstrate how practically grounded the book is. All the lessons are things that experienced programmer have learned over and over by making mistake after mistake.
I almost pulled a muscle from nodding my head so much.
The author is a professor at Stanford (and the creator of Tcl), and apparently this book is the basis for a course he teaches of the same name.
You know all those grizzled veterans that seem to know so much? Well, they learned all the stuff in this book the hard way. If you have a opportunity to learn it the easy way, take it.