Well, my understanding is that developer's experience changes the shape of the probability distribution of excellent/horrible contributions. But it is always a distribution. And that it is difficult to accurately distinguish between excellent/horrible contributions without hindsight.
I find that as I get more experienced, I'm more aware of how much of this huge discipline I don't know, and how many mistakes I've made in the past, and I'm much less likely to call myself a "good coder".
When I was younger and slapping shit together any old how, I thought I knew it all.