Sunday, December 02, 2007

Code as Personal Reflection of It's Writer

When you already have looked at large amount and variety of codes you'll see code as having some kind of personal style on it. You'll start looking at codes saying words like : organized, confusing, pretty, elegant, dirty. So, how come this thing that we commonly perceived as a very technical thing has a very "human" property?.

Code is actually a means of communication. It's the chip that is "technical", but how it is organized and programmed is actually human activity with a large amount of communication goal in it (In a way, even a chip is not just technicalities if we look that it a product of design by human). It is then not a surprise we could find a trace of our human-side in it.

Code is a way we tell ourselves and other people how we perceived pieces of building blocks formed as a coherent, interrelated whole. We describe in it how we think certain pieces is logical to be organized in one group, how we divide some part into more several independent part, how one pieces is should be extracted into one entity (after we find it's redundancy). We pick the best representation and structure that we think will describe the best of the system how it should work step by step, function by function.

Pay attention to the word on the paragraph above. Organizing, Perceiving, Describing, Coherence is words that has connection to who we are as a person. As an addition to our knowledge of programming language and libraries, we organize things based on our personal preferences and skill in organizing things in general. The way we label things and do abstraction in life plays an important role in determining choices in we decided to use in our code.

What makes this even more important in coding is because coding is relatively complex and this makes our skills and behavior even come out in it's relative more reflex/unconscious form that it's usually come out. We only realize it when things already got to it's final state "Wow, this looks like a mess!", "This code end up looks really nice and easy to read." What we are inside is somehow reflected to what we do.

What I take from this personally is : Coding is related to other parts of our life. Good programmer is not the one who just read programming language books everyday for the whole year. We could benefit a lot too from variety of sources not directly related to programming. Books about graphic design, a movie, an art, music, spirituality, news, business, statistics, comics, social event, parenting is as valuable and important sources as any other more direct materials.

Other interesting observation that I notice recently is that with practice of Shared Code and Pair Programming the code that emerge is kinda like something that come up when we make an art together or writing document/article with someone else. It looks like a blend of each contributor but in a more interesting way, call it synergistic if you like.

Realizing that code is not just done by our programmer side could open our eyes to rooms of improvement that we probably would not see otherwise. I find that it would makes the work less boring and stressing too since when we find that we can use our whole self to a problem we have a much wider resources to use and a more dependable consolation to fall back into when there's tr0uble.

No comments: