This idea of online education is not something that new, especially in the IT world. Since its beginnings, the Internet was used to distribute information to its users. One of the most primitive form of “online education” were the online tutorials found on the Internet. Some of us remember the days (about ten years ago) when the Internet was flooded by sites that offered “PHP&MySQL tutorials”. But today you can find tutorials about anything, from C to Java, from Flash to HTML5, from Linux to Photoshop.
But modern Internet-aided education means more than just having information available online. It is said that Web 1.0 was the information being put online, Web 2.0 was the organizing and the linking of that information (using things like RSS to link information and sites like Google to search through the information) and Web 3.0, “The Social Web”, is the the connection of information to people (through social sites like Facebook, YouTube, Google+). The same can be said about modern online education: it is trying to be social, and sites like Coursera or Khan Academy are doing exactly that.
One site that I came across that fits this “Online Education 3.0” description, is Codeacademy.
Unlike Coursera or Khan Academy, students don’t get video presentations, but lessons in the form of tutorials. It’s more like a lab/seminary than a lecture. But if it lacks multimedia, it makes up with the interactive framework. Each lesson gives you a introductory description of a concept, with code examples and then you get some exercises for you to do to test out the presented concept. You do this in a Web-interpreter (they have one for Ruby, Python, JS/HTML). You can use the interpreter to test (almost) any code you want. You write your code to solve the exercises, and an automated evaluator tells you if you completed the task successfully. If so, you can move to the next lesson.
The lessons are chapters like “Functions” or “Flow control” and are organized in smaller sections, each with a certain concept in mind. The lessons are grouped in tracks and there is a track for each programming language available. You can go to any lesson at any time and you can do through a lesson as many times as you want. You can also rate each section to give feedback and discuss it with other users on a forum.
Of course, to make things fun and social, we have badges and points. For each lesson successfully completed, you get a badge that you can put on our profile page. You get badges for earning points over multiple tracks, or get points/badges for doing tasks each day, over multiple days (to make you come back to do more tasks). Here’s my profile.
But as we said before, it’s not the information being offered to the user, but the framework of the site. And Codeacademy offers an infrastructure where not only can you learn but you can also teach. The site allows you to create your own lessons. It has a very userfirendly interface for adding lessons and exercises, start code for the interpreter and tests for the interpreter to run to verify a student’s code. This is important to the peer-to-peer model of education, because users can easily create new content for other users.
So if you want to learn a new language in a fun way, go to codeacademy.com and start coding.