I wanted to add a few lines as well about my personal experience with some of this! I’ve tried quite a few of the links they provide.
I have a very high opinion of the courses that the guys at Codecademy have developed! I’ve used them to learn a couple of programming languages (or, rather, to refresh my memory on them). The challenges are feasible without being too simplistic, and they’re lots of fun! I’ve done quite a few of them, and when learning a new language, I’m often tempted at starting with them, just for the playfulness. Good work guys!
- I’ve used Udacity to understand some more abstract concepts of Computer Science, and their explanations are really clear. Sometimes, it felt a bit too clear, so I think it’s good if you alternate it with other challenges in which you might get more challenged. When it got to specifics… the languages they have, either I knew already the topics, or they were not in my radar at the moment, so I can’t really say!
- With Coursera, my personal results depended more on the course itself. I haven’t had too much luck with the coding-related ones, but I’ve had pretty good ones overall, so I’m still willing to give it a shot!
Check out the complete list by Business Insider here. Their article also has some really good resources for specific programming languages (and I can vouch, the ones they mention for Ruby are quite good pointers to start with):