6 ms·
I am the same way, I explain it as "I think in concepts" Relationships is a word to explain it that I hadn't thought of before. I think a lot of engineers are
by gavinray 5y ago
I am the same way, I explain it as "I think in concepts"
Relationships is a word to explain it that I hadn't thought of before. I think a lot of engineers are probably similar.
When working on a large codebase or trying to plan out something like this -- you can't really go off of visual imagery. There's no "picture" of all the ways that various things in a codebase will interact, design decisions, etc.
A lot of engineering/software stuff is abstract.
Not sure if others are the sameway, but the downside to this is that I have nearly zero spatial-imagery skills. You know the tests where they show you a 3D shape, and ask you which possible rotation is still the same shape? Or the one where they ask you to show what shapes would look like, if folded up from laid out pieces of paper? My mind just goes blank:
https://en.wikipedia.org/wiki/Mental_rotation https://en.wikipedia.org/wiki/Mental_rotation
I also have essentially no geo-spatial awareness. I constantly get lost and have no sense of cardinal directions.
Anyone else out there have a brain like this?
- prometheus76 5y agoThat's very interesting because I also have aphantasia, but I can flip objects and know which answer is correct. I don't know how to explain it, but I can do it. I also have no problem with cardinal directions, and I have no problems with right/left (although my ability to distinguish right/left was a later development than my peers).
- kaashif 5y ago> When working on a large codebase or trying to plan out something like this -- you can't really go off of visual imagery. There's no "picture" of all the ways that various things in a codebase will interact, design decisions, etc. Interesting that you feel this way. I definitely do imagine a codebase spatially, and constantly draw diagrams on paper to orient myself. I find those note taking tools like Dendron that do nothing except make a nice graph of your knowledge very useful. If you make a graph with services or classes as nodes, and edges as calls between them, you can absolutely get a sense of when a codebase or system architecture is spaghetti, and when it's a neatly organised tree with neatly distinguished layers and no cycles. In fact, surely that's why people call spaghetti code spaghetti - because the call graph looks like a plate of spaghetti and is impossible to untangle.
- shmoogy 5y ago> Not sure if others are the sameway, but the downside to this is that I have nearly zero spatial-imagery skills. You know the tests where they show you a 3D shape, and ask you which possible rotation is still the same shape? Or the one where they ask you to show what shapes would look like, if folded up from laid out pieces of paper? My mind just goes blank: Yes. If I ever had to do this for an interview, I am failing. I try to rotate my hand in a similar fashion you might have done if you've ever done physics magnetism calculations.
- nimos 5y agoCan people imagine this? To solve these I develop a set of rules about the relationship between sides. Like if there is an X on one side then there must be a T adjacent to it and so on. Then I try to eliminate as many answers as possible and then when I'm down to 2 just look for something that is "wrong" (i.e X side cannot be next to V side)
- deltaonefour 5y ago>There's no "picture" of all the ways that various things in a codebase will interact, design decisions, etc. There 100% is a picture of it. Code itself is a 2D picture of logic. The picture for code is arranged in a specific way with huge limitations that don't take full advantage of 2D space. 3D space is infinite and if logical decisions can map onto 2D space (which is essentially what code is) it can also map onto 3D space. The "language" of this mapping from logical decisions to some sort of spatial diagram can become more and more complex. Instead of linear lines of symbols (which again is what code is) it can be become a graph, or a literal pipeline of logic in 3D space. Analog computers are essentially 3D "pictures" of "code." Additionally how the logic is represented in your brain must take up space. Logic itself is not so abstract that it takes up zero space. How ever it is stored in your brain there IS a 3D structure or "picture" of that logic that exists. If you are aware of some logical step of operations then it FOR SURE exists as a picture in your brain. I'm not saying it's a picture you can visualize... But the locations of where and how that information is connected in your brain forms a 3D structure. The essence of all logic starts as geometry in 3D space; taking away that space is the abstraction. Code doesn't have to be visualized. Many times I don't visualize it at all. I remember it, like you... via relationships. But I have the Option of visualizing it as a picture. If you have aphantasia it just means your brain lacks the ability to assign spatial coordinates to concepts. So you are aware of "relationships" but you can't arrange those concepts into a 3D grid and see how they are all interconnected. It's more of a disability the a brain type IMO, because people who don't have aphantasia can certainly see relationships without having the need to "picture" it. If it does lend you advantages, I would say it's similar to how certain blind people can use echo location to navigate the world. It may lend you advantages that arise out of necessity to utilizes other tools to make up for a disability, but oftentimes it may not.
- harel 5y agoThat's how I explain it. I'm not sure it's clear to people but I have no other word to describe it.
- harel 5y agoI am exactly like you describe 100% to the dot. I can get lost on a straight road with a gps at hand.
- hn_go_brrrrr 5y ago"thinking in concepts" is exactly how I describe it, but mine is a little different. I still don't visualize anything, but I have a fantastic sense of direction. I can wander through a maze of back alleyways intuitively and end up very close to where I want to be. Similarly, I can fold and unfold shapes in my head, but not visually. If I consider the problem, I become aware of the answer.
- harel 5y agoDo you have an internal voice/monologue, or lack one? This is another thing I recently found out I don't have and I'm trying to see if the two are related. (I'm still a bit "excited" from your original comment. I could have written it word for word.)
- gavinray 5y agoI don't have an internal voice/monologue either, FWIW What about you? I can if I consciously put effort towards it, but when thinking or reading I don't notice any sort of voice/sound
- harel 5y agoI got no visuals and no voice. Its dark and quiet on my head. I found out not all people are like that in my early 40s and to be honest felt like I missed out. I do dream visually, but rarely able to recall dreams, and I did experience visuals on psychedelics in my 20s. The one plus of seeing in concepts is that I can hold complex software systems in my head pretty easily and code always clicked with me very naturally. But I still am a bit jealous of those with special fx vision
- Jarwain 5y agoWhat is your thinking/reading experience like then?
- shmoogy 5y agoI'm an aphant and I have an inner monologue
- Twisol 5y ago> When working on a large codebase or trying to plan out something like this -- you can't really go off of visual imagery. There's no "picture" of all the ways that various things in a codebase will interact, design decisions, etc. Oddly, while I totally get the emphasis on "relationships", I definitely orient those relationships spatially. I used to play a text-only game (a MUD) where the world was laid out as a graph of rooms; the graph was only approximately metric. I initially learned to navigate by drawing my own (roughly Cartesian) maps as ASCII art, giving me a kind of global perspective in my mind's eye, but over time I "learned" the topological structure directly and relied on a less graphical (but no less spatial) local perspective. I tend to "navigate" codebases in much the same way. Different parts of the codebase cluster more or less closely, and I perceive information flows in essentially the same way that I perceived paths through the MUD's world. I learn a codebase in much the same way, although it's much more local from the beginning (codebases tend to be even less Cartesian than the MUD's world is).