A mistake that is common among beginners of game development is to have a grand vision of a fantastic game they want to create.
They start merrily and full of enthusiasm - working hard. But soon they bump into problems they are not ready to tackle. And then they loose their inspiration.
Instead of realizing their vision. They have now sunk a lot of work into, what they think of as, a failure.
So, what is the solution? To buckle up and work harder?
Let my introduce a simple mental tool to avoid this trap.
It is very simple. You only have to distinguish between performing and learning.
A concert pianist do not learn a piece of music while playing at a concert. He performs.
A painter who is learning a new painting technique will not expect herself to perform a her best while studying the technique.
In the same way: When you are working on a project - or a task that is part of a project. Be aware of why you are doing it.
Are you performing or are you learning?
Before you start a project, you should ask yourself: To what extent is this a project for me to perform at my best, and to what extent is this project for me to learn, collect experience and to have fun?
If you are doing something that you have done many times before. You can perform. You will know what you are doing. You can plan ahead. You will know what parts are tricky and what parts are simple.
If you are doing something that is new to you. You are learning. You can not plan ahead. You must improvise, as you do not have the experience necessary to plan your work.
You really should not expect to be able to perform and learn at the same time.