There's plenty of in-between. The key concept is career capital.
Career capital is basically how much a company values you. You can more or less trade career capital for things like money, promotions, freedom, etc.
Different companies will let you trade career capital for different things. Small startups generally grant more autonomy and less cash. Investment banks will let you get plenty of cash, but all the career capital in the world won't buy you autonomy.
The mistake most people make is that they don't consciously invest their career capital. They take raises and promotions when they should really be negotiating for more freedom and interesting projects.
If you want to love your work, figure out
1. How to become extremely valuable and earn lots of career capital,
2. What you want to spend it on. There is usually a constraint in your life-feeling that you don't have enough freedom, enough cash, etc. Spend your career capital on your biggest constraints.
This is excellent advice. The question is: what should people do to acquire career capital fast? Work hard at their assigned stuff, or invest in self-directed labor?
I think there's something to be said for the zigzag strategy. Take finance jobs to improve comp, and more typical tech jobs to improve autonomy and technical knowledge. No tech company will match a $250,000 hedge fund salary, but most will compensate "out of kind" with a higher title and more authority. Then you do something awesome at your tech job and become qualified for a better finance job.
The other advantage of zigzagging is that you can overstate how politically successful you are, because you're moving into a context where people don't know how to evaluate your signals. If you claim you were at level X in finance when you were actually X - 2, other finance people will be able to tell based on what you actually did and how much you know about the industry. If you zigzag a bit, you have more control over your story. But I think there must be limits to the efficacy of zigzagging, because lateral movement without progress becomes damaging after a while.
What should people do to acquire career capital fast? Work hard at their assigned stuff, or invest in self-directed labor?
Cal Newport wrote a book on this[1]. The short answer is "acquire rare and valuable skills."
If you have a track record of applying NLP to massive data sets today, that makes you extremely valuable. Combine two or more valuable, but not necessarily complementary, skills and it makes you a unicorn.
You'll almost never acquire rare & valuable skills by doing your assigned work. That's because entry level employees do commodity work. You might acquire valuable skills that way, but not rare ones.
My preferred method: survey the land. Try to figure out what skills are one notch above where you are today. Come up with a side project that's beneficial to your employer and would teach you those skills. Depending on the level of autonomy you have, you might be able to get that project approved as part of your official work. A few iterations of this should put you in a position to get a promotion or a better job.
The danger in doing something purely on the side, and not as part of the company, is that you don't have concrete results you can show at your next job. You might have mastered Hadoop/NLP/Machine Learning on your own, but all things being equal I'd hire the guy who used NLP to earn his company millions of dollars.
By the way, one of the easiest ways to get a rare and valuable skill is to aim to be 80th percentile at two things, as opposed to 95th percentile at one thing. My current aspiration is a strong understanding of user interaction/psychology + a strong understanding of Machine Learning. The combination of the two will put me in a very unique position when designing analytic software, even if I'm not the best at either individual skill.
Good answer, for sure. The one thing that is dangerous is that it's hard to know, when you're going off and learning "esoteric" skills, if those will be winning horses or dead ends. A lot of people would rather max out on enterprise Java (which has a well-studied, if commoditized, market) than take a risk on a specialty that might be "hot" today but dead tomorrow.
The AI winter is one of the worst things to have happened to software, and the decline of funding and even respectability of basic research has set technology itself back 25 years, and there's a scary lesson in it, which is that interesting, cutting-edge work can suddenly enter a funding drought.
Career capital is basically how much a company values you. You can more or less trade career capital for things like money, promotions, freedom, etc.
Different companies will let you trade career capital for different things. Small startups generally grant more autonomy and less cash. Investment banks will let you get plenty of cash, but all the career capital in the world won't buy you autonomy.
The mistake most people make is that they don't consciously invest their career capital. They take raises and promotions when they should really be negotiating for more freedom and interesting projects.
If you want to love your work, figure out
1. How to become extremely valuable and earn lots of career capital,
2. What you want to spend it on. There is usually a constraint in your life-feeling that you don't have enough freedom, enough cash, etc. Spend your career capital on your biggest constraints.