About 4 years ago I started making videos for my students in 145: Intro to Programming class to watch. This semester I made 62 Java tutorial videos for them to watch. Their response has always been mostly positive: about half like them, the rest don't care, and the view logs show they are being watched, a lot.
This semester was the one where online programming classes really took off, with new startups like Audacity, Coursera, and CodeAcademy, all of them inspired by the now 11-year old MIT Open Courseware. These online courses are getting a lot of press because of reported hundred of thousands of students signing up. I told all my 145 students about these resources at the beginning of the semester, along with my own videos.
So, did the students learn more this semester than in past semesters? No. As evidenced by the in-class final, their proficiency at the end of class remains the same (I first taught this class in 2006).
I think videos are a great alternative way to present information, and the more different ways we can present the same idea to students the more likely we are to reach them. I will continue to use all these online resources in my own classes and continue to make my own videos, and I hope the videos get even better. But the fact remains that there is no teaching, there is only learning. That is, if one wants to learn how to code there is simply no alternative but to sit down and spend hours upon hours practicing (replace 'code' with 'play the guitar', 'do calculus', 'write well', 'play golf', etc). A teacher/book/onlinecourse cannot do the learning for you. The learning is all up to you.
Online classes like those from udemy and coursera attract those who are not in school (and, mostly outside the US) who have a deep desire to learn a specific topic (like, programming, to get a job). These people would have learned the subject by reading a book and practicing (just like I learned programming in high-school by reading a book and practicing with my Apple IIe). The online class just makes it a bit more pleasant, for some, and most importantly it is free. A textbook can easily cost you $100.
The ongoing challenge is not putting more courses online. That will happen, of course. All information is, or will soon be free. The challenge, and the job of Universities, is in guidance and certification. There is no way one person can learn everything so, what should he learn? Is it at the right level for the students in class? Most (all?) MIT and Stanford CS freshmen already know how to program, so their 101 class should be much different from ours. Then, can we certify that the student has indeed learned what he claims and not just outsourced his homework? It is trivial to cheat in an online class.
My 10-year old son is learning about percentages. I wish I could put him in front of some Khan Academy videos and have him do their practice exercises and, boom, he would be able to tell me if 10% off a $18 purchase is a better deal than 2 for the price of 1 at $15. I tried it. It didn't work. I still love the Khan Academy and we use it a lot, but it does not replace practice.