Table of contents
My web development journey began with an online course. When I finished it, I began another course because certain concepts of the previous one were unclear to me. Then I watched a slew of YouTube videos about web development, projects, careers, jobs, and other topics.
Finally, I decided to create a project on my own. And to my surprise, I was miserably stuck. It felt like I have learned nothing until now. Hence I completed another course and built some projects following YouTube videos. But when I went back to building something independently, I was back to square one.
I was stuck in tutorial hell. I was merely copying one tutorial after another rather than applying what I had learned. I was blindly following instructions and copying code when I should have understood what I was doing.
In this blog, let's talk about tutorial hell and how to escape it.
What is tutorial hell?
Consider someone who wishes to learn to cook. They watch a lot of cooking videos and are familiar with how to cook a specific meal. They read books about how to cook better and make food taste better. They even buy all of the cooking ingredients and utensils. However, they never start cooking.
This is exactly what tutorial hell is. Tutorial hell is a state of being stuck in a cycle of following tutorials without being able to build anything on your own. Tutorial hells are part of a developer's life when they are getting started. Many newbie developers fall into tutorial hell and realize it too late.
This is what a cycle of tutorial hell looks like:
You follow a tutorial. It could be a crash course, BootCamp, YouTube video series, or blog.
When you are done, you start building something on your own.
While doing so, you get stuck quite a lot of time and feel like you know nothing.
You go to step one!
How does one fall into tutorial hell?
Tutorial hell is not a path newbie developers take willingly. It's a pit they fall accidentally into because they are not focused on the correct path. We will talk about the correct path soon.
Here are some of the reasons why you are likely to fall into tutorial hell while starting software development.
Tutorials are already perfect
When we follow a tutorial, the creator has already made several attempts and failed several times before finishing it. However, when presented, it is perfect, with no bugs, errors, or anything whatsoever. Therefore we tend to think that if we follow the tutorial, we will also be able to code without any mistakes.
Blindly following tutorials become a comfort zone. It looks perfect, gives a feeling of achievement, and a delusion that we are becoming a better developer. But in reality, we are just reiterating something that's already built.
But learning something without making mistakes is not learning at all. You succeed when you make mistakes, learn from them, and try again. This brings me to my second point, you are afraid of making mistakes.
You are afraid of making mistakes
When we are on our own, we make more mistakes. Mistakes make us feel dumb, and our anxieties pile up. Hence we tend to choose to follow someone else and build something. We are often terrified of making mistakes because we think if we are making mistakes, we don't know anything.
We learn something only when we make mistakes
It's quite the opposite. When we make mistakes and analyze what went wrong, we get an opportunity to fix them. And while fixing those mistakes, we learn something new. And the next time, we won't make the same mistake again.
You are delusional about your skills
This was my case. We think we would understand the concept just by watching a video or reading a blog. We assume we will grasp everything by consuming the content on the go. But it is not the case.
Practise makes the man perfect.
The only thing to get better at something is doing it repetitively, not looking at others doing it.
How to get out of tutorial hell?
The sooner you escape the tutorial hell, the sooner will your true journey start. Escaping tutorial hell is no rocket science. Let's discuss methods to get out of tutorial hell in this section.
Learn the fundamentals
You should not entirely stop following tutorials. But you should know when to stop. When you are just getting started, familiarizing yourself with a language, library, or framework, tutorials are a good headstart.
When you get started, make yourself comfortable with fundamental concepts. Focus on understanding the concept first and then practically implement it later.
When you are just getting started, there are several resources that you can follow:
When you find the resource you are comfortable with, follow it and learn the nuances of it. One thing to note here is that tutorials must cover all the important aspects of the concept.
Build guided projects
When you are comfortable with fundamentals, start building projects.
At first, follow a tutorial just like you used to. But this time, rather than blindly following it, use the following method:
Split the tutorial into multiple sections based on its working, scope, or your understanding.
Then watch individual sections separately. Rewatch it until you understand it completely.
Take a pen and paper and write what you understood. You can write about the procedure, pseudo code, algorithms, steps, etc. You can also make diagrams, flow charts, and illustrations to better understand it. If you fail at this step, go to step 2 again and do it again.
Now it's time to code. Don't watch the tutorial. Only refer to the document you wrote in the previous step. Build a project just by your written understanding of your project.
If you get stuck, follow the last three steps again. At any cost, don't watch the tutorial and directly jump to coding.
When you are done with the section, review it. If it's satisfactory, then move to the next section. Otherwise, go to step 2.
This method takes longer than regular tutorials, but it definitely helps. You build the project by yourself and learn a lot in the process.
Don't build too many guided projects, though. Otherwise, you will fall into another type of tutorial hell. When you have built a couple of guided projects, start building your own projects.
Build more projects
If you have a project idea, then start building it. Otherwise, research beginner to intermediate project ideas on the internet. Make sure that project covers essential aspects of the language, library, or tool you are learning.
Don't limit yourself at this stage. Explore your skillset, play around with new technologies and concepts, and learn along the way. You will get stuck sometimes, but try solving those problems by yourself or ask for help on the Internet. Having like-minded folks, peers and mentors help in this case.
There is no limit to how many projects you must make. But make sure you build meaningful projects to add to your portfolio or resume.
Contribute to open-source projects
Contributing to opensource is a multivitamin tablet that significantly improves your overall health.
Join an open-source community dedicated to your domain and contribute to its projects. It would be difficult initially, but eventually, you will grasp everything. The community is always there to help you. Open-source contributions help you upskill by letting you solve real-world problems.
If you are into web development, feel free to join ReactPlay!
Create content on your learnings
You fully understand something when you teach it to someone else.
Taking your learnings one step further, if you really want to challenge yourself, creating content based on your learnings is the best way is the best way to know if you have understood something or not.
I started my blog with a similar intention. I wanted to keep a record of everything I learned. You can do this too. There are several ways you can create content on the internet:
Create videos or short-form content
Write threads on Twitter
Give talks, presentations
When you do this, you can be assured that you are truly learning something and growing in your career. And, of course, you must never stop learning. Whatever we discussed today will be helpful for a very long time.
Don't feel demotivated if you are currently in a tutorial hell. You are not the first one falling into it and definitely won't be the last.
Awareness is the first step toward change!
Now that you are aware of your current state, start taking action. Don't rush things and take one step at a time. Here is a call to action so you won't feel overwhelmed:
Make a note of what tools, technologies, programming languages, libraries, or frameworks you are learning. Pick a maximum of three co-related concepts together. For example: React.js, Tailwind CSS, and TypeScript.
Read its documentation and projects if they are mentioned in the tutorial. Otherwise, take notes of what you are learning.
Follow a YouTube or a blog series around the most important topic and build a few projects while you do so. Remember the method we discussed to build guided projects.
At the same time, join an open-source community around your domain. Meet like-minded peers and experienced developers in the community.
Contribute to open-source projects. There is plenty of material available on how to do so.
Start building your own projects as well. Try to solve problems on your own. Ask for help in communities and online forums if you are unable to solve it.
If you are comfortable, create and share content based on your learning. What you create is totally based on your comfort zone, experience, and interests.
And always remember, never stop learning!
Did you fall into a tutorial hell as well? Are you currently into one? Or were you able to escape it? I would love to know your story. Let's connect so we can have a further discussion about this.
I write about web development, open-source, technical writing, and my general experiences with communities and software development. Make sure you read my other blogs as well!
I would love to hear back from you.
Until next time, keep learning! 🐱🏍
Did you find this article valuable?
Support ReactPlay Blog by becoming a sponsor. Any amount is appreciated!