Search This Blog

Loading...

Thursday, March 27, 2008

Programming Is All About Passion

Programming is all about passion.

Yes, you can be a programmer and get your job done without actually loving your job. You can clock in 9 am and clock out 5 pm and collect your salary at the end of the month, day in and day out but you don't enjoy the job at all. You can even climb up the management ladder and collect a far fatter paycheck after you grow tired of the technical things. Oh no, moving up the management ladder is the way to go (besides switching track, of course) if you don't love programming.

But in a field that is so dynamic, competitive and geeky, it is hard to stand out among the crowd without burning passion. Programming is like sports, or money management, or scientific research, where individual talent matters the most. Not just individual talent, but also the effort. In those fields, there is no such thing as a second-place winner. Either you are the best, or you are a nobody. Talent is a flunky thing, one day you feel very talented and you win, but on another day your talent, or luck desert you and you lose. You have to make up the fluctuation in talent by putting in a lot of sweat, tears and even blood.

Tiger Woods started playing golf at two and put in don't-know-how-many-hours in practicing the sport. All the athletes I know of spend a major proportion of their time practicing, practicing, practicing. Without passion there is really no way to practice, practice and practice. There is no way to becoming a pro. And the pros don't just settle for the average, they aim for the best, the perfection. That's the way to survive.

Programming is competitive. Every few years new technologies come out, replacing old stuffs. Every few years new methodologies purposed. There are constantly new frameworks, techniques that you have to master. Even the programming domain is changing as well. In 60s and 70s we had mainframe computing where all you could find were number crunching jobs. In 80s we had Mac and Windows bursting on the scene and suddenly, the choices for programmers widened. Instead of crunching numbers all the time, you could now write interactive, bouncing applications with dazzling GUIs. Then in 90s World Wide Web was born, and that required expertise in network programming, not to mentioned web apps. In 2000s, web apps are still the mainstream, except that they grow in sophistication and in different tool sets.

Programming languages and paradigm change also. 70s was dominated by Fortran, COBOL and procedural programming. In 80s we saw the steady rise of C++ and the OOP concepts. Learning procedural programming was hard enough. But when you wanted to learn OOP afterwards, it was even harder because OOP was a completely different paradigm than procedural programming. There isn't a single field that change as fast as programming field. Without passion it is literally impossible to survive a few revolutions and master vastly different techniques.

A person who is content with his day to day job and doesn't bother to learn anything new on his spare time is unlikely to catch on the new technologies and the new revolutions. Overt the time his skill will become obselete, or his expertise domain will shrink to an extent that he is no longer that valuable on the job market ( Yes, I know, I know, hiring shouldn't be all about experience and skill sets, but unfortunately, the managers, or the recruiters think otherwise). Learning new stuff requires adventurous spirit, sharp minds and burning passion. After a day of hard work, after so much time writing code in the office, do you still want to write more code, in a different language that you are unfamiliar with when your wife is calling out for you and your brain is tired? Most people don't. And those who do are those who are passionate.

It is those passionate ones who will stand out from the crowd.

15 comments:

Peter said...

I couldn't agree more !

Philk said...

By coincedence, us testers have been having the same discussion

http://www.testingreflections.com/node/view/6795

Frank said...

Really, Really good post.

Thank you. It was inspirational to read... Really!

Robert Robbins said...

You should move to Pennsylvania where you only have to be better than the Amish.

Kristian Erbou said...

Well - I'm sorry but I feel like this is old news... . Everything you do in your life which you do very well you are passionate about. You can be passionate about things without being good at them - lots of people suck at golf for instance but still have a love for the game... But being very, very good at something is virtually impossible without having a natural motivation and passion for whatever you are about to do. Cooking, being a parent, mowing the lawn, fixing the roof of your house, mathematics... You are only able to perform on any issue if you feel motivated and passionate when doing it.

I just feel like I was promised something in the article which went a little beyond the obvious... Sorry... Please, no flames, I am a passionate online pacifist ;o)

Raj said...

GREATTTTTTT post mate... and could not agree more... honestly i feel really sorry for all the dumb f**k lazy coders who bullcrap about project management / processes all the time and if u ask them 2 questions on memory management the piss in their pants. unfortunately sooner or later these dumb f**ks become our PROJECT MANAGERS and start killing innovation... and unfortunately few of them happen to be my friends... future looks dark for them (read that as they would be spending 1/3 of their lives on outlook express, another 1/3 on bullcrapping in meetings and the rest screwing passionate coders) - raj

Soon Hui said...

Kritian, thanks for reading my post.

I agree that my post is sounds like an old news. I felt that too. But I couldn't stop writing about it despite all this. Maybe this is Passion :)

You said you just feel like you were promised something in the article which went a little beyond the obvious. Sorry about that, maybe I was not good enough in expressing my thoughts, so all you got was something that was a little obvious :)

Magnus said...

I totallt agree, BUT remember: Life is short and work is endless.

oliver said...

What I found interesting is that you implicitly assumed that the goal for programmers is "to stand out among the crowd". Maybe I spent my (so far very short) work life in a too cozy workplace, but somehow that competition spirit you seem to imply hasn't reached me yet. I suppose the competition here at work is to deliver the most bug-free/reliable work, ie. essentially the best programmer is he who is never noticed - because his apps pour in on time and without bugs :-)

Regardless of my different view on competition, I fully agree that passion is what distinguishes the "guru" coders from the rest. But I'd be interested to know how the "competition spirit" is perceived by others?

NemesisVex said...

The number you're looking for is 10,000 hours. For anyone to be a master of anything requires at least 10,000 hours of practice. I remember reading that in "This Is Your Brain on Music" by Daniel J. Levitan.

Levitan uses Mozart as an example. Even though he wrote his first opera when he was still a kid, he didn't produce any work of real renown till he was much, much older.

I'm not sure I entirely agree that passion is what drives a person to burn those 10,000 hours mastering a task. Perhaps it takes passion to enjoy spending those 10,000 hours practicing.

But the 9-to-5er who ends up practicing his or her craft for 10,000 hours is probably going to get good at it, whether that was their intention.

Andrew said...

Nobody wants to begrudge you your passion, but this is not what programming is about. The programmer's job is to solve problems, communicate effectively, and get things done. One does not need to be in a passionate fervor to do this. Nobody cares how you feel - nobody. Doing a good, workmanlike job is what the business side wants, and they are paying your check and mine.

GR Brains said...

Thank you for sharing this post about the best techniques for Symfony Development, This is very useful for Symfony Development and Symfony Development Company. Thanks again :) Symfony Development

Newborn Photography Kansas City said...

Very Nice Post.Thanks for sharing it.

TalentsFromIndia said...

programming is all about passion..i just love this article :) Joomla Development

akmal niazi khan said...

Programming is very interesting and creative thing if you do it with love. Your blog code helps a lot to beginners to learn programming from basic to advance level. I really love this blog because I learn a lot from here and this process is still continuing.
Love from Pro Programmer