I was writing (very) simple games in QBasic when I was in 4th grade (along with a few other friends in my class), so I don't think there's a need to wait until high school.
In retrospect, I feel that if there was an avenue to ask for help, I would have learned more and not be stuck in BASIC and not knowing basic data structures like array (!) for a couple years.
When I started out programming, I didn't have an internet connection, nor anyone to ask for help. There were no programming courses offered (my first formal programming course was in college!), so if there were a place or person to ask questions, I feel that I would have been able to learn more. Someone who can offer guidance for where to find information would have been really helpful.
I feel that a good age isn't really that high. Elementary school students can certainly get started with programming. There's no need to introduce the ideas of variables until they learn it in middle school. (I'm sure we all have taken exams where we had to solve for x
in5 * x = 35
, where x
was a box rather than a letter, when we were learning multiplication.)
I guess my advice is, be there when a child needs help. Steer them toward directions where they can learn more about a topic. Buy them a book. Read together. Help out when they're stuck. Give them a hand, but teach them to seek information on their own.