So here's what I used:
- Lynda.com (www.lynda.com) - a paid subscription based site that is essentially a library of videos for a large variety of subjects, not just programming. Depending on your subscription, you can access different resources such as source files to follow along with the videos.
- Code School (www.codeschool.com) - a freemium site that specializes in programming languages. A lot of their introductory courses are free, and they operate in a achievement/gaming model - you can earn badges for completing courses and get discounts on their intermediate courses if you complete courses.
- Codecademy (www.codecademy.com) - a currently free site that, like Code School, gives you badges as achievements for courses. They're currently building out their site.
- Coursera (www.coursera.com) - a free site that hosts classes from multiple universities online.
We'll start with Lynda, the first site that I used. Lynda reminded me a lot of some of my college lectures - some of the courses were a mix of Powerpoint presentation recordings and demos of the product/code in action. I found myself taking notes on the side and pausing the video at multiple points to digest what I had just learned. But I didn't quite connect with the material as well - rewinding and rewatching portions of the video turned out to be a much more common task than I expected (or perhaps I'm just not the brightest bulb in the box...). Getting around the site itself was pretty okay, but the big problem with Lynda for me was that I just wasn't engaged with the video.
Finally, there's Coursera. Like Lynda, it relied heavily on videos, but I felt like I was actually back in school - the course I took was HCI from Stanford. It was a great refresher course, and I definitely learned a lot of new things. What was interesting was keeping up with the homework and quizzes, especially the peer grading. It forced the students to go through an exercise where they learned what a good and bad homework sample looked like so that when they went back to review their own assignment, they would be (in theory) honest about their self evaluations and fair in evaluating others.
Exploring these sites was a great exercise in user experience, but it also taught me about myself. My learning style was refined along the way, and I found that there were things that worked for me much more. There are many different interpretations of online education, but it's a field that's still evolving as technology keeps growing and more classes become less about the traditional desk and chairs and more about having a decent Internet connection. In the end, I think that the site that worked best for me was Codecademy - the interactive exercises are what did it for me along with the site's clean design and easy learning curve. I highly recommend all four sites though - what worked for me may not work for you though.