Todo Tutorials Can Be Fun — But Here‘s How to Build Your Own Projects From Scratch
As a new developer eager to learn and practice your skills, it‘s tempting to spend all your time working through tutorials and coding exercises. After all, having your hand held as you build yet another todo app can be comforting. You get to focus on the code without worrying about messy real-world issues like designing an interface or debugging.
But at a certain point, you need to take off the training wheels and start building your own projects from scratch. It‘s the only way to develop the key problem-solving skills and self-sufficiency you‘ll need on the job as a professional developer.
Consider this: a 2019 HackerRank survey of over 71,000 developers found that the ability to problem-solve was the #1 skill employers look for when hiring developers. And in a 2021 Stack Overflow survey, 81% of professional developers said that building projects was the most important factor in their career development.
Working on your own projects allows you to explore new technologies, face real-world challenges, and add unique, substantial examples to your portfolio. It‘s how you‘ll make the leap from tutorial-taker to self-sufficient developer.
I know it can feel intimidating to start a project without the safety net of a step-by-step tutorial. But I promise that with a little planning and the right approach, you can create something awesome on your own. Here‘s my expert advice as a full-stack developer on how to get started.
Start With a Clear Goal and Scope
The first step in building your own project is to decide what you want to make and why. What problem are you trying to solve or what skill do you want to practice? It‘s important to have a clear goal in mind to keep yourself motivated and on track.
Let‘s say you want to build a web app to help you track your daily exercise. Start by defining the core features and functionality:
- User can log in and create an account
- User can record their workouts (e.g. running, cycling, yoga) with details like date, duration, distance
- User can view their workout history in a calendar or list view
- User can see stats and charts summarizing their progress
These features describe the scope of your minimal viable product (MVP). And notice how specific they are — rather than just "build a fitness tracking app", we‘ve narrowed it down to the essential functionality.
Once you have a clear goal and scope, you can start planning your implementation. Break down the features into smaller development tasks and estimate how long each will take. For example:
- Set up database to store user accounts and workout data (2 hours)
- Create login and registration flow (4 hours)
- Build form for recording a new workout (2 hours)
- Implement workout history views (3 hours)
- Add data visualizations (4 hours)
Having this roadmap will make the project feel much more manageable. You can track your progress and celebrate small wins along the way instead of getting overwhelmed by the big picture.
Choose the Right Technologies
Part of the fun of building your own projects is getting to choose the technologies and tools you use. It‘s a great opportunity to learn something new or go deeper with a language or framework you already know.
Continuing with our fitness tracking app example, let‘s consider the tech stack. As a web app, you‘ll need:
- A database for data persistence (e.g. PostgreSQL, MongoDB)
- A backend framework for your server and API (e.g. Express, Django, Rails)
- A frontend framework for your user interface (e.g. React, Angular, Vue)
If you‘re already comfortable with JavaScript, you might decide to use the MERN stack (MongoDB, Express, React, Node.js). Or if you want to try something new, maybe you‘ll choose to build a serverless app with Firebase and Vue.
The key is to be intentional about your choices. Don‘t just reach for the shiniest new framework because everyone on Twitter is talking about it. Consider your goals, your existing skills, and how well each technology fits the needs of your specific project.
You should also scope your learning to avoid getting stuck in tutorial hell. If you‘re building your first React app, focus on the core concepts and don‘t get distracted by advanced topics or libraries. You can always add more complexity later once you have a working MVP.
Embrace the Struggle
Even with a clear plan and the right technologies, you will hit roadblocks and bugs when building your own projects. That‘s just the reality of software development. Embrace the struggle and see it as an opportunity to learn and grow.
When I was building my first full-stack app as a junior developer, I got stuck on a tricky authentication issue. I spent hours scouring Stack Overflow and GitHub issues, trying to figure out what I was doing wrong. It was frustrating, but eventually I had a breakthrough and got it working.
That experience taught me a valuable lesson: the struggle is part of the process. It‘s not a sign that you‘re a bad developer or that you‘ve chosen the wrong project. It‘s how you learn to problem-solve and think like a programmer.
So when you hit a snag in your own projects, don‘t give up. Take a break, talk through the problem with a friend or rubber duck, and keep trying different approaches. And don‘t be afraid to ask for help when you need it — the developer community is full of people who have been where you are and are happy to offer guidance.
Learn from Code Reviews
As you work on your project, it‘s a good idea to commit your code often to a version control system like Git. This allows you to track your changes, revert mistakes, and collaborate with others.
It also opens up the opportunity to get feedback on your code through pull requests. When you‘re ready to merge a new feature or fix, open a pull request and ask a more experienced developer to review your changes. This is a common practice on development teams and a great way to learn best practices and catch potential issues.
If you don‘t have access to a senior developer, you can still get feedback by posting your code on forums like Dev.to or CodeNewbie Community. Explain what your project does and ask for constructive criticism on your implementation. Be open to suggestions and use the feedback to improve your code.
Getting comfortable with code reviews early on will serve you well in your career. It‘s how you‘ll learn to write clean, maintainable code and collaborate effectively with a team.
Share and Celebrate Your Work
Building your own projects is a big accomplishment that you should be proud of. Don‘t let your hard work languish in a private repo — share it with the world!
When you‘ve completed your MVP or reached a major milestone, take some time to clean up your code and repository. Write a clear README that explains what your project does, how to install and run it, and any known issues or areas for improvement. Add some screenshots or a demo video to show off the user interface.
Then share your project on social media, your personal website or blog, and developer forums. If you‘re looking for a job, add it to your resume and portfolio. And if you‘re really proud of your work, consider submitting it to a site like ProductHunt or Hacker News to get feedback and exposure.
Sharing your work is not only a great way to get recognition for your skills, but it also helps you connect with other developers and potential employers. You never know who might see your project and reach out with an opportunity or collaboration idea.
And don‘t forget to celebrate your own achievements! Building a project from scratch is hard work and you deserve to feel proud of what you‘ve created. Take a moment to reflect on how far you‘ve come and the new skills you‘ve learned. Then get ready to do it all over again with your next project!
Keep Learning and Growing
The beauty of being a developer is that there‘s always more to learn. Each project you build will teach you something new — whether it‘s a different way to approach a problem, a hot new framework, or a deeper understanding of a fundamental concept.
As you gain more experience and confidence, challenge yourself to take on bigger, more complex projects. Look for opportunities to collaborate with other developers or contribute to open source. Attend conferences and meetups to learn from experts and make connections in the community.
Remember that your skills and knowledge are never static. The JavaScript framework du jour may be replaced by something new and shiny next year. The key is to stay curious, keep building, and never stop learning.
With each project, you‘ll add another bullet point to your resume and another tool to your developer toolkit. You‘ll face new challenges and learn from your mistakes. And slowly but surely, you‘ll transform from a tutorial-follower to a self-sufficient, professional developer.
So what are you waiting for? Choose an idea and start building your own project from scratch. Embrace the struggle, celebrate your wins, and most importantly, have fun! Happy coding!