Programming doesn't teach you cognitive biases. You don't become more aware of yourself by programming. You learn more about human logic by reading "Thinking, fast and slow" than by programming for your entire life.
Programming is very close to logic.
Of course, there are other fields that require logic and problem solving. Engineering, science, for instance.
It's a real shame that most people seem to look down on the trades as somehow being inferior to white collar work. This is what Mike Rowe has been preaching about for the past 4 or 5 years. Just listen to his TED talk [1].
[0] http://en.wikipedia.org/wiki/Tradesmen
[1] http://www.ted.com/talks/mike_rowe_celebrates_dirty_jobs.htm...
If they aren't then they will be unsuccessful as car salesmen. Apart from "how can I sell more cars?" there is "what is the optimal number of cars I can fit in my showroom?", "how shall I present my most profitable deal to its most likely demographic?", "which aspects of my communication skills can be improved?"...the list is endless. Point being there are logical challenges to be solved everywhere.
Not trying to be snarky, but what level literature classes did you take?
I was an English major for a few semesters and I found that there were a league of differences between an introductory course which was little better than reading something on my own (plus a professor's gospel, which we were asked to support or comment but never refute) -- and an upper-level course, which was more centered around research: diving inside of a text and an author, plumbing for patterns and arguments much like one would dive into JavaDocs.
"Say Kitty move right, Kitty move left and do this about 5 times." is not about logic. This logic, that you can teach with programming is only mathematical logic. "If a > b and a is negative then b should be negative". Real world logic does not work like that. There is not only 1's and 0's, blacks or whites. There are also shades of gray and reds, purples, blues. Some fractions, doubles.
Everyday you make many decisions. Some are easy yay/nay decisions, some are hard decisions like "what to wear today" or "Voting that candidate or this?" or "Should I ask her out, but what if it's too soon?". Many things affect them; Human interactions, weather conditions, light conditions, feelings... So many unknowns. Maybe just some luck? Murhpy laws?
We can not or have not yet deducted them into pure mathematical logic.
So giving kids programming as logical thinking aid would help, but maybe in a wrong way. It would teach them an illusionary version of logical thinking where everything is 1 or 0.
That makes no sense. I've taken literature, I've read hundreds of books on my own. Most of them are full of illogical things. At best they are OK to teach morals, not logic.
Philosophy is closer.
Computer programming is pretty much pure logic and problem solving.
The only better way to teach logic is to teach logic.
> teaching agriculture or other physical goods producing craftsmanship to kids would make them better at real world challenges
Computers and code are real world, and they solve real world challenges.