I think conscious children of all ages can be taught programming at basic level. And I also think that doing so with turtles or Minecraft is not actually needed, although may seem more fun. What’s needed, in my opinion, is just a simple interpreted programming language with an interactive IDE such as that old GW-Basic (is that still legally obtainable?) Small Basic is another good option, available for free. And of course, a computer, a bit of English if that is not the child’s native language, and – very important – the highest level of enthusiasm!
Update: I also found a simple Basic Interpreter app available on Windows 10 PCs (and even on Windows RT 8.1 and Surface 1)!
Update: I was reticent downloading it at first, although I’ve originally found it when I initially wrote this post and some time after, but I eventually decided to try the free PC-Basic interpreter as well. And it’s in my opinion that is the best choice for the purpose: it works exactly like GW-Basic of the 90s, but runs well on contemporary Windows, macOS, or Linux devices! (I’ve also wrote a separate post on learning programming concepts with the Basic language and PC-Basic interpreter on Code Sections.)
The tricky parts to teach won’t be ifs, nor fors, but smaller things like incrementing values (“i = i + 1“): you’ll need to do your best to ensure the child thoroughly understand you’re not talking about mathematic equalities there. Another important thing is to present Boolean operators (and, or) as soon as possible: otherwise the child will soon get into trouble with too many imbricated if clauses once he or she will start creating his or her own programs!
Update: As I said, I think turtle movements (even supported by Small Basic) and Minecraft programming might help to keep the child interested, but I personally think they also introduce confusion – the child might focus on other things – the game or the turtle itself – rather than on programming them (or you need to be a very good teacher to ensure this doesn’t happen). However, recently I found an intermediate solution: you may be able to teach children programming more easily with a virtual reality environment, such as in Unity, and using C# or JS scripting there – you can define a cube (or a more complex model, teaching children also about 3D modeling) and make animate it using code! That’s still something abstract enough to be able to focus on programming, while it’s interesting and very similar to real things that the child has already seen in the real world.