I wonder how much of this applies to coding. Is coding thinking?
It's one of the reasons for the "one to throw away"-idea of writing shitty code first just to get it to work, and then remake it after you have thought through the problem by coding it.