Introduction
If you haven’t heard the term before, I’ll sum it up here: the inability to code a project on your own without consulting a tutorial for every step. Basically, using tutorials as a major crutch to your work, or only being able to finish projects with a step-by-step guide. I’m sure you see the problem here. I’ll talk about how I subconsciously avoided tutorial hell, and how you can too.
How do you fall into it?
The root of this issue begins when you first start coding. Let’s say, for example, you want to learn Java. Your first resource: YouTube. I believe here is where people go wrong. They want to immediately take a project-based learning approach straight out of the box without taking an ample amount of time to grasp the fundamentals, so they go right to project tutorials. Once you complete the tutorial, you get a false sense of accomplishment. You follow this feeling by repeating more tutorials, and soon, you think you’ve built up enough base knowledge to try something on your own. But, when you try to code something, you realize you can’t because you never learned how individual components of your code function separately from the entire program.
Avoiding it as a beginner
If you’re completely new to programming or what you’re trying to learn, I’d start a notebook or a document and identify some key concepts to go through with the help of videos/articles/books. For each concept, it is helpful to reinforce what you’ve learned by creating small programs that illustrate the concept. Or, I like to look at my old code and identify where such a concept could be used or if I’ve used it already, maybe without knowing. Personally, the best way I retain information is by connecting concepts like a web. If you’re learning a new language from scratch, definitely stick to the basics for at least two weeks before attempting a project idea on your own.
Now that you’ve jotted down notes and done some small practice projects, you can try creating a basic app that has been done before, like for website development it can be a blog, to-do app, or an e-commerce site, if you’re feeling lucky. Again, don’t follow a tutorial. Use your own deduction skills to figure out how the components should work and what concepts you need. But by creating a commonly-made website, you will be able to find many resources if you get stuck, and many different approaches which will broaden your toolbox for later projects.
When I started learning JavaScript for web dev, I had my notebook out every evening while watching videos on concepts I’d pinpointed as essential. I had plenty of ideas for apps, so I just started coding once I felt confident. Not to say that this is a recipe for no struggles or tears, but it will relieve some stress if you know the whys of how things work in your program as a beginner. I cried while trying to figure out authentication middleware, so it's okay to struggle lol.
Avoiding it as an experienced programmer
If you’re already experienced in programming and just trying to pick up a new framework, library, or a similar language, you can still fall into this trap. Right about now, I’m learning Next.js after working with Express.js and React.js for a while. How I approached it was with a few project ideas, small at first. I made a simple valentine receiving and sending website, researching what I wasn’t sure how to do in Typescript or Next.js. Since I already have the foundations of web dev, doing this was an easier, quicker approach to learning which still kept me off following a tutorial to create an entire website.
I guess now is a good time to mention that you should brainstorm projects about things that interest you. For example, I really like listening to music, and I’ve experimented with the Spotify API before, so my following Next.js project was connected to the Spotify API to retrieve a user’s most popular songs and display them. I learned how to implement authentication middleware in Next.js through this project, again, just picking up concepts by making things that I like.
Now, I’m working on a bigger project that I’m pretty passionate about because I’ve been putting it off since November. No spoilers, but to finalize my point, get inspired! Reference the docs of the language you are trying to learn, and of course, trusty Stack Overflow. Naturally, you will stumble upon things you don’t know how to do, but you are learning about them in the context of your own project, which makes things 10x more interesting and applicable to something you love, therefore making you retain the information better.
Key Takeaways
1. Establish essential concepts to learn.
2. Research information and jot it down for memory.
3. Create small programs to apply what you’ve learned.
4. When you feel confident, attempt to create a commonly-coded project.
5. Brainstorm project ideas that you’d be passionate about doing.
6. Research and create!
You can rinse and repeat the first three steps once you become intermediate or advanced, identifying new concepts you need to master.
Closing remarks
I sincerely hope this is helpful to anyone starting out with coding or trying to learn something new. This gives me the idea to create a resources tab for things I’ve found helpful in my web dev journey… for another time, though. As always, take care!
-Maria ( ´ ∀ `)ノ~ ♡