So I'm one of these seemingly non-verbal thinkers, including when I code.
I think it makes me more capable of _making use of_ complex concepts. I came into programming through mathematics, and I treat them both as aesthetic exercises. When I'm building a system in my head the solution usually appears visually, and ideas overlay themselves over the problem as aesthetic "feels". Yes it's a lot like being a visual designer: I can step back, view the solution, and just 'see' if it looks right.
Why should we structure our solution like this? I can't easily put it into words but it just... would be more natural like this. And then a few days later the reason it was correct becomes liminal and I can explain it properly. It lets me hold more ideas in my head and make use of them all at once. When picking up a new idea I can grasp the underlying concept, see the symmetry with ideas I already understand, and slot it into place.
Of course it has major downsides too. It's an effort for me to put my full ideas into words. Coding, like anything worth doing, is a team sport. If I can't vocalize my ideas then half the time that makes them worthless, especially when the decisions are important and therefore contested. I tend to make mental jumps that lose other people, and lose track of what state other people have.
Also, and this is in line with what you said Aedron, it does make it harder to check the details. I'll make silly mistakes because checking them isn't part of my mental construct. I can chase a half-formed idea for a day before realizing my mental picture was off, and I didn't catch it because I never put the problem into words. Pracical-but-ugly hacks don't occur to me because they aren't aesthetic. I'm worthless at remembering my girlfriend's friends' names.
This year I'm focusing on moving slower, writing more things down, and talking to people more. So far it's been really helpful. But I don't think I'd have got to where I am now, or be able to solve the kinds of problems I do, if I was a mostly verbal thinker.
I think it makes me more capable of _making use of_ complex concepts. I came into programming through mathematics, and I treat them both as aesthetic exercises. When I'm building a system in my head the solution usually appears visually, and ideas overlay themselves over the problem as aesthetic "feels". Yes it's a lot like being a visual designer: I can step back, view the solution, and just 'see' if it looks right.
Why should we structure our solution like this? I can't easily put it into words but it just... would be more natural like this. And then a few days later the reason it was correct becomes liminal and I can explain it properly. It lets me hold more ideas in my head and make use of them all at once. When picking up a new idea I can grasp the underlying concept, see the symmetry with ideas I already understand, and slot it into place.
Of course it has major downsides too. It's an effort for me to put my full ideas into words. Coding, like anything worth doing, is a team sport. If I can't vocalize my ideas then half the time that makes them worthless, especially when the decisions are important and therefore contested. I tend to make mental jumps that lose other people, and lose track of what state other people have.
Also, and this is in line with what you said Aedron, it does make it harder to check the details. I'll make silly mistakes because checking them isn't part of my mental construct. I can chase a half-formed idea for a day before realizing my mental picture was off, and I didn't catch it because I never put the problem into words. Pracical-but-ugly hacks don't occur to me because they aren't aesthetic. I'm worthless at remembering my girlfriend's friends' names.
This year I'm focusing on moving slower, writing more things down, and talking to people more. So far it's been really helpful. But I don't think I'd have got to where I am now, or be able to solve the kinds of problems I do, if I was a mostly verbal thinker.