James Golick says that speculating sucks:
Trying to perfect an implementation in one's mind is a form of speculation. It is extremely difficult to judge the readability of something you cannot read, or the performance of something you cannot run.
The great programmer is often more effective because they can implement several solutions in the same amount of time it takes the average programmer to implement one. All the while, they are improving their base of experience by having real interactions with many real solutions to the same problem.
This is an extension of a general principle of creative work: be prolific, then ruthlessly filter your output. The best writers, painters, and architects are not defined by the average of everything that they ever commit to a page, but by the peak of their output. And the more output you create, the more chance you have to hit your peaks.