Have you repeatedly followed tutorials, yet not retain any information? Does your portfolio only consist of tutorial projects? If the answer is yes to these questions, then you might be stuck in the infinite loop known as tutorial hell. I myself have been there, and it is not a great place to be. I spent hours watching tutorials, yet not understanding the material, and then repeating those tutorials again until I just gave up.
Sadly, tutorial hell seems to be one of the leading causes of people giving up on coding, but that does not have to be the case for you. I will start by giving a brief rundown of what tutorial hell is.
Tutorial hell is what many of us get trapped in when we enter the vicious cycle of watching tutorial videos. You may watch hours upon hours of coding tutorials, but when the time comes to use what you 'learned,' you feel lost. It feels like you are starting from square one. This is a normal way to feel when you are learning something new, especially if it is a challenging experience. The problem is when developers who are lost binge watch and follow more tutorials in an endless cycle.
Interviewer: "What are constants? What are some use cases?"
Interviewee in Tutorial Hell: "Ummmm..."
I am not trying to say tutorials are not a great way to learn. Watching a tutorial for a new tool or concept is a great way to get started, but once you watch that tutorial it is important to use other resources and the information you learned. Try to watch tutorials and implement some parts that you learned into your own projects. Deconstruct the projects you build from tutorials. Poke around with them. Just following along can have you coding blindly and not understanding what you are doing.
You CAN get out of tutorial hell. It simply starts with changing your approach to learning. Tutorials alone will cause you lots of confusion and grief. Minimize these feelings by trying a few new things.
Build your own projects that you know you can finish, as well as some that push your limits and challenge the mind (you do not need to do big projects starting out). This is what I call learning through the struggle. My best learning experiences were those 'ah-ha' moments where I consistently threw everything I had at a problem. It is okay not to know, what matters is learning how to approach problems and solve them. Do not be afraid to try new things or completely break them!
There are many resources besides video tutorials that teach new concepts, show examples, and help you hit the ground running. The great thing about coding is that your idea has probably been made before. Look up your idea on Google, Github, and Stack Overflow to see if someone has already solved your problem. Many developers even breakdown their code line by line.
Here are a few resources that have helped me.
- Code Wars: Master code through fun and unique challenges
- Brilliant: Contains computer science challenges and other skills
- Stack Overflow: A community for developers to share information and learn from each other
Code Wars and Stack Overflow are the two that I used to build a solid foundation with Ruby. I was able to think outside the box by solving Code Wars kata. I could find problems that have already been solved on Stack Overflow when code-curious or if I hit roadblocks. Stack Overflow is generally more reliable than doing a simple Google search because of their upvote system and high-quality answers. You can get some great perspective from viewing other peoples' code.
Join a coding community in real-life by using sites like Meetup, Facebook and Craigslist to find meetings. For the introverted folks like myself, you can still get lots of benefits from networking virtually. Discord, Twitter, Facebook and even DEV are great options. You can learn from others, find a mentor, collaborate on projects, and teach others. Do not be afraid to put yourself out there. Connect with others who have similar goals and interests. Having someone you can reach out to when you hit a road bump or just having some friends with similar interests is wholesome and invaluable. It can make things feel more real, and you less alone.
I hope that reading this post provided some useful information, or at least helped motivate and guide you in the right direction. I myself, only watched tutorials for a VERY long time. It was only recently that I started building and breaking things, and I still have not done anything significant. I can say building my own applications for two hours has proven to be much more effective than watching tutorials for four times as many hours. Do not be afraid of failure. Fixing our mistakes provides some of the most valuable learning experiences. Just get started!
Please feel free to leave comments and feedback. What has your experience been like learning to code? How did you escape tutorial hell? If you are still in it now, what steps will you take to get out? Do not be shy, I truly welcome your perspective!