Learning how to write programs for computers can be difficult if you don’t have a good learning method. And thus codecademy was created—a site that aims to enable it’s users to teach and learn how to code.
I do not recall how I came to visit the codecademy site for the first time, other than that it happened around a week ago. The site offers a number of courses—all of them gratis—and I decided to select the Python course (because I happen to like Monty Python). The site is very nice to use and beginning a lesson is pretty straightforward, once you sign up. I was pleasantly surprised to find that you do not even have to have a so-called IDE or programming editor installed on your computer, nor the interpreter/compiler for that matter. All coding and running of your code takes place within the browser or on their server. I think this is a huge convenience.
Each course is divided up into topics and every topic is again subdivided into exercises. All the exercises can be completed from within the convenience of your own browser and successfully completing a set of exercises earns you credit. Great, if boasting about your score turns you on. While all this sounds nice in theory, in practice things are a little bit different.
You see, in order to successfully complete exercises your code and/or the output of your program may be checked. This is done automatically, by parsing the lines of your code and/or output of your program. If your code does not meet certain requirements—such as using a specified variable name, or method name—then you will not get credit for completing the exercise of the exercise (even if your code works!) The site also suffers from bugs—sometimes you may write valid code that nevertheless only passes after reloading the page in your browser. That is really annoying. Furthermore, I find the selection of programming languages to be rather limited. At the time of this writing there are no courses for C, C++, nor Java, nor Fortran and PHP to name a few examples. Finally, it also seems that the courses are severely lacking when it comes to more advanced topics such as Graphical User Interfaces and Networking, or as one user lamented on the forum page after completing the last exercise “Now what?”. I think this is a pity. But the project appears to be rather new and hopefully new exercises and courses will soon follow.
On the whole, I think it’s a very nice idea and would encourage anyone to try codecademy—if only to get a small idea of what programming is about. Just as long as you realize that you will only be able to learn the basics…for now at least.
Another very interesting free on-line learning site is Udacity (www.udacity.com)
I highly recommend its CS101 course, which uses the Python programming language for teaching a primer in computer science.