Table of contents
Learning how to code can be challenging. It is inherently difficult to master a new skill. Everyone needs direction, especially in the beginning. At the same time, there is so much information out there - courses, tutorials, videos, books, articles, documentation, practice websites, forums and on and on and on. It quickly becomes overwhelming.
In the middle of this information overload, it can be very satisfying to complete a tutorial. It gives us a sense of accomplishment and confidence in our skills. It is a sign that we are learning and making progress.
But after a while, we realize that we spend a lot of our time completing these tutorials. We jump from one to the next. And all we really do is follow predefined steps. The problems we face are both relatively simple and already solved for us. Are we really progressing?
Welcome to tutorial hell!
Luckily, there is a simple way to break out. All we need to do is build something, anything, on our own. It's scary, yes! But it's also essential.
Take the leap
Let's say we want to build a portfolio website. Maybe we should just find a tutorial on how to do it. Surely, there is a suitable one out there! Or two, or three... Using a tutorial will probably result in a better website than what we could have done on our own, anyway. In the short term, this seems like a great decision.
But there is a danger with this approach. We miss out on the most important lesson - how to solve problems on our own. That's ok if all we want is a portfolio. It is, however, not ideal, if our ultimate goal is to learn how to code.
So what if, instead of opting for a tutorial, we decide to build the entire project from scratch?
It would certainly be a lot harder. We will need to create and implement the entire website structure with HTML. Then, we will have to style it with CSS. We will probably want to add some interactivity to our site, as well. We will need a bit of Javascript for that. Finally, if we want our portfolio to be accessible on our personal domain, we will also have to learn a bit about web hosting.
Phew, this sounds like a lot!
It feels we are back where we started - lost in the jungle of information and overwhelmed by all we need to learn. This is what got us stuck in tutorial hell in the first place, isn't it?
Not exactly!
Adopt project-based learning
There are several ways in which building a project is different and, ultimately, much more beneficial.
First, the project itself serves as a guide and shows us the way forward in our learning journey. How does it work? It's as simple as continuously asking ourselves a question. What do I need to learn next in order to move the project forward? The answer is different at every stage. But what is so valuable about this approach is that is keeps us focused. Every step we take along the way is deliberate.
To understand this more clearly, look at the portfolio website example above. Already we have defined our steps and learning objectives - HTML, CSS, Javascript and so on. But because we have a concrete goal in mind, we only go through so many HTML tutorials (and yes, we do need tutorials sometimes!) before moving on to the next stage. We learn what we need in the moment. And we don't get stuck.
What is more, the knowledge we gain from building our own thing accumulates more easily. The reason is that we are able to put it into context. Since we faced the problems ourselves, we truly understand the solutions. Over time, this knowledge grows and translates into practical experience.
Finally, at the end of the process, we have a project. And we built it ourselves. We can now use it to showcase our skills.
Conclusion
As a self-taught developer, I have been stuck in tutorial hell more than once. I know how scary and intimidating it can be to leave the safety of the step by step instructions and jump head first into building something from scratch.
But, frankly, if the goal is to be a developer, there is simply no other choice!
Happy coding! โจ
If you found this article useful consider sponsoring my content!
Follow me on Twitter for more!