As an observation (and whether or not it's right), we tend to view the world in terms of people who 'are' great or people who 'suck at' things, if you see what I mean. As such, "I'm so great - why can't I write this parser" becomes a much less helpful notion than "I suck at writing parsers" because the former implies failure whereas the latter implies a much greater scope for improvement.
I admit that it's all a bit hand-wavey, but by and large I find that my positive thoughts tend to be general ("Ain't life grand?", "Man, this world is awesome") whereas the negatives often settle on specifics ("My handwriting is embarrassing!", "I don't comment my code nearly enough") - I think we can all agree that knowing specifically where things are going wrong is far more useful than knowing were they're going right in general.