I get caught up a lot in the idea of what is novel about what I’m doing. Is this idea new, does it add something to the landscape, is it worth making? Sometimes that doesn’t matter, and shouldn’t matter. We need to just make things in order to get better at them, so take the novelty out and just create. I have read a few books about art and specifically Steal Like an Artist by Austin Kleon. In that book he goes on to describe why just making is a great way to start and why as developers I think that is great advice
There is a bit in the show South Park about how everything ever conceived in an animated show has already been done by the Simpsons. This does a great job of showing my point. Sure, something has been done before, but not by you. Not with your viewpoint and ideas and how you have gotten to where you are today. Making something that has already been made is not bad for your development, if anything it will add to it.
You can learn a lot by trying to make what has been done before. Just taking the stress of thinking of an idea out of the equation allows you to focus on the code itself and how to create it in an efficient way. Don’t get me wrong, straight up taking code from one thing and calling it your own is not what I am talking about. What I am talking about is as simple as taking an idea that exists, and just trying to make it on your own.
I did this back in 2018 when I tried to make a console based Blackjack game. It seemed pretty simple when I started. Player versus Dealer, count to 21, and Aces are high until they need to be low. I started small and just created a deck and responses that allowed the user to hit or stay. Moving on, I added logic for tracking score, dealer rules for hitting on all 16s, and other advanced Blackjack rules.
I learned more about coding in that project than I had from most online courses I had taken previous to that because I had to come up with an answer and the question on my own. That is the part a lot of young developers deal with. What is the question I am trying to answer. Building a project that takes the question of what are you making out of the equation allows you to focus on the questions on how to code something rather than if you should code something. Having that blueprint allows for more creative problem solving than having no plan at all.
Look at it like practicing an instrument. When you go to practice you rarely just play a song you make up, you usually try to learn a song that you haven’t played before but like or enjoy. You know the rhythm, you know how it should sound and look so it’s easier for you to tell if something is going right. Thinking in those terms imagine taking every project you code on as a way to learn a new piece of development. Want to learn a login form. Think of a good login experience and try to rebuild that yourself. Thinking of making a database, take a passion of yours like football and make a database to track that information. Look at each project as learning a small piece of of development along the way so when you do have that big idea of your own you are prepared to implement it.