For “part 1” of this post, I’m not going to mention focus on great engineering books and leave books specific to testing for the next post. These are books that I think every engineer should read and re-read (In fact, I’ve read every book on this list at least three times over the years).
I’ve read Writing Solid Code by Steve Maguire at least ten times over the last 12 years. Every time I read this book I become a better developer and tester. Sure, the examples are all in C, but the concepts and stories are timeless. If you are at all interested in writing great code you should read this book. Maguire’s Debugging the Development Process is something else I’d highly recommend – it can be hard to find, but it’s absolutely worth the effort.
A close second on my desert island geek engineering book list is The Pragmatic Programmer by Hunt & Thomas. It is a great book to read to get ideas on how to improve your own skills as well as great ideas on how to improve the entire engineering team. A year or so ago, I wrote several articles based on the stories from this book. If you’re curious, you can find them here, here, and here.
Code Complete by Steve McConnell is another “must read” for serious software developers. I practically wore out my copy of the first edition, and the updated version of the book is fantastic. A common thread between these books is that they all use stories to convey the messages. Joel Spolsky (www.joelonsoftware.com) talks about the need for this in the introduction to The Best Software Writing I (which I highly recommend as well).
I recently re-read the 30th Anniversary version of The Mythical Man Month by Fred Brooks. This book is as relevant today as the day it was written. Just over two years ago, I ended an argument with my general manager by grabbing this book off of my bookshelf, handing it to the GM, and asking him if we could continue the discussion after he read it. He never came back and the point in question was never raised. As a concession prize, I gave him my copy of the book.
Looking at my bookshelf, there are dozens of other books on software that I love (I calculate my percentage of love by the wear on the spine). The books mentioned above are the books with the most wear, so I must love them the most.