I came across this rant today and decided to share my thoughts.
The first thing to say is that if this guy doesn’t want to be a programmer then he should change jobs. It’s pretty easy, really. You do the work or you get out and do something else.
But there is one specific point he makes.
Temporary nature of knowledge capital
In computer programming, the old knowledge becomes completely obsolete and useless. No one cares if you know how to program in COBOL for example. It’s completely useless knowledge.
So what advantage does a 60-year-old .NET programmer have over a 27-year-old .NET programmer when they both have, at most, 5 years of experience doing .NET programming? Absolutely none. I’d make the case that it’s better to hire the 27-year-old because he is still at the stage of his career where he enjoys the stuff and is therefore more motivated to learn and work harder, while the 60-year-old is surely bitter about the fact that he’s getting paid less than the younger programmers. No one wants a bitter employee.
This assumes that the 60-year-old programmer has even learned .NET programming. Every time a new language or technology comes out, the programmer faces a fork. In one direction he gets to work with the new technology, and in the other direction he continues working with the old technology for too long and therefore falls too far behind to catch up. The older you get, the easier it is to wind up going the wrong way when you reach one of these forks. Because as hard as it may be for a 22-year-old to imagine, as you get older your desire to completely relearn everything decreases, so you are likely to succumb to the temptation of staying with the familiar technology for too long.
I should take offence at this. I am not yet 60, but it isn’t all that far off.
There are two matters to deal with here. First, 60 year olds are not necessarily brain dead. I have a friend in his mid 80s who, among other things, produces radio programs. He does this from a studio/office at the back of his house. It is actually a converted double garage. He has networked four PCs and connected them to his recoding stuff (I don’t know what it is actually called), and produces his programs onto CD or laptop for delivery to the radio station. He is a very technically savvy guy. Age has not wearied him.
Computer science is not a modern invention. Alan Turing has been dead for over 50 years. Charles Babbage for over 130. In more modern times Edsger Dijkstra died at age 72 back in 2002. Martin Fowler has been writing computer programs since 1980. Grady Booch, one of the developers of the Unified Modeling Language is 52 years old and still going strong.
Computer Science is old, and so are a number of its practitioners.
And there is no evidence that older people, and to some in the computer industry that is anyone over 35, have lost their capacity or desire to learn.
But the second. more serious, problem with the article is the assertion that computer knowledge is temporary. The problem with this is that the writer is obviously a coder, not a software developer. If the problem domain doesn’t fit into his computer language then he is in trouble.
But that is not what software development is about. Coding in a particular language is irrelevant. I would certainly care that someone knows how to program in COBOL, for example. It is a lot easier, quicker, to teach someone the ins and outs of .NET (which is the framework he was speaking of) than it is to teach them about functional programming. The language doesn’t matter.
Indeed, for many developers, the code doesn’t matter for a lot of the time. Steve McConnell, a well known and award winning author, has noted in his best seller Code Complete, that the amount of time spent coding by the average programmer is between 15% and 25%. The rest is going to meetings, talking to customers, design, analysis, etc. All the things that a software developer needs to do, whether he is going to ultimately code in COBOL or Java or C#.
Of course the IT industry is changing. Computers are getting more powerful. Languages are evolving. Software paradigms (I swore to myself I was never going to use that word!) are changing. We have gone from spaghetti code to functional programming, to object oriented and are heading toward aspect oriented programming. More changes will emerge in the future. So what? That is all part of the fun of it. But what we learnt in the past is still relevant.
One of the best selling IT books today is Fred Brookes’ The Mythical Man Month It was originally written in 1975, and is still relevant. His essay No Silver Bullet, written in 1987 and included in the 20th annivserary edition of his book, is still being debated, quoted and usually agreed with.
Articles like the one I read today just make me cranky. End of rant.