And thinking through that thought exercise it makes me wonder if anyone at Microsoft has tried to do that sort of analysis of the data set. You might be able to proxy curiosity by looking at how many different kinds of jobs people take or how many different skills they accrue.
My career planning will be significantly different under the assumption "as long as I feed my curiosity and stay up to date, I have a reasonable expectation of continuing a primarily technical career until retirement age" vs "it's vital that I've built up some non-technical core competencies by the age of 40, because I may need to depend on them to drive my career at that point."
If value means helping the marketing team at apple to sell more useless (but admitedly super-technological) phones, then count me out :-)
Specialization is fairly easy, people who were getting "top dollar" as large systems enterprise architects (big SMP machines like Sun and SGI used to make) had a skill that is not useful to the newer enterprises that are outsourcing their infrastructure to SaaS/PaaS/IaaS type companies. That continued to be great until it wasn't, and then it really wasn't. When someone looks at their resume they see someone they have to retrain to the new way of doing things.
The second are folks who were always building things with technologies that were fairly recent, but at the end of the day they could train someone to produce as much code as they could in a few months. That is a good skill to have but you have to realize that your experience is perhaps worth a 2x or maybe 3x multiple on a starting salary, period. And once it gets there, that is where you are. The rapid influx of new developers put a pretty hard market cap on people who "just coded."
Both of these generally have the effect of limiting how much you can expect to get in terms of compensation. And if you live your life expecting your compensation to just go up and to the right, at some point your personal expense (or burn) rate is going to exceed your earning potential, and that is where things get difficult.
As you get older the number of things outside of work that impinge on your working hours gets larger. Perhaps you have family, perhaps you're parents start ailing and need more elder care, perhaps you start ailing and you need more medical care, perhaps you're on your second or third marriage, or perhaps you just like to go camping or sailing or fly gliders on the weekends. The point is, the longer you live, the more your life develops some flavor and nuance and when you felt it was fine to work all day and night and the occasional weekend or holiday, now you really understand the need to keep from burning out.
I think there will always be technical work available at some price, the important bit will be making sure that the price is something that is enough to meet your needs. You can do that by keeping your lifestyle at 60 - 80% of your take home pay. And then if you're pay is cut by 20 - 30% you're not out on the street, your just not saving any money any more. If you do this long enough without a major bump in the road (such as a major medical expense) then at some point you can lose 100% of your income and still be okay in terms of being able to meet your obligations.
To address the two sub-optimal outcomes above you can do two things, one is to work not just on learning new things but on your ability to learn new things. Everyone has a different style of learning, and you have to find yours and figure out how to exploit it. I tend to be someone who learns more deeply by doing rather than by reading. So I when I want to learn about some topic I try to invest time in doing it so that I can understand the challenges and then the forces that make those things challenges in the first place. Everything seems "easy" when you don't really know how it is done, so by doing it you find out why it isn't easy, and for me, that is where the learning is. I know a guy who just loves MOOCs. He's done physics classes and esoteric mathematics classes and loves to work all of the homework problems two or three different ways. I personally have a really hard time on that road :-).
The second is you have to be open to new things in the first place. Having spent a big chunk of time mired in the RPC wars I spend a lot of time debating and understanding different ways to communicate between machines over a network and models to use when doing so. As a result, I reflexively flinch every time someone has a new wonderful way to send messages that solves all the problems of the world. I know, as they will eventually know, that the problem space is like a balloon and you squeeze one place and some other part blows up. So I am tempted to ignore it, knowing how the story comes out in the end. However, by teaching myself to 'score' it differently, I can learn a new network messaging stack with the intent of learning what the people making it were shooting for. And rather than lament their walking into some of the same traps that people have walked into for decades, I try to find how it improves on the things that it is good at with the expectation that those good ideas can be applied across a wide variety of systems. But if you shut yourself out from those things with the famous 'Been there, done that, got the t-shirt' sort of excuse you may miss out on the things on the other side of re-inventing the wheel one more time. So by working on your ability to learn quickly you can mow though the new models and ideas and get on to the good stuff, it is less demotivating.
As for soft skills, I've spent most of my career definitely not wanting to be a manager and then getting stuck in more managerial roles than I would have preferred. Google taught me a surprising amount about management because of their unusual split of responsibilities at the time. It wasn't something I sought to learn (see the being open paragraph :-) because I was afraid to be removed from the ability to get my hands dirty as they say. Switching back to a smaller company where I could try both was really helpful in that regard.
One believes the situations to be somewhat different.
Another good thing to ignore is decade based commentary. We haven't seen it much since the 1990's because 2000's and 10's are a bit cumbersome. But believe me once we hit 2020 it's going to be on like Donkey Kong and won't let up until 2100 with "Are you a 20s girl?" and "10 things to look forward to with the 20s" and on and on.
A more curious older engineer with a wider skillset and knowledge of current technologies is going to have an easier time getting a job than one with a very specific and perhaps less current skillset.
I mean, it's not a guarantee, there are lots of other factors that contribute to one's employability (interpersonal skills, for example). But it just seems obvious that someone with more skills (and more current skills) is going to be more employable than someone with fewer skills, and perhaps less up-to-date skills.
There's always one of these comments when this topic comes up. It's simply not true. There are lots of people still working Cobol jobs out there and there's lots of demand for more. C# hasn't changed much in decades. Neither has C++. The only part of tech that moves at breakneck pace is web development and serious engineers consider that to be a cruel joke. And that's coming from a senior web developer with 15 years of web dev experience.
However, I still want to at least aspire to learn new stuff and stay informed about what other people in my field are doing. Every technology has an expiration date, and as I get older and more ensconced at work, I've been getting paranoid about getting too comfortable. Specifically, I'm paranoid that I know relatively little about web development, period. I am not some twentysomething hipster web guy, I'm a weird middle-aged Unix guy.
Although I've rarely pushed myself to learn about something because I felt like I had to- I'm just interested in software and have always enjoyed learning about it. I don't have to force myself to do it, and I probably wouldn't be productive if I did. The only thing that really matters is doing whatever makes you happy. If it has pragmatic side effects, great, but if it doesn't make you happy then it's not worth doing.
Having done C++ back in the days before the STL & Boost were a thing and having done C# back in the C# 2/.NET 2.0 era and recently trying to come back up to speed on C# 6 and .NET 4.6.x, I have to say that that is an ... incredibly surprising assertion to make.
This guy was never a developer. He was a founder and CEO with a successful exit.
He was hired as a former founder and CEO, by a business working in the same space in which he was a founder and CEO.
It's an interesting story, but unfortunately its relevance to the career trajectory of the average tech old-timer is somewhere close to zero.
I think you see a high correlation between being a founder and having really strong opinions because these people can afford their opinions, both literally and figuratively. They don't have to live in fear that their opinions might leave them unable to provide for themselves and their families.
If the takeaway is "If you want his confidence, then become an entrepreneur," I am very okay with that. There is zero reason we can't create a country of lots of small businesses and consultants. The reality is small businesses provide more jobs and job growth in the U.S. than megacorps do anyway.