http://www.codinghorror.com/blog/2012/05/please-dont-learn-t...
Learning to code teaches problem solving, new ways of breaking down complex scenarios, and a means to actually build something. It's true that not everyone needs to be a software engineer, but not everyone needs to be a mathematician either, and we don't use that as a basis to tell people not to learn math. Much like math, coding can be abstracted to a form of thinking in a way that plumbing cannot.
I have a friend right now that is using CodeHS to teach 10 year olds, and they're absorbing it like sponges. And I have met so many people that, in retrospect, have wished they had learned to code at a younger age. Maybe if people had told them to learn how to code, they would have.
Also, the main idea is that everyone should get exposed to computational thinking in school. Then, they will have a basis to make informed decisions for their future fields of study and work.
Teaching CS in high school doesn't mean everyone needs to be a software engineer. It helps teach creative thinking, problem decomposition, and helps prepare students to approach the problems of the future.
i think its a great idea, but i told her the same i tell everyone:
"you need to have a good reason, or a problem you want to solve, otherwise you're wasting your time"
and now that i think about it, it's not really different from any other study out there. you ask the people why they learn it and they tell you because someone told them they'll get a job. and what you have is hundreds of thousands of masters and ph.d good for nothings, which are nothing more than factory workhorses. some professor or company gives them a task and they do exactly that.