There is no single ‘best’ approach to teach children how to code, though there are a huge variety of options available to accommodate anyone willing to learn, spanning across all abilities and age groups. A teacher should carefully consider their students individual abilities before choosing a methodology.
Many ‘gamified’ learning platforms such as CodeCombat and Blockely are highly regarded tools to learn and offer challenges applicable to all types of students, regardless of technical ability or age. These games bundle the coding experience with visually appealing tasks, interesting characters, and event-driven storylines to keep kids interested and engaged while still remaining fun.
Many studies have shown that associating fun and learning at a very early age can hugely impact a child's ability and willingness to learn in later life. According to Jennifer M. Zosh (‘How People Learn’ , 2017) the most impactful method of teaching code is 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 show that a happy child is one that learns faster - and that this relationship is cyclical.
It is important for teachers to let the child ‘drive’ and allow them to engage with the code directly. Demonstration is simply not enough to learn effectively, and It is necessary to give each child their own computer when teaching a class. Pair programming has also been shown to be useful in this case, where two students can help each other navigate through challenging concepts. This same approach has been adopted among professionals in the industry due to its effectiveness in learning.