I think programming is for adults. Programming abstractions we use and ways of thinking are tailored to an adult's brain. I think that "programming" environments for children are SOMETHING DIFFERENT than real-world's programming. I don't see how what you learn in the former translates to the latter.
I remember actually not liking programming when introduced in a school. They didn't teach abstractions like functions, data types but rather long, math-oriented series of instructions which needed visualizing in a notebook to understand (I think environments like MIT's Scratch are something similar). I only started to love programming when I saw it consists mainly of things like functions, objects, different data types. But this kind of things is probably too abstract for a kid to understand.
I remember actually not liking programming when introduced in a school. They didn't teach abstractions like functions, data types but rather long, math-oriented series of instructions which needed visualizing in a notebook to understand (I think environments like MIT's Scratch are something similar). I only started to love programming when I saw it consists mainly of things like functions, objects, different data types. But this kind of things is probably too abstract for a kid to understand.