One of the biggest questions I see floating around Twitter and other communities is "What web development project should I build?". Developers who are learning new languages or learning how to code for the first time should always have a project to work on to put those skills to use. Ultimately, though, how do you decide what project to work on? I recently came back to this question myself after migrating my portfolio to Gatsby, so I wanted to put together a few steps I generally take when deciding on what project to build.
Steps to Help Come Up With A Project
- Decide what tech you want to use
This can be a relatively easy or relatively difficult first step to take. If you have your heart set on a specific language or tech you want to learn, then this is much easier. If you're still deciding what tech to learn, that's a whole different blog post altogether :)
- Decide if you want to roll your own or riff off someone else's
Obviously I don't condone plagiarism, but that involves taking someone else's work and passing it off as your own original work. There is absolutely no shame in taking inspiration from an existing project and trying to build it yourself. Or taking a course and using one of their projects to practice. You can also take a course project and tweak different features to make it more your own. And then obviously you can come up with your own original project from scratch. At the end of the day, you're looking to put your skills to use, so what you build is not necessarily as important as how you build it and then actually building it. I would caution, however, against using copied or course projects in any type of portfolio without sufficiently customizing it make it your own first.
- Find something that excites you!
snobfan, so tying in my passion for beer with my passion for coding made it an extremely fun project and helped solve a pain point I often experience. This is a great way to stay motivated and not get burnt out.
- Just start building!
While it's good to have an idea to work off of and a roadmap of how to get there, you don't have to have all the answers of each little detail of the process figured out when you first start. My goal is always to get something working, and then go back and refactor or optimize and clean up your code. This will give you a good idea of how to do things down and dirty, then also give you a chance to come up with cleaner solutions to problems. In the real dev world, you will often encounter messy code, so it's important to be able to understand how it works and also how to improve it.
So, What's Next?
Well, I still haven't fully completed the above steps myself to figure out my next project. I know I want to do something either in Gatsby or React, so I'm thinking of either redoing my Off the Rales website from my portfolio and making it into a Gatsby site, or rebuilding my beer recommendation app as a React app. Either way, I'll be moving forward and learning new tech and skills as I go. Happy coding!