This post was written by Shaun.
This is going to be a short one, but it was something I was thinking about when I was talking to Brad.
Lately I’ve been working on expanding my skill set a bit. My focus at work is on stuff that isn’t in huge demand in the Victoria job market, so I’m trying to build up a portfolio so that I’m in good shape if (when) I need to find work.
I’ve decided to take a fairly specific approach to how I’m going to learn things though, and I’m wondering if anyone else thinks this is a good plan. Basically, I am going to not use any tutorials for anything. No tutorials! None. Anything with a step by step component, I am not interested. Code examples? Yes! Tutorials? No!
Why? Because I feel that I learn far more by doing things wrong than by doing them right. I know it’s a bit of a cliche, but the longer I live the more I realize that cliches are as true as they are tiresome. As useful as ubiquitous. As beneficial as banal. Ok I’m done.
When you follow a tutorial, you get told what to do in a very specific situation to produce a very specific result. What ends up happening is that you now think you know how to do something that you really don’t. It is amazing how even the slightest deviation from what you learned in your tutorial can screw you up.
When you just rely on reference material and the occasional demo (but never ever copy and paste!) you are forced to do things wrong a bunch of times. You are guessing, but by guessing and failing you are destroying assumptions that would otherwise have remained. This is important! Those assumptions will bite you later! Kill those assumptions! They are your enemy. They will lead you down dead end paths later on when you are trying to tackle a more complex problem and you believe you have capabilities you don’t.
I’ve always been tempted by the allure of tutorials. They make me feel like I’m making tons of progress nearly immediately. 3 hours of me banging my head against a strange compiler error that makes no sense vs following a guide that will have me up and running in 20 minutes, it seems a no brainer. The difference is that after those 3 hours I’ve learned nearly everything there is to know about that stupid compiler error, while in that 20 minutes I’ve learned nothing.
This is my theory anyways. We’ll see how it pans out?