This week I read I book I’ve been meaning to get around to for quite some time: Joel on Software by Joel Spolsky. Its a collection of posts off his popular blog of the same name with a nice fancy cover on it and the occasional postscript if anything’s changed drastically since he wrote it. It’s pretty much all software engineering and, like last week’s book, is an easy read.
As it’s a collection of blog posts in book form, there’s relatively no continuity between the chapters of the book. Occasionally the chapters will reference each other or use a concept discussed earlier, but it’s not terribly often. That being said, I like the blog posts picked for the book. Most of them do an excellent job of giving you insight into software engineering and into the world Joel and his team programs in, namely the Windows programming world. It’s more vital for me that Windows is discussed since my undergraduate life was essentially Java, platform-independent but as a result, no platforms really got good coverage. I’ve come across many Unix programmers as well but not really too many Windows programmers, and hearing some solid evidence as to why Microsoft isn’t a terrible place (as you would be led to believe from your standard religious flamewar) is good to hear.
My favorite two chapters / posts are Chapter 2, “Back to Basics”, and Chapter 12, “Five Worlds”. The former is an excellent selling point on why you need to know C (another wonderful one is here), while the latter breaks up software development into five distinct categories that match up effortlessly with the real world. While there are several other amazing chapters, these two either clued me on on things that weren’t apparently obvious to me and gave me better ways to describe things I already had in my head. These feelings are definitely what sold me on the book and what make it a great read.
As already said, most of the book is pretty solid stuff. Unfortunately, it ends a little weak with a section called “Ask Joel”, which consists of questions posed to Joel on his forum and his responses. Most of the questions are off-topic to the book (like why groceries are double-bagged) and the ones that aren’t directly refer to previous chapters, so they’re nothing new. I think it would have been better to omit that chapter altogether or replace it with another blog post.
The book is also aimed more aimed at a managerial level, so although there’s a few sections on coding and the like, the main focus of the book is really on manager stuff, like hiring people the right way and how to get your product to a better market share than your competitors. Of course there’s nothing wrong with that, just keep in mind you’re getting a ‘best practices’ book on operating your company rather than a ‘best practices’ book on coding. This book definitely does a great job on the former; for the latter you should seek out Code Complete (which if you’re serious about coding you already own). I haven’t read Joel’s other books, so I can’t really compare this to the others, so drop a line if you have and have any thoughts. However, this one’s a good book and I definitely recommend it.