There are a lot of different ways to learn anything. Reading, listening, watching, doing. In programming, I find the best combination of learning is watching then doing. Some people really like to read, but I think when it comes to programming, reading is the wrong way to go.
The cool thing about video is that you get to see and hear at the same time. And its in the tone at which the trainer wanted you to hear it. So you also get their inflection and emphasis on certain parts. This is why I chose to produce a bunch of videos and why you won't really see tutorials on this blog. I think programming, even straight code, needs to be seen, visualized and explained. Sometimes just watching someone type something out is way more helpful then reading a final code block.
Errors will also occur on video. And thats not a bad thing. One thing I've had to work on in doing these videos is being able correct errors really quickly and explain what went wrong. Honestly some of the best learning you can get is from watching someone else make errors. I used to stop the video and correct it, or re make the video because of the errors. But now I think it's even more valuable to let people watch me debug on the fly and figure out how to fix whatever the problem may be.
Why not programming books?
"Books suck. Watch videos." That was going to be my tagline for square bracket. Catchy no? While I don't think books suck, I do think they aren't ideal for learning to program. For a short period of time they are good as references, but the internet is fast enough now where that is even becoming irrelevant. See, printed books lose their relevance very quickly. Programming languages get updated all the time. I mean just 3 years ago it was all about web 2.0, 2 years ago was all about html5, and this year is all about CSS3 transformations. Not only that, the syntax for this stuff is changing all the time. Of course if you buy books on languages that are frozen then you will be safer. But still, you can't see a piece of code, then see it work, and interact with it at the same time. You have to read the code example, type it in, then try it. It's too many steps and leaves you too disconnected from the learning.
So what about online books or written tutorials?
So written tutorials online are good when coupled with other media. That is if your able to provide an interactive example along with the tutorial you are halfway there. So the person learning can get that hands on access to play with the code. I think the perfect example of this is w3schools.com I went to this site probably 10,000 times while learning CSS. I could never remember everything when I was 15. But they provide examples of every single CSS class and selector. That really helped. That kind of "try it now" is a perfect way to learn.
What is most important?
Just do it™. If you are trying to learn something, go with video first to get a good idea of what is going on, then dive right into code. That is THE best way to learn.
My learning process generally goes:
1) look for a "how to" on youtube.
2) look for some sample code online.
3) Launch the example and see if it works
4) try to change something about that example and not break it
5) try to apply new modifications specific for a project
And by then you should pretty much understand how it works, how it breaks, and how you can use it in your application.