I’ve noticed there are lots of people frustrated & stuck in tutorial hell. If this describes you, I've found an open source project that I think might help.
It's called RealWorld.
What is RealWorld?
RealWorld is a production ready full-stack Medium clone. It has all of the things you expect from a production-ready application:
- user accounts
- authorization & authentication
- mobile responsiveness
- ...and even tests!
It’s all open source, and (best part) it’s been implemented in tons of different frontend and backend frameworks. This makes it perfect for learning your framework of choice, while sticking to the same end-goal.
Another awesome feature is that you can mix and match the frontend with the backend, because they all adhere to the same API spec.
This means you can swap between React, Vue, Svelte, Angular on the frontend, and hook that up to either a Node.js, Go, Python, or Rails backend. There are tons of options to choose from.
Here is what the demo app looks like:
How Will This Get Me Out of Tutorial Hell?
The problem with video tutorials is that they don't teach people how to build their own projects. Instead, they show you how to build something in a very specific way.
Learning how to paint is a great analogy here. You can watch a painter and follow along as they create a painting. You might end up with a nice painting, but can you really say you know how to paint on your own?
Instead of copying a painter's process, you should instead copy their end result - the painting itself. As you copy it, you will develop your own style and technique. With enough practice, you can then carry these skills towards your own projects.
Rebuilding a project like RealWorld is the same as copying the painting all by yourself. By doing this, you will learn how to:
- find solutions to the problems that arise along the way
- compare your implementation to those on github
- stay motivated with a concrete end-goal in mind
- develop your own process and techniques for building software
Learning from tutorials is a great way to get started. But if you're not making progress, you should try something less passive, and more interactive.
Rebuilding an existing production-ready code base is a great way to graduate out of tutorial hell, and start building projects all by yourself.
It won't be easy, but if you stick to it you will eventually learn how to build your own projects. And once you reach that point... the sky is the limit.