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.

69 points

Everyone else’s suggestions are great.

Get them a copy of Factorio, it’s a game, but it’s all about computer science fundamentals, architecture, pipelining, busing, data integrity, etc. It’s a visual game, but it’ll scratch the itch of programming. It’ll get them to think.

Buy the hardware projects, the little ones with either a pic, an Arduino, something that does something physical. A little bit of programming. To make a thing happen. So they can experiment.

Look at the software robot competitions, there’s a couple on steam, there’s couple elsewhere, you can do it as a family project, whiteboard out the logic of what your robot will do, and you can write it together. And see how it acts.

Just make sure anything you get, has a very small feedback loop, so they can iterate very quickly. That’ll keep them engaged and exploring. You don’t want to get a daunting project that’s going to take weeks to see any output. You want things on the order of minutes, or even seconds to see what happens

permalink
report
reply
18 points

Ah, haven’t thought about factorio. On that matter 7 Billion Humans is a cool game that can teach the basic logic behind programming.

permalink
report
parent
reply
5 points

Seconding all of the above. Also tis 100 and exabots. All games by that developer actually.

permalink
report
parent
reply
5 points

I love Zachtronics, but I think their games are very ambitious for 8 years old. Maybe teenager with some discreet logic skills under the belt.

permalink
report
parent
reply
1 point

“send me your favorite base” is probably a better programming interview than most

permalink
report
parent
reply
4 points
*

Get a breadboard. Get a bunch of wire for it. And do small projects with the breadboard in a controller. It’s fun to move the wires around. You can even build a tiny 8-bit computer with a breadboard. And have a do things like output of display. It’s very tactile and hands-on. Excellent visual. There’s excellent YouTube tutorials up there for breadboard projects.

https://www.youtube.com/channel/UCS0N5baNlQWJCUrhCEo8WlA

This guy has some excellent breadboard projects. Find an easy one. And do it together with your child

permalink
report
parent
reply
3 points
Deleted by creator
permalink
report
parent
reply
3 points

Also, remember Human Resources Machine. Its a puzzle game thats actually a progamming language

permalink
report
parent
reply
3 points

If you get them factorio then they’ll just play that all day instead of learning programming

permalink
report
parent
reply
2 points
*
Deleted by creator
permalink
report
parent
reply
1 point

factorio is programming

permalink
report
parent
reply
26 points
*

See if you can find a book on python, and work through it a bit. Sit down with him once you know some and try making something basic with turtle or the likes. Your goal is to keep his interest up and not make it a “studying” thing. For a kid the most important part is that he needs to be able to see results of what he’s making. Drawing simple shapes, cool patterns, etc. in python is a nice way to start and it can teach all the basic initial things he needs to know.

There’s also simple robot kits for kids that could be fun to play with, which he could eventually move on to basic electronics to after from.

W.r.t. safe browsing, I’d try blocking egregiously bad stuff with some DNS blocker that you either buy or host using something like pihole. Use it to block ads and well known “bad” domain names. Also have a conversation about it. (I’m not sure how much this helps here considering he’s 8… but better then nothing.)

permalink
report
reply
21 points

I found khan academy to be really good. My daughter handled the JavaScript module pretty well at the age of 9. If your son is already familiar with the concept of programming and can read well enough, I’d be pretty sure he’d enjoy this

https://www.khanacademy.org/computing/computer-programming

permalink
report
reply
18 points
*
Deleted by creator
permalink
report
reply
18 points
*

Well, Scratch is certainly a good starting point so I would assume he wants more if he’s been all over it.

There are some toys and kits available but I am not really aware if they are any good.

If my little brother would make such a request I probably would want to go with Python and an Arduino project. Robots are cool so it would pique his curiosity while basics with Arduino should be challenging but manageable. The only drawback is that it probably would require some time investment on your side.

A cheaper alternative would be directing him towards writing some simple programs in Python or Java as the only setup this would require is an IDE and it would also teach him googling for information.

I think the safety online is the biggest problem here and the only thing I can think of is to only allow some domains…

Maybe some of these suggestions sound good to you, if so I’ll gladly expand on them.

Also big kudos to your approach on the matter.

permalink
report
reply

Programming

!programming@programming.dev

Create post

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person’s post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you’re posting long videos try to add in some form of tldr for those who don’t want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



Community stats

  • 3K

    Monthly active users

  • 1.7K

    Posts

  • 28K

    Comments