* Take all criticism as total truth and take it personally
* Take no responsibility for your behavior
* Take all criticism as total truth and take it personally
* Take no responsibility for your behavior
Say, for instance, you are on a project with a couple other developers. Your main responsibilities have been features a, b, and c. Further you noticed d and e were pretty messed up, and helped a junior developer start straightening them out. Some milestone is reached, and you have a code review with the senior dev (who is one of those arrogant guys who may be pretty good, but is also a condescending asshat). He says "your factoring on a,b, and c could be done this way instead, how could you not see something so simple. As for d and e you really screwed the pooch there".
The extremes would be "Gosh i am stupid, I really messed up factoring and features, I need to work 80 hour weeks to make up for it" and "It was all junior dev's fault -- if only he didn't need help i could have factored right, and you wouldn't even think to talk to me about d and e." In reality (reconciling the two statements) a good approach would ignore the stupidity insinuation, acknowledge that the factoring could be better, and say "Listen d and e aren't even mine, I'm helping junior dev learn the ropes, so there are mistakes, but they're getting better, you should have seen it last week".
All-or-nothing thinking is another big stressor, by the way.
On a more serious note, it really does help to pull back from the extremes. I'm guilty of oscillating between thinking of myself as the absolute best or the absolute worst. Both are a struggle to live with. Or demanding absolute clarity about principles before proceeding. It's important to tolerating ambiguity. And trust in yourself to navigate even without perfect knowledge.
Don't Take Anything Personally.
Always Do Your Best.
http://en.wikipedia.org/wiki/Miguel_%C3%81ngel_Ruiz