tl;dr

Read the blog posts online instead.

Long read

Just as most people who have tried their hand in programming know of stackoverflow, most .NET developers in particular must have heard of Coding Horror. Jeff Atwood is the man behind both and although he no longer works at Stack Exchange, he still blogs occasionally. "Effective Programming" is a book collecting a number of Coding Horror blog posts, grouped into several categories. Jeff claims that his blog changed his life. His work at stackoverflow definitely changed software development and probably the Internet as a whole and Jeff was blogging during all that time. So, whatever insights were gained from his experience are bound to be interesting.

what made me buy this book?

Every blog has an inevitably high signal-to-noise ratio (this one will, too), depending on the type of signal you are looking for. I am mostly interested in the software development views of Jeff, instead of say, graphics card reviews (although these are welcome too, but only when I am upgrading my hardware!) A book is likely to provide a collection of those posts with the highest impact, at least most such books are marketed as such.

what made me return this book?

It quickly became apparent that a book is far from the best format for a collection of blog posts. There are a number of reasons for this:

  • Some of the most interesting discussions you are ever likely to read take place under a post's comments. There is probably no graceful way to include these into a book, (copyright alone would create lots of problems) so they are left out. Just check one of my favourite posts: cultivate teams,
    not ideas
    . Comments on a blog are invaluable. If the point is valid, readers tend to agree and provide examples. If not, examples to the contrary are provided, so that the discussion is enriched. This sort of dynamic is conspicuously absent from the written page.
  • Blog posts often tend to provide hyperlinks that validate the author's point of view and Coding Horror contains lots of them. They are absent from the book; in fact the text was left underlined, as if someone just did a straight copy-paste from the blog.
  • The binding leaves a lot to be desired and the overall presentation is far from ideal (black and white pictures, huge font). I am vaguely familiar with the economics of publishing books (hint: not worth it, unless you have a guaranteed audience of hundreds of thousands). This makes self-published authors to turn to smaller independent presses. A lot of the books I read from those presses look like "Effective Programming" and while this alone would not necessarily prevent me from enjoying the book, when placed into context it made ask for a refund from Amazon.
what I did instead

The actual post titles can be found online for free. I compiled them into a Word document and started looking them up one at a time, following hyperlinks and comment discussions where appropriate.

Conclusion

If you make a living writing software the blog is required reading. Posts such as performance is a feature provided the salient data points I needeed to explain to my team why re-designing our SQL queries and database indexes was worth the effort. Posts such as the years of experience myth made me it easy for me to persuade my non-technical manager, come hiring time, that the right type of person could learn our stack easily, or at the least, should not be rejected out of hand because they are missing x amount of years of working on [insert random API].

It may take years and lots of pain to learn these lessons. At least by reading this book, one can be somewhat prepared for the journey ahead.