Advice needed, son wants to learn how to program
Hi all,
My 8 year old is asking if he can learn how to program. He has asked specifically if I could set him up with a ‘programming kit with lessons’ for a Christmas present. I’d like to support this, and it seems like it’s not a transient interest as he’s been all over scratch, and using things like minecraft commands for the last year. I have an old (pre 2017) MacBook Air I can set up for this. How do I / what would you advise I set up for him, to a) keep him safe online (he’s 8!) and b) give him the tools he needs in a structured way.
I am not a programmer. I know enough bash/shell and basic unix stuff to be dangerous and I was a front end dev a very long time ago, but I wouldn’t call myself a programmer and don’t know what concepts he needs to learn first.
Hugely appreciate any advice, thanks.
Edit: So I posted this then had a busy family day and came back to so many comments! I will methodically go through these all, thanks so much.
A couple of things on resources: he has expressed interest in 3D worlds and I noticed comments on engines, but wonder if that’s too advanced?
Totally agree with the short feedback loop rather than projects that take days.
He has an iPad 6 and I’m happy to pop a Linux distro on the Air, so certainly open to that.
So many links to research. Hugely grateful.
I can recommend PICO-8, if you have access to any windows/osx/linux computer.
It's a "fantasy console", a self contained gamedev environment that emulates an 8bit retro console (while using Lua, a popular and modern language), is super user friendly, and allows you to get a satisfying and fast feedback loop when learning to code.
There are many resources to learn it and a lively community
Pico 8 is super frustrating at times. I wish they'd make a program to be a "Pico 8 dev kit" that has a larger resolution so the IDE is more readable. The IDE being so hard to work with makes me want to use a proper text editor but there are downsides with that too. It could keep the game's resolution the same and only have a larger resolution for the IDE so the specs don't change.
I agree with the resolution, and I (almost) never use the built-in code editor.
Most of the time I have a folder per game, with a
somegame.p8
whose only code is#include main.p8.lua
(+ other includes if needed), and the code itself is insidemain.p8.lua
. Since the code is cleanly separated from the other assets, I don't risk overwriting one with the other while juggling between my IDE and pico8This! But I also suggest Tic80 as a really nice free and open source alternative of Pico-8.
https://tic80.com
Actually I prefer to develop in TIC-80, but the community is way smaller, and TIC-80 games can't be played on phones without a keyboard. It's not a 1:1 alternative, tho I'm glad it exists.