This is something I’ve been wondering about for a long time. Programming is an activity that makes you face your own fallibility all the time. You write some code, compile it or run it, and then 80% of the time, it doesn’t work exactly the way you imagined. There’s an error message, or it just behaves incorrectly. Then you need to iterate on it and fix the issues until you get the desired result, and even then it’s subtly wrong, and causes an outage at 3am on Sunday.

I thought this experience would teach programmers to be the humblest people in the world.

I can’t believe how wrong I was. Programmers can be the most arrogant dickheads you will ever meet. Why is that?

  • My thought is this: we often have to deal with people who are absolutely certain about a thing, that’s… completely wrong. Disregarding the user’s thoughts to fix the user’s issue is quite common.

    But that wouldn’t explain all of it, because anyone in customer service deals with the same stuff, and they usually aren’t that bad when they drop the customer service mask.

    • That may be part of it but I’ve also observed it among fellow programmers.

      You give your opinion about something and your coworker has a smug, arrogant knee-jerk reaction based on some cargo-cult belief without actually thinking about the details of the problem. Then you need to walk them through why what you said is not what they meant step-by-step, and while it may be wrong it is still a valid opinion. If you succeed, they completely change and become cooperative, and you can have an actually useful discussion. But you have to be super patient, like when taming an irritated feral cat that wants to scratch you. If you’re good, the cat becomes cuddly and cute.

      This works but I’m extremely tired of having to perform this dance with 60% of the new coders I meet.