- https://www.codemonkey.com/ (mix of block programming and python) . Step by step guidance. A lot of kid-oriented UI/fun stuff.
- https://codecombat.com/ (python or JS). Still have levels, hint etc but the solution is less straightforward (sometimes I'm even stuck trying to help my kid!)
- If your kid is advanced enough, try https://open.kattis.com/
One common problem that kids encountered that's not straightforward is debugging simple coding issue (e.g. missing colon, mixing variable names, etc.) Even with great guidance from the platform, it's very common for kids to run into this and the compiler error is not helpful. A parent/teacher with programmer experience is needed to unblock.
- Scratch Jr.
- Scratch
- Replit
Scratch helps them understand programming concepts such as variables, lists, conditionals, and events, but still in an intuitive visual programming interface.
Replit gives the kids access to real programming languages (JS, Python, etc.) but with lots of support, and the same "remix other people's projects" culture.
Indeed, our kids have found that there are a LOT of Replit users in their early teens (12-15), and they all help each other out.
microStudio includes all you need to write code, create sprites and maps for your 2D game. All from your web browser. Your project is stored in the cloud, accessible from anywhere.
Write your game code in microScript, a simple language inspired by Lua. The documentation is always there to help. Create cool demos in just a few lines of code.
microScript shines by its simplicity and interactivity. But you can also code in JavaScript, Python or Lua if you prefer.
Also recently found https://www.solarus-games.org:
https://www.youtube.com/watch?v=Qq7rda5G6Lc
Starts out with some default RPGMaker style tools (i.e. tile map editor, sprite manager, enemy manager, etc.) but subtly introduces Lua to enable mods to the default game making tools so you can make your own Zelda like games.
Wish me luck!
Kids had no experience with any programming language, no Scratch, no Python etc.
I also showed my older kid some JavaScript and Python after he had messed around in Scratch for a while, and he was mildly interested and then went off to do other things. So YMMV because my mileage certainly varied.
However, he grew up, and when our youngest got into it, our oldest immediately took my side when his brother started the same kinds of arguments and, somehow, he was able to instantly get through and convince him spending Robux on that level is very dumb. I've since gotten back on to Windows and it's been an absolute treat to play with our youngest ever since. I wonder if I had just been able to play with our oldest, if those arguments could have been avoided entirely. As lame as a lot of the games are, they can be pretty fun to play with a kid for a bit and they don't seem to care too much about the stuff being sold when they have someone in the same room to play with.
I ended up making something myself, a web-based Python tutorial that uses Turtle graphics and trinket.io. It's more of a tutorial and not gamified and doesn't have substantial projects like building games. It introduces Python elements in steps where the student has to use them to draw some graphics using Turtle. Worked out pretty well to get my kid launched in the direction where he now does more substantial Python projects.
Added: I structured it using the PRIMM approach.
For 'real' programming, once they have their python chops, have a look at https://anvil.works
The IDE also allows you to switch back and forth between scratch and, I think js or python, and see the code output of the scratch you've written.
You can make 3D models (for printing), 2D artwork, and 2D and 3D animations and games. Once they're able to create things with turtleSpaces, it's much easier to move on to Python, Lua or Javascript