Working with better programmers is very similar to working on great code. In fact, I would say that working with solid code is more important than working with great programmers.
I learnt a ton of stuff about programming when modifying the code of the linux kernel for an Operating Systems course. Fixing bugs in a huge code base requires inherent understanding of where things are in the code and how they are connected. And it's during that process that you gain an understanding of how to handle complex things : by making them simple.