From Tutorial Hell to Project Heaven: 5 Lessons from My First Project
Tutorial hell is every beginner's worst nightmare. We've all been there: we watch tons of tutorial videos but find it difficult to build a project from scratch. It's not because one doesn't understand the concepts taught in the tutorial, but because one is afraid of not knowing enough to start a project.
My first project was an opportunity for me to apply what I had learned in a comprehensive course and gain confidence in my skills.
However, building a project from scratch can be intimidating. I encountered several challenges while building my first project and learned things I could never have learned if I had relied solely on the course. Months later, that project is still one of my best backend projects.
When I started learning backend development, I took a 40+ hour course to start with. Halfway through, I had learned the most fundamental concepts to start building backend projects. However, I got bored of the course and wanted to start building projects on my own. I was afraid to get started because I thought I wasn't ready until I finished the course.
Eventually, I took the leap to build my first API project. It was an API that gets over twenty thousand free fiction books available on Project Gutenberg's website.
At first, the idea was to build a basic book store API that allowed users to perform CRUD operations. However, I wanted to work on something unique and closely related to the project I did in the course, namely, an API that's not been implemented before.
After several days of trying things out myself, I had a well-working API. The project broke me out of tutorial hell and gave me the confidence to build several projects after that.
These are the 5 lessons I learned building my first project:
Fundamentals are enough to start building: Regardless of what you're trying to learn, knowing the fundamentals is enough to start building a project yourself. You don't have to learn every technology to start building things. Just start. I'd just learned NodeJS, Express, and MongoDB before my first project. That's just a fraction of the backend fundamentals, and I was able to build a live and usable project with it.
The earlier, the better: The earlier you start building projects, the easier it becomes for you to break out of tutorial hell. My first project gave me confidence to build more projects. It was hard at first, but it's now very easy for me to have an idea and start implementing it right away.
You understand more by doing: Watching or reading tutorials gives you a false sense of achievement. Fair enough; you might understand what's been taught in the tutorial, but you won't fully understand it without trying things out yourself. For example, the CRUD concept was very easy when I followed the course, but I didn't fully grasp it until I built my first project. API RESTful patterns were also difficult to grasp before my first project. Tutorials get you familiar with the concept, while projects solidify the knowledge.
You will most likely learn a new concept while building: Database pagination was something I never knew before my first project. Since I was working with over 20,000 books data, it was not efficient to get all of them at once. So I did some research and got to learn about pagination, which is simply resolving database queries by page. It improved the performance of the API significantly.
Concept retention is directly proportional to building: By building projects and implementing the concepts you've learned, you reinforce your understanding and solidify your knowledge. It's a hands-on approach that helps you internalize the concepts and retain them more effectively compared to passive learning methods like just watching or reading. Before backend development, I tried frontend development, and I would make sure to watch the whole course before implementing a project of my own. But I realized that I'd mostly forgotten the concepts taught in the course. The solution is to build on each concept or two or more related concepts. By building my first project, I retained most of the concepts I'd learned so far, which are still useful for me today.
In conclusion, my first project was a significant turning point in my learning journey. It helped me break free from tutorial hell and gave me the confidence to pursue more projects independently. Through the challenges I encountered while building my first project, I gained valuable insights and learned crucial lessons that have stayed with me.
In the end, it empowered me to embrace a project-driven approach to learning. It taught me the significance of building projects, practicing consistently, and seeking solutions through hands-on experience. I continue to carry these lessons with me as I tackle new challenges, and they have been instrumental in my growth as a developer.