I agree wholeheartedly with this. I find that I learn more and engage more with my online courses than in a traditional lecture because I am able to watch a few minutes of instruction, then work an example and have it validated. It breaks the lecture up into small incremental building blocks, whereas in a classroom you normally get the entire lecture, then work the homework several days later. By having real time feedback, you learn better and more quickly. Also, since most programmers learn by example, if the instructor uses well structured code, the students likely will, too.