I don't visualize code because I can't visualize on demand, period.
I think of it in terms of words and logical abstractions. Textual memory, reading comprehension, code intelligence tools, and search are how I understand and navigate projects.
I say things like "You're looking for the immutable DEFAULT_HEADERS property. I think that's in the HTTPResponse class?" fairly often.
I like documenting a project's high-level organization (top-level folders and what they do) in the readme or a similar place.
I'm strongly opposed to manually-created diagrams about a codebase because they require insane discipline to keep up-to-date.
I like having tooling to generate diagrams from the current state of the code. Ditto interactive tools with useful visual components (popups that show the doc comments for the abstraction under your cursor, auto-completion hints, SQL query editors that show you the visual schema of the tables in your query and the foreign keys to related tables [hypothetical, yet to find one that does this like I wish they did], etc).
I sometimes use git-heatmap to get an idea of what files in a project see the most change. Such files are usually worth getting to know better.
I frequently use ag / rg to search for fragments of text that I recall being near the code I'm looking for.