I've found this thing by accident (ever get so bored that you open Synaptic/Aptitude and just browse?), but after going through a few exercises I decided to share it.
So, what the hell is this? In the website's own words:
- The Programmer's Learning Machine (PLM) is a free cross-platform programming exerciser. It lets you explore various concepts of programming through interactive challenges, that you can solve in either Java, Python or Scala (support for the C language is experimental).
- The PLM is known to work on all major operating systems (Linux, Mac, Windows). Its interface and content is througfully translated to English and French, and partially to Brasilian and Italian; we hope that other translations will be contributed in the future.
It's pretty fun and informative. I think that I know Java and Python pretty well but I'll be using this thing to get a better handle on Scala. You read a short lesson, solve an exercise and move forward. Comparison to Codecademy is unavoidable and I would say that PLM is very much a superior product. You don't need to register anywhere, don't have to run it in the browser. There's an option to download it as a .jar Java file, you will have to have Java installed and the same thing goes for other languages. Very easy on Linux, Windows users might like to stick to the web applet and do the problems in the browser but it's possible to have it on your own computer. If you had problems with codecademy due to connection or some other issue, give it a shot.
Anyway, I hope that you will like it as much as I have now. The first exercise reminded me of a book about Logo, as you are moving a 'creature' around and paint lines by directing it's movements and do all the brush up/brush down stuff. ;) Following projects are more about algorithmic thinking where you will solve sorting and recursion problems in the same step-by-step fashion.