I always maintained that if I could persuade our testers to learn programming, we'd have much better software. In my experience, testers think about requirements, products, edge cases and scenarios a lot deeper than the devs. They also learn more about the business and how the product might be used.
In fact, now I think about it, many developers barely know the minimum tech to get an end-to-end application up & running, let alone all the stuff testers do. How many devs choose not to even learn about basic security, databases, algorithms (hash tables or unique dictionaries instead of generic lists) . These devs just know C#, HTML & CSS , jQuery (or whatever) and think it's enough.
Give me a good tester with an interest in programming any time.