I like this approach as its often daunting to start from a blank slate. Finish a tutorial in the usual way, but instead of stopping then and going about your day, try to add new features. You could even change a feature you just created
Any decent tutorial will (hopefully) be broken up into sections e.g "Next we're gonna add a TODO". These are good points in a video/tutorial to pause and try coding that next thing yourself
One approach I'm trying with my YouTube channel is to show a working example/provide starter code up front and encourage people to try the project themselves before they follow along. You can try this approach with just about any tutorial
What apps and sites do you use every day? Let's take Reddit as an example. I'm not saying "Yo stop doing tutorials and go build a Reddit clone", but take a small part and try and replicate it.
For example, display a Reddit post that you can upvote. Next, turn this into a list of Reddit posts. Then add comments to each. And so on
I personally wouldn't recommend ya'll go aiming to build massive projects from the start. This can be disheartening when you get stuck. But you should aim to build a massive project once you feel "comfortable". i.e, finished a few smaller ones.
This will give you practice with a few things:
How to plan then code features
How to use Google/Reddit/Stackoverflow to solve problems
How to think by yourself (no tutorial = no safety net)
So recently I noticed I'm dehydrated as hell since I don't drink enough water but consume copious amounts of coffee. So I made a small app to remind/track how much I drink. I could have gone to the app store and got one but I learned building an app that solves a problem I have
Ask friends and family what problems they're having a see if you can make an app to solve it
Dunno what causes this, but there seems to be a "fear" of starting a new project. Maybe in case we get stuck, get it "wrong", hit too many bugs etc. The best thing to do is realise you might not get it right, or have all the answers at the start. This is part of the game - overcoming bugs and solving problems as we go
The more you practice the more you'll have those "Ah I've seen this shitty problem before" moments, and you can "reuse" code/logic from other problems you've solved
Ultimately the best way to learn is to build stuff and write code. Pick something and run with it. What's the worst that could happen? You'll "waste" a few hours/days but I know for a fact that you'll have learned something, which is the main thing
This doesn't really solve the problem of breaking out of tutorial hell but I couldn't end on 9 points. So make sure you're having fun when building stuff or else it'll feel like "work". And remember to stay hydrated.
Why not try building some React projects to boost your learning even further? I send out project ideas every few weeks(ish) with project ideas, starter code, and tips. Subscribe to get this straight to your inbox!