Gates was only saying that programming experience won't turn one into a good programmer. He never said that programming experience will not make one a better programmer.
That's right. And what I'm saying is that the skill differential between mediocre and great programmers is so wide and so vast, that the tiny differences between great programmers are barely significant.
Once you're a great programmer, you're worth 5, 10, 20 mediocre programmers. See the many data points cited here:
Studies have proven time and time again that, statistically, there is NO correlation between years of experience and skill in software development. This isn't conjecture, this isn't my opinion, it's a scientific result supported by experiments and hard data.
Therefore, if you are already a great programmer, and you want to distinguish yourself even further, you should learn complementary disciplines, rather than going for the 99.5th percentile skill level of greatness. Nobody can tell a 99.5th percentile coder from a 98th percentile coder. But they can sure as heck tell the difference between a great coder and a great coder who also understands usability, the business, the customer, etcetera.