hexagon logo

Programmers Ego

As people who perform feats of 3D thinking and computer coding far, far beyond the everyday experience of normal humans, us CMM Guys & Gals tend to fall into the trap of Programmer's Ego.
We tend to take great pride in our specialized and complicated work, and criticism of that work can affect us negatively.

The ego is like a balloon in many ways: full of hot air, powered by internal pressure, can only expand to a certain point before bursting, and most of all fragile - a single valid sharp point can destroy it.

When the ego is based on a skillset, it grows with the skillset (as one puts pressure on oneself to succeed) until it becomes large and fragile. Then it cannot grow anymore, and one's focus becomes much more involved with protecting it from sharp points by ignoring criticism. That's right where the grandpaal56's contract programmer is right now.

The only way to continue growing in that skillset is to let go of the ego balloon, or have it popped by an especially sharp point or ten and realize that you were hiding behind it instead of growing your skills.
This sets the skillset free to grow, and the pressure is gone.

Now:
Because turning a blind eye to criticisms of ourselves is the major indicator of the Programmer's Ego, then how can we tell if we're suffering from it?

One clue is the word 'suffering' - all pressure and stress comes from within. If your job is "stressing you out", what you really mean to say is that you are stressing yourself out with a worldview of conflict between reality and what you want. There's positive pressure that helps keep your decision making sharp and your motivation up, and then there’s negative pressure that drags you down with fighting battles all the time. Note that both still come within. If your worklife is one of constant strife, perhaps you are defending something large and fragile?

Another clue, and the one that's a red flag to CMM Programmer's Ego, is this: how much time do you spend 'fixing' other people's programming work?
This is how I figured out I was awful. I would begin to make the tiniest little edits, just little touches... and three hours later find myself totally re-writing the program as I saw fit.
It took me a long time to figure out this was bad, that time was being wasted for very little in return except for massive bad feelings as the edits are a sure-fire way to poke sharp things at someone else's Programmer's Ego.

So I encourage everyone to let go of the ego. Listen to people's suggestions and criticisms, and learn from them. Not a single class I teach goes by without a student teaching me something, and I think that's great.
Parents
  • Great post, Josh.

    I haven't been at this nearly long enough to have developed a full-blown case of Programmer's Ego (I suffer too much self doubt regarding my abilities on a daily basis) but I am very guilty of the need to "fix" programs other folks have written.

    This is just what I needed to make myself take a step back and evaluate my own self and not dwell on the "inadequacies" of other programmers.
Reply
  • Great post, Josh.

    I haven't been at this nearly long enough to have developed a full-blown case of Programmer's Ego (I suffer too much self doubt regarding my abilities on a daily basis) but I am very guilty of the need to "fix" programs other folks have written.

    This is just what I needed to make myself take a step back and evaluate my own self and not dwell on the "inadequacies" of other programmers.
Children
No Data