zlacker

[parent] [thread] 9 comments
1. koreth+(OP)[view] [source] 2024-10-18 22:01:06
I don't have aphantasia (I can picture people and things if I want to) but unless I'm building a user interface, my thinking is completely non-visual when I'm programming or thinking about systems or data.

When someone asks me to draw an architecture diagram or a diagram of our production infrastructure or whatever, I am very slow at it and the result is usually middling at best, because my mental model of those things has no geometric or spatial component at all.

To the article's point, I've can't recall ever finding a visualization of my actual code or architecture that helped me work through a problem. When I've tried, it has always just slowed me down because I constantly have to map back and forth between the picture and the native non-geometric version in my head.

That's not to say I never use any kind of visualization. Graphical representations of things like profiling results are convenient and useful to me. But they tend to be more like representations of numeric data than representations of systems or code.

replies(7): >>nitwit+D5 >>fizleb+N5 >>m463+78 >>psycho+jA >>wduque+GX >>artyom+t61 >>margin+Hj1
2. nitwit+D5[view] [source] 2024-10-18 22:59:11
>>koreth+(OP)
I've tried testing to see if people grasp architectural diagrams, and they basically do not succeed at it past a trivial case. You're likely just more honest.
replies(2): >>deepsu+I7 >>kaba0+FF
3. fizleb+N5[view] [source] 2024-10-18 23:00:29
>>koreth+(OP)
Yeah I'm the same. I can visualize my house. When debugging and there are large number of numbers in systems to keep track of then arranging the systems on a piece of paper just to quickly find the numbers associated with each system helps, but beyond that when thinking about code it is all maths with no spacial or visual component, just logical statements and reasoning. E.g. When I think of a shuffle-shard I don't visualize the sets, I just think, subsets of size k.
◧◩
4. deepsu+I7[view] [source] [discussion] 2024-10-18 23:23:20
>>nitwit+D5
But, to be fair, I found that the very basic architectural diagrams often are the most useful, especially when introducing someone new. Like three nodes connected with three lines shows the data flow (or who calls who).

More complex diagrams are often a waste of time and get outdated soon anyway.

5. m463+78[view] [source] 2024-10-18 23:28:13
>>koreth+(OP)
I'm similar.

I think I would visualize architecture diagrams if they were a good visual representation of how software works, but honestly I think they suck.

As to richard feynman, I think of the other chapter in his book, the one where he invents a whole new math thing without greek letters. But it turns out that his perfect island utopia can't communicate with others and he falls back to the imperfect accepted way of greek letters.

6. psycho+jA[view] [source] 2024-10-19 06:54:27
>>koreth+(OP)
>When I've tried, it has always just slowed me down because I constantly have to map back and forth between the picture and the native non-geometric version in my head.

That's the whole point though, and I think the article try to also point that.

That is, there are considerations which are harder or downright impossible to model when a scene is approached under some perspective. But change perspective, and everything might now be obvious if not completely trivial to handle. The additional information pointed here is that even if placed in the very same perspective, people will still perceive the situation differently. Even at the same position with the same light exposure, a color blind person won't experiment the same observation as someone whose cognitive process overload the mental picture with additional color information.

◧◩
7. kaba0+FF[view] [source] [discussion] 2024-10-19 08:25:39
>>nitwit+D5
I do like sketching those up, but in an ultra-simplistic way (literally just a word/label and some arrows). Paper sort of extends my working memory, so I use it as a temporary storage to think through something that’s getting too big to hold in my mind. But it is so vague that coming back to it later, or someone else taking a look might not benefit anything.
8. wduque+GX[view] [source] 2024-10-19 13:16:46
>>koreth+(OP)
Same. When I’m actively coding I have a sense of relationships and how things fit together, and I often discover problems by a sense that things aren’t fitting together the way I expected. Then I have to look closer.

When I think out a problem I tend to do so in words rather than diagrams, on paper, or in Obsidian (or the FreeMind mind-mapper, which is really just a graphical outliner) until I have the whole thing in my head and all the relations are clear in my head. I don’t mean that I picture them, but everything fits together and I know it. By then I can write down and implement the solution.

It’s a very non-visual process, and I can’t really explain just what’s going on in my head. I think of it as loading the problem into my back-brain, which then condescends to let me know certain things about it. The actual structures, if you can call them that, are mostly hidden from my conscious mind.

But it works. I’ve been at this for four decades, and I’ve a reputation for writing reliable code. But it’s deeply weird, even to me.

9. artyom+t61[view] [source] 2024-10-19 14:58:12
>>koreth+(OP)
Very much the same. Visual representations are just a translation of whatever happens within the brain to be able to articulate it somehow to other people.

I think that's the beauty of it, though. It's never really there, even the code itself is a translation.

10. margin+Hj1[view] [source] 2024-10-19 17:00:24
>>koreth+(OP)
Yeah I'm the same. I think of program code more like like an idea expressed in a language, not like a space. So in the same way I don't visualize anything in particular when I have a conversation, I don't when I program either.
[go to top]