I've always enjoyed teaching, and I had the chance to do it in the time I've been into tech. I first taught arduino to young girls interested in tech at an open software summer camp at my university, also taught primary school kids about basic electronics, Basic robotics and C programming for a group of teens in Switzerland and I have a 12 years old student I'm guiding. And, after all these experiences in teaching tech, I must say I learned so much from the students, in different ways, also as a student myself.
I saw in them passion, curiosity and that amazing look in their eyes when the arduino finally works or the program they've been working with finally do what it was supposed to. We all keep having that look in our eyes, but we fail to recognise it in our own expression sometimes.
Currently there are some languages such Scratch
(which I tried as a beta tester before its launch) that are awesome for learning programming basics, or games such as CodeCombat to learn logic and programming playing, and this is amazing, because tons of kids will find and easy path to feel comfortable with programming. But I really want to remember something (something I wished some adults remembered when I was a kid), kids are intelligent, curious and many of them learn at an impressive speed. Like, they learn how to speak in different languages in weeks, maths and logic in days, and everything that is new, they dare to face it. We should not forget they are capable of learning really fast, and so we should not be afraid of teaching them things, sometimes they need to teach us stuff. So it's okay for them to start with such tools (also for adults) but once they get it, they can face C, C++, Python and other languages.
Even toddlers can learn basic logic using toys. You can create a plastic carpet with squares in different colours and labeled with numbers if they already know how to count and the difference between right and left, and you can ask them to guide a toy through the squares. For examples, "guide Mr Potato to the blue flower" and the kid should plan a trip for Mr Potato, like "first right, second up, third right again" and this is also programming. There are also several robotics toy-models for this purpose. A next step of this kind of robot is Dash and Dot, for example, that allow kids (or not kids, I love Dash, too) to program several funny behaviours for the robot.
But apart from programming teaching, which is basic for current society, it's important, from my point of view, to give a whole perspective about computers. Why are we studying programming? To "communicate" with computers and tell them what we want them to do. Why do we do this? because computers can calculate amazingly fast anything that might take us hours. Why is this important? Because our current society leads in technology. And what about it? If we know about tech, we can be responsible of our own lives. This is the path I tend to give to my students when I have the chance.
Engineering is usually seen as something boring, senseless, and created only to please puzzle lovers, but actually is essential to everyone's life, and creating programs brings also a huge responsibility on our role in society.
So yeah, let's learn programming, and if you like puzzles, the better, but never forget why are you doing that. When I was in Switzerland, my students were specialized in business, they knew a bit about Java, and scratch, but no one told them a why just a how and so I showed them a video about robots leading an hotel in Japan. They were like "this is creepy! why would you show this to us" and I replied "because this will be the future, and I think you should want to know how to control it!" and that's right, this is a funny example on how tech is going to be everywhere, and surely we want to control crazy japanese robots! but this happens also with our education, health and work servers. Knowledge is power, since the beginning of time, and that also happens with tech.
We tend to think about technology and computers in something that's happening right now, but it's been happening for many years, and some persons started it. I find indispensable to speak about Turing (and yes, how the stupidity of intolerance gave him death), Ada Lovelace (and explaining how she was a real geek), women in Bletchley Park, Grace Hooper, and such. I also find interesting speaking about Linux and how open software started back when computers were almost just for investigation to this very day... in general how all started in order to keep it going.
And one point I find awesome to teach is everyday tech. Understanding the digital context in our lives gives a whole new perspective. Why was the Ransomware relevant? Why artificial intelligence might be dangerous but also useful? Why internet censorship is fatal and why do we need privacy as users? What is Linux and what is the difference between Linux, Windows or IOs? Why is sharing code important? You can think about tons of answers that are relevant in the understanding of our world. And probably your students will come with even more of them!
Next generation should be better than the next, teach them WOMEN AND MEN ARE EQUAL not just in life, but in tech. Tell them about the amazing women that made computer science possible, but don't let it looks like something unusual. Make it normal! This might be difficult because some of us are already "infected" with the wrong idea of women in tech being rare. Let's change that.
So If you are a parent, a teacher or responsible in any way of tech education, I suggest to let your passion lead the methodology, and remember every student is capable of amazing things. Maybe you didn't learned programming at 10, but maybe you didn't have a tablet at 3! Let trust in the future generation capabilities, that's my advice.