The JavaScript and web development community evolves quickly and new frameworks come and go. There are many people learning React, Angular, Vue or Svelte nowadays. They are not only computer science graduates, like it used to be in the past, but also self-taught programmers coming from bootcamps and other backgrounds.
I find it amazing that the barrier entering the field is made much more accessible in the recent years by all the opportunities organizations and companies are providing in the western world. I am saying western world here, because often itâs not obvious that there is less education about those topics in other countries. Itâs a huge privilege to work in this field and therefore I hope people treasure it and do everything possible to enable others for this privilege around the world .
The following article should give you guidance on how to approach learning a JavaScript framework. It should help you to escape the analysis paralysis and shift your internal mode from consuming to producing.
I can only assume how the JavaScript ecosystem must feel for a beginner. Itâs the wild west where everyone jumps on the shiniest innovation. Thatâs only because everyone consumes the latest news on Hacker News, Twitter and Reddit. But no one is speaking about the real world where companies are not using the newest technology. Itâs the 80% of the companies which have to stick to their choices made years ago. Itâs because their main goal is to increase the business value and not to replace the underlying tech stack every year. It boils down to the value you can offer for a company, freelance client, or your own product and not the tech stack you carry around with you.
There isnât a day passing where someone isnât asking about which of these major frameworks to learn and use. Is it Angular, Vue or React? I tried to answer a couple of those questions on platforms such as Quora too but there is no way to keep up with it. They are popping up all day long. Thatâs why I sat down to write this article.
In the past, I wrote about my experiences moving from Angular to React , because I always felt it is more important to give people first-hand experiences instead of a technical comparison article. Itâs great to get to know about the motivations of people in the field using one of these frameworks and why they moved from one to another at some point. It gives people access to real world experiences and not only the comparison of technical aspects. But in the end the article ended up in a pile with all the other comparison articles and just added more heavy weight to it.
Regardless of technical comparison or first-hand experience, many articles leave people with a analysis paralyse . Many of those articles have no immediate impact because they donât provide a clear actionable advice in the end. They just provide more input for consumer friendly readers. Instead of nudging them towards the act of producing, their readers keep consuming and wander around from one to another article. They are never starting to learn the thing itself. They consume, but never end up producing.
After all, if you want to learn something new, you have to take the leap from consuming to producing. It doesnât matter if you choose Vue, Angular, Svelte or React, because they all solve the same problem. They enable you to build web applications. Thatâs it. And believe it or not, if you mastered one of them, itâs not difficult to use another one.
If you are staying in the analysis paralysis, there will be another framework to learn in the next year. So itâs just about getting your hands dirty. Produce. Donât consume.
After all, JavaScript is the foundation of any JS framework. If you have gathered enough JS knowledge, you shouldnât worry too much about the framework you are learning and using now. JavaScript should give you all the tools to use any of those frameworks. So your end goal should be to master JavaScript and not a framework which might be relevant for just another year for you.
Master the core principles of JavaScript. Whether you take the bottom-up (JavaScript -> Framework) or top-down (Framework -> JavaScript) approach is up to your personal learning approach. What matters is that you understand JavaScript to move effortless from one to another framework. Itâs not only applicable for React, Vue, Svelte or Angular, but also for libraries such as Redux or MobX . When you move from one technology to the next, you will need to understand the underlying mechanisms. So just take your time to learn about these core principles:
You donât need to be a wizard in these things. But at least grasp these principles to have a clue on how JavaScript works and how to use it without relying on heavyweight frameworks/libraries. For instance, people introduce far too early utility libraries such as Lodash . But most of the basic cases can be done with vanilla JavaScript.
Not everyone is in the financial position to learn just anything. Itâs time consuming. If you are financially restricted, the most important advice would be to keep an eye on the job market. Your freelance client might not care if you have built their shiny web application in Vue, React, Svelte, or Angular, but the job market shows clear trends where companies are heading. Keep an eye on it to learn something which will stay relevant. There are plenty of developer surveys out there, especially at the end of the year, and you will find more of these trends on Google Trends or StackOverflow.
I strongly believe that students should narrow their learning material to pave their way of learning something more effortless. Therefore it doesnât help to purchase 10 courses on Udemy. Itâs a never-ending consumer story and you will actually never get your hands dirty by programming yourself. Again, there are plenty of stories on platforms where people are speaking about the same problem: they have watched all the video courses, but none stuck and they donât know how to start coding.
Instead, if you have so much time to consume learning material, try to add diversity in it. Take one video courses and supplement it with a book, a podcast and a real hands-on course with a coding playground to stimulate all senses. Thatâs how I approached learning about machine learning . If you are coding a personal project along the way, you should be able to keep the challenges ahead and your skills in balance. Eventually you will end up in a state of flow .
If you feel like you belong to this group of people consuming too much, the most important step for you is to start producing. I believe you have already consumed plenty of learning material by now, so sit down and start to code something with your chosen framework. If you get stuck, use your favorite search engine, ask questions on StackOverflow or join a Discord community to get help from others.
Learning something new is never easy. Whereas someone is effortlessly building a thing in a video screencast in an hour without breaking out in a cold sweat, it takes you ages and lots of effort to implement the same thing. But thatâs normal. 99% of the video courses are prepared to show the optimal way and hide the effort. Thatâs what makes it such a pleasure to watch. Humans by nature avoid stressful things. However, breaking out in a cold sweat and taking ages to implement the thing actually helps you to learn the subject. So just sit down and start to code.
So how do you start to code Vue, Angular, Svelte or React? Pick a project that motivates you. Take your favorite hobby and build an application for it. It doesnât need to be a full-fledged application. If you like mathematics, implement a calculator. Start small.
At this point, if you are still in analysis paralysis, implement the same calculator in all frameworks. Keep the project small so that it doesnât take you too much time for the sake of comparing the major frameworks. For instance, in the case of a calculator only implement the addition, subtraction, multiplication and division features. In the end, take the framework that feels most comfortable and go with it.
If you cannot come up with a project idea, have a look at what other developers are building to learn Svelte, React, Angular or Vue. Most of them share their efforts on social media. Let them inspire you, try to do something similar or just try to copy them.
If you donât have a hobby (what?) and nobody is inspiring you (no way!), a third way of getting inspiration is cloning your favorite web application out there. You shouldnât implement the next Facebook, but what about a simplified Trello clone? The most important pieces of advice are: keep the size of the project manageable and have a motivating topic to drive you through the troublesome parts of the project.
2016 I decided to move from Angular to React. At the time I used SoundCloud on a daily basis to listen to my favorite artists (and still do) and thus I wanted to implement a SoundCloud application in React. At this time, there was an SoundCloud clone called sound-redux where I would be able to explore the source code in case I ran into any trouble. It took me three months to implement favesound-redux from scratch. I made the mistake to learn React with Redux though which steepened the learning curve, but somehow I managed to do it. This isnât to mean that you should implement such a large project yourself. I was in a great position to transfer lots of the underlying JavaScript knowledge from Angular to React. It shows how a project can turn out if you pick something you enjoy and stick to it for a while.
So what happens after you build your first project? Share it with the community on Reddit, Hacker News, Twitter or your Discord Community. Get feedback on it. Become a producer on those platforms - not only a consumer. Fully engaging with the community will help you get plenty of feedback, which helps you grow. Take this feedback with you, improve your project and start another project afterward to learn more about using your framework. Repeat the learning process with every project focusing on something new about general coding, JavaScript or your framework. Every project comes with its own challenges and opportunities for learning.
In the end, it boils down to this simple process to learn any framework:
I hope that this article provided encouragement to start learning React, Svelte, Vue, Angular or any other framework. It doesnât matter which one you choose, but you have to take the leap from consuming to producing. Start coding now. Along the way, better understand the core principles of JavaScript. I believe if you start to learn one of those now, you can make it on the job market this year using one of these solutions.