Help Me Learn Javascript In 2016

Javascript LogoTaking a page from a fellow Automattician’s goals for 2016, I am making a goal for myself that I’ve put off far too long: learning Javascript.

I’ve built many, many themes for WordPress, but was always able to get by with jQuery and learning just enough to do something simple. However, backtracking and learning Javascript from the beginning will open up many more opportunities for me. I want to be able to do things like:

  1. Contribute to projects like Calypso. With moving to Calypso, and the potential for self-hosted sites to use it, being able to understand it on a deeper level (along with the API) can help me be able to dig out bugs, submit fixes, and work towards enhancements.
  2. Build out home automation controls. My home automation system runs on a Mac Mini Python server. While it’s got a suitable app and prebuilt web frontend, there are a lot of things about it that are lacking that could be solved with even a simple HTML/CSS/Javascript site instead of the built-in stuff. By goal is to access the site via older iPads throughout the house for a “whole house” automation and monitoring solution.
  3. WordPress Plugins. I’ve got a couple of very niche plugins out on the main plugin directory. While they’re very basic, they work well for what I needed at the time, and it seems a few other folks needed them too! I would really like to work on enhancing one of them with some settings, since it enables Jetpack functionality for a theme framework that otherwise would require the user to modify their theme.

Additionally, with all of the frameworks heavy hitters are getting behind (like React), Javascript shows no signs of becoming irrelevant in the foreseeable future.

So, how can you help me? Send me resources. What site/book/course helped you learn Javascript quickest? After the basics, where did you go from there? More importantly, what parts did you struggle with, and what helped you get over the hump?

Join the Conversation

1 Comment

Leave a comment

Your email address will not be published. Required fields are marked *