Why a career in computer programming sucks [2007]
halfsigma.com
halfsigma.com
This assumes that the 60-year-old programmer has even learned .NET programming
This article is utter trash for that statement alone, what a blatant piece of age discrimination. If most 60 year olds learned COBOL then many will sunset with COBOL, those that do stay relevant with the newest technologies are exactly the type of developers who a smart person would want to hire. The reason being, that algorithms don't change, math does not change and also we have a dirty little secret that we keep reinventing the wheel on new stacks. So a 60 year old that has been through 3-4 stacks is going to have seen a lot more problems and solved a lot more problems that mirror problems that his organization is going to experience. They are also going to have mastered and learned a lot more foundational stuff. To assume that all programming knowledge is temporal is to stack the decks in favor of a certain viewpoint and ignores reality. Arguing that said 60 year old will be bitter is just a cop-out for lack of any sound argument.
I think what he's really saying, to make an analogy, is that a programmer is more like a black smith than like an alchemist. A blacksmith is concerned with his tools and his technique, an alchemist is on a search for truth (or permanence or glory). Now he's also saying that being a blacksmith sort of sucks: your tools get old, you are smelly, it probably hurts more to pound your anvil when you're 50 than when you're 22, etc. Whether you believe that depends on your taste, whether you care about creating a good product or embarking on a potentially (very likely) fruitless search for truth.
It's pretty obvious what hackernews prefers.
Pardon my french, but this is absolute, utter bollocks. I can only assume that this was written my a 27 year old .NET programmer who wants to think that the 60 year olds have nothing on him. Granted, I behaved the same way when I was a 25 year old .NET programmer. I've gotten over it. Such behavior should not be encouraged or glamorized.
Very few companies, particularly those in the Valley, seem interested in hiring older workers. Does that not indicate there is little perceived value in years of experience beyond a certain point (say, 5, as the original article suggests)?
Edit: I'll add that I've seen young men (mid 20s) who have the cynicism and bitterness of much older men. That, to me, is sad. It shouldn't be like this.
Or, in other words, companies continue to demonstrate they see little value in experience and the author of the article is bang on when talking about the temporal nature of knowledge capital and the absence of prestige in IT.
He also says that 60-year-olds are less enthusiastic about learning new tech. Granted I'm even less qualified than him to judge how 60-year-olds think, but the way I see it, if a 60-year-old doesn't want to learn (or feels incapable of doing so efficiently) it's because he stopped learning at some point in his life. It's like exercise, a 70-year old who has gone to the gym two days a week for most of their life will be completely capable of exercising like they always have. If a programmer constantly makes an effort to stay on the cutting edge, they'll have no problems staying there no matter what their age.
Since presumably an engineer(or programmer) who is 27 has 5 years experience there is a world of difference between a 27 year old and a 60 year old. Now compare the 60 year old to a 35 year old. The choice would not be so obvious.
Also, how about energy? Do 60-year olds really have the same energy to keep up with new stuff as a young boy does?
Now an important differentiator may be health. You'll find more 60 yo in bad health than 20 yo, and bad health definitely take a huge toll on efficacy and dynamism.
Similarly, someone with 25 years of experience could really have an advantage over someone with 10 years of experience if their career included working in many different areas. And not all experience is purely technical -- someone who has worked with many different kinds of people and projects for 25 years and has released and supported lots of products might have insights and instincts that a less experienced person might not have.
I started out building crappy e-commerce sites in PHP, but I never once considered it "programming" in the way that I wanted to be a programmer. It was an entry point.
On the other side of this argument is my 60-something employer who only gave up Fortran for C when his colleagues locked him in a room with a C manual for days. He is a programmer and the tool he uses doesn't define what he is capable of. He churns out some genius code.
I could rephrase that to: "Computer programming is not a job where you can expect to do the same thing every day for your entire career. A successful computer programmer will be constantly learning new skills."
As someone who is terrified of rote, boring tasks, and who got into CS because I've always liked learning new challenging technical things, I think I chose the right career.
Wrong. http://jobsearch.monster.com/search/?q=Cobol-Programming-Lan...
"Even though I haven’t been working in computer programming all that long" Obviously. :-)
This author seems to believe that experience in programming essentially boils down to experience in a language. That a 10 year veteran java programmer will have to start over from scratch if they switch to programming in c#. Totally untrue. Experience in programming makes you better at design, project planning, professional relationships, and project delivery. None of these have anything to do with what language you use.
Perhaps what he's trying to say is that if you are a terrible programmer with very low intelligence, your experience won't get you very far. And with that I agree. This author has done little but show he has low skill in the field, so it's unsurprising he finds his work to be below par.
A good programmer with zero experience in a platform, is a better hire than an average programmer with 10 years of experience in a platform.
HOWEVER, the job market does not know this AT ALL and ONLY hires on the basis of platform experience.
Actual managers of programmers may understand, but their HR department incompetency filter is ONLY going on the basis of keywords in the resumes.
It's terrible. If you create a resume with the right keywords[1], in the most desirable techs, and put it up on job boards on Monday, you will get hits on Tuesday, even if your prior job title was "Senior Child Rapist" and your previous employer was the Penn State Football Program.[2]
.
[1]And they have to match precisely. I was recently told I could not be an Oracle Linux sysadmin, since I only had experience in CENTOS and Red Hat EL. (They are all identical.)
[2]no disrespect PSUers, I just needed a funny example
A one-dimensional individual will always hit a salary ceiling. A programmer cannot be just a programmer and not hit a ceiling. The very best programmers will hit a very high ceiling, but without branching out into project management, UX, finance, marketing, interface design, or some other area, you'll only be able to advance so far.
The fact is that if you learn some programming language in 2007 and just do the same stuff for the next 4-5 years without expanding your education, your experience or what you try to make of it, you're going to be behind the 'cool kids' that spent the last 4-5 years learning every new language that popped up. But if you spent the 4-5 years with just that one language learning new ways of implementing things, learning how better to take a higher level view of programming and software design and other facets of use in this industry - then he wouldn't be behind anyone else.
It would interest me to find out how things have progressed for the author given his rant at generalists, project management and learning new things
Sometimes accountants don't get much respect, but I have to admire anyone who can gobble the Internal Revenue Code every year and come up with procedures that (usually) don't get any of their clients fined or jailed and (ideally) don't cause them to go bankrupt.
Actually, quite a lot of TAOCP are out of date. TAOCP's discussion of floating point arithmetic, while correct, predates IEEE 754 and not that useful now. TAOCP's analysis of algorithms, while correct, ignores locality of reference as it predates importance of CPU caches and branch predictors. TAOCP spends inordinate amount of pages on external sorting with tapes; while external sorting is still important, most of Knuth's specifics are not. I can go on and on...
In fact, these things are cyclical. Mainframe->microprocessors->network computing servers. Floating-point emulation using integers on the CPU->External floating-point coprocessors->on-chip math coprocessors->external GPUs. Manipulating gigantic data sets on resources like Amazon S3 has many commonalities with classic tape storage (arguably more than it does with rotating disk storage -- retrieving a big object from S3 brings it in as a stream of data. Reading the whole glob and processing it as a stream is reasonably efficient but random access sucks. Sounds like a tape, no?). IEEE 754 isn't necessarily the last word in floating point arithmetic. I can go on and on... :-)
Why? 90% of those languages will either fall out of fashion or have very small cult followings. Wouldn't your time be better spent refining your craft with tools you will actually use.
just look at the evidence,
-founders of the most successful startups are always in their 20s or 30s. They don't have 20 years of programming experience.
-ruby, python, objective C are all fairly new
It means that a 50 year old programmer with 20 years of programming experience doesn't have too many advantages in learning these new languages / environments compared to a fresh college grad. In addition the 50 year old probably has a family and kids and other social obligations that reduces the amount of time he has to learn.
In other industries where the innovation isn't as fast, and the entire environment changes every 10 years, there is more value in seniority and experience.
Objective C has been around since 1983, Python since 1991, Ruby since 1995 (see Wikipedia). If you're a recent college grad, Objective-C existed before you were born.
> "It means that a 50 year old programmer with 20 years of programming experience doesn't have too many advantages in learning these new languages / environments compared to a fresh college grad."
On the contrary. A 50 year old programmer might have had experience in lots of related languages. For example, since I've used C++ and Java, I don't think I'd have too much trouble picking up Objective C. Since I've used dynamic languages like Lisp, learning Python or JavaScript wasn't very difficult.
I agree with the first half of the statement and glad about it. Somebody has already mentioned programming is a tool. What's important is what you created and solved with the tools. In fact, I like the nature of no barrier of entry, and thus everybody can learn it, create something, build on top of each others, and thrust innovation. We can then judge programmers by their work, not their seniority and yrs of exp.
Learning how to use a paintbrush well won't give you much success and respect, but painting a Mona Lisa will.
I don't know where he's coming from (his Twitter profile lists his location as Manhattan, but very little else) but he is absolutely wrong with programming being a low prestige career. People have seen The Social Network. They've seen programmers become millionaires and even billionaires while making tools and products that they use on a daily, or even hourly basis. I would argue that programmers, these days, are valued more by society than lawyers and accountants. Lawyers and accountants, now, are seen as a symptom of "what's wrong with this country today". They're viewed as being cronies of the 1% fat-cats, helping them loot the rest of the country whilst everyone else starves. Programmers, on the other hand, hearken back to a time where Americans still built things and were very good at it. There's a good reason that the tech. industry is the most widely admired industry in America. There's a good reason why technology brands (like Google and Apple) consistently make the top-ten in admired brands nationwide. Americans rightly look at the technology industry as a source of national pride. They look at the investment banking industry and see it as a source of national shame.
Outsourcing, even in 2007, was far more of a potential threat than it was a real threat. Today, I'd argue that it's not even a potential threat. As the prestige of programming has grown (see paragraph above), more and more people in third world countries are aspiring to become programmers. Unfortunately, this increase in demand has led to a massive erosion in average programmer quality in those places. There are lots of schools in India that are little more than diploma mills - graduating "programmers" that can't even copy/paste code. This combined with increased competition and increased salaries for the good programmers means that outsourcing isn't even close to being a "no-brainer" economic decision. Companies are realizing this. Many large companies (like Best Buy and Target) to name two from my hometown, are bringing IT back as they see that 1) outsourcing never produced the expected cost savings and 2) solid IT infrastructure is a competitive advantage. I would expect the discussion around outsourcing to be a far more nuanced one in the future, as the initial wave ebbs further and outsourcing becomes more of a way to get around visa issues and immigration policy than a way to produce automatic cost savings in projects.
Finally, working conditions. Has this guy even looked at the perks Google gives its employees? Heck even outside Google, Microsoft, and other "tier 1" software firms, it's becoming normal for programmers to have two, or even three 1920x1080 monitors. Yes, there are places that treat their programmers like crap and give them insufficient tools but those places are feeling more pressure every day as their best programmers see the better working conditions elsewhere and leave. Finally, I can't name too many programmers who've routinely worked 100 hour weeks. 80-100 hour weeks tend to be the norm, though, at many law firms, trading desks, and other professions that the author singles out as being more desirable than programming. Given that, I don't see how the author can claim that these professions have better working conditions than programming.