I’m staring at source code again.  This time it’s not mine.  I’m not looking for a flaw.  I’m not trying to fix something.  I’m just trying to understand; hundreds of files, thousands of functions, millions of lines.  I stare at them and I read them, not line by line.  I skip over those and glance at declarations.  I see words stitched together into names with parameters and types.  I’m not sure what they mean yet, unfamiliar with the pattern.  I don’t really know what the code inside does, but that’s just details.  I see the names to know who they are, where they are.  I’m building a roadmap in my brain.

 

Soon the code takes shape to me.  It might have been hours or days, but eventually it is there.  I can now feel the code, a sensory perception on the periphery of what is real.  I know how the code is defined, what its facets look like, where they are placed.  I scroll through the files once more, seeing them again, like photographs of old friends.  I look into each and see references to others.  Look, there’s that same little guy.  He’s over here too.  I don’t know why, but now I see how.  The code becomes three dimensional, linked together in a graph, woven together like a tapestry; function upon function, hierarchical and ordered.

 

It’s only now that I begin to understand what it is that the code actually does, a portrait forming in my mind, full and complete.  I had some idea going in, but that was a base perception, a rough image painted with broad strokes.  Now I see the details, the intricacy, the patterns and the truth.  I walk through the code and feel it react.  I know where it is going and I know where it’s been.  I don’t need a machine to tell me this.   It happens all inside my head as I sit in the car driving to and from work, as I shower in the morning, as I lay awake at night. 

 

But that's just me.

 

Matt