the other factor I noticed from the days I was programming for fun vs these days where I'm programming for pay.
in those early years the tasks that you take on are probably above your skillset and fight through it, you're not accountable to anyone.
in a job you're usually hired for what you already know, +/- some margin for more gradual learning , not really that much room for moonshots. the work need to be divided into bit sized parts that you can justify to the higher-ups when needed. you have less room for exploring really non linear paths toward the solution which can be harder to explain but where you learn more.
so in the end this end up sometimes amounting to 10years of experience outside work being more impactful than 10 years at work.
,
It doesn't have to be that way. Sure, if you can get a reputation for being sharp, reliable, quick to learn, and happy to work on things you haven't seen before, it's not so hard to move into completely new tech areas.
People will hire you more for your problem solving ability, reliability, and ability to work with people than your experience with any particular tech. If you've demonstrated you can pick up a new tech area easily, it's not too hard to do it again.
That sort of thing will let you build deep experience in a lot of areas and keep you current with the latest technologies. Keeps things interesting, too. :)
in those early years the tasks that you take on are probably above your skillset and fight through it, you're not accountable to anyone.
in a job you're usually hired for what you already know, +/- some margin for more gradual learning , not really that much room for moonshots. the work need to be divided into bit sized parts that you can justify to the higher-ups when needed. you have less room for exploring really non linear paths toward the solution which can be harder to explain but where you learn more.
so in the end this end up sometimes amounting to 10years of experience outside work being more impactful than 10 years at work. ,