Stop ‘reading’ tutorials, just create something.
In the post, I am not saying tutorials are useless or boring, in fact they are a very important part of the community and are everything for self-taught developers like me 😊
Let’s learn that awesome thing
So, you want to learn coding or a new language or framework, for whatever reason- to develop your own idea, for career, just a hobby,… or for a number of other good reasons.
start by reading or watching tutorial
You try to ‘read’ the tutorials and find that the stuff isn’t making any sense or it’s boring watching video ones. When I tried learning android on udemy, I was like this…
This happens when you are a complete beginner or trying to learn something which is very different from the things you already know. But don’t worry, things will get clear.
So, how to get through this very initial,blockage of ‘things not making sense’ phase quickly…
Let’s get a small ‘reference project’ first..
Get a very basic, small, complete and working tutorial with source files (yes, tutorial… but we are not going to just ‘read’ it). Just write it down and start removing pieces from it and check the output, you will come to know what part is doing what. Just ctrl+z if you ever break it. Breaking is good in fact. Let’s call it ‘reference project’.
Play with it and you will start getting a sense of which string to pull to move a which part.
This should be a one or two days task only.
My Experience: I recently started learning game development and this was my ‘reference project’: http://anwell.me/articles/unity3d-flappy-bird/. Things were fun when I started tweaking with physics.
Now, let’s create our own awesome ‘project x’
Set a target, a small project, let’s call it ‘project x’, it can be a small part or version of that awesome idea you already have, and try to make it.
How? So quickly? Yes… just google stuff, read code on stack overflow, copy paste the code snippets, ask people you know for help, try getting hints from the ‘reference project’, but Just try to move towards ‘project x’.
Never copy entire project code; you have already done that, you should know the structure, the data flow, the whole picture for this one. In this process, you will come to know that how you should break your project in parts and pieces.
As you will progress, you will realize that things can’t be done in ways you initially thought. You will also come to know that your small ‘project x’ is actually not small. But It’s okay to change things. You will be able to make things the way you want once it’s done.
You will also notice that it’s taking much more time than you thought. But that’s okay too, it’s just taking time because you are spending more time in learning and figuring out stuff. Which is good, and very important too.
With time, you will notice that things are making much more sense now; your brain is just accumulating things when you are asleep. It’s like the whole picture is getting clearer.
So, you have finally completed it (or some percentage of it) and now realizing that it is a mess, things could be done in a better, structured, scalable, and ‘easy to read’ way. You will also realize that all the tutorials, all the code snippets from stack overflow, all the videos, everything has started making sense now.
My Experience: My ‘project x’ was this cool chrome extension ‘peek a tab’ , the initial version in my mind was quite different but I had to make some changes because of the limitations of chrome API and timings.
Let’s make ‘project x’ again..
Yes.. again.., but first try to read about good practices and code structures and what is never to do and why. All the tutorials will be very handy this time.
Start ‘project x’ again. Don’t worry; you will be able to complete it (yes complete, not some percentage) much quickly and in a better way now. The code you wrote (or copied) in first attempt, will be very usable, but with some modifications obviously.
This whole process should not take more than 2 to 4 weeks but will give you a much better understanding of the language or framework or platform. (It depends on what you are trying to make, strip it down if it’s taking too much time).
Try reading/watching those tutorials now, you will get way better understanding.
My Experience: I fixed a lot of bugs from my extension when iterated second time and when I iterated my game second time, I nearly changed whole structure and the code base became half of the original size.
Let’s make awesome stuff now..
Now you know the thing and can start making awesome stuff with it. But it doesn’t mean you are a master now. Mastery takes time, but thank god, ‘getting shit done’ doesn’t need mastery.
The sooner you will try making and breaking stuff, the better and quicker you will understand things.
This technique is useful in quickly getting the understanding of how things work, so your projects should be small. Large projects need a lot of planning and structuring, if you will try making one without these, things may get really messy. So, try making small, fun and useful stuff first.
My Experience: The extension I made, ‘peek a tab’ was so simple and useful that I put it on chrome store later. You can check it out here. And the game I am working on is also going really well.
Disclaimer: I am not a pro, but I normally go through all this when I try to learn things (not just coding). First, I thought it just happens to me but when I saw more people around me trying to learn and when I read about other people’s experiences, I came to know that it’s same for most of us.