I don't think the issue is either explaining to kids "how" to code, or "what" to code, but rather "why" to code. We all know why, because it's super awesome and rewarding. The problem is that it's also extremely frustrating, and maybe not everyone is a natural born programmer, that's ok.
I think the reason I always loved programming is because I love computers, a lot. I think kids these days are growing up with technology at their finger tips, computers are second nature to them, and they like technology because it's cool, and yea you can play games on computers. I wonder, how many people in this thread got into programming because they wanted to make a computer game?
When I was a kid I hated math, it felt like nothing more than an exercise in taking orders and doing something for no reason. Every year I would ask my math teacher, "why are we learning this" and no one had a good answer. I really wish someone had been there when I was younger to show me how amazing math can be if you have the right attitude about it; and when I was teaching I always tried to be that person for my students. I know I was able to get through to a few of them at least.
Computer science classes literally make people hate computers, and that makes me sad. I mean why on earth do they make you learn java in school, are you kidding me!!? It's like not enough to ruin math for generation after generation, now they are ruining computers too. What a shame.
When I was teaching physics I used to tell my students "look, you like south park right, well imagine if 200 years from now you had to study south park in school, but instead of watching the episodes and laughing your ass off, you had to memorize a list of every characters name and random facts about them, and then you had to take a test that quized you on how well you had memorized those random facts, and if you didn't do well you got punished by your parents. Well that is exactly what has happened with math and physics."
We don't need kids who know "what to code", we need kids to want to because they think it's interesting and fun. Lots of kids these days already love computers and technology, it's up to us not to let the way programming is taught ruin that for them.
Khan academy for sure can help, if the video's are done right.