Which framework should you learn?

Web development frameworks are awesome. They help developers add structure to their applications by streamlining certain ways of doing things and abstracting away a lot of complexity.

You're probably familiar with the popular front-end JavaScript frameworks like React, Vue, Angular and Svelte. But there's also a plethora of back-end frameworks for all the different programming languages, like Laravel/Symfony for PHP, Rails/Sinatra for Ruby, Django/Flask for PHP, Adonis/Express for NodeJS etc. The list is endless.

The fact that there's so many different choices is a good thing. It allows each framework to differentiate itself in ways that make sense for their creators/contributors/users - but it can also be very overwhelming when you're just starting out on your development journey.

Especially when you're new, I recommend focusing on the fundamentals of your chosen programming language first. It'll be so much easier to learn React when you know some JavaScript, or Laravel when you already know PHP.

That said, frameworks are almost always required knowledge when applying for jobs - because no sane person would develop large scale applications without them. So that begs the question: which framework should you learn first? How do you decide which one to focus on with so many options?

The full answer can be quite complicated and require thorough comparisons. Aint nobody got time for that! That's why I've compiled 2 simple rules to help you choose instead, presented as questions to ask yourself:

  1. Do I enjoy working with this framework, and does it make sense in my brain?
  2. Is this framework widely used in my area or in the jobs I'm generally interested in?

The way I see it, all frameworks have a reason to exist. And most of them are really, really good!

So the best way to decide which one to learn is just by trying out different options. If you're a front-end dev, play around with React and Vue and see which one you like better. Build the same small app in both to compare. Do the same for the back-end frameworks if you're more into that.

I'm positive one of them will just click better for you than the others. But of course, you also want to make sure the one you pick has the possibility to get you hired or advance your career (hence rule #2). It's not productive to spend all your time on a super niche framework that you really like, but that nobody uses.

As long as these 2 guidelines are satisfied, it doesn't really matter which one you pick. Just get started and get really good at your choice. You can always learn others later if necessary, so don't stress about "committing" to one of them. And when you know one framework deeply, switching becomes a breeze anyways.