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.