MDN are great. They’re well known for their comprehensive documentation on web technologies but less known for their in-depth tutorials for beginners. The tutorials are well-structured, clearly explain the subject matter and can take a reader from not knowing how to use an img tag all the way up to marking up their own SVGs and more.

The JavaScript section is OK but as a language, I feel that something more interactive (like Codecademy’s introduction to JS track) lends itself better to teaching the basics of JavaScript.

I picked these two out of personal preference but there are many similar resources online which are just as good. The important thing is to find a catalogue of problem sets which you can go through and then compare your solutions with those of others.

CodeWars have a system where each kata (challenge) is assigned a difficulty rating that’s modelled on the belting system in Japanese martial arts and allows users to improve their ranking through solving more difficult kata. It’s a small touch, but if you’re a geek like me, you’ll get completely sucked in.

When learning to code, it’s a given that questions will arise, and it’s often the case that the answers to those questions require the reader to seek a deeper level of understanding in order to be fully comprehended.

Enter programming books.

To start off, I recommend Marijn Haverbeke’s Eloquent JavaScript. The author has a special way of presenting programming as an art form as opposed to a science and going through the book’s chapters will seriously ramp up a beginner’s skill level.

Questions breed more questions, so to dig a level deeper I recommend Kyle Simpson’s six-part book series You Don’t Know JS. The third book sheds a lot of light on the problems surrounding OOP in JavaScript and the fifth book gives one of the best explanations on the different abstractions used in JS to write asynchronous code.

“it’s impossible to effectively use any abstraction if you don’t understand what it’s abstracting, and why.” — Kyle Simpson

Expect to spend many hours contemplating concepts with these resources and hopefully, many ‘a-ha!’ moments too.