For younger kids, visual-based learning software such as Scratch are perfect for learning core programming concepts. For older kids who are adept to 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 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 which they use to learn will be determined by their existing ability for comprehension and to solve problems.
There are many ‘gameified’ 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 storyline keeps kids interested and engaged.
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)
Minecraft, a popular first person adventure game available on most platforms, is a particularly good example of learning through play. When kids are able to imagine and produce their own custom modifications, they become more focused and engaged and associate learning with fun.