The purpose of this post
A lot of the recommendations you’ll see further down are gathered from various blog posts I’ve seen around the subject. So, even though I haven’t taken all the steps myself just yet, I do consider the recommendations outlined to be solid.
/js/ folder inside of
A 10 step program
You don’t need a lot to get started, but you do need the following:
- Get yourself an account on Codecademy
Weeks 1 and 2 (Introduction, Data Types, Expressions, and Operators
- If you do not already know HTML and CSS very well, complete the Web Fundamentals Track on Codecademy.
Weeks 3 and 4 (Objects, Arrays, Functions, DOM, jQuery)
- Right about now you should be spending a lot of time writing code in your browser’s console and testing if-else statements, for loops, Arrays, Functions, Objects, and more.
- While you are on Codecademy, go ahead and build the 5 little Basic Projects on the Projects track. After this, you are done with Codecademy. The more you work on your own, the faster you will learn and the better prepared you will be to start programming on your own.
- Work through the entire jQuery course at http://try.jquery.com/
Weeks 5 and 6 (Regular Expressions, Window Object, Events, jQuery)
- Remember to keep typing out all the example codes in your browser’s console and tweak each piece of code to experiment with it to really understand how it works and what it does.
Weeks 7 and, if necessary 8 (Classes, Inheritance, more HTML5)
- Learn React.js. Check out how Calypso is built and see what you can improve or change. Maybe even turn it into a bespoke version for yourself?
- Next: Decide on a personal project to build, and start building your project promptly (while everything is fresh in your mind).
Back to WordPress
Excellent stuff, Remkus! Bookmarked it so I can refer back often!
Thanks John. That was exactly my intention!
[…] visit Remkus de Vries […]
These are some great resources Remkus. I kind of disagree with the approach personally, because I cannot learn from reading books about code. I have to learn by doing a project and breaking stuff in real life. It’s only after I have some experience with the language that reading a book helps me.
Thanks for taking the time to comment Scott, much appreciated. Very solid advise and I guess this goes for more people. I’ll think about how I can integrate your feedback. Any suggestions on what kind of stuff would be easy enough to start building?
I have to agree with you: need to get their hands dirty in order to actually learn — books tend to take you from point A to point B in a risk-free (“hey, I’ll read that during my train commute!”). That’s why I think Remkus did well to include online interactive courses such as Codeacademy. Codeschool is another, for instance.
There’s a host of great resources online (MDN, YUI Theater,, but I feel these two should be part of every list 🙂
And: stay away from w3schools! 🙂
Thanks a lot Luc. I’ll see if I can add a section of extra recommended books as well.
Thanks for taking the time to comment Michelle. I’ll add this to a “alternative books” section once I have some more feedback.
The thing that gets most people stuck is not the language, per se, but they myriad of run-time libraries that have sprung up around things. There are also some pretty massive data stores that you need to learn as well, like the DOM. So-called “frameworks” are growing like weeds these days, and they’re all designed to address slightly different perspectives.
There’s on thing that isn’t emphasized enough that I’ve often found quite helpful when learning a new language. That is, spend some time reading over existing code libraries. Look for IDIOMS. These are the coding equivalents of running into someone in the hallway and they say, “Wazzup?” Code initially looks like a huge mess of stuff. As you keep looking at enough of it, you’ll start to see patterns — the same kinds of code fragments — showing up all over the place. Code that processes a keystroke, a word or phrase, a command, a mouse-click, certain events like roll-overs, testing if a resource is exhausted or not, swapping variables,
Each library will have their own idiomatic phrases as well. So if you’re learning a new library, spend some time reading code that uses it, because there’s a good chance your code will look very similar when you’re doing similar things.
Unfortunately, we’re not at a point yet where we’ve figured out how to make all of these common code patterns more abstract, which is one of the things this proliferation of frameworks is attempting to resolve. In the mean time, the best thing to do is learn to recognize these idioms and apply them, rather than reinventing the wheel. (And stay away from self-modifying code!)
Thanks for taking the time to comment, David. Appreciate your input!
Thanks for taking the time to comment Jon. I agree, StackOverflow is always your best friend when it comes to coding 🙂
Thanks for the awesome write up Remkus!
Do you recommend we acquire a copy of this updated version? Is there a specific reason you link to the older edition in your article?
My pleasure Evan, and no, no particular preference. I have adjusted the Amazon link to the latest version now, though.
I can also highly recommend https://reactforbeginners.com/, by Wes Bos
Thanks for this very helpful post.
Once again, thanks for taking the time to post this.
If you’re an absolute beginner when it comes to developing websites for the web, yes. I’m making the assumption here you’re not.
Ok, thanks for the clarification.
Here’s a great resource by Addy Osmandi (Google Engineer) for learning Backbone.js: http://addyosmani.com/backbone-fundamentals/`
This is just what I was looking for last few days. Already refer this to all of my friends who are working on WordPress and Bookmark it to share in future too. Thank you so much Remkus for sharing such an awesome guide with us.
Thanks for your kind words and am happy I could help
Such a good post – love how you broke it down into steps, too. So much easier than just handing off a massive amount of material and saying “Here, good luck!”
Way to go, Remkus :).
Thanks Tom, that means a lot coming from you!
Thanks man! It’s really a nice post and useful to learn something more… Appreciate your writing 🙂
Thanks Kirsten. I think mixing both the book and the online courses is the perfect mix, which book you use is indeed a preference. I’ve done a lot of research and the general consensus seems to be that The Definitive Guide is the best to start with.
A little late to the discussion, but FreeCodeCsmp (https://www.freecodecamp.com/) is an excellent resource for learning JS, although it focuses on the MEAN stack.
thanks a lot!!! my wordpress will be more powerfull with this
Good article thanks for sharing …
A really interesting article. Even today it is still useful information, especially the learning system that you mention so as not to incur errors, bad habits or long-term problems when writing our code.
Nice post. Thanka for sharing!