I’m a hybrid content author and web designer with no formal training in computer science. Over the years, I've honed my HTML and CSS skills through trial and error, repetition, books, online courses, and by tapping the expertise of colleagues. 

But JavaScript? I'm not so good with that. Sure, I can deploy a jQuery plugin and fiddle with parameters. And I know a bit of PHP (enough to get me in trouble, as they say). In most cases, I can decipher code, copy what I need, and modify it to meet my needs … as long as I don’t have to change too much. But my depth of understanding is shallow, which is something I’ve long wanted to remedy. Now I feel like I'm really making some progress with Codecademy, a free online ‘academy’ aimed at teaching basic programming skills.

Codecademy gets it right. For starters, you aren’t required to sign up for an account prior to beginning lessons. Instead, you can dive right in by typing your name in the site’s integrated editor. Entering your name is your first lesson. Only later, after completing a few exercises, are you prompted to sign up for a free account (which you only need to do if you want to keep tabs on your progress). At this point, you’ll have a good idea if this is for you. While this is a relatively minor detail, it’s a thoughtful touch that underscores how this is a different kind of training tool.

Lessons are divided into topical sections that grow in complexity as you progress. At each step of the way, accompanying text explains what’s going on and why. Within a few days, you’re writing simple programs that tie together all that you’ve learned up to that point.

While there are badges for completing sections, progress meters, and a point scoring system to help keep motivation up, the real driver – and the heart of Codecademy – is the integrated editor that accompanies each lesson. Rather, the integrated editor really is the lesson. You read a short bit of natural language text explaining a concept or new syntax, and then you’re asked to write some code to demonstrate comprehension. Everything you learn, in other words, you learn by doing yourself. You can’t move on to the next lesson unless you get the code right. This real-time feedback works.

There’s a lot of course material available, which is growing exponentially thanks to the addition of crowdsourced exercises submitted by other developers. User forums are active, so you can get help when you get stuck or need something clarified. Right now, only JavaScript lessons are available, with Python and Ruby courses to come later. I reckon these lessons will keep me occupied and learning for a long time to come. The best part is that the people behind Codecademy say they’re committed to keeping this learning resource free.

More than other online courses, videos and books that I’ve tried over the years, Codecademy fosters a clearer understanding of what it is that I’m doing and why I'm doing it because it is, quite literally, engaging. It’s not that other courses I’ve taken are not good, it’s that the Codecademy model is particularly good.

Troy Kitch @troykitch