Recently I asked myself: what is it that draws me to computers and programming? I’ve had a passion – obsession – for computers since I was 8. Almost 30 years later and I’m still at it.

When I first started I would be tinkering on a 386 PC, learning more as I went on. While I couldn’t read English, that couldn’t stop me from figuring out how things worked for hours on end. I carefully tweaked things together with a friend and it was the most fun I’ve had in my life.

This is compatible with the ‘hackers’ movement. It turns out I’m far from alone having a passion to tinker around with computers/hardware. Only back then they called us geeks. 🙂

But are there other passions? After a brief search I figured there are plenty.

  • tinkering lust: Love tinkering with things.
  • uniqueness lust: Love to be different from others.
  • discovery lust: Love to discover new things.
  • wanderlust
  • beauty lust: Enjoy the mirror or enjoy anything aesthetically pleasing
  • higher number lust: Enjoy a steadily increasing number improving something or oneself.
  • hoarding lust: love collecting things.
  • secrecy lust: Love the thrill of doing things nobody should know about.
  • knowledge lust: love to figure things out, proving intelligence.
  • finish lust: Wants to finish tasks. Enjoying that good feeling of finishing something.
  • simplicity lust: Enjoying simplicity. Hate over-complicating things.
  • competition lust: Enjoy competition, being better, loving the struggle, loving the fight.
  • talk lust: Love talking to people.

Passions and their profiles

In my career as a software engineer I’ve met colleagues with different passions for programming. Some had no passion for IT and only do it to make a living. Those usually don’t stick around longer than a few years (unless the pay is really good) or sadly get depressed.

Mostly I’ve seen people tend to programming because of tinkering, finish, simplicity or competition lust.

These passions, though they complement each other, can cause conflicts. Here is a list of some conflicts I’ve seen on the work space. And with these passions in mind most conflicts I’ve seen suddenly make sense.

Tinkering – early finish conflict

The tinkerer likes to takes his time. But he/she will work on it tirelessly. It’s insane. Longer nights? No problem. Anyone wants to call about this in the middle of the night? No problem. Finishing things on time? Might be an issue. The solution may not be the most elegant one but it will work.

The early finisher needs to finish the task as fast as possible. Every slow down is reason to complain. It’s not uncommon for the early finisher to become annoyed.

The conflict between the earlier finisher and the tinkerer is self evident. The tinkerer just wants to spend time on it, the finisher needs it yesterday.

Simplicity – tinkering – finisher conflict

After doing my masters in Informatics I didn’t fully comprehend why there was so much math involved. Some said it was to shape me as a person.

To do proper math you need to be accurate and I found my need/wanting for simplicity grow. A certain preference for a certain “elegance”. Dijkstra had a very strong opinion on this:

“programmers should not be puzzle-minded …. We would be much better served by clean, systematic minds, with a sense of elegance.”
— Dijkstra

This strive to simplicity is commonly a problem for the tinkerer. It works, what’s the problem? To the person striving to simplicity the code is just a mess. They’ll do long rants, sometimes questioning the intelligence of the tinkerer. Clearly this will cause conflict.

But don’t think striving for elegance is simple. Reaching elegance needs time too. Sometimes more than the tinkerer would put into it.

This causes great conflict with the finisher. This elegance person is wasting time! The customer will never see the code. So what’s the point? Finish it already.

Competition conflict

There are competitive people out there too. To them everyone is the competition. The plus side is that they’ll learn from the best and may push the competence of all programmers. They’ll learn quick. Have they learnt everything they can? Then they’ll leave, in search for better competition.

Not everyone however is looking for competition. This can cause plenty of frustration. The tinkerer isn’t looking for someone to compete with, he/she just wants to tinker with their toy. The elegance worker wants to debate elegance, not silently compete around it.

These people usually do competitive programming on the side, read a lot and typically show sportsmanship. They can however not stand people that are not passionate about their job. This will cause conflict with the “nine till five” workforce.

Conclusion

I found that understanding passions helps prevent conflict but may also help out to create excellent combinations. What is your passion? Am I missing out on important passions? I’ll setup a survey gather intel on what the most prevalent passion is and post the results.