Thursday, January 10, 2008

A Few Home Truths About Programming and I.T.


Gentle reader,

Let's don our propeller-tipped hats, grab some powerful flashlights (with fresh batteries!) and shine them right up the anal cavity of the world of Information Technology. We'll be destroying some silly myths about I.T. and computer programming along the way.

Ready? All together now, PUBLIC! STATIC! VOID! MAIN! Let's go!

Myth Number One - Hire Only the "Very Best" Programmers

Counter-Argument 1: The pragmatic argument

We hear all the time how companies should focus on hiring the programmers who are 10 or 20 times more productive than the others. By definition then, the vast majority of programmers are just "regular programmers". By "regular programmers" I mean programmers who can get the job done in a reasonable timeframe without necessarily doing it in the 100% smartest or quickest way. If most of your programmers are regular programmers then what good is trying to create a system that is so sophisticated that most regular programmers cannot understand it? What if your superhuman programmers leave and all you have left is regular programmers?
An organization doing this is violating the DTBSTY principle of programming (pronounced with an Irish accent, "dat beasty"): "Don't Try to Be Smarter Than Yourself". That's exactly why Yahoo! rewrote Mr. Smarty-Pants Paul Graham's Viaweb application using technologies that mere mortals could understand.

Counter-Argument 2: The human argument

OK, assume it's true that there are a few programmers who are super-productive and gifted. Does that mean that all the remaining regular programmers shouldn't be allowed to work? Well, no, that doesn't seem like a good idea. Do we deny employment to plumbers who may take a little longer than others, or mechanics who get most things fixed but may have difficulty diagnosing the very toughest problems? Nope. At the end of the day, most of us need to work to put food on the table for our families and try to do it in the best way possible, while working around the constraints that we all have. In the end, programmers are cogs in the capitalist system like anyone else. We all have our parts to play, whether or not we use Common Lisp or Haskell or o-frigging-Caml. How would the world be if we eliminated all but the best three or four specimens of every species? As well as programming prowess, it's important to consider other skills such as who can work well with others, and who isn't an elitist twat and who can you have an intelligent conversation with about something other then monads or closures.

Myth Number Two - The teaching of Java "Poison the Minds of New CS Students" and "Makes it hard to Find Good Programmers"

Let's pause for a second and give those propellers another quick spin...

Guest what? Most students of reasonable intellect will take java for what it is worth and then move onto other languages on their own, if and when they need to. If a person is "poisoned" by learning java then I say that person probably never had the intellectual capacity to move on to other languages in the first place. Most programmers worth their salt are auto-didacts (that's one for the old wikipedia). And here's a message to corporate America and I will type this slowly:

Stop saying that you find it too difficult to find good programmers.

You need to offer more money, moolah, $ for the skills you are looking for. Economically, if there is a huge demand for programmers who can perform amazing feats of intellectual prowess then our supposed free-market economy will reward that. If it does, they will come. Some of our best and brightest who today go into law, or medicine, or to Wall Street WILL migrate to IT if the pay is there. Here's the truth: the well of reasonably priced, high quality home-grown IT labor has been poisoned by corporate greed and outsourcing. It is fear of unemployment and stagnant wages that has led to a decrease in America's talent pool. Not the teaching of Java.

Myth Number Three - We Need to Fix the Shortage of Women in Programming

OK, we're going to crank up the amperage on that flashlight a bit because we've reached a particularly dark area.

Oh look it's a News Flash: Programming is boring to most women (and, believe it or not, most men). Boring, boring, B-O-R-I-N-G, Sidney. Women avoid programming for the same reason they avoid plumbing, fixing cars, football and most men. They really aren't that interested. If it interested them they would already be all over it. It's not discrimination that is keeping women away from programming and I.T., it is boredom and lack of interest. I hate to bring up the sordid topic of money again, but clearly, the pay and benefits aren't enough to overcome the boredom factor. So, beyond addressing any egregious cases of discrimination (are there any these days?), let's stop fretting about how to lure women into becoming programmers and let them do the things they'd prefer to do.

Time for today's quote:

Sometimes a scream is better than a thesis.
~ Ralph Waldo Emerson


Until the next time, gentle reader, I remain,

Your friend,

Buford Twain

No comments: