The choice of learning tool is dependant on the child’s ability to comprehend and absorb new information. The most popular programs that are currently available for children and adults are Scratch and Python, respectively.
Python is one of the most popular and widely-used programming languages available. Its syntax is quite verbose and promotes a style of logic that is easily read even by non-coders. This is a ‘real world’ programming language that is used in many commercial applications and has a large community filled with tutorials and forums to support those learning.
There are many browser-based apps that have been developed specifically to aid learning the fundamentals of Python, most notably Code Combat and Code Avengers, which ‘gamify’ the learning experience in a fun interactive way. For those who are looking to advance their knowledge of Python, many interactive tutorials are available online from reputable sites such as khanacademy.org and codingdojo.com.
Aside from the dedicated code learning tools mentioned above, there are also many educational applications directed at children - games like Kodable, Move the Turtle and Lightbot feel as natural as any other game but are designed to teach the fundamentals of programming.
It is generally agreed that the best way to learn programming is through hands-on practical experience, and it is often better to dive right in to a project than to spend too much time learning syntax. Navigating and making sense of new technology by oneself can be a great learning experience and is one of the core skills of any good programmer.
Finding a practical use for programming and becoming invested in a personal project can be a great motivator to learn and keep interest high. Patience is key when learning to code, and it is important to not become jaded from the volume of unfamiliar concepts that are part of the experience.