I teach programming to children aged from 11 onwards, admittedly it is a very hard thing to do. It isn't like your traditional subjects in academia like languages or maths.
Although smart devices are ubiquitous, and majority of children are familiar with using them, learning to understand how a program works/created is very different.
We start with ideas of repetition (loops) and saving things (variables) for later use. Some get it some don't, it's hard for students to understand how this is fits in without knowing the inner workings or without any other background knowledge.
I find practicing to code a good way to learn so here are a few places I use in the classroom, all are free of course!
Scratch, easy to get into very interactive for novices. Helps students understand by using easy to use blocks to make complex things.
Freecodecamp, a very good place to learn about really complex stuff. Includes HTML, CSS, JS, OOP, and so much more! And all certified as well! Highly recommended. Students read small tutorials and complete code challenges so instantly see result's feedback.
App Academy, amazing full stack engineer course. This is for the ones who have already learned to code and want to persue a career.
Code Academy Python, learn to program using Python 2. They have Python 3 and others but it is premium. But the free Python 2 is well worth the time to learn the ideas and concepts behind it.
Learn Python, somewhat easy to use but gets hard very quickly but still good for free!
I hope this helps others, if you have any questions and or know of other interactive programming tools online to teach coding please share, the children and I would highly appreciate!