Unfortunately there is not a specific age that everyone is ready to start learning advanced programming concepts. Not everyone is blessed with the same logical thinking skills and young kids develop them at different times. It is a bell curve, but here are some guidelines we’ve found from working with dozens of students:
- Most 11 year-olds
- Above average 10 year-olds
- Extremely smart 9 year-olds and younger
“Smart” and “above average” can mean many different things. Here I am talking about analytic reasoning and logic skills. The closest school subject is math – the logic of how to subtract two numbers while carrying the tens digit and the reasoning skills of applying it to a word problem. Not simply being told to subtract 37 from 72 – “Bobby had 2 quarters, 2 dimes, and 2 pennies. He spent 37 cents. How much money does he have left?”
This is tough to judge. I have one test that might help you objectively judge if your student is ready. Can your student learn double digit multiplication? Regardless of whether it has been covered in school yet, you can introduce it. Are they able to follow the steps to multiply the ones digit, put a zero and multiply the tens digit, then sum the results? Are they able to extend the concept to a 3 digit multiplied by a 2 digit number?
This extension of concepts is important in programming. You learn concepts in a somewhat controlled environment and then have to apply them to many different situations. It’s not immediately obvious and is a fun challenge. The youngest Breakout Mentors student is 7 years-old and he is able to do this, but 99% of kids his age would not be able to.
What can you do if your student is not ready to learn advanced programming concepts? Should you just wait? Even though your student isn’t ready for a programming mentor to introduce concepts, you can encourage the logical thinking skills necessary. Let your student explore and tinker on their own with games like Light-bot (on the web) or Cargo-bot (on the iPad). You can even set them up on Scratch and let them discover things on their own. But have no expectations or try to encourage them to do things a certain way. When the time is right you can introduce new concepts and better ways of doing things. And when the time is right you should seek out a programming mentor to direct their learning, provide appropriate challenges, and keep it fun!