2015-05-06

Get off my lawn.



"We need to get some young programmers with fresh ideas", my friend told me.  And since he is a fairly cerebral fellow who occasionally has ideas I could have come up with myself, and thus confirm my secret suspicion that I am an undiscovered genius, I said "sure, that sounds like a good idea".

In retrospect I am not 100% sure if I said it because I felt I had used up my daily quota of being dismissive of other people's ideas and needed to say something positive, or if I really believed him.  But to delegate the miserable suffering of turning flimsy ideas into running code had a definite appeal.  I told myself it would free up my time to focus on important stuff.

At first, wearing the rosy-tinted glasses of confirmation bias, I figured that this was a good decision.  That the younger generations were indeed better than my generation at the same age and that these kids were born into a world of easy access to everything they needed to learn.  I stood by, watching as they toiled away at the code.

Sure, much of the time they'd end up in unproductive dead ends like a Roomba getting caught in some unfortunate configuration of furniture, but they got things done once you discretely nudged them.  And often it wasn't as clunky as the underlying code might suggest.

As programmers we often needlessly fret over the fact that our stuff is pretty bad.  Hidden behind a nice opaque surface, nobody can actually see our code. I remember the first time I shipped real production code in a hurry before it was done.  I remember the salesperson praising our work in front of the customer and tried to imagine what elaborate torture they would come up with for him once they figured out that the code had no business working.

Because they would understand it was HIS fault, right?

I figured that, unlike a Roomba, the kids would eventually learn.  I mean, how many times can you fuck up the same way without that pink lump of biomass in your head identifying that you have a pattern going?

Turns out, most people do not learn on their own.  Most people are not capable of taking a step back and drawing conclusions from their own failings.  And we programmers are the worst.

Unless someone told you something at a conference or you read it in a book hip people have told you to read (preferably from the stage at a conference), it isn't real.

Normal people are not allowed to have thoughts or to draw conclusions. That's for people with book-deals and speaking engagements.  We proudly say that we believe in science -- that something isn't true merely because someone says so, but because we can confirm it.  And then we go on doing exactly that: believing in some authority and disregard our own experience.

There are innumerable examples of this.  But I'm going to leave it up to you to find some yourself, because in giving you an example I would probably call someone you worship an arrogant, ignorant ass.  At least indirectly.  And that would just be, well, mean and arrogant.

I've been arrogant all day today and I need to be nice.

Of course, there were signs.  Code that so severely under-performed I started wondering if they had stopped teaching kids about algorithmic complexity.

There was the inevitable "performance isn't important -- we'll just throw more hardware at it".  And then the realization that you're faced with one of those hard cases where nine women can't make one baby in one month.

Because that's the problem they chose to solve.

Because making sure that the problems you end up having to solve are good problems to have is "premature optimization".

Of course, not a single idiot who yammers about premature optimization has bothered reading the text where the "idea" comes from -- or even understanding the context of it.  Some authority said it and so it has to be true.  And applicable to anything that might be construed as "optimization". Premature or otherwise.   (Again, if you don't know what I'm on about, you have some reading to do.)

I'm starting to realize that young programmers are no better than I was at their age.  And it is mostly my fear of sounding like a tiresome old fart that prevents me from saying that out loud on a daily basis. Nobody wants to be that stereotype;  the old fart that talks about "at your age I had to do X, Y and Z myself.  Barefoot.  In the snow".

Sure, you can ruthlessly exploit young kids to put in more hours of work since they are too young to understand the value of time.  But just because they have a more elaborate vocabulary with which to express their lack of instinct, you should remind yourself that occasionally you might have something to contribute to the mix. 

These kids are just about as dumb as you were at that age.

Now, get off my lawn!

1 comment:

  1. Lifting rings are usually for women who are younger. These women have regular partners, but are not ready to get married yet! Lifting Ring is an expression of love and commitment, which necessitates a legal ceremony in the foreseeable future. These rings usually have smaller stones than engagement rings nettside.

    ReplyDelete