Did computer programming make you a clearer, more precise thinker? How about mathematics? If so, what kind? Set theory? Probability theory?
Microeconomics? Poker? English? Civil Engineering? Underwater Basket Weaving? (For adding... depth.)
Anything I missed?
Context: I have a palette of courses to dab onto my university schedule, and I don't know which ones to chose. This much is for certain: I want to come out of university as a problem solving beast. If there are fields of inquiry whose methods easily transfer to other fields, it is those fields that I want to learn in, at least initially.
Rip apart, Less Wrong!
Computer science (not necessarily programming) teaches you to think about the world rigorously and gives you an idea of what you can and can't do and how to do the things you can. I'd recommend topics like theory of computation (computability/complexity), algorithms, randomness/randomized algorithms, plus cryptography / quantum computing if you have time. The lectures at http://www.scottaaronson.com/democritus/ cover a good collection of topics, although it may be useful to have a more in-depth understanding than just the lectures (certainly you should at least solve the problems he give).
Mathematics makes you better at rigorous thinking, problem solving, and developing intuition. The same goes for theory of computation / algorithms above, but math classes can be a good addition. At least for a while, the classes also provide you with some really good tools (they get increasingly divorced from reality after some point, usually at the graduate level). I'd recommend taking at least one class in each of combinatorics, analysis, algebra, and topology.
You said things that improve your general thinking, and for those I would give the above. Note that I'm not concentrating on usefulness for other things (like more direct usefulness) at all, although a lot of those classes are also generally useful. But here are some other topics that are just really really useful: