Monday, June 20, 2011

How to Learn Web Programming

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.

Why video?
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.

5 comments:

  1. Hey Sean, it's Dave from Port City Technology, I was wondering what your take is on CBT nuggets videos and their instructors, I've gotten access to some older Javascript courses for CIW Javascript certification and was wondering how often Javascript fundamentals are really changed. These are 2 years old I believe or thereabouts, is this worth watching through or should I look to Lynda.com or something more current? I personally think videos are much easier to learn from then books and your youtube stuff is excellent, but I get lost a bit sometimes with some of the more advanced concepts, so I'm starting to go back to learn Javascript from the ground up. Love the blog and also the zfeed, I got that working from your video and it's very cool. Thanks for posting all of your lessons, I've learned a ton from them.

    ReplyDelete
  2. Hi Dave,

    Javascript hasn't change too much in the past few years. So older training videos are probably still OK. But there have been new developments in the past 1.5 years that people are starting to adopt. For example instead of the classed document.getElementById(""); one might use the newer document. querySelector() to do the same job.

    Learning javascript is pretty straight forward once you understand the basics of programming and the basics of HTML. Once you know those 2, then javascript is just another language. It all comes down to knowing when to do what, and what is faster. To learn that kind of stuff, the best tutorials to watch are ones that complete projects, and assume javascript knowledge. Then you get to learn how to use the language to your benefit instead of just learning the language itself. Obviously its 1 step at a time, but try not to kill yourself learning every aspect of javascript, you will learn all the functions and objects as you go, just focus on learning the syntax and concepts first, then start building projects.

    So both lynda and cbt will still be good for fundamentals, but really just focus on the "how to program" aspect instead of "how to program with javascript" aspect. If you know what I mean.

    I will also be coming out with an intermediate to advanced course on javascript this year. w00t. If I ever get time to do it haha.

    thanks so much for watching / reading, always happy to hear from someone who is learning!

    ReplyDelete
  3. Thanks Sean,
    I feel like right now I'm at that point somewhere between basic and intermediate with HTML and PHP since I've started working within some of the CMS software out there I've had to do some customizing that the base CMS didn't offer and have had to learn on the fly. I think after looking at both CBT and Lynda, I'm leaning more towards Lynda (and continuing to watch your YouTube channel of course) to get me where I need to be.
    On another note, I have a small project I'd like to ask you about if you have time, I'll send you the details over at square bracket.

    Thanks again for the encouragement

    Dave

    ReplyDelete
  4. I agree. Most everything I've learned from programming started with a video tutorial series. I go back to the written docs for reminders of what a certain function does, for example, but conceptualizing each concept to begin with comes best from videos.

    ReplyDelete
  5. My problem is I've collected hundreds of videos on programming on my hard drive now, but have a hard time finding enough time to watch them all.

    ReplyDelete