It is always disheartening to walk away from a heated conversation. After having it happened to me in both professional and personal life, I took a long time to think about why is it difficult to have conversation with me. Through a lot of observations and seeing how others talk, I finally figured out one dang good reason why: programmers are too used to rejections.
Every hour a programmer spend on work, there are a good dang amount of messages that says you were incorrect. It could be a compiler error, a run time error, service time out, or whatever other hundreds of reasons. Being constantly bombarded with messages that "you are wrong" is a fact of life for us. However, that is not so with any other profession.
An accountant, from watching my girlfriend, may have a lot of places where things can go wrong as well, but they have very limited ways of checking correctness. Error can go unnoticed for a couple days. Doctors are rarely told they are wrong even though they have the burden of life. Maybe when patient dies or sues, but frequency isn't multiple times in an hour. A cook may never be told his cooking sucks until no one comes to his restaurant anymore. The list goes on, other professions are rarely told that they are just straight wrong and there is absolutely no negotiation about it at all. They do not have to face the harsh reality that failure at every other step is an absolute norm.
So talking to programmers is harsh to be frank. We are quick to see possible faults because seeking for reasons why a bug exist is our job. This makes us appear very pessimistic, although really, we just find it strange being confident without testing first.
Another extended reason is that programmers are ready to dig deep to find out the root cause. This is natural for us so that we can fix a bug successfully. Additionally, We are also curious about how others fix something. We really like to turn all the stones.
However, that is not how most others operate. More often than not, people like an idea purely because it sounded nice, not because it is logical. This is why advertisers spend enormous amount of time coming up with a tag line; "Make America Great Again" remember?
More importantly, people do not usually explaining their choices in detail, unless they are lawyers. Being precisely logical in conversation is far from normal. Therefore when asked why, others feel an amount of pressure greater than we programmers anticipate. Others feels they are defending themselves while we are just curious. Now I realized this, I often explicitly say I am just curious to my girlfriend so she will not feel like I am questioning or doubting her.
There are a million reasons why a conversation failed. I think these two aforementioned reasons are probably the most elusive while super influential. Programmers are trained to approach problems differently, because what our world is a cold and hard-facts determined one. There is zero room for negotiation and barely any ambiguity. In order to succeed, we have to constantly withstand the depressing waves of rejections and be exceptionally meticulous about the cause of anything. This combination make us deviants to have conversations with, but we can fix ourselves just like how we fix bugs all the time.
If you found this helpful, please feel free to drop a like, leave a comment, or follow me.