Every once in a while when I'm bugged at myself or someone else, I'll sit down with my journal and write out (sometimes in excruciating detail) every positive thing I can think of regarding that person. When absolutely necessary, I'll include statements like, "not a heroine addict," and "never been to federal prison,"--- whatever makes me feel better and lightens the mood! I think you'll find that this quickly helps to shift your perspective.
Another trick is to consciously focus on the good feedback you get (or other feel-good stuff that happens in your life). I've noticed that so many people will brush off compliments or kindness as if they don't mean anything, while taking criticism very seriously.
The other night, I happened to overhear a comment made about me that was extremely welcomed and validating. This meant a lot to me because it was obviously sincere and not said just for my benefit. This morning I remembered the comment and felt great all over again. I really took it in and resolved to do that for myself on a regular basis. (Maybe jot these experiences down in a notebook and refer to them when you need a lift?)
If you keep a "to do" list, occasionally do yourself the favor of making a "have done" list. Gratitude for who you (and others) are, as well as all the progress you've made, can really improve your outlook.