First, there's no such thing as a "good programmer". Programming skill is not a scalar where we all compete with each other. It's a complex multi-factor ability with a lot of nuance in how it's measured. Domain knowledge matters a lot.
It's also highly situational. I have had career experiences where I went from a top-tier first-percentile all-star contributor to a bottom-rung barely-hanging-on loser shipping slowly if at all, because I moved teams. It really depends what I'm working on.