There’s no escaping the almighty JavaScript.

As the first language of all browsers, it powers most of the web. That alone makes JavaScript a necessary evil for any budding developer.

But it doesn’t have to be totally evil…

For many months now I’ve been struggling to master JavaScript. I gave up completely for a while, trying to gain proficiency in jQuery instead. But my lack of ability in basic JavaScript still held me back from full understanding.

I didn’t give up on JavaScript without a fight. I tried many resources to learn it - from Codecademy to Free Code Camp, from various YouTube tutorials to Jon Duckett’s JavaScript and jQuery book. All these materials are of value, but somehow the concepts refused to come together in my mind. I could get through the code challenges, but was at a loss when it came to writing my own methods and functions.

The Eureka moment finally came last week. I discovered something that completely changed my perspective. I now have confidence in the basics of JavaScript, and - shock horror - even enjoy writing it!

The online course from Treehouse, JavaScript Basics, is what changed everything for me. Taught by the excellent Dave McFarland, JavaScript Basics consists of video lessons, screencasts, quizzes and code challenges (both guided and ‘free-coding’ style).

Quizzes are peppered at regular intervals throughout, which really helps to solidify the concepts taught in the videos. The quizzes are nicely pitched; just difficult enough to make me think carefully back over the teaching material, but not so difficult as to throw me off track completely.

Soon I could write my own functions with full understanding of why I was taking each step. This is the first time I’ve been able to do so and it was a very exciting moment.

So what makes JavaScript Basics more effective than the other courses I’ve tried?

Puts code into context
When explaining functions, for example, Dave goes through each line of code and explains how it all fits together.This added context helped me a lot. This is often missing from online learn to code resources, which tend to get students completing isolated code challenges, without gaining understanding of the whole.

Gives the full picture
In JavaScript Basics, each new concept builds on the ones taught before. When it was time to move on to the next topic, I was fully equipped with all the necessary knowledge. No key pieces of information were lacking.

Uses real-life examples
Dave illustrated the concept of functions using the example of his assistant bringing him coffee. The assistant receives the same set of instructions (the function) every day: “Bring me my coffee”, with minor variations on the type of coffee, e.g. latte, frappuccino, espresso, or iced tea. These variations can be likened to a JavaScript function receiving different arguments.

Offers just enough guidance
Some courses leave students floundering, while others spoon-feed them everything. JavaScript Basics provides just enough guidance for the student to confidently tackle problems on their own, with a full video walk-through solution available if needed.

Includes fast, friendly forums
I asked, they answered, within minutes. The folks in the Treehouse community are generally supportive and usually ask constructive questions that others can learn from.

Treehouse has tons of courses and very affordable monthly subscription rates. Check out my referral link and try out Treehouse for free.

I hope you get your Eureka moment too!