Friday, June 22, 2012

On the Hubris of the Modern Software Industry

Here I sit at Uberconf.  While this should be a fun three learning-filled days, I find myself growing increasingly frustrated and disappointed.  I had not realized that my industry had become so filled with hubris, so blinded by the sparkle of the latest, so contemptuous of experience and expertise.

I remember my early 30s, being a unix guy in a mainframe company.  I remember that we certainly believed that we were on a better technology, one that was easier and more fun to use.  What I don't remember was ever believing that we were better or smarter as programmers than the mainframe guys (and a few women) across the hall.  Like us, they were a mixed bag.  Some folks I really respected and some that I wouldn't have let check in code.

So the disdain that our industry now holds for java programmers, or perhaps I should say "just" java programmers came as a complete surprise.  After all, technology (language, tools, frameworks) has as much to do with programming skill as sneakers have to do with basketball.  The hallmarks of great programmers, in my experience, are the ability to think deeply about problems, decompose solutions into pieces that fit neatly together, hold an abundance of detail in mind, and an obsession with the code being right.  There is nothing there that is specific to scala or java or c or lisp.

"But, But," I hear you say, we want programmers who want to "learn".  As if the only thing to learn is the language de jour or the new fad platform.  One of the worst programmers I've worked with was a great learner, an awesome technologist, always up on the latest thing.  We used to say that his expertise ran a mile wide and an inch deep.  The skill I want is not learning but mastery.  I will take someone who has mastered a technology, really mastered it, over anyone content with merely chasing the latest technologies.

Of course, that doesn't mean that any programmer should (or can) stay with a single technology for the bulk of their career.  Technology does change and the languages of my youth are no longer in common use.  But it is also true that new languages, new technologies become easier and easier to learn.  Today's technologies all have their roots in the past and the lessons learned then still apply.

So, really, I just want to say to today's programmers, get over yourselves.  You are neither the best nor the worst nor is your experience unique.  Its great to be obsessed by programming, in my experience all the great programmers are at some point in their careers.  And don't be surprised when life presents other attractions and other challenges, when learning the next big thing takes a back seat to taking care of the little peep in the back seat.  It won't make you any less excellent as a programmer, it just means the 30 somethings will think so.