- END #header -->

Programmers: Why do we do it?

Every now and again when suffering through a movie my wife has chosen, I manage to find one thing I really like about it. This time the form of torture was ““. Fantastic acting, spectacularly unentertaining story. Anyway, while I was daydreaming about code, I heard this exchange that probably went right over the heads of most viewers. Not the viewers fault, they were probably still reeling from the rough Mark Ruffalo on Julianne Moore action in the prior scene.

Gardener: “I have allergies.”
Jules: “Then why are you a gardener?!”
Gardener: “Because I love the flowers.”

And then they fly right past that line, but that’s the one good thing I took from this movie. Sometimes the things we love don’t make sense and can downright make us miserable, but it doesn’t make us love them any less.

In my head this philosophy plays so easily into the mind of programmer. There’s so much to dislike about programming:

  • Entire days spent chasing bugs
  • Short deadlines
  • Constantly having skillsets superseded by new technology
  • No appreciation for the work it takes outside other developers
  • The elitist nature of many in the developer community
  • Moronic clients
  • Late nights, long hours in front of a glowing screen
  • The constant inkling that some 14 year Japanese kid already did this better than you
  • The lottery-esque likelihood of independent success

And that’s just a few. I’m sure I’ll hear a few more in the comments.

Then why do we do it? What is there to love about programming? What is it about crafting together mountains of syntax that makes us come back to it every day? I know for most of us there’s a paycheck attached to it, but for plenty of us that’s not the root.

I may be getting too romantic even for my own tastes, but I think its the fact that those who truly love programming see it as an art form. Its not just a technical pursuit, but one that allows the leveraging of one’s unique talent and views. You bring a form of personal expression into your work. You invest yourself physically and mentally in what you do. You suffer and toil, using code as your medium, just as other artists craft with paint or stone. You have a personal association and pride with its creation. The code and its results represent you.

What do you think? Is there really a right-brain satisfaction achieved through a love of programming. Is it more than ones and zeros doing an assigned task? I think so. Otherwise, why bother?

23 Responses to “Programmers: Why do we do it?”

  1. MJC says:

    “His mind confounded by the brilliance of his idea, the programmer jumped over the one in front, and over the one in front of that, and so on until, having cleared the very first programmer, he leaped on to his stand where he began to revel. Meanwhile, the penultimate programmer had begun the same evolution, and then the ante-penultimate, until all the programmers had cleared the front one and had taken their positions. The last programmer, left alone, looked around, yawned in the face of it all, and yawned with the air of unutterable boredom.” –> a play on a quote from the book “Simon The Jester”. Perhaps, our penultimate status draws each of us to a desire for a crowning achievement, a sense of recognition from our peers, the sense that we are always lagging behind and playing catch up, a drive to never be that ‘bored’ cat unwilling to enter into the throws of this creative outlet. But how delightful is the process, and how enjoyable it is to watch the “art of the other” and be not only the watcher peering into the looking glass, but an equal or apprentice able to work directly with the product of that art, and derive new art from it as well.

  2. Great post MJC! I like the idea you state that the exciting part is not only engaging in the art of programming, but watching others as well. The evolution of code to form, from one programmer to another, can make a simple mundane idea grow into something truly awesome.

  3. BSC says:

    - No appreciation for the work it takes outside other developers
    - The elitist nature of many in the developer community
    - Moronic clients

    How is calling clients morons and insisting you work more than everyone else NOT elitist behavior? Ironic use of consecutive bullet points.

  4. Feeling unappreciated and lack of elitism are not mutually exclusive.

    As for moronic clients, its pretty clear you’ve never encountered one if you think it takes an arrogant person to be discouraged by one. Every client brings certain challenges, its expected, but some are pure nightmares.

  5. NishNish says:

    Agree with Tony.

    There are too many people who simply do not understand technology.

    The elitist behavior refers to the inability of certain individuals to assist other developers but instead sneer at them for needing assistance

  6. Abner Ballardo says:

    Great post!, I complete agree with you, when you see programming as an art no matter how complicated it be you always want find a beauty design, algoritm, etc. Sadly sometimes you want that but the constrains don’t allow you.

  7. MJC says:

    As you suggest Tony, by four of your points at least, I would agree that much of the developer’s vantage point, relating to why the developer sticks with the trade, with a specific company or organization at least, weighs heavily on the non-trade specific aspects: the environment itself, and the unique experience of the developer within that environment. Aspects that seem prominent to me: a good dose of appreciation, competitive compensation, friendly atmosphere, high expectations, challenges equal to the drive, culture that encourages developer creativity, an agile development processas an enabler, ideally an appropriate amount of Scrum to mitigate stakeholder pressures and to give developers the ability to produce excellence (achieving the end-goal through smaller iterative steps). After all, if processes kill, good developers may likely quit. If you are an independent: market demand for a specific expertise, and what gets most developer’s juices flowing: repeat business, companies that appreciate past effort, provide references and recognize past effort with more new interesting work. After all, if things don’t line up to be rewarding enough, why keep kicking a can down an endless dusty road. Lastly, for me, the greatest motivator, once in a while, working under the influence … of great people. Many of these, the virtual community, people I have never met, and others of course: clients, friends, and colleagues.

  8. I love working under the influence… of Jack Daniel’s. ;)

    I’ll let MJC continue to be the poet here. Terrific analysis and contribution once again!

  9. Nathan Crock says:

    After the bus ride to my home town for the holidays, I was picked up from the station by my mother. During the drive to my house my mom asked how school was going, and followed my simple response with “What is programming like? Why do you enjoy it so much?”. I was surprised, but pleased to hear this question. I basically gave her a summarized version of this post. I entirely agree with you.

    I feel like an architect in some extra dimension, where the limits to my artistic ability are only the limits on my creativity and mathematical/programming prowess. It’s nice to see other like minded people!

  10. Hzhou321 says:

    One starts like programming in the dream of doing something out of himself. Later when they end up programming only for someone else, they forget about why they love programming in the first place.

  11. CW says:

    > One starts like programming in the dream of doing something out of himself. Later
    > when they end up programming only for someone else, they forget about why they
    > love programming in the first place.

    On reflection, I seldom program for anyone else – to be sure, someone else
    presents me with a goal and a paycheck, but the bit in between, I think I do that for
    myself, really.

  12. Igor Leroy says:

    Great post!

  13. SK says:

    >> You have a personal association and pride with its creation. The code and its results represent you.

    Don’t get too attached to your code. You might end up refactoring it away by next Tuesday ;)

  14. SK,

    Even Picasso reworked some of his paintings ;)

  15. Stephen Orr says:

    Sometimes I wish I didn’t enjoy programming so much. I first became addicted to programming more than 20 years ago, fascinated by what I could make my old rubber-keyed Sinclair Spectrum do with just a few simple lines of BASIC. I’d say by now the battle has been long lost. Why do I program? I think the answer might just be, I don’t know how to stop!

    Although, that said, there are days when I wish I could. And for many of the reasons mentioned in your post. I don’t expect a round of applause and a bottle of champagne for completing a difficult task ahead of schedule, but to be appreciated once in a while would be nice…

  16. Ernie says:

    I do it for the hot chicks!

  17. Ben says:

    Excellent article – and so true. I still love it though – it’s that Clive Sinclairs’ fault!

  18. Elsewhere, on December 24th - Once a nomad, always a nomad says:

    [...] Shared SavageLook.com » Programmers: Why do we do it?. [...]

  19. [...] found this article named Programmers: Why We Do It by Tony Lukasavage and barely had time to read it today. Very good (and true, IMO) quick read about [...]

  20. Iouri Goussev says:

    I’m good at it, it pays well and i like doing it.

  21. obinna Merenu says:

    you are so right,in a country like mine,Nigeria,i keep thinking im all alone,but this post surely makes me feel am home,thanks Tony

  22. 程序员:我们为什么要编程? - 博客 - 伯乐在线 says:

    [...] 英文原文:Programmers: Why do we do it? [...]

  23. bravo says:

    I program because I can’t fly all the time.