You only need to perceive that the other programmers are better, they don't actually need to be that way. And given that competent people generally underrate their abilities [1], you could have a team of equally highly skilled people who all think they are working with a team that is generally better than them. I actually think this would be an ideal situation.
They don't have to be better. What is "better" anyway? More efficient algorithms? More normalized data? Fewer bugs?
For me, it's about experiences and perspectives. When I work with other programmers who have unique approaches to problems that help me work more efficiently, I enjoy working with them.
I also enjoy working with less experienced programmers who are willing to learn and practice new, more efficient methods.
I really dislike working with programmers who think they are awesome, but are really clueless. I try to help them, but their pride gets in the way. It's funny when they try to school me on stuff. I just don't have time for that. I feel bad for their clients.
But sometimes I run across people who know little tricks or constructs and I'm like, Wow, that's awesome, teach me more!
I'm with you that 'better' is highly subjective, and in the case of inexperienced and wanting to learn vs any amount experience and excessive pride I'll take inexperienced any day. Technology is too diverse and filled with rapid change to ever think you don't need to be open to new ideas and improvement.
Given how many degrees of freedom (knowledge of language, operating system, data structures, IDE/git, testing, browsers/JS, database/network/web service dependencies etc) I think most experienced devs will have something to offer you, especially the ones your "equal"
And i think it's great to be able to dictate code out loud. And it's a lot easier on your wrists.
1: http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect