There was an article on HN a while back that mentioned the #1 programming language being taught today was Python. I told the Kiwi this and he just sighed. Python is a 'batteries included' type language. You don't have to really worry about any memory issues, any special loops that will go to infinity, none of the real stuff. Yes, it teaches you the 'idea' of programming, but programming is much more than an idea, it is a set of instructions you send to an electrical machine to preform a task. If you take away the entirety of the actual physical world, you have done the kids a disservice. Programming, real programming, is not supposed to be easy.
I'll mention the Kiwi was here in the US on a work holiday. I was trying to get a chip working (yes, with actual registers) and spent ~6 months on it. The Kiwi, I kid you not, spent about 3 hours. The guy really did know his stuff.
It's really good to know how things works underneath, but insisting that constantly messing with low-level details is "real" programming (and implying high-level details aren't "real") is weird. Both aspects - high and low-level - are important.
Beginners are taught high-level languages because it's easy to start with - one could create something useful without learning lots of things. If they care about their craft, eventually they will learn all the gory details of the stack underneath down to bare metal - an occasions (bugs, weird behaviors or just curiosity) where, say, Python programmer is invited to go and peek under the hood of their interpreter or libc or kernel or even hardware happens every now and then.
Unless all that pythonista's doing is bashing some boring CRUDs with Django. Then, a knowledge of low-level stuff seems almost unnecessary. But, hey, someone has to do that kind of programming, too.
You should visit a Maker Faire. I can't think of anything that restores my faith in humanity quite as much as a day at one.