"When you abandon this two dimensional representation, your non-visual mental map suffers no spatial limits. "
My visual representation is definitely 3 dimensional and I am not sure what you mean by abandoning it?
I mean, code is statement blocks and controll flow elements. It is data and connections between them at execution. I can imagine, not being visual gives you much more focus and fewer distractions on the mental map, but is it really different?
I don't have this super-power but I can imagine that it could work.
When I'm digging into foreign code especially, I always find myself overwhelmed by the intricacies of the call stack. I get lost in layers, confused by indirections, I lose track of where I was a few steps before or what specific conditions lead me down a particular path.
I guess that if you're blind you need to become a lot better at keeping track of things for basically the entirity of your daily routine. Imagine merely cooking without sight. You need to know where all the ingredients are, you lack a lot of feedback on what you're doing to catch mistakes (did you add the pasta to the water yet or not?). I assume that you need to constantly build a fairly detailed map of the world in your mind where the rest of us can just wing it, basically. I can believe that this skill might make you a better coder.
"I don't have this super-power but I can imagine that it could work."
I don't think it is a super power, I believe every programmer does that, I just maybe do it a bit more conscious. And when I have to process new code, that just takes time, like for everyone else .. and doing it in a hurry will mean a wrong mental model.
> My visual representation is definitely 3 dimensional and I am not sure what you mean by abandoning it? I mean, code is statement blocks and controll flow elements. It is data and connections between them at execution. I can imagine, not being visual gives you much more focus and fewer distractions on the mental map, but is it really different?
An earlier commenter described it like a directed graph. I think that's a pretty good way to describe it. As for whether it is different, I don't know how others think. But one thing I do know is that this is how my mind worked for non-analytical thought before I went blind and still does. I'm just more aware of it now that I don't visualize as much. I only really visualize things these days as a way to communicate ideas with sighted engineers.
Hm, maybe the word "visualize" is distracting, from what I meant. When I programm, I also do not visualize it, in the meaning, that I have a graphical picture in my head. (At least not all the time )
I mean the mental graph and flow of the program in my head. And being a visual person, I can translate it to somehing graphical, but it does not neccesarily mean it is graphical. But thinking about it, gave some me interesting insights. ("insights" again, a word from a visual dominated world)
I imagine it is like representing code with a flowchart. Suddenly you are a lot less restricted by your mental representation and you can draw arrows any way you want.
I often experience something similar, even though I'm not blind: When I'm doing algebra I sometimes get stuck 'looking' at the equation and systematically trying patterns on it. But what works much better is to really load the equation into your brain so that you have an intuitive idea that guides your pattern matching. If you are blind, I suppose you always need to load it up.
My visual representation is definitely 3 dimensional and I am not sure what you mean by abandoning it? I mean, code is statement blocks and controll flow elements. It is data and connections between them at execution. I can imagine, not being visual gives you much more focus and fewer distractions on the mental map, but is it really different?