For me, it is the opposite. I feel much more productive when writing code, to the point where my idea is "when I am not coding, I am not working". I don't even have a pen and paper at work. I have a phone with a stylus that I use as a substitute from time to time, and I sometimes take notes on text files, but 99% of my thinking is done while coding.
Code is what keeps me down to earth. It may seem like an unnecessary detail to think about how to pass a variable when you are barely familiar with the subject, but if you can't get something that simple right, chances are that your are going it the wrong direction and when time will come to do the implementation, you will be in a world of pain. Of course, a lot of that early code ends up being thrown away and reworked, but in the early phases, it is rarely a problem.
It probably has to do with a top-down vs bottom-up approach. I am much more comfortable working bottom-up, thinking first about the details and how they fit the big picture, rather than to top-down approach, where you think of the big picture and work up the details later. I think that both approach will eventually lead you to the same destination, so choose the one you are most confortable with.
Also, context matter. I do mostly low-ish level programming (mostly C++), I don't know about coq, but it seems to be more maths than technical engineering, so maybe a different mindset is required.