I get this question a lot. In the past I’ve answered it with a question about your motivation. Are you trying to maximize for employability? Or are you more interested in personal learning? Short term? Long term?
I don’t believe in these questions any more. Instead, I’ve got a one-size-fits-all answer.
As we enter the year 2016, it’s becoming obvious that the pace of change in web development is increasing. There is no such thing as “the one framework” to learn. In fact, there is no such thing as “the one anything” to learn. This year alone, I’ve worked with 3 different build tools, 3 different web frameworks, and 3 different programming languages.
The only constant I’ve experienced is constant learning.
If you want to level up skills for maximum longevity, invest in one thing: your ability to learn.
So how do you learn to learn?
After that, move up to the next level of abstraction in the front-end web stack: the DOM. Repeat the intense study for as long as you need to become proficient.
After you’ve got a strong foundation in those areas, you will learn new frameworks more naturally than before. At this point, I recommend learning as many frameworks and tools as you can. This doesn’t mean you need to put them all into production. But you should build simple apps with as many as you can. You will find that learning comes faster with each successive framework you study. Soon, you’ll be able to get a feel for new frameworks in a matter of a few hours, not days.
The goal is not mastery of every framework you study, but to become good at learning new tools and technologies quickly and proficiently. I’m not saying you shouldn’t specialize in any single framework. You should probably pick one or two, focusing specifically on what you currently use at work, or what you want to use at a future job (until they become obsolete, which they will). The purpose of this exercise is to practice learning. Always be learning.
Most people can’t afford to do this on the job. It will take time outside work. One day, our industry will evolve to provide time for this kind of study, because it will benefit employers. But today is not that day for most companies. So you’ll have to do this on your own time. I recommend finding a fun side project, like watering your lawn. You can reuse this project over and over as you learn new tools and frameworks.
If you do this well, not only will you become a strong web developer, but you will improve your ability to quickly ramp on entirely new areas. Want to get into mobile? No problem. Want to get into back-end? No problem. Want to get into embedded devices? No problem. You are good at learning new stuff.
In short, investing in your ability to learn is much more important than investing in any particular language, tool, or technology. Avoid the hype and learn how to learn by constantly learning.