>And for programming, I visualize structures, somehow. How does that work?
That's one thing I can't imagine :). Coming into programming from maths, I already had a well trained skill of imagining even wildly abstract structures in my mind and attaching properties and behavior to them, which helped me a lot, specially later when apps grew bigger. I'd have big mental pictures of what's where in the app, probably laid out in the order where they appear in the menu, with extra floors for background and engine stuff and extra nebulae elsewhere for backend etc, whatever was necessary.
Without that, it would become the proverbial* „playing double bass in a phone booth with your hands tied behind your back“.
----
* I've seen this word abused/misused so many times, but I'm allowing myself this one-time use, because I differ from most of them - I do know the proverb, even if it's one that I invented myself. But then I've quoted it the proverbial thousand times.