One think that I've been noticing over the years is that my brain has been rewired to find problems in things.
Whenver someone shows/tells me something I instantly start to search for holes in it. I don't actually think about it. It just happens, my wife complains a lot about it.
I describe myself exactly the same way. For me, I think it's two separate components:
- For an existing system (of any kind - mechanical, legal, social...), I automatically look for things that can be improved.
- When discussing a new idea, I'm always mentally jumping ahead to the implementation phase, where potential problems quickly jump out at me.
I've considered it to be just part of my personality rather than specific to programming, but since I first learned to program at age 7 it's difficult for me to distinguish the two.
I actually see that as the most negative real-life habit I've gotten from programming. At first I valued it highly, but I think it's important to keep in mind that overdoing it pushes you in the opposite direction of 'living in the moment' (or in less encumbered terms: enjoying what you already have).
Being able to see all sides of an issue seems to be a mixed blessing. I watched a bio-pic of Bobby Fischer where they explained how strategic thinking changed his personality over time. They said that constantly putting himself in his opponent's shoes caused him to become very paranoid in real life.
I can totally relate to this and I have to constantly remind myself to just agree with people instead of challenging them when there is really nothing to gain. It's not always easy to do :)
Whenver someone shows/tells me something I instantly start to search for holes in it. I don't actually think about it. It just happens, my wife complains a lot about it.