Thursday, June 24, 2010

Why I love programming!

I am fortunate to be one of those who love programming and get to do it as my day job. But why? Why do people who love programming love it ?

I guess it just a desire to create! To keep learning! It's fun, To make the world a better place!



I started with my first PC a 486dx2-66 with 8megs of RAM and DOS 6.2 at age 14-15, it came with QBasic and i got a book on basic and started hammering things like Print "Hello World", running the nibbles and gorilla examples. The only neat QBasic program i did was this mini paint program using my joystick as a means of control.

I thought at that time whao it would be great to write games for a living, my inspiration was from games like Ultima, Wing Commander. I picked up a book The Black Art of Visual Basic game programming, learned about timers and how to bitblt and do XORing get transparency effect. All i really did with that knowledge was to create a sailor moon screen saver.

At this time i was already in a Polytechnic doing computing, picked up C and C++ there and for my final year project did a multiplayer, sort of dungeon game with DirectX and DirectPlay. There was this bug in my game and it kept crashing and I suspect that it was because of the screen update thread and my DirectPlay updates from the rest of the players was interfering with each other. So i basically need to do a thread safe implementation of my linked list (I rolled out my own c++ template linked list implementation at that time). I thought that was pretty neat, I mean at that time I didn't know much about STL, i just tried to apply stuff that I learnt in my Data Structures classes and my Threading classes to my project.



During the same time Window 95 was the cool OS of that day and I wrote a Windows 95 theme creator in VB, I put it on the net, I couldn't remember where I put it though and i lost the code to it. Never really expecting any one to go download it, but surprise ! Someone did downloaded it and even emailed me that he liked it. That was the first time some unknown person wrote to me and told me they liked what I did! Someone actually like my stuff !

I went on to university doing computer science, and went to join the Navy nothing to do with programming whatsoever, sailed around for 4 years, during that time wrote little pocket pc applications to help in my work on board the ship. After my tour in the Navy was over, joined the government sector and now doing mainly Enterprise applications using Java and also some GIS work. 

The transition from my previous career in the Navy to now a professional developer job was not too easy, stuff in the programming world moves so fast, When i left the University it was Java 1.2, when i came back Java 5 was there. Lots of stuff changed too, Light weight frameworks like Spring were fast becoming standard in lots of places. The stuff I learned in school regarding Web programming was outdated (I programmed everything in the JSP pages in those days), but I guess that didn't deter me from jumping back into programming because fundamentally programming is all about using Sequence, Selection and Iteration (as quoted from Uncle Bob in his Keynote) and solving problems. Besides I love programming ! I picked up stuff on J2EE design pattern, OO design patterns, read and learned about Agile and liked what they preached about putting users first and having working software. Hopefully can put more of that into practice with my team.

The same joy that I felt when I was younger was there (okies I am not that old), I still feel it now in my job, the feeling of creating stuff, solving problems and learning are all there. When my users tell me that they liked what I did for them, i felt the same joy as when the email from the person who liked my Win95 theme designer.

Now that I am now the father of a very active 8 month old daughter and moving onto a more senior and kind of half technical and half management role in my team, time for learning and tinkering at home gets lesser but I still try to read at least one work related book each month. Currently I am reading The Art of Lean Software Development and The Toyota Way to get some insights on Lean software and Lean thinking. I am playing around with Common Lisp, trying to write a small game, learning Clojure by reading Programming Clojure because I think that functional programming may be the way of the future and beside that it's fun to learn about stuff like Homoiconicity, multimethods and a whole new way of thinking, I am also playing around with Google App Engine in Python (Cause I love Python!), trying to code some stuff that I will tell you later when I am more or less done.
 
In short I love programming because I love to create things, I love to learn and its fun, hopefully in the process, I have made the world a better place for some people.

7 comments:

  1. Great post :) Much the same reasons I love programming too.
    Keep up the good work

    Paul

    ReplyDelete
  2. Nice. This reminds me of a section of Mythical Man Month which always resonated with me:

    "The Joys of the Craft"
    Mythical Man Month
    Frederick P. Brooks, Jr.

    Why is programming fun? What delights may its practitioner expect as his reward?

    First is the sheer joy of making things. As the child delights in his mud pie, so the adult enjoys building things, especially things of his own design. I think this delight must be an image of God’s delight in making things, a delight shown in the distinctness and newness of each leaf and each snowflake.

    Second is the pleasure of making things that are useful to other people. Deep within, we want others to use our work and to find it helpful. In this respect the programming system is not essentially different from the child’s first clay pencil holder "for Daddy’s office."

    Third is the fascination of fashioning complex puzzle-like objects of interlocking moving parts and watching them work in subtle cycles, playing out the consequences of principles built in from the beginning. The programmed computer has all the fascination of the pinball machine or the jukebox mechanism, carried to the ultimate.

    Fourth is the joy of always learning, which springs from the nonrepeating nature of the task. In one way or another the problem is ever new, and its solver learns something: sometimes practical, sometimes theoretical, and sometimes both.

    Finally, there is the delight of working in such a tractable medium. The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures. (As we shall see later, this very tractability has its own problems.)

    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 results, 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.

    ReplyDelete
  3. Great post!

    You've inspired me to write down my own reasons at Why I love programming...

    I love your explanation "a desire to create! To keep learning! It’s fun, To make the world a better place!"

    ReplyDelete
  4. @Sean Crotty Yeap I read that book too, a similar book by Daniel Pink may be interesting to you too, in his book Drive: Surprising truth about what motivates people
    also talks about how money is not the main motivation for people that does cognitive work, buts its something much higher than that.

    @Nat JM Great just read your post, glad that I inspired you to wrte that post. Hope you find a job that fits your passion soon.

    ReplyDelete
  5. Great post, you just tell 90% of my life, I have a feeling you know me, rsrs, I put your post in my bookmark.

    ReplyDelete
  6. Hi Fabio

    Glad you like the post! I guess its the same for many of us who choose to purse this interest.

    ReplyDelete