A common advice that is given to people in software is "Surround yourself with programmers better than yourself". Somehow this advice does NOT work for me. Whenever I've worked on a team with programmers who are better than me, I get lazy. I tend to write code that is slightly worse than my average. I reckon it's because I rely on the better programmers to catch my mistakes. I do learn things from them but it's not quite at the same pace as when I'm thrown in the deep end with minimal help.
When I work in teams where people are about as good as me or they come to me for advice, I produce significantly better results. This goes beyond code, I've noticed this effect in project direction or project management. I find myself doing a lot of self-study and personal experimentation to make sure I know what I'm talking about. This naturally leads to better results.
I still need access to the expert when I'm stuck, but that access should not be as easy as turning my head to ask a question. I prefer that access to be through an email where I'm forced to write my thoughts down. Describing my problem in written form usually triggers cognitive dissonance and I end up solving the issue before hitting send.