The career arc of a software developer is nowhere near as clear-cut as, say, an accountant or a surgeon. Picking your way through a career involves strategic insight that many developers don’t find comes naturally to them. At the same time, many developers seem reluctant to discuss their career aspirations in forthright terms; I suspect insecurity and an unwillingness to appear materialistic play a part here.
So I came to the book with high expectations, and I’m afraid to say I was disappointed. It’s a readable enough book, and the Michael Lopp (or at least his alter ego, Rands) has an opinionated, in-your-face style that is never boring balanced with enough neutrality that his arguments are worth taking seriously. He’s also got credibility on both the business side and the geek side. I particularly liked his elegant summing up of what it is to be a geek:
We seek definition to understand
the system so that we can discern
the rules so that we
know what to do next so that
For all that, the book still feels too much like a series of blog posts sewn together. The chapters are short and the approach to the topic in hand tangential, and far too often they fall into the “five types of …” trope that works so well on twitter and relatively poorly in an printed book. There’s a “how to understand your nerd” section supposed to be addressed to the reader’s life partner, but it was sufficiently stereotypical that I wasn’t sure how seriously to take it.
My biggest problem with the book is that I feel that Lopp has some serious experience to impart, but has taken the wrong approach to getting it across. A particularly obvious example is the repeated attempts to classify the people you’ll encounter in a given situation (say a job interview) into a number of cutely-named categories, with advice on how to deal with the person once you’ve categorised them. This just didn’t work for me because although that may well be how I think about something, receiving such a list from another person isn’t the way I learn.
Geeks may like to boil a complex system down into simple rules, but they want to arrive at the rules themselves, not be spoon-fed. I feel sorry for anyone who’s sitting in a job interview trying to remember Lopp’s categories of people and consequent advice. It’s like trying to ride a bike by solving Newton’s laws: you just have too much else to think about.
What could have been the most useful part of the book also fell short: the issue of deciding whether to work for an established company or a start-up, and whether to follow a management or technical track. In my opinion these are the two most important questions for a developer to tackle, because it’s hard to tell a priori how either choice will pan out for you. To me, Lopp’s approach to these questions felt simplistic and rather one-sided. His image of start-ups seemed idealised, at least compared to my experience on the other side of the Atlantic. The idea that a start-up might fail not with a bang, but with a whimper (and a career dead-end) doesn’t seem to occur to him.
I’ve run out of space to talk about some of the things I did enjoy about the book, and despite the negative tone there were actually quite a few. There are plenty of nuggets of good advice, e.g. on making presentations and time management. The software career book I’m dreaming of has still to be written, but in the mean time this book is well worth the time for any developer who takes their career seriously.