A lot of people who find themselves having to deal with matrices when programming have never taken that class or learned those things (or did so such a long time ago that they've completely forgotten). I assume this is aimed at such people, and he's just reassuring them that he's not going to talk about the abstract aspects of linear algebra, which certainly exist.
I'd take issue with his "most programmers are visual thinkers", though. Maybe most graphics programmers are, but I doubt it's an overwhelming majority even there.
> most programmers are visual thinkers
I remember reading that there's a link between aphantasia (inability to visualize) and being on the spectrum.
Being an armchair psychologist expert with decades of experience, I can say with absolute certainty that a lot of programmers are NOT visual thinkers.
Do you have anything I can read about that? I'm definitely on the spectrum and have whatever the opposite of aphantasia is, I can see things very clearly in my head
"In Experiment 2 we have shown that people with aphantasia report higher AQ scores (more traits associated with autism than controls), and fall more often within the range suggestive of autism (≥32)."
https://www.sciencedirect.com/science/article/abs/pii/S10538...
This is interesting because, to me, programing is a deeply visual activity. It feels like wandering around in a world of forms until I find the structures I need and actually writing out the code is mostly a formality.
I would describe my experience of it similarly, but wouldn't call it "visual thinking" in the sense meant in the article, where one uses actual imagery and visual-spatial reasoning. Indeed, I almost completely lack the ability to conjure mental imagery (aphantasia) and I've speculated it might be because a part of my visual cortex is given over to the pseudo-visual activity that seems to take place when I program.
I'm especially sure my sort of pseudo-visual thinking isn't what the article means by "visual thinking" because I also use it when working through "piles of abstract math", which I take to very kindly indeed.
Is your "wandering" of this sort of pseudo-visual nature, or do you see actual visual images that could be drawn? Very intriguing if the latter, and I'd be curious to know what they look like.
> Is your "wandering" of this sort of pseudo-visual nature, or do you see actual visual images that could be drawn?
They're like if the abstract machines you talk about in CS theory classes were physical objects.
For example, thinking about a data processing pipeline, I might see the different components performing transformations on messages flowing through it. I can focus on one component and think about how it take apart the message to extract the structure it's trying to manipulate, interacts with its local state, etc. If something is active and stateful it feels different than if it's just a plain piece of data. I run the machine through its motions to understand where the complexity is and where things could break, comparing different designs against each other.
I'm thinking about a data format, I think about the relationships between containers, headers, offsets between structures, etc, like pieces that I can move around to see how their relationships change and understand how it would work in practice.
It's more than an image that can be drawn because the pieces are in motion as they operate. It's the same kind of "material" that mathematical objects are made out of when I'm thinking about abstract math. It's immensely useful skill for doing my job, in designing systems.
I actually struggle a lot with translating the systems in my head into prose. To me, certain design decisions are completely obvious and wouldn't need to be stated, so when we all understand the product goals I often to neglect to explain why a certain thing works the way it does, because to me it's completely obvious how it's useful towards achieving the product goals. So that's something I have to actively put more effort into.
I also really struggled when I took a real linear algebra class, since it was taught in a very blackboardy "tabular" style which was harder for me to visualize. I was unfamiliar with it due to being used to thinking about matrices in the context of computer graphics and game engines.
Math achievement correlates strongly with visuospatial reasoning. Programmers may not be as proficient in math as economists, but they are better at it than biologists or lawyers.
I would distinguish between visual imagination and visuospatial reasoning.
For people like myself with aphantasia, there are often problems solving strategies that can help you when you can’t visualize. Like draw a picture.
And lots of problems don’t really require as much visual imagination as you would think. I’m pretty good at math, programming, and economics. Not top tier, but pretty good.
If there are problems out there that you struggle with compared to others, then that’s the universe telling you that you don’t have a comparative advantage in it. Do something else and hire the people who can more easily solve them if you need it.
And since the economist's main skill at math is fitting a very short ruler to a very large curve... i wouldn't put them ahead of lawyers...