For over 20 years, I’ve been engaged in the business of communication, training, and marketing. And for those 20+ years, I have seen, like you probably have, a lot of different systems that claimed to be “the answer” to online training, e-learning, multimedia, call it what you will. Most were and are expensive, clunky, platform-dependent and imposed a steep learning curve.

Most of these systems have served us so poorly that a large number of learning professionals still count PowerPoint (or now Keynote) as a major tool in their kit. That’s just pathetic and we all know it.

Recently, we’ve begun to see the rise of MOOCs, Massive Open Online Courses, and yet again these are touted as the end-all, be-all solution to the democratization of learning. And while they certainly do help, many are still little more than video streams with a plugged in quiz. I suppose the quiz qualifies them as being interactive, but a quiz never, in my experience, guaranteed real learning.

The best of the MOOCs include functionality that plays a huge role in a handful of new training websites, aimed at teaching programming languages. These sites sometimes include video, but sometimes do not. I’m referring to the interactivity of sites like and Site

These sites (the first currently free, the second offering low-cost entry into its classes) use a combination of technologies, most notably JavaScript, jQuery, and the Ace Editor plug-in to provide a highly interactive hands-on learning experience for those who want to learn the basics of Web application programming, using languages like JavaScript, Python, and Ruby.

While these sites aren’t perfect–they sometimes opt for glitz over a well-defined learning path–they do provide something that video-based learning does not: the chance to get your hands dirty building programs, with immediate feedback, albeit system-generated. Video-based systems generally send you off to set up your environment, and then to code examples and hope for the best. There’s little in the way of troubleshooting advice when your program doesn’t work. For beginners, this approach can stop learning in its tracks. Site

Just getting the environment set up for some programming languages can prove to be daunting, at best. In some cases, you’ll be unable to proceed with the training because you simply can’t get the compiler or interpreter to work on your particular system, with it’s particular operating system. End of story.

The interactive JavaScript-based environments also have some limitations: the founders of these sites don’t appear to have strong instructional design backgrounds, so while their modules can be slick and fun, there’s not necessarily a sense that you’ll be able to go from soup to nuts on their sites. Software developers are used to learning on their own, through books, Web searches, and simply trial-and-error. So, these lessons can be useful, as they are generally self-contained demonstrations of some discrete function or capability. For somebody new to programming languages, the sites are a good introduction, but will leave gaps for those who aren’t determined enough to seek out the requisite background material.

Still, as a model, these sites provide great hope to communicators and corporate training professionals like me. Having sat through more than my share of slideware trainings, I’m thrilled to see a way to provide real hands-on training, at least to a segment of the population.

What else can we do with this technology, especially in more general education?