In this article, I share a list of the recommended resources that have helped me learn JavaScript.
When Stack Overflow did their 2017 survey, JavaScript was the most popular programming language. Out of the seemingly unlimited set of available resources to learn the language, I would like to share the ones that helped me the most.
Before starting with these resources you should have some coding experience. If you would like to gain some more experience or have no experience coding, I would recommend having a look at Learn how to code with these resources. If you would prefer to dive straight in, the resources below can be completed in the order they are shown.
Head First JavaScript Programming (2014) Freeman and Robson
Textbook
As soon as saw that this book was written by the same authors as Head First Design Patterns it was an obvious choice for me to start learning JavaScript. It is written so well that an introductory course in coding is enough prior knowledge to understand this book fully. In my case I already had experience with Java, so I felt I was able to grasp the concepts quite quickly. Minimal knowledge of HTML and CSS is also required, but that is quite easy to pick up if you haven’t seen it before (eg. from w3schools). By the end of the book “you are well on your way to becoming a JavaScript expert” according to the authors and that seems like an honest statement to me!
Free Code Camp (2017)
Tutorials and projects
Free Code Camp has really helped to consolidate my JavaScript skills. On my FCC profile, you can see everything that I have completed. I found the intermediate and advanced projects to be particularly useful after reading Head First JavaScript Programming.
JavaScript Testing (2017) Udacity
Online Course
If you are not familiar with testing in JS (with Jasmine) or how to do TDD, this course offers a great introduction.
Object Orientated JavaScript (2017) Udacity
Online Course
If you would like to deepen your knowledge of some of the lesser known things about JavaScript, this course offers some really good insights into the language. The course seems to be catered for people who have less experience with object orientated programming. Since I already had experience with Java, I was able to get through the course quite quickly. Oh, and the final project is really fun!
ES6 – JavaScript Improved (2017) Udacity
Online Course
This is by far the easiest and best way to learn ES6 that I have encountered. This is considered an advanced course by Udacity standards, which means you need to have some experience with JavaScript already (like the resources above!). I highly recommend this course to anyone who is looking to get the most out of JS and/or considering learning about Angular or React. The course took me around 8 hours to complete.
Functional Programming JavaScript (2017) Harry Moreno
Online Tutorial
This tutorial really helped me on my way to understanding functional programming.
JavaScript30 (2018) Wes Bos
Coding challenges
These coding challenges are awesome. They are not only an opportunity to practise JavaScript but HTML, CSS, ES6, regular expressions and functional programming as well. I would recommend completing the exercises on your own first and then comparing the differences at the end. (This is where I learnt the most!) In order to get the most out of these challenges it’s also better to have some knowledge of JavaScript beforehand.
Additional Resources that I haven’t tried (yet)
Also from Udacity:
- JavaScript Promises
- JavaScript Design Patterns (prerequisite: OOJS)
- Asynchronous JavaScript Requests (prerequisites: JS Promises and OOJS)
Other books:
- You Don’t Know JS (free)
- Eloquent JavaScript (free)