A guide for complete beginners to learn JavaScript
Tags: javascript, beginners, codenewbie, webdev
Published: 2020-04-17 14:02:51

This is my outline for complete beginners to learn JavaScript. I struggled to learn on my own for years while I searched for great learning resources. This is the secret: find a path and just stick to it. 


Here's the best path I can recommend. If you follow it, you will learn JavaScript. 

{% youtube 8rCsdyZmfc8 %}



### Step 1. A Smarter Way to Learn JavaScript  | http://www.asmarterwaytolearn.com/js/
This is a good resource for someone who has never programmed anything at all before. This book and accompanying site is great because the author gives you chapters that are easy to digest, and then you are able to practice in a live environment, write real code, and then see if your code is correct. Follow the book chapters and complete at least 75% of the online lesson challenges, which are free with a purchase of the book. 

Mark Myers also has A Smarter Way to Learn HTML and CSS, as well as A Smarter Way to Learn Python. They're all excellent beginner books and courses. I originally began learning here.

### Step 2. 30 days of Code Challenge | https://javascript30.com/
In this online course, Wes Bos takes you through 30 simple projects where you get to build actual things with JavaScript. He gives you access to all the source code files and usually starts you out with a project that's half built so you get right into building the cool stuff right away.  It's a great way to jump-start learning how to build real world  projects. The idea is to code everyday or follow along with this tutorial everyday for 30 days so that you really catch the coding bug and then want to continue coding as a habit. I've heard that once you do something repeatedly everyday for long enough time you will make that thing a habit and this course is definitely following that concept. Make sure you complete all of the course before moving on.

### Step 3. FreeCodeCamp / PizzaPokerGuy | https://www.youtube.com/user/pizzapokerguy87/playlists?view=50&sort=dd&shelf_id=12
FreeCodeCamp is a well known resource and community for learning how to code. It is exactly what is it- a free coding camp. After you get past the beginners tutorials, the real world projects are fairly difficult for beginners. Give them an honest try, and when you get stuck, check out PizzaPokerGuy’s YouTube channel, where he walks you through some of the projects. He also walks you through most of the tutorial lessons. Watching others code is a great introduction to pair programming. Go as far as you feel like with the beginners tutorials and easier projects, then move on to YouTube tutorials.

### Step 4. YouTube Tutorials
At this point you should be familiar with how to build an application, but maybe you're not able to build anything on your own. That's ok! The best thing to do now is just follow tutorials and build as much stuff as you can. Search for “Learn JavaScript” and find some projects that are interesting to you, or check out Traversy Media. 

### Step 5. Udemy
Udemy has great courses that are more professional and updated than YouTube tutorials. If you aren’t having luck finding YouTube tutorials you like, check Udemy. Be sure to complete whatever course you take. I find it takes me 3x the length of the course to complete, due to bug troubleshooting and note taking. 

### Step 6. Edabit | www.edabit.com
Edabit is great to practice syntax and algorithms. It’s free, shows multiple solutions if you get stuck, and has differing levels of challenges, starting from ‘Very Easy’. Repetition is key, because coding isn’t about memorization, it’s about figuring out problems. Spend time each day attempting challenges. After you have a feel for building application, be sure to sharpen your skills with challenges.

### Step 7. Keep at it! 
This will take time, I’ve outlined hundreds of hours of content above. Remember that learning to code is about enjoying the journey, and not the destination. Programming is all about continuous learning!