While I'm not a bad programmer (well, err, by MY standards :D), I'm never really content with the code I produce. I always think about better ways to solve this or that problem, I search the Internet for similar problems, read books etc.. While this improves my coding and is fun, it consumes far more time I have at my disposal.
Sometimes, after a week or two (sometimes even a year) I look at some older code and am impressed how good it actually was (while I received it lackluster at the time of creation).
Is it just me or are you facing similar problems? Is this tied to programming in general or may it be some sort of mental problem?