This matches my experience, as well. I have not had the privilege of knowing many older coders, at least none that I admire.
Those that come to mind were stuck in dead-end programming jobs because they knew only older technologies and supported clients that would not refresh their systems.
One in particular was overworked, underpaid, and cast aside as soon as the one client he supported stopped having enough work to justify a full time position. He was a great guy, smart, great at classic ASP, but he was not receptive to learning new technologies. And he couldn't type. He hunted and pecked at the keyboard. He thought through the code in his head to prevent having to type out code that wouldn't work.
I am scraping my memory, trying to find an example of an older coder that I admire, and I can't find one. I think this is really unfortunate for me, because I know they're out there.
However, there are some network guys I've worked with that knew EVERYTHING. These guys were running dial-up POPs and colocation facilities in the '90s (mid 30's at that time), and now they run all the tech at a local ISP's backbone. These guys were amazing, and I can only imagine I'd continue to be impressed if I kept working with them. The difference? Every time there's a new switch, they learn it. IPv6--they were ready early on. New technology was sought out by them and they craved to understand it all.
For this reason, I think you have to chase at least one or two "fads" once in a while to stay sharp. Otherwise you become complacent, as you are still making a living without doing all that "pointless" work of learning new techniques, frameworks, tools, or languages. But then you may realize that you weren't paddling your boat for those last few hours, and you can't really see land anymore.
The difference? Every time there's a new switch, they learn it.
Not my experience at all(1), and I've had one foot in the system administration field and one in the programming field for the last 12 years.
You mention IPv6, but that was an incremental change overall... Pretty much if you knew how to admin a cisco switch back then, you're doing the same stuff now, same for your linux boxen, aside from a few tweaks here & there the basics are all the same.
Maybe 20% changes, tops (compare the first edition of RHCE with the latest), 80% remains the same.
Programming though, every few years something becomes "must have/do"... C++ gives way to Java gives way to PHP gives way to Rails gives way to Node...
(1)This doesn't really apply to the Microsoft stack, which apparently comes out with a new paradigm every few years.
I am scraping my memory, trying to find an example of an older coder that I admire, and I can't find one. I think this is really unfortunate for me, because I know they're out there.
This is just an artefact of who you are and where you are in life - and nothing to worry about. How many people outside of your immediate age range do you know anyway? You're almost certainly like most people, who mostly know people kinda like themselves. If you're young you tend to hang with young folk. If you're a good developer you tend to find other good developers. Put both together and it's very easy to think that all good developers are young.
Most of the really good developers I know are in their thirties and forties. That's because those are the people I hang out with coz I'm in my forties myself.
As long as you realise that this is an artefact of who you know - rather than what the world is like - you'll be fine.
Thanks, that is comforting to hear, but I still worry that I'm missing out on some good learning by not knowing many of these people.
I tend to hang out with people 5-7 years older than me (I am 31 now), so I will get there in a few more years, I suppose. I graduated high school early and went to community college for a couple years, then just went straight to work, so that's just the age group I landed with in my professional life.
At the time I made the choice between school and work, one could learn more with computers by just doing work, versus taking a class. All signs indicate that this is still true, unfortunately.
Those that come to mind were stuck in dead-end programming jobs because they knew only older technologies and supported clients that would not refresh their systems.
One in particular was overworked, underpaid, and cast aside as soon as the one client he supported stopped having enough work to justify a full time position. He was a great guy, smart, great at classic ASP, but he was not receptive to learning new technologies. And he couldn't type. He hunted and pecked at the keyboard. He thought through the code in his head to prevent having to type out code that wouldn't work.
I am scraping my memory, trying to find an example of an older coder that I admire, and I can't find one. I think this is really unfortunate for me, because I know they're out there.
However, there are some network guys I've worked with that knew EVERYTHING. These guys were running dial-up POPs and colocation facilities in the '90s (mid 30's at that time), and now they run all the tech at a local ISP's backbone. These guys were amazing, and I can only imagine I'd continue to be impressed if I kept working with them. The difference? Every time there's a new switch, they learn it. IPv6--they were ready early on. New technology was sought out by them and they craved to understand it all.
For this reason, I think you have to chase at least one or two "fads" once in a while to stay sharp. Otherwise you become complacent, as you are still making a living without doing all that "pointless" work of learning new techniques, frameworks, tools, or languages. But then you may realize that you weren't paddling your boat for those last few hours, and you can't really see land anymore.