Five Pervasive Myths About Older Software Developers
What's hilarious about this myth is that I learned to program in NeXTStep using Objective-C well over a decade ago and am enjoying writing iPhone apps. But I hear younger programmers bitch about how hard it is to write code in Objective-C, manage memory, etc.
It's always a red-flag for me when in an engineering organization of statistically significant size (which does exclude YC start-ups, so don't view this as a judgment) there are no older engineers. It isn't just the age discrimination angle. It says something about technological identity and mission: they aren't solving a problem that has a barrier to entry (or they aren't going to be able to get past that barrier).
As someone pointed out in the "when an engineer goes to Google, a start-up dies" thread, there's an great value to having people with vast technical knowledge and experience: they'll be able to bring new concepts vs. merely new technologies to the table.
Being a founder is a different matter (the risk factor is much more significant once there's a family), but I don't see a reason to not hire older engineers (all else being equal). Disclaimer: I'm <30 myself, but benefited tremendously (earlier in my career) from contact with older engineers.
I'm not sure how to feel about this. In 1995 I was hacking scripting languages and MySQL... and that's what I'm doing in 2010. Hardly anything of substance has changed.
The one thing that's different is my attitude.
Sometimes I feel that I know too much about programming to be employable as a programmer any more. So much of our industry is about foolish waste. Half of all projects fail. Most of the other ones are rotten ideas that make life worse for everyone. Few managers (or markets) really have the patience to build good software, or the maturity to listen to advice about what might be better.
When I was in my 20s, I was dumb enough to commit crazy overtime hours to making projects work, even if they were ultimately doomed and stupid. And this served me well in the job market.
In this environment, experience may not be an asset. It seems to me that the ideal programmer, in an economic sense, is someone who obediently writes unmaintainable code quickly and is unaware of the future pain they are creating for themselves and their customers, or is unaware that all their work is likely to be forgotten in a few months.
Many people start in coding, but realize they are bad at it and look for opportunities to move into other areas (eg management). When I worked for large companies, many of my managers would list programming as their early roles. You could tell, or they would admit, that they were no good at it, didn't enjoy it, and got out as soon as they could.
The ones that are left are more likely to be good, simply because the poor ones with better opportunities have left.
Edit: "better opportunities" from their point of view, of course.
For the older crowd on HN: How much of ageism is real, and how much is in your head?
I only ask because all the places I've worked at have had a lot of older programmers, at least in their mid 30s up to mid 50s being the typical range. Then of course there's the slew of non-quite-programmers-anymore but who still make tech decisions (managers).
Then there's the very frequently uttered "Well he doesn't really have enough experience but we need to fill this position ASAP" and "He worked for Corp XYZ for 5 years?! Get him now!"
I'm not saying it's tough to be a younger programmer because it's not, but strictly IME (internet companies) older devs are a rare and valued commodity.
Now that I think about it, could it be because most of the senior devs don't have much web-related experience, due to it being relatively new?
Age-related decline is, according to my observations, caused by declining interest in the nuts and bolts of programming. When people lose interest, they start relying on high-level abstractions even when those abstractions are inaccurate or inadequate. Or they rely on concepts they've learned in the past, without learning what's new about the new technology. It looks exactly like intellectual laziness, but "laziness" is not the right word, because it is an unavoidable consequence of boredom.
Losing interest in technology is like tires losing their grip on the road. You keep going in the same direction, no matter which way you point the wheels.
Often age-related decline is masked by working in a static technical environment that a person has already mastered. It's like sliding uncontrollably down a straight road. Then, when the person needs a new job, they find that they haven't learned anything new in five years, are hopelessly out of date, and can't muster enough interest to learn anything new. The road finally curved, and they're in the ditch.
Personally, I've come to value my ability to be interested in the technical details of computer systems. It's embarrassing sometimes, but it's the key to my livelihood. (I've gone from being ashamed of it to occasionally wishing I had more of it.) I know I can't really be satisfied without an aspiration, or at least a connection, to grander things (fame, the mysteries of the universe, or boatloads of cash, depending on who you ask) but now I treat my geekiness as an asset instead of a distraction.
Experience is of course a double edged sword. It helps good judgement in some cases but does the exact opposite in others as the underlying dynamics change.
It's interesting that some patterns do not seem to change very quickly though. I'm reading "This Time is Different. Eight Centuries of Financial Folly" right now. It's a rather dry empirical study of debt crises. The conclusion is that these crises have certain patterns that recur again and again, but each time there are people pointing at new factors convincing themselves that this time is different and loads of debt are OK.
So it would appear that a minimum of eight centuries on the job experience would be appropriate for any banker.
But even if, as in this case, experience would lead to the right conclusions, I would argue that sometimes it's folly that actually creates value and innovation, even if 3/4 of it is later destroyed in a crisis. The dot com bubble is a prime example of that.
The real myth is that older developers work based on experience. Sometimes experience is just a convenient excuse for laziness. Younger developers find other excuses for that.
I have 20 years of programming experience but I'm still struggling with the urge not to jump on each and every new fad that's out there, at least when it comes to things like programming languages and paradigms. What I can do way better than any recent college grad is to explain in a very reasoned, professional and well informed way why it is absolutely critical to use that fancy new language or paradigm now ;-)
If the older programmers are discriminated against, why is it that almost any job posting I see has minimum 10 years experience as a requirement?
I'm pushing 50, and doing well. While I can see getting pigeonholed into the embedded system niche, I feel that I can still learn new stuff.
My father-in-law was hacking C until he retired at 67.
Keep reading, learn something really new every year. Best continuing education I've found is access to the ACM journals online.
Above 40 good programmers probably are rare, but doesn't have much to do with age, but is more of a generation difference. 40 and below is the same as the gamer generation, starting with those growing up with the first popular home computers (vic20/c64/zx spectrum).
Someone able to write C64 assembler games/demoes 25 years ago, will still be a great programmer today, even if he didn't touch a computer since then. The basics haven't changed that much, nothing that cannot be learned within a few weeks.
Older programmers are probably less likely to jump every new hype. For them it's just the nth way to do same, only without the already collected/own written libraries and tools. That could be a disadvantage when looking for a new job.
The article is not very accurate. Age and experience don't necessarily correlate to each other. There are a lot of programmers in their mid-twenties with more than 10 years of experience. On the other hand a lot of the 40+ workers did work with only one kind of technology all the time. Or they have been promoted into management positions 10 years ago and know shit about whats going on today. Don't get me wrong, older developers with the same passion for computers as todays kids are extremely valuable. But they are also very rare.
I'm young, and I have to say that I learned the most - and often enjoyed working most with - from the older programmers. Some of them were the best developers I've known, able to work magic with the keyboard.
All I can say is that I'd have no problem hiring an older developer if I was in a position to, and I have trouble understanding ageism. As always, you do have to be careful to pick the motivated ones, but this isn't a problem that varies significantly across age groups.
It's not really age discrimination per sec but a lack of adequate compensation. It's known that good developers are 10x more productive than average ones. Aged developers are usually pretty good since they have survived this game for so long and with all the experience coming with it. But a developer with 15 or 20 years of experience is rarely making more than 2x or 3x of someone just started. Older developers just quit after this realization.
I'm in my mid 20s and this is actually a concern of mine. I love designing and building software systems and I would be happy to build them into my 40s. But people may wonder why I'm forty and still "just a programmer". I hope to have a stable buisness by then and won't have to deal with this problem.
Countering "myths" with your own generalizations seems like a bad idea. The part at the end - "Young is not necessarily bad. Old is not necessarily good." is probably the best takeaway.
To some, career advancement means getting out of coding and into management. To me, that would be like switching from driving the race car to managing the race team. I'd much rather be driving thank you very much...
When I program "because I love it", I want to be programming on projects that I actually love. That typically means "not the ones at work". Getting out of programming as a career doesn't mean I'm not going to stop programming. On the contrary, it means I'll probably end up doing more of the type of programming that I love because I'm not burned out on programming by the end of the day.
This sounds more like "programmers versus cheese-head managers", not "old programmers versus new programmers"
undefined