When to Start Learning a Front-End Framework
Tags: javascript, beginners
Published: 2019-06-04 15:38:18

---
title: When to Start Learning a Front-End Framework
published: true
tags: JavaScript,Beginner
canonical_url: https://carlanderson.xyz/when-to-start-learning-a-framework/
cover_image: https://images.unsplash.com/photo-1544809161-302b924a2aad?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=1080&fit=max&ixid=eyJhcHBfaWQiOjExNzczfQ
---

If you try to learn React, Vue, or Angular as a beginner, the first piece of advice you get is to _go learn JavaScript_ - anyone without _some_ JavaScript experience is going to struggle with the added learning curve presented by a framework.

What isn't discussed is _how much JavaScript to learn_ - Do you stop at the basics, or do you need total mastery before you write you finally open your first React tutorial? When are you _actually ready_ to start using a framework?

## Concepts you should know

I'm going to level with you: you don't need _that_ much JavaScript to get started with a framework. As long as you have a decent understanding of the building blocks, you're good to go.

This is the list of things you need to have a solid understanding of:

1. Variables and Functions
2. Objects and Arrays
3. Control Flow – `if`/ `else`, `while`, `for`

Believe it or not, that's the complete list - but this is just _to get started -_ but don't think your JavaScript journey is over yet.

## Concepts you should be ready to encounter

Aside from the _must know_ concepts, it pays to have an awareness of broader concepts - These are concepts you won't need to follow the early tutorials, but will need before you'll be able to write full applications.

1. HTML/CSS
2. Scopes (how `var`, `let`, and `const` work; [closures](https://dev.to/canderson93/javascript-closures-and-how-they-work-51bk))
3. Object Oriented JavaScript ( `class` )
4. Functional JavaScript ( `filter`, `map`, `reduce`)
5. `import`/ `export`
6. How `this` works; [contexts](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this)
7. `async` functions, and AJAX.

If you start with frameworks before having an understanding of these concepts, you should expect to need to stop and revisit pieces of this list throughout your learning journey. However, remember that frameworks are an _excellent_ learning space for learning advanced concepts, since they leverage them constantly.

If there is anything on the above list you don't understand yet, you can still start your framework journey - as you understand different parts more, ideas you once struggled can become a lot easier.

## Learn to build things

In my opinion, the most important step you should take before you learn a framework is to _learn how to build things_.

Building things with programming is an acquired skill, and developing the ability to successfully break down tasks so they can be translated into code is a vital skill in _any_ programming language.

The most important part here is that you build _very_ _small things -_ far smaller than you might think, such as "a button that plays your favourite song", "a form that lets the user add and remove fields", or "a box that chases the users mouse around the page". [You can check out this article if you're struggling with ideas.](https://dev.to/canderson93/how-to-find-ideas-for-good-practice-projects-5hcm)

Building things is harder than you'd think and maintaining motivation is difficult, so you want to choose small, achievable projects that you'll finish. A good test to see if the project is small enough is if you _think_ you can do in under an hour. If it takes longer, no big deal - it's likely not going to take _significantly_ longer.

When you've built a couple of these simple things, _then_ you can introduce a framework. You should keep building simple things with your framework until you're comfortable again before finally moving to more ambitious projects, if you choose - or you can use your new portfolio of projects to land your first job!

## Advice for switching

If there's one piece of advice I have for people trying to learn _any_ programming language, it's that you will get stuck - _All. the. time._ This is going to be doubly true once you pick up a framework, since you're going to encounter a lot of unfamiliar concepts all at once.

If you're overwhelmed, the best thing you can do is to focus _only_ on the task at hand. You don't need to spend an hour reading up how `class` and `import` work _just yet_ if all you're trying to do is get "Hello World" on the page.

Take things slowly, build on your previous knowledge - it's not a race.

[Are You Struggling to Learn JavaScript? Sign up to my newsletter for articles like this straight to your inbox](https://pages.convertkit.com/9f030a68c9/cd303b3d7b).