A few thoughts...

» ...on "Why a career in computer programming sucks"

Everybody must have seen this article by now: Why a career in computer programming sucks.

I mostly agree with the part on "temporary knowledge capital"... the technologies (languages, operating systems, etc) that we use, change, so it's inevitable that most of this knowledge becomes obsolete, at least from a market point of view. (While I could easily get myself an old PC running MS-DOS and hack on it using Turbo Pascal, it's very unlikely that I could make a living doing this, anno 2007.)

On the other hand, programming and design experience doesn't just die... it stays with you even you use a different language. For example, the old guidelines for structured programming still apply to a large extent in an object-oriented world. And you are not so likely to repeat the mistakes you made using language X, just because you now use language Y.

I think it's more appropriate to say that knowledge evolves, rather than picturing it as an endless loop of learning, discarding and relearning. The knowledge I gained using Basic and assembler and Turbo Pascal (etc) isn't gone; parts of it are still with me even though I almost exclusively use Python for my day job.

Anyway. Then I saw this:

"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."

This is indeed one of things that bothers me, personally. I haven't been in this field extremely long. Yet I've seen many technology changes, that often just mean, doing the same old things in a different way. This may be exciting at first (wow! we get to use objects now instead of just functions!), but eventually it gets really old. This is one of the reasons why I am not very interested in, or enthusiastic about, web programming. Sure, it's important and all that. But I find very little excitement in it. Talking to a database, presenting information on a screen... I've done that so many times, in so many different environments and languages, that there really is no thrill to it. Add to that that web programming comes with its own set of problems not found in "traditional" programming, and it's all not worth it for me.

(So that is a crisis that needs to be resolved somehow... possibly by doing stuff that is interesting. But that is food for a separate post.)

As for the "low prestige" part... I never really saw it that way... my friends from high school became doctors, psychologists, accountants, geologists, chemists, translators, judges... I am probably nuts, but I always considered my job right up there with theirs. Except my job is creative and theirs is not. <0.3 wink>

(I'm not so interested in the "career" part of the article... there isn't much of a career to be had in *anything* if you live in rural Florida, unless your name is Disney, or are part of the good old boys network. ;-)