Monday, May 08, 2006

I like programming

This is a topic very close to my heart indeed. Let me try to find out why i like programming..

First of all programming gives me money. Right now I'm working as a S/W developer in a start-up called appscale in Chennai. Though it doesn't pay me like some IT giants pay to its employees, but I'm more than happy with my pay-package. I still remember the day when I first received my pay-check from my boss. It's indeed a good feeling to earn money doing what I love.

And perhaps programming is the only useful thing I've learned in my short span of life. It was not a very well-thought decision to take Comp-Science as Hons subject in my BScs. It was kind of gamble. When I joined my BSc course (i.e 2000), studying Computer-Science used to be considered as an uncertain and suspicious idea in our place, particularly as an Honours subject. Joining some stupid Engineering college and spoiling your career (I've really a hateful grudge over Engineering colleges, may be I'll write on that some
time) was appreciated better. But the gamble (or whatever) worked for me. I didn't get lost at least. I thank my fortune!

As a school-kid I always hated abstract topics like philosophy and all. But In my very first college day I learned a new mantra from my teacher "Programming is a philosophy". I couldn't appreciate what did that mean! Mind it I never touched a key-board before that. I still remember a guy proudly showing me a trade mark Microft (don't ask me to correct the spelling, i like the pun) blue Editor Screen in MSDos and telling me with kind of bullying attitude "hey moron! see it's called notepad, here you can write your stuffs". I don't exactly remember how I reacted that day. Over all my acquaintance with Computer-Science was never exciting. But slowly it started rolling. First time in my life I started enjoying doing home-task, writing pseudo code for the programs which we had to code in college-lab. In the process slowly I was realising what that *philosophy* is. What I like most of programming is you don't need to have a great theoretical background to start writing good quality code. Important is figuring out the problem and applying yourself. In the process of applying automatically you learn many things which you didn't know earlier. Of course to write really path-breaking program you need to be extra-ordinary. That is true for every field isn't it? After all not every budhiya runs 65 Km at his age. There are not many Linus Torvalds, RMS or Bill Joy! I wish I had that mathematical back-ground to write an evolutionary search-engine. Recently I was reading a book by no one but Linus Torvals, where I found most beautiful explanation of this philosophy -

I'm personally convinced that computer science has a lot in common with physics. Both are about how the worlds at a rather fundamental level. The difference, of course, is that while in physics you are supposed to figure out how the world is made up, in computer science you create the world. Within the confines of the computer, you're the creator. You get to ultimately control everything that happens. If you're good enough, you can be God. On a small scale.

I was truly moved reading this. And thing is I no more hate philosophy as a subject. It's really nice feeling to make the dumb machine work as you want. It gives you lot of pleasure. I just can't stop quoting from another classic "The Mythical Man-Month" by Brooks -

The programmer, like the poet, works only slightly moved from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. few media creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures.
and
Yet the program construct, unlike the poet's words, is real in the sense that it moves and works, producing visible outputs
separate from the construct itself. It prints result, draws pictures, produces sounds, moves arms. The magic of myth and legend has come true in our time. One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be. Programming then is fun because it gratifies creative longings built deep within us and delights sensibilities we have in common with all men.
.. I never realised when programming has transformed into a fascinating passion for myself.

Oho! before signing off let me give a disclaimer. I never claimed to be a geek. I'm an average programmer with bit of passion for learning new things and writing better code. And betterment continues everyday. I dream of the day when I'll be able to write "good code, beautiful code, excellent code".

4 comments:

Priyankar said...

Sahid,
Liked this post very much. I believe you understand why the Grand Father has kept his book name as "The Art of Computer Programming".
I wish you to become a "path breaking" programmer.

Priyankar said...
This comment has been removed by a blog administrator.
Anonymous said...

you really are a man of many talents. You do know how to write as well.

Sahid said...

^ Let me hope you are not sarcastic here ;)