Whoriarsty.com

Who runs the world? Tech.

Sports

3 negative qualities of programmers (and how to overcome them)

I would like to be the best person I can be.

I’m sure you do too. Deep down, we all do.

In my own lifelong quest for self-improvement, both as a software developer and as a person, what often helps me is when I notice some negative habit that I didn’t know I had before. Some kind of error in thinking, or trait that I have adopted in my personality, that is not helping me to reach my highest and best goals in life.

Because recognizing them is a good first step to change them. Awareness, followed by a new intention.

Some qualities I’ve recognized in myself, all worth changing, that seem to be common among programmers:

1) Disdain

I am evaluating an idea. Someone’s opinion, since they share it with me.

And I think: That’s stupid. Or: that could never work. Or: that’s just (compare it to something else I can easily rule out).

Which is convenient, because if it’s stupid etc, I don’t need to think about it anymore. After all, I already have a lot to think about.

Of course, that is a trap. Maybe it’s stupid. But I didn’t do enough research to say one way or the other.

I don’t have to accept it. But I don’t have to rule it out either. I can choose not to have any opinion on it, for now.

I’m still working on this one. I find myself discarding something a dozen times a day, and I probably won’t get any more.

Question for me: What have I been discarding?

2) Excess precision

As engineers, we are trained to think precisely.

That is essential for civilization. We’d still be throwing sharp sticks at animals for our dinner if humans weren’t capable of precise thinking.

All technology in history was created by people who think like us… from thinking precisely, with an engineering mindset.

All of it. ALL OF IT. Until the last bit.

Be proud of it.

Objective:

The precision of thought required to derive the backpropagation algorithm…

Or to keep track of logs on a virtual machine…

Or resolve a hairy merge conflict…

That precision isn’t always helpful in a conversation with other humans. Or seducing that person who attracts you. Or cheer your kid up when his favorite toy just broke and he’s really, really sad.

Or, oddly enough, even in a project meeting with other engineers, where you’re discussing things on a whiteboard.

Because that is one of the secrets of psychology that make the world shake, and pay attention, this is the most important sentence you will read today:

Vagueness, the opposite of precision, allows people to fill in the blanks, according to the details that matter to them…but aren’t important to the end goal.

Deliberate vagueness is a tool for reaching agreement; for working together productively… in wonderful ways that might never happen otherwise.

There is a time and a place for demanding and uncompromising precision. And times and places where it is not useful at all.

The success that precise thinking has given me in software development has sometimes led me to misapply it.

Question for me: Where have I been too precise in my thinking or in my communication?

3) Foolish Tribalism

By this I mean devotion to something that is not worthy of your devotion.

For example, a software package. My favorite framework is Foo. And its competitors, the Bar and Baz frameworks, are inferior because (insert some rationalization).

My mind is excellent at inventing reasons to support the opinion I already hold.

This sometimes comes from being too familiar with one of the options. For example: I used to be all about Django. Because he knew very well.

Then I started to learn about Flask and the great things about it. That seemed to reduce my Django jingoism.

Tribalism is not all bad. If you’re on a team and you’re working hard to support its success, that’s a positive form of tribalism. And when you dedicate yourself to your family, that is the most positive way I know.

It is smart to direct this human tendency towards what really matters.

Question for me: Where have my pointlessly tribal actions gone?

There are other negative qualities that I have noticed in my thinking that I could write about. Like being too literal, falsely equating different concepts (which distorts my reasoning), etc. Much others.

But the ones I mentioned above are all things that I have observed as common in other programmers as well as myself.

“Negative” is not a reason to judge yourself. It doesn’t hurt us. It simply is. Part of being human. And improve our way of thinking, when we can, that is also human.

Are any of my questions above helpful to you as well?

LEAVE A RESPONSE

Your email address will not be published. Required fields are marked *