Break out of Tutorial Hell - What to Do When You're Going Nowhere
When you first start learning JavaScript, there is a clear path for you to follow.
- Do an online course
- Read Detailed JavaScript Book / Course (e.g. You Don't Know JS)
- Follow a To-Do App Tutorial
- Start your own project
- Profit
This path makes sense - The courses, books, and tutorials will teach you all you need to know about writing JavaScript. You even write an actual app!
Surely if you follow this path, you'll reach the pot of gold at the end.
You start dedicating your evenings to this path, and after several months, and hundreds of hours of painful struggle and work, you're finally ready to set out on your own.
You fire up a text editor, ready to code your great idea - but you have no idea how to code. All the knowledge is in your head, but when it comes to how to string it all together, nothing comes.
What went wrong? You did the work. It all made sense in the tutorials.
Maybe you started too soon? Perhaps you need to spend more time doing courses? You struggled with generators, after all. You definitely have more to learn. You pick up another course...
You have now entered what is affectionately known as tutorial hell.
Why courses don't work
Okay, courses do work, but lots of JavaScript courses only teach you half of what you need to know.
Courses and books teach you the separate building blocks of JavaScript - and a lot of them will teach you all of the building blocks, regardless of how useful they are.
Courses focus on reference material. The big secret of JavaScript (and coding in general) is that you will always have access to reference material. You can learn about new pieces of JavaScript when you're faced with a problem that needs it.
Far more important than learning and memorizing everything there is to know about JavaScript developing an instinct for how pieces are used and fit together.
You need to build up the skill part of coding.
What you should do instead
It seems really stupid to say this, but you need to code on your own.
It sounds stupid because this is exactly what you have difficulty doing, and why you're going back for more tutorial hell.
The trap you (and most beginners) have actually fallen into is that you've picked a project that is far too difficult for your current ability.
You need to start with a tiny project that is solely to help you learn. These practice projects differ from regular projects in several key ways.
- It should have one clear goal
- It should be small (even smaller than what you're thinking)
- You should be prepared to throw it out at the end
I think the part worth highlighting here is that a practice project doesn't have to be useful or even good. In fact, it's better if it's not.
I'm a fan of pointless projects when practicing. It can provide fun and novel ways to learn about parts of JavaScript while highlighting their limits in ways that may take much longer to discover if you solely explore through pragmatic projects.
You'd be surprised at what you can learn by making a button chase a user's mouse around the page... or run away from it.
Set a small, achievable aim, and then commit whatever coding crimes you need to get there.
Right now, it's more important that you're able to code anything. You're building a muscle. It will take time and consistency to grow.
You'll get there one day. For now, do what you can do.