As a profession we work in the fastest changing industry in the history of work.
Typically once I make a contribution to the framework or the language alarm bells go off in my head and I learn the new shiny. It's the only way to survive.
It's also complete lunacy. Doctors, scientists, lawyers and engineers in other fields are life long learners, still going to conferences and publishing papers in their 70s. Software however prides itself on the young eating the old. They learn new languages and then holy war everyone else that theirs is the one truth.
And that's fine, but I know plenty of older developers who are astoundingly good and many who are garbage and the general difference is whether their company valued learning or whether it aimed to burn out their developers and replace them with younger developers. Supporting the second type of company is a strange masochism that is widely prevalent in the industry with the "Adapt or Die" mantra.
I agree with your positions above and nothing below is intended to counter that.
> Doctors, scientists, lawyers and engineers in other fields
Careful there - Doctors notoriously fail to adopt (as a group) newer lessons until they are replaced, and lawyers have a similar problems when new areas of law open up (often in tech) - those areas are just fewer because law tries to define everything in terms of existing procedures. And I'm sure science has plenty of ageism problems that are similar enough. Note that the continuing ed classes for doctors and lawyers do not prevent this.
> Software however prides itself on the young eating the old
Software has a cycle we've not learned to defeat, and I think that's the root cause. Specifically (ish): To solve a tech problem in a clear context is easy and quick, so you adopt that system. Adoption means more reliance, dependencies, complexities. Soon, a problem arrives that is not easy to solve with all the baggage you've collected...but solving it OUTSIDE of that baggage is easy. Cycle repeats.
At a large scale: Software is a bit unique in that we get to code our own tools. What I can do in an hour after 5 years on a problem is far more than I can do in an hour with nothing - that learning and those tools get encoded into a library/framework/language, which becomes the hot thing. But now it can't itself change without violating assumptions relied on by everything using it, which means the rate of adding learned knowledge to it slows, while the rate of adding to "competing" systems does not. Eventually they are just plain faster/easier/better, and they become the hot thing.
The reason this is significant is that we're still learning how to program. We're actually REALLY BAD AT IT - programs are to translate between humans and computers, and those two do not think alike. We're embedding complexity and then suffering because there is complexity.
We're learning, but that is an iterative process- eating itself, as you say. Once the field approaches the age of medicine or law, we'll be as good (or as bad) at managing change as they are, but until then we're can't really compare directly.
>>Doctors notoriously fail to adopt (as a group) newer lessons until they are replaced, and lawyers have a similar problems when new areas of law open up (often in tech)
Even as individuals they need to adopt to newer lessons. If anything its harder in their case. Gaining a new skill or learning something new is way easier for an old programmer than for an old doctor to learn something new in their practice.
If you have chosen a knowledge based profession, you have to learn all life. Or its over.
These are like the fundamental rules of this game.
Typically once I make a contribution to the framework or the language alarm bells go off in my head and I learn the new shiny. It's the only way to survive.
It's also complete lunacy. Doctors, scientists, lawyers and engineers in other fields are life long learners, still going to conferences and publishing papers in their 70s. Software however prides itself on the young eating the old. They learn new languages and then holy war everyone else that theirs is the one truth.
And that's fine, but I know plenty of older developers who are astoundingly good and many who are garbage and the general difference is whether their company valued learning or whether it aimed to burn out their developers and replace them with younger developers. Supporting the second type of company is a strange masochism that is widely prevalent in the industry with the "Adapt or Die" mantra.