Training in philosophy is, or at least can be, good training in
- Critical thinking
- Recognizing when a specific problem is a case of a more general problem
- Identifying and rigorously defining what the problem actually is that you're trying to solve
- Understanding systems of categorization and at what point they stop working
- Detecting logical fallacy
All of these are very useful skills for a programmer.
Take, for example, a problem I've seen in consulting customers' systems: A person signs up with an email address. That goes into a database, and things related to that person get related via that address - it gets used as a primary key in the database. It seems logical and simple. And it's going to lead to all sorts of trouble.
What's happened is someone has just made a philosophical decision which, if they had the background, they would realize is wrong - they decided that a person is an email address.
Then one of their customers changes their email address. Or they have more than one address. Or new forms of ID like mobile phone numbers need to be used, and the system can't accommodate those.
A saner approach would be that a person is a person, and they have addresses of various types, and there are rules for different types of addresses. But you'd be surprised how many systems are out there that took the naive approach and had to be very expensively reworked to accommodate what would have been obvious ... to a philosophy major.
Google even had this problem - for a number of years, Google apps - using GMail for your company's email - was very painful if you already had a personal GMail account, involving lots of logging out and back in, because they'd built their infrastructure on the (now false) assumption that a person had exactly one identity in their system, and now a person could have more than one. I don't know how much it cost them to fix that, but I'd be willing to bet you could fund a few startups for a few years for that price.
So that sort of thing is why philosophy is a useful background for programmers - there are fundamental problems to solve at the design level that no amount of CS training is likely to address - you can be highly skilled at writing the wrong thing very well, but you also need people with the skill set to know when it's the wrong thing and articulate why.