We must teach the basics
In the end, teaching children the basics of coding should simply be another subject introduced in schools. When our world is networked and so technologically driven, our educational system should reflect this society -- and introducing basic coding, digital citizenship and technological understanding is one way to prepare our students for such a workplace.
Humans are meant to be rational creatures. We may not all "think like a programmer," it's true. But in the same way that some of us are useless at languages or math, knowledge in the subject cannot do any harm -- and under the supervision of an effective teacher, no student should be excluded.
Many companies need students who know how to do more than use Microsoft Word and Powerpoint. This doesn't mean that we need to produce a new generation of kids who can create apps and databases, but it does mean that they should be equipped with a basic knowledge of technology -- and should have the option to delve deeper into the subject if they wish.
What can coding bring to kids? What can't it do?
The argument "for" teaching kids to program is that because it is logical, it encourages logical thinking.
My argument is that kids are "already" taught to think logically in schools, and that -- within the UK at least -- there is less focus on facts and more focus on reasoning things out.
What programming can't do is embrace the whole spectrum of how individuals think through problems. I happen to have a mind that -- I guess -- is rather well-suited to writing computer software. But when it comes to marketing, or painting, or car maintenance, I am totally, "totally" hopeless.
The fallacy of this argument lies in the idea that all children would benefit from being taught how to think through a problem as a computer programmer would. They would not. Large numbers of children would simply be made to feel excluded and stupid just because they are not predisposed to think through problems in that way.
We all had subjects we were good at and bad at (and likes and disliked) at school. What makes "programming" a subject that we assume everyone is good at.