Evaluate code after a period of time
On many occasions we have written code that we thought was really good but after some time we have gone back and checked the same code and thought the opposite. We've looked at it and had thoughts of how could we have written that! We're a lot better now.
So why does this happen? Why is it that over time we think that our previous code that we wrote is crap. We're thinking it is familiarity. Whilst writing code we're constantly reading and going over it, therefore making it easy to understand. Whilst doing this we tend to think that it is well written code for the fact that well written code is easy to read. We have many times thought that the code that we were writing was awesome and it was only due to us constantly looking at it.
If you see code that you wrote a month or more ago and you think it's crap, it probably is and always was. Only after time has passed can a true evaluation of ones skills be made. Next time you evaluate how your skills are, don't look at the code you just wrote, but open some files that you haven't seen for a few months, you may realise you're not as good as you think you are.