This reasoning doesn't take into account the fact that a lot of people are very bad at programming and get tired of doing something they're very bad at. We have a fair number of bad programmers in their twenties, few in their thirties, and probably none over 35. It isn't because they get better. The only middle-aged programmers we have are absolutely solid.
"The only middle-aged programmers we have are absolutely solid"
As a several year veteran in the government contractor space and from personal experience as a configuration manager, I strongly disagree this this. I've seen poor and mediocre programmers survive as programmers well toward retirement age. Part of the reason is that programming isn't the only skill that they provide. They provide domain knowledge on the systems which the gov (mil and civilian) rely. Then us poor sods have to clean up after them and clean up after them, and hold their hands on radical new ideas like object oriented programming. I could really rant on this topic if I wanted to.
Another perspective: I mean, how many coders do you know that make it through a few years working who have NOT developed some significant domain knowledge?
That's in government though where the contractor is in many cases above all trying to fill seats to make sure they can bill the maximum amount of hours. They just call it "domain knowledge" to justify to anyone that might question why they are keeping someone who is bad at the job around.
When you talk about government and government contracting you are discussing an entirely different world devoid from reality.
While I cannot fully disagree, I would like to point out that a great many government contractors take their jobs very seriously and do very good work.
Of course, I may be biased since I work as a contractor.
Sure at the individual level there are plenty of people who do good work but I'm referring to the companies themselves. A government contract company's only real goal is to get more contracts in terms of numbers and dollar amount and run them in a way that maximizes profit. A contract companies success in the government realm has little to do with actual performance and a lot to do with salesmanship.
I'm not suggesting contractors beat their children. I am saying that if one wants to move up within a government contracting company they will reach a point when they will have to push a course of action that is not in the best interest of the government at which point the individuals and company are indistinguishable.
You have a certain logic, but all I can say is that I have not witnessed it myself after working now for 2 different contractors. Of course, in both of those cases everyone in my immediate management chain was, like me, a former military officer.
For the lucid moments he has, which people would argue about the frequency of, Alex Papadimoulis discusses something similar to this in one of his site articles, providing what I think is decent insight on why they make it to retirement age:
FWIW, I think there's enough people in this audience that wouldn't be happy holding on to a job they aren't particularly interested in keeping up to date on, simply because they have the domain knowledge to make them "safe". I could be wrong though.
Huh, combine two elements in the article you linked, quoting:
* The higher-up the position, the longer the curve. Changes tend to occur much more slowly at the top. For example, a basic “refactoring” of a department’s teams could take well over a year to implement.
* The greater the skill, the shorter the curve. Ambition and skill go hand-in-hand, and ambitious individuals tend to want swift changes, and quickly lose motivation when these don’t happen.
* The larger the company, the shorter the curve. Large teams are generally not receptive to ideas from the new guy, leaving a large part of contribution (i.e. past experience) wasted. Furthermore, promotions are often based on tenure, not skill.
* The smaller the company, the longer the curve. Smaller companies, on the other hand, are more receptive to change, allowing one to contribute past experiences for a long while.
* The less skill-demanding the company, the significantly longer the curve. Not all companies need top talent. For example, the company who needs only maintainers of an ancient COBOL application might be best fit with curves that are closer to the value convergence."
Notice what happens when you're very skilled in a large company?
I have seen some very poor coders stay in programming for a very long time as well. This is hardly unique to contractors. I think that in the middle of any large organization you will find a large number of people that just drift along either because they have one particular piece of knowledge that makes them hard to replace or else they are simply to much trouble to fire so they are stuffed into a sinecure and left alone.
It's probably worth noting that all programmers above a certain age predated the option to learn programming at home with a PC. That caused the number of new (but not necessarily good) programmers each year to explode.
There is a sweet spot I think between the introduction of cheap personal computers (Apple II, Commodore, TRS-80, etc) and the wide availability of the internet starting in the mid 90s.
In the 80s and early 90s, affordable computers existed but there wasn't so much you could do with one. The list of activities looked something like:
1) Play Choplifter
2) Play Loderunner
3) Learn BASIC
I have to disagree totally. This is exactly the time frame where I learned assembly language (Atari 800) and C (Atari ST, etc.). As a programmer these machine were excellent tools for learning how the guts of the machine really worked, teaching yourself how to program and sharing information with other enthusiasts. Lets face it, how many of today's younger programmers have a clue what a index register is, or even how a cache is used?
You completely missed his point. He's saying because you didn't have eighty bajillion websites, fancy games, and Facebook to waste your time on, kids who were just playing around on a computer were much more likely to start learning something like BASIC (or, as you mentioned, assembly and C). Now those same kids are posting YouTube comments that make me fear for our future. :)
Yeah, sorry. I was thinking about it from the perspective of a 13 year old who has never touched a computer taking his new Vic-20 out of the box and hooking it up to the TV for the first time.
Programming was a natural thing to attempt to do since there was little else you could use a computer for at that time.
That caused the number of new (but not necessarily good) programmers each year to explode.
Your implication is exactly backwards, from what I've observed. People who learned programming as a kid for the joy of it are much more likely to be good programmers. People who went into it for job training are much more likely to suck.
I'm not implying that it caused there to be more bad programmers, just that it caused the number of programmers overall to explode, and that probably adds a lot of noise to any observations about older vs. younger programmers.
I agree with you, but I also started learning to program with a Commodore 64 when I was six, so I'm probably a bit biased. :)
Agreed. Plan B is for mediocre programmers. Great programmers, not good or o.k. programmers, will always be in in demand regardless of age, cost, recessions, etc.
Software and technology more than ever is everywhere and becoming so deeply embedded in our lives that the demands for great programmers shall continue to grow to feed those needs.
It surprises me to read this, when most other times all I seem to read about is how a "shortage of engineers" exists in the world.
I'm 26 years old and I sometimes think of a plan B.
While I've always loved programming, before I even got a PC (14 years ago, loved the idea so much that I started reading a book about programming in Basic before I had access to one) ... I really hate the industry (at least the local one).
Life would be a lot easier for me if programming was a hobby in my spare time. But as it goes, I'm doing a lot of work on projects that I don't like, and when going home I don't have enough energy left to work on things I love.
I don't think I'll ever give up programming though.