I read two books over the weekend, The Pragmatic Programmer by Andy Hunt and Dave Thomas and Programming Pearls by Jon Bently. Both were excellent books, though entirely different. The Pragmatic Programmer was about how to write robust systems and really began the craftsman movement. It discusses automated builds, regression tests, prototypes, estimation, source code control, text manipulation, code generation, and much more. It gives gems such as the correct answer when your boss asks how long it will take (the answer: "I'll get back to you."). It is about producing great software at all levels and is very similar in spirit to Steve McConnell's Code Complete, though it deals with design decisions much more.
Programming Pearls is about design in the small. It discusses how to choose the correct data structures and algorithms, how to determine complexity, and how to write efficient, fast code. If you didn't have a CS background, it would be an excellent book to give you a crash course. If you do have a CS background, it is an excellent in-depth view of small design decisions and is a timeless classic.
I definitely recommend both books and give them ***** out of *****!
A Lost Voice
6 hours ago