2 reasons why you will OR won't be hired as an old programmer:
1- "programmer" is the entry level in a software/hardware company. Rising stars move up in the ranks over the years and take more responsibilities. Manager, sr. manager, director, VP, etc. still a programmer at 40?
2- If you're still programmer at 40, you might really like it! We're looking for programmers and need age/exp diversity in our group. You are rare my friend and valuable.
A programmer with 20 years of experience is definitely worth more than a programmer with 2 years of experience. But not that much more. A skilled architect with 8-10 years of experience will beat a programmer with 25 or 30 years experience every day in terms of ongoing business value, and will command a much higher salary (15-20% or more).
So yes, you can absolutely have a professionally rewarding, lucrative career as a 40-50 year old programmer, but you'll earn more money by moving over to the business side, simply because you can more easily show a direct line between your actions and business revenue.
Job titles are meaningless. When I say 20 year programmer, it's what you would call an architect, senior engineer, whatever. The programmer being someone who doesn't do any design is a foreign concept to me and should find another career. Any architect that doesn't write at least the skeleton code is the same. All levels of that career needs to involve design and implementation of that design.
Every company I've worked at with 2 or more developers has acknowledged a difference between a developer responsible for high level architecture and technical ownership of a system(s) who happens to program some of that system as well, and a developer responsible for programming parts of that system who happens to architect smaller self-contained pieces of it.
Architecting a class or small single-use library is a subset of the skill required to architect a distributed system, a large multi-tenant application, or some other non-closed system.
Whether you want them to have the same job title or not is I think orthogonal to the fact that they are very different jobs.
I think you are trying to differentiate between a programmer with 20 years experience and what you call an architect by using titles. Like I said titles are meaningless. A programmer with 20 years experience who can't design a large system isn't a very good programmer. An architect who can't design a large system isn't a very good programmer either.
I think we are arguing the same thing, we're just stuck on the semantics of titles. I guess let me put it this way, do you know people who have the title of programmer who are way better at building systems than a guy with the title of architect? Of course. Some companies don't even use the title of architect. That certainly doesn't mean no one in the shop can design a large system. It's not the title, it's the ability, and titles are a horrible way to discern ability.
>A programmer with 20 years of experience is definitely worth more than a programmer with 2 years of experience. But not that much more.
This is what I took issue with. A (good) programmer with 20 years experience is capable of designing large scale systems, which is much more valuable than a programmer with 2 years experience. Maybe it's just my bias.
When I first heard the term "architect," I asked, "what is that?" and the reply was, "someone who designs large systems but doesn't code." I thought to myself "well that's dumb." FWIW, I've had the title of "architect" at various companies since 2008 and I've always coded at least the skeleton of my designs. I mean how else do you know if you're right? When I switched companies in 2010, the new company didn't have the title "architect," so I was just a "senior engineer," until we got acquired. I regained the title "architect" because I made X amount of money. Like I said, meaningless. As a side note, I think coders calling themselves engineers is also incorrect. Engineering is a specific discipline that actually has meaning. It's like Dr. Dre. It sounds good, but I sure ain't going to see him for a rash.
1- "programmer" is the entry level in a software/hardware company. Rising stars move up in the ranks over the years and take more responsibilities. Manager, sr. manager, director, VP, etc. still a programmer at 40?
2- If you're still programmer at 40, you might really like it! We're looking for programmers and need age/exp diversity in our group. You are rare my friend and valuable.