A common trap for beginners (and also for experienced people) is to have an all too clear idea what to create, and then try to create that at the first try.
Spoiler: That will almost never work out.
The thing is - what looks great in your head might not be as great in reality.
Perhaps it clashes with something else in your game. Perhaps you did not think it through hard enough.
So, is the solution to think longer and harder?
Let my introduce a simple work flow principle to avoid this trap.
It is very simple. Actually, not more than one word: Iterate!
Start with a rough idea of what you want to create.
If it is game source code that you are going to create - implement a quick approximation of what is your rough idea. If it is graphics, dialogue, music, etc - do a first rough sketch, and put it in your game.
Play the game. Get to experience the thing you are trying to accomplish placed in its context in the game.
Note what the biggest problems with the current incarnation are. Can you live with those problems for now? If so, go work on something else in your game that need tending to.
If you can not live with the problems: Try to come up with a solution. Implement it. If you can not come up with a solution right away: Work on something else for a while.
And then: Iterate - that is, repeat the process.
For each iteration, flaws gets removed. Leaving a better game.
And always remember:
Misplaced perfectionism will only hinder you to getting things done.
A crappy first sketch is always better than something that is perfect - but does not exist outside your mind.
Perfection comes from iterating and polishing. It is perfectly fine to let the first step on the road to perfection be a rough sketch.