Video is a poor medium for learning to program

12 Apr 2011

Maybe I'm just getting old, but I'm not a fan of using videos to either learn or teach programming topics. In almost all cases, videos are all about flash, not about substance. Video is a medium that excels at capturing visually-rich data in motion. This simply doesn't align with how we program (or even what programming is). For me it's like a baking book made solely with pictures - good luck with that.

I see specific problems with video. No doubt some of them can be fixed. But even if you fixed all of them, I'm at a loss to come up with any distinct advantages video has over text. I'm a cynical person and my cynicism says that video is all about pretending to give more while actually giving a whole lot less.

First of all, when you read text, you can do so at your own pace. Not only can you read as fast or as slow as you want, but you can skip ahead or read something over again. This is a very natural and common thing to do with text. With video, the pace is fixed and the ability to jump back and forth is limited.

Video also has has little context. How often do you read something, only to scroll up and go over a previous paragraph? Teaching is about building on top of previous lessons. Part of that process is relearning something, even something you just learned, based on new information. Video doesn't have this, or any, type of context. Every topic...almost every sentence, is detached from the rest of the information - future or past.

Text is the most accessible mediums available. I mean accessible in the widest possible way. It's more accessible to people with visual disabilities and it's more accessible across more technologies. Most important though is that text makes the information more accessible to you. You can easily search text for specific information (as can Google), which you can't do with video. You can easily index it and build references. We have simple markup tools (HTML) specifically designed to make information accessible. We can bookmark it, often specific sections. Video? Not so much.

Because text is accessible, it tends to be more organic. Text is easier to change, share and to converse about. People can leave comments and easily correct text. Text can also be easily shared, and used as the foundation for a new discussion. In fact, tools such as Wiki or GitHub can make this a truly collaborative effort. With video there's always going to be a disconnect between a text comment and some part of a video.

Video doesn't integrate with outside information as well. You can't naturally drop a link/reference to an outside source within a video the way you can with text. First, it mechanically doesn't work as well. Secondly, the lack of context makes switching between two or more sources unnecessarily tedious. Video trades important meta data/information for unimportant fluff, like seeing a cursor blink.

All of these issues make it harder for developers to experiment. They sit, watch the video, and move on. The pace, which they can't control, makes it either too hard or too boring to try the code themselves. The lack of context makes it dangerous to stop and experiment with questions that inevitably come up. The poor indexing makes it less likely that you'll share individual pieces of information or that you'll go back and try to relearn something in the context of new knowledge. Videos aren't about trying, experimenting or engaging your creativity and curiosity. They are about providing you with a ton of information, most of it completely useless, so that you feel like you've learned a lot.

Maybe I should have started by stating this, but...We all learn differently. So maybe video really works for you. If it does, I'd really like to understand why/how. I might be missing something, I might be wrong or maybe I'm just biased.