Many people keep on learning new programming languages, frameworks etc whenever they get time. They refer to online tutorials, udemy courses and what not. While doing this, they feel good about how finally they have managed to create a website or a program after watching hours of videos. But in reality, all they did was, copy each and every piece of code exactly as the instructor told them. They are basically stuck in what we call tutorial loop.
By doing this, though you may be able to create a decent portfolio of projects which are basically copies of the instructor’s code, but in reality, you didn’t learn much.
Now some people might argue that they didn’t exactly ‘copy’ the code, but they slogged through the videos and listened carefully what each piece of code does. And then they hand-typed the code themselves on their editors.
But try asking yourselves, after doing the course, are you now able to create something similar of your own, from scratch? This new project might be similar to the one you made during your course. Your answer, most probably would be a ‘no’.
Even I did this mistake of falling into the tutorial loop for a large period of time. If I wanted to learn some new language or framework, I would browse youtube videos, purchase udemy courses, and religiously follow them. But as the course ended, I had this same feeling everytime of not knowing enough. All I did was, create a clone of what instructor made during the course.
I tried to learn various skills this way, like Ethereum, Django, React etc. But I didn’t feel like actually knowing any of them.
So, what is the correct way to learn programming?
The answer is simple. Don’t trap yourself too much in the tutorial loop. If something is completely new to you, then search some basic tutorials and follow them. This will teach you basic syntax and other necessary stuff.
After that, think of a project idea related to what you have just learnt. It doesn’t need to be fancy, just anything with some decent complexity. For example, if you just completed some basic tutorial on web scraping using python, then you could make a python script which can fetch imdb ratings of all the movies released in 2019, and sort them in decreasing order.
Then open a blank editor page, and start typing. Initially you will not be able to think how to start. At this stage, the tutorial you completed just some time ago will help you. It will help you remember what libraries to import, and what basic functions would be used to create your project.
But after that, it will be you, who decides the inner intricacies of the project, how it would open, what it would look like etc. So if you want to scrape imdb website, then open it, inspect the page source and start drawing parallels between what you just learnt in the tutorial and what would you like to do now.
What to do if you get stuck?
If you feel that you have to use something other than what was taught in the tutorial, then just google how to do it. In this way you will keep on learning new things. For example if your tutorial didn’t teach you how to open Chrome browser using python code, and you need to use it in your project, then just google it. There will be hundreds of stackoverflow answers, blogposts and docs to help you out.
This method will help you learn programming in a better way. You will remember what you learnt, and be able to further use it in other projects as well.
After You complete your project, you will be more proud of yourself. And moreover, you will be able to use this learning while further creating new, and more complex projects.