When I started learning to code, I would watch lots of video tutorials and read lots of articles about programming. I loved following guides and copy/pasting the code into my own editor to see the results running on my own computer. I felt so productive - and it seemed like I was learning new things all the time!
Until one day I decided to try building a small project from scratch. I don't remember the exact idea, I just remember that I wanted to build something to solve a problem I was having.
And guess what? I didn't even know where to begin...
That's the main problem for people starting their coding journey if you ask me. It's too easy to read/watch stuff and feel productive and like you're learning - when in reality, you're not actually retaining any of the content you consume. Doesn't matter if you watch 100 videos or read 100 articles, the outcome is the same. This concept is aptly named as "tutorial hell".
Now don't get me wrong: online tutorials are amazing to give you an overview of a new language / framework / library and to show you the ropes of how it works. But they won't make you a better developer.
To actually learn to code, you need to become a problem solver. Because when you work as a dev in the real world, most of the problems you run into won't have an off-the-shelf solution. You'll have to be creative, to think outside the box, and to combine the knowledge and experience you've gathered to come up with answers. That won't be possible if all you've ever done is copy/paste tutorial content or read articles.
This of course begs the question: How do you actually improve your problem solving skills and actually learn to code?
Glad you asked! Personally I've found 2 strategies to escape tutorial hell:
- Build projects to scratch your own itch. Try to think of a problem you're having in your day-to-day life. Is there a digital solution to help you with it? By working on something relevant to you, it'll be much easier to stay motivated when running into roadblocks. Just try your best, and Google as much as possible when you get stuck.
- Follow tutorials, but change the content heavily. This can be easier to get started with compared to building from scratch. Use a tutorial as a baseline, but change up the content significantly - if the instructor is building an app to show a list of books, make a list of movies instead. Add extra features they didn't include or try to build it in a different way.
The key is to actually build stuff yourself. And by building lots of small projects like this, you'll begin to notice patterns and your actual development skills will improve dramatically.
If you need some inspiration, there's an awesome list of project ideas available here. If you're a front-end dev, you can also pick any API from this list of public API's and then build a small UI on top of them.
And remember: what you build isn't too important. Just don't stay stuck in tutorial hell - focus on building projects yourself as early as possible (or at least heavily modifying tutorial projects). And if building something yourself still seems overwhelming, start smaller with my go-to problem solving guide here.
I'm Mads Brodt — a developer, author, teacher, creator and blogger. To keep up with all of my writing, follow me on Twitter or sign up with your email above 👆