How to use tutorials to learn how to program without falling into tutorial hell.
Updated on 03.23.21
The tutorial hell, are you in it?
When looking at videos about programming and becoming a programmer, I often find warnings about tutorials and not to get caught in the tutorial spiral. And I have to agree, as I often watched some to get an idea of what to expect, and most of them, I could not understand.
There are 2 kinds of tutorials:
- those who show you how to do things
- those who show you why
From the first type, there are many out there. They are useful, but you need to know when to use them, not just copy them to the letter.
From the second one, there is a handful. They show you why to use an option and what are the alternatives. These ones require years of skills of someone who has time to make videos. This is rare in the industry as they spend most of the time working or actually teaching somewhere. I will provide a list of recommendations at the end of the post.
When you wish to learn programming (or anything for that matter), you need to learn by doing your own work. Copying won’t get your brain to process any information. Just like exercise, the brain needs to be challenged to grow more connections. If you go the easy way, walking instead of doing small sprints, you will be stuck on a plateau. If your goal is to stay in shape, this is ok. You can watch tutorials to stay updated on trends and what other programmers are doing to approach different problems.
But if your goal is to get fit, you got to try harder every time you get comfortable.
Step 1: Choose a project and stick to it
What do you need in your life? What do you find fun to do? What calls your attention when seeing others creating things?
I started with the word game we began during my course because it allowed me to focus on functions and learning to grow a project instead of planning one. I do have an ambitious journal project which is still in the planning stages but I will tackle it once I understand what to do for each component I want.
Step 2: Break the project into smaller projects
With the word game, I wrote down a list of things I wanted to add. Such as difficulties, files, scores, and so on. I am still working on this list after a month.
For my journal one, it is, as I said, ambitious. It involves a few programs merged into one, as I always kept everything in a google sheet or external journal. I want to put all I enjoy doing with a journal in one application on my computer. This is why I called it Journal 2022 because I do not expect to finish it before then. I do expect to finish some components this year as the initial input of entries and habit tracker.
Step 3: Create a plan
With an Agile mindset, give yourself about 2 weeks to complete each element of your project. Don’t rush it, spend time understanding why you are doing what you are doing and how.
If you have more hours in the week, you can easily then cut this to about 3 – 4 days. It is all a matter of focus. If you pick one of your elements and focus on it, you will get it done faster. That is why planning is so important. Most good programmers spend most of the time planning than coding. Once they know what to do, they focus, and they get it done. Think like a programmer (not the stereotypical hackers of TV).
Step 4: TUTORIAL… HEAVEN!
Here is where you can use tutorials.
I spent about 2 to 3 hours watching different tutorials on databases I could implement on my word game and ended up implementing 3 before thinking I should also try SQLite if I want to learn how to use this for my next project. But during those 3 days and about 12 hours, I learn a LOT about SQL and I do not regret a second (well, only the moment I forgot to backup a working code and could not get it to work again after I accidentally deleted it).
Only use what you need and move on.
I have the famous Udemy Java course with about 80+ hours, but I am not rushing with it. I am only using it to learn a module or two every few weeks in-between coding sessions. Especially if they relate to something I am not understanding.
Step 5: Prototype and don’t break your code!
I learned, after messy code I had to clean, that if I want to test something, it is best to always create a different project. Once it is working and the way you wish it to, only then, implement it to your source project. This way you will save yourself hours of clean up after.
Step 6: It is not finish
You got everything on your list done? What else can you implement to challenge yourself? APIs? Backup function? UI? The sky is literally the limit in the computer world. So do not stop learning!
I hope my example gives some sense of clarity to my readers as to how to use tutorials and when.
In my case, I am learning Java first, so here is a list of the tutorial channels I enjoy watching:
There are many others, but these are enough for me most of the time 🙂