I received a link to this in my Quora digest. A lot of the answers are pretty spot on. My favourite?
“Programming” is thinking, not typing. Most of programming is spent sleeping, walking around, staring out the window, or doing anything else that helps you relax and think.
Right on. It might not be strictly true but it’s close to the truth. Not all devs think the same way of course, as mentioned in one of the answers; some think by drawing diagrams, some by jotting notes, some by ‘drafting’ out bits of code, and others do a lot of it mentally. I generally fall into the latter category.
However developers do their thinking, what they tend to have in common is that they’ll do a lot of “thinking” before any actual coding.