A good programmer working intensively on his own code can hold it
in his mind the way a mathematician holds a problem he's working
on. Mathematicians don't answer questions by working them out on
paper the way schoolchildren are taught to. They do more in their
heads: they try to understand a problem space well enough that they
can walk around it the way you can walk around the memory of the
house you grew up in. At its best programming is the same. You
hold the whole program in your head, and you can manipulate it at
will.