One odd thing about the experience of developing software is the crazy nature of progress. You can spend days stuck on one tiny feature.
But you can also, in a burst of inspiration and good fortune, jump ahead in a single day by what feels like months of progress. It’s a very strange sort of journey
I think that what’s really going on is this: During those difficult times, when you feel that you are barely inching forward, you are actually doing the real work.
You’re essentially fueling the turbo-thrusters that you will be using in those wonderful bursts of progress.
Nothing comes for free. But everything can be beneficial.