I became a professional programmer when I was 20, not-quite 38 years ago.
Bob Martin’s back-of-the-envelope estimate of the doubling rate for programmers is that it’s been about 5 years for at least 3 decades. That means I have more time in this trade than more than 99% of the other programmers in the world today.
What does that mean about me? Idunno, really. A bunch of things.
- It means I’m a bitter old man, of course. Even if we put a pleasant face on it, surely the least one could say is that I am skeptical by default stance.
- It means I’ve failed more often to ship on time and under budget than any 20 random geeks you know. Also succeeded more than them.
- It means I’ve climbed one helluva lotta mount stupids. And by induction, that I’m fighting my way up one now.
- It means I’ve written just about every kind of software there is to write, tho of course the spectral analysis would show lots of imbalances.
- It means I read almost no books on “mere coding” these days. Not that I *didn’t*, of course. I’ve read i’m sure hundreds of them, and kept some of them in the bathroom for years at a time.
But mostly, I think, what it means is that I have no patience for over-simplification of what programmers do or should do.
Programmers are translators. We translate from the sense made by human language into the sense made by computer language.
Our work is fundamentally sociotechnical, inconceivable without the strange fractal border between wildly complex human interaction and rigorously simple mathematical formalism. It requires at different times tremendous sensitivity and crude indifference, patient persistence and an openness to lightning, a taste for the solo and the collaborative, tremendous balanced love for lofty abstraction and gritty detail.
Programming for a living is infinitely delightful and exasperating, and I have spent nigh on forty years living the life of the mind in the lap of luxury.
On my good days, I recommend it.