For younger kids, visual-based learning software such as Scratch are perfect for learning core programming concepts. For older kids who are adept at learning more sophisticated concepts, ‘high level’ (or easily read) languages such as Python are the best entry point to learning, which has the added benefit of being a ‘real life’ programming language used worldwide.
There is a significant jump in technical understanding between both styles of learning, and this is largely down to the ability of the child. The ages of 10 - 15 are a significant period of development for a child, and the medium they use to learn will be determined by their existing ability for comprehension and problem-solving.
There are many ‘gamified’ learning platforms aimed at kids within this age group such as codecombat.com, which frame the Python coding experience in a game. The colors, storyline, and task-driven structure keep kids interested and engaged.
So, in summary, what is the best way to teach kids from 10 to 15 years to code? Keep it fun. The most impactful method of teaching code seems to be related to the culture and environment in which the child is taught. Children tend to absorb new information when they are working within a positive atmosphere, and studies have shown that a happy child is one that learns faster - and that this relationship is cyclical.
“Engaging with the world in playful ways is essential for laying a foundation for learning early in life” (Jennifer M. Zosh, Emily J. Hopkins, 2017)
Roblox is a popular platform and is a particularly good example of learning through play. When kids can imagine and produce their own custom modifications, they become more focused and engaged and associate learning with fun.