I learned to program back in the dark ages before books came with CDs or websites where you could download the author’s code. Back then, if you wanted the author’s code, you typed it in from the book. I typed in the code from many wonderful books and I learned to code that way. As I typed, I was paying attention to the code, not just mindlessly hitting the keys. While this taught me what a great programmer’s code looked like when it was done, it didn’t teach me how that programmer arrived at the solution that was in the book. What I always wanted was to see the author’s thought process as he arrived at the finished code presented in the book.
With Ron Jeffries’ Extreme Programming Adventures in C# I finally have that opportunity to watch over the shoulder of a great programmer and watch not only his code but, more importantly, how he thinks. I love that the author is willing to show his dead ends and false starts. And then how he recovers from them. The book is really language-agnostic. It’s in C# but the lessons are more about programming and thinking about programming than about a specific language. I highly recommend this to all programmers, not just C# programmers.