How to self-teach JavaScript
Tags: beginners, javascript
Published: 2020-01-02 12:17:24

---
title: How to self-teach JavaScript
published: true
date: 2020-01-02 11:04:34 UTC
tags: Beginner,JavaScript
canonical_url: https://carlanderson.xyz/how-to-self-teach-javascript/
cover_image: https://images.unsplash.com/photo-1531482615713-2afd69097998?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=1080&fit=max&ixid=eyJhcHBfaWQiOjExNzczfQ
---

There's no denying that self-teaching JavaScript is difficult - although you have the benefit of always working on areas that interest you, it can be difficult to find direction in your learning.

You're continually asking yourself: are you're doing the right thing? Is there something important you're missing? What are you meant to do next?

Not all learning methods are equal: the time you spend glancing over yet-another explanation of prototypal inheritance (that you still don't understand) isn't as beneficial as when you're 20 chrome tabs into solving an inheritance problem.

If you're looking to make the most of your time, there's a simple cycle that you should be underpinning your learning:

**Write, Research, Repeat**

The key takeaway here is that your entire learning path should be driven by _writing code_. It's a skill you have to develop, so there's no substitute for practice. The trick is [finding a constant stream of ideas](https://dev.to/canderson93/how-to-find-ideas-for-good-practice-projects-5hcm).

The ultimate process is straightforward, however. Write code until you get stuck, and then research your problem until you get unstuck. Over time, you'll need to research less and less.

* * *

Of course, if you can't write _any_ code, then this advice isn't useful to you, so I've divided up this strategy into various learning stages to give you a more granular approach.

You have three phases of learning, where the strategy differs slightly:

1. Introduction Phase
2. Growth Phase
3. Honing Phase

### Introduction Phase

This phase is the simplest to grasp - you don't know anything. The best thing to do is to take a course that introduces you to the basics of JavaScript. Most people do an entire, in-depth course during this phase – after all, more is better right?

No, not at this stage.

The challenge most people have with the introduction phase is that they try to learn _far too much_ before attempting to apply their knowledge. They try to run before they can walk.

[Courses will teach you a language, but they won't teach you how to build software](https://dev.to/canderson93/can-you-actually-learn-javascript-from-an-online-course-5eag) – that's something that you can only learn from practising. You want to keep the period where you are _only_ working from a course as short as possible.

In short, you want to learn absolute basics. I recommend completing the [Basic JavaScript section of FreeCodeCamp](https://www.freecodecamp.org/learn). It covers all the core building blocks you'll need to work on your own, then you can come back.

### Growth Phase

This phase is the point where you have enough knowledge to write code, but everything's clunky, and you're still missing significant amounts of knowledge.

Initially, I recommend you completely stop your course for a while, and spend some time creating several [practice projects](https://dev.to/canderson93/how-to-find-ideas-for-good-practice-projects-5hcm) to solidify what you learned during the introduction phase.

When you're more confident in the basics, you should re-incorporate your course back into your learning. Doing a section in between projects is a good approach.

When you've finished your course, it's a good chance to stretch yourself and try new things. Experiment, and work on the areas that interest you: Frameworks, CSS drawings, WebGL, Node. Have fun with it. It's all valuable.

### Honing Phase

This phase isn't clear-cut like the other two. The honing phase is an extension of the growth phase, but we start working on more ambitious projects. Chances are you are _still_ missing significant amounts of knowledge, but coding is comfortable now.

You're ready to start the honing phase when you aren't lost when working on code. You're able to imagine your own solutions to problems (even if you have to google the specifics). [This article might help you.](https://dev.to/canderson93/how-to-write-javascript-when-you-don-t-know-where-to-begin-5f3f)

This is the time to practice softer aspects of programming, like the code quality and structure. Start learning best-practices, like testing, commenting your code, and (if necessary) writing docs.

You can now also assemble and refine your portfolio, and use it to apply for Junior roles. It can take a long time, though, so I wouldn't make it a priority. You can also start on interview prep through sites like [HackerRank](https://www.hackerrank.com/).

* * *

Although it sounds cheesy, the most critical part of this entire process is to make sure _you're having fun_. Learning to code is a slow process, and it's going to be much easier to keep your motivation if you're enjoying yourself.

{% twitter 1212372164520955904 %}

I've linked this article multiple times already, but I strongly recommend you [check out this guide on choosing ideas for practice projects](https://dev.to/canderson93/how-to-find-ideas-for-good-practice-projects-5hcm). Get out there and _write. some. damn. code._

----
[Are you stuck on JavaScript Tutorials? Sign up to my newsletter for more helpful articles to get you moving again](https://pages.convertkit.com/9f030a68c9/cd303b3d7b)