I have coded with a lot of people like this, and I think it is absolutely a fine way to approach things, and can even be good, but one piece of advice I always tell them:
The job has only started when it is working. That doesn't mean you're done! :)
This is how I often program as well. I’ve realized that when you do this it’s crucial to have lots of tests to validate the program’s behavior, because it can easily look right and mostly run right without actually being correct.
Yeah, I'm the same way. I never sit and think a long time - I prefer to think by doing, to externalize my thoughts so I can move it around, change things, see the thinking process in front of me as code and observable bahevior. Then I just keep shaping it until it becomes what I envisioned at the start. But then, where did that "vision" come from? Thinking over a long time, usually days and weeks, sometimes years.
Yes, knowing every detail of what I'm doing would bore me to death. I would rather "not know" and be amazed when the finished product, whether it be a loaf of bread, an application, or a sketch, emerge.
I draw the same way. My sketches are tons and tons of lines in the wrong places that somehow end up looking right, because the majority of the lines are near to or in the right places.