What do you visualize while programming?
Range of Mental Representations
- Extremely diverse reports: from rich 3D “cities,” blobs, DAGs, stacks, and factories to no imagery at all.
- Common metaphors:
- Dataflow and directed graphs, block diagrams, call trees, stack frames.
- Factories, gears, pipelines, Rube Goldberg machines, steam engines, computer hardware lines, stack machines, plates on a stack.
- Spatial “landscapes” or “houses” representing codebases or system architecture.
- Some think more in processes than structures: data moving through queues, over networks, between hosts, or through parsers.
Aphantasia, Inner Monologue, and Non-Visual Thinking
- Many say they visualize nothing, yet still program effectively.
- Several self-identify as having aphantasia; others aren’t sure, or only “feel” structure and motion without imagery.
- Some think almost entirely in words, inner monologue, or “stories.” Others lack an inner monologue and rely on vibes/feelings.
- Debate over whether people over-self-diagnose aphantasia and how much imagery actually contributes to reasoning.
Flow State and Cognitive Load
- “In the zone” described as an altered state: screen and keyboard disappear, with automatic code generation and vivid internal imagery.
- Older programmers report this state becoming rarer and more fragile, but also where their best work happens.
Visualization Tools vs Mental Images
- Many rely on external aids: diagrams, notes, block sketches, architecture diagrams, code minimaps, REPLs.
- Split views on diagrams: some find them essential for communication and design; others see them as confusing or slower than purely verbal/logical reasoning.
- Skepticism that “visual coding” can replace text-based programming.
Problem-Solving and Incubation
- Frequent reports of solutions emerging after stepping away: sleep, walks, games.
- Described as the unconscious mind or “back-brain” working on the problem; conscious pushing can be counterproductive.
Emotion, Motivation, and Humor
- Visualizations also include anxiety (layoff tents, QA “villains,” client complaints) and money/retirement.
- Humor and self-deprecation around dumb bugs, missing semicolons, and “past self” writing bad code are common.