
Why a career in computer programming sucks [2007] - J3L2404
http://www.halfsigma.com/2007/03/why_a_career_in.html?
======
kls
_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_

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.

~~~
grot
I don't think the author means to justify age discrimination so much as to use
it to underscore a point, which is that programming knowledge is something
that takes (on the order of) 5 years to acquire rather than 40 years to
acquire. Whether this is true, I am not sure. I don't really have enough
experience to justify making any claims like that.

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.

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

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.

~~~
thejteam
It was an interesting choice of ages. We had a conversation at work about
something like this not too long ago. It ended up boiling down to this, "The
difference between an engineer with 5 years experience and an engineer with 10
years experience is significantly greater than that between an engineer with
10 years experience and an engineer with 25 years experience."

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.

~~~
wazoox
From my own personal experience, having employed a 60 yo person, I dare say
that the oldest is actually much more available; he has no young children, no
love story dramas, he isn't the less afraid to get up at dawn, he can work
slightly slowly but with an extreme attention to details younger people will
rarely be able to follow through, he rarely if ever go to bed at 3 a.m., and
if he's friendly and competent he'll coach wonderfully young interns.

~~~
herval
In that case, hiring a recently-wed or someone with a baby is also worse than
hiring a 60-70 year old?

Also, how about energy? Do 60-year olds really have the same energy to keep up
with new stuff as a young boy does?

~~~
wazoox
From my own 40 yo point of view, you can be energetic at 20, 40 or 60 all the
same. The difference is of priorities. At 20, you may be eager to build your
career; at 35, to take care of your children; etc. Every intelligent person
can keep up with new stuff all the same; loving to learn is more a character
than age thing.

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.

------
eloisius
Clearly this guy is a quintessential .NET developer that built crappy
e-commerce sites. If that's his thing and what he considers "programming" he
deserves to fall by the wayside by 60.

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.

------
LVB
_Computer programming is a job that’s heavily dependent on temporary knowledge
capital. It’s temporary because the powers that be keep changing the languages
and tools that programmers need to do their jobs._

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.

------
Turing_Machine
"No one cares if you know how to program in COBOL for example. It’s completely
useless knowledge."

Wrong. [http://jobsearch.monster.com/search/?q=Cobol-Programming-
Lan...](http://jobsearch.monster.com/search/?q=Cobol-Programming-
Language&sort=rv.di.dt)

"Even though I haven’t been working in computer programming all that long"
Obviously. :-)

------
jxcole
This is one of the stupidest articles I've ever read. Any half decent
programmer, regardless of his experience level (just graduated from college to
veteran 60 year old) can learn and be effective in programming a completely
new language in one week (please note that when I say completely new I mean
within the family of c-like languages). After one month, he'll have most of
the libraries memorized.

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.

~~~
barkingtoad
You are absolutely correct.

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

------
padobson
The best point he makes is the one he doesn't raise.

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.

------
whamill
I wonder how the author's outlook has changed since 2007? Has he spent the
last 4-5 years learning new technologies or constantly bettering himself or
just stuck with what he learned in 2007 and become bitter at the reality of
the industry moving on? Sure, COBOL programmers from back in the day are still
in demand in certain scenarios, but his anger seems to be to stem from an
unwillingness to learn; an expectation that once one has learned something
they should simply be further rewarded for having learned it and continued to
use it for a long period of time.

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

~~~
Turing_Machine
He's also wrong-headed about the fields he cites as "unchanging". Yes, lawyers
still cite Blackstone, but the law is changing all the time nonetheless.
Computer programming has similar foundational material (sorting, searching,
you name it -- almost nothing in Knuth is "out of date"). Business has changed
radically in recent years. Even accountants have to retrain themselves
constantly; the Internal Revenue Code changes every single year (sometimes
dramatically), rules of accounting change, new requirements like Sarbanes-
Oxley come into play.

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.

~~~
sanxiyn
> almost nothing in Knuth is "out of date"

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

~~~
Turing_Machine
You're making the same mistake as the author of the post -- thinking that the
technology of today is the way it's always going to be, and that the ideas of
the past are gone forever.

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... :-)

------
ddw
How things have changed in the last five years. Overall I'd say that
programming isn't low prestige w/ bad working conditions anymore. And good
luck to all of those law school graduates!

------
heifetz
I think he has some valid points. The emergence of mobile and web 2.0
industries since the article supports rather than weakens his main argument.

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.

~~~
greenyoda
> "ruby, python, objective C are all fairly new"

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.

------
jimmy_chu0807
One point I read is that programming has a low barrier of entry. Everybody can
learn and jump ship to do programming, and thus no prestige, claimed the
article.

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.

------
quanticle
I think we've done a good job of debunking his points regarding age and
knowledge decay. I'd like to address his points regarding prestige,
foreignization (or, outsourcing, to put it in terms we know), and working
conditions.

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.

