Best device for a kid to learn how to code?

8 points by tdlx ↗ HN
Hi there,

My son is 9 and is super interested in learning how to code. Being a developer myself, I can teach him that.

Yet, we don't have any spare computers, and he has to share mine. Which is fine, but I often have other things to do, even when I'm next to him to guide him on his journey with Scratch and others.

What device would you suggest?

I'm still super reluctant to buy him his own device. While learning code is great, this could also mean possible unsupervised access to the Internet, with all the good and insanely bad that could happen.

Thanks

29 comments

[ 3.4 ms ] story [ 71.7 ms ] thread
get a cheap macbook air from swappa.com or a $300 laptop and install linux on it.
Thinkpad 431s if you are on a low budget. It's the best performing cheap option, IMO.

Obviously block access to internet nonsense. I just started using ControlD.com and it works like a charm. Or, if you have the time, make the PiHole and your Home Lab & Network a project that you two build together.

Make the command line kid friendly, like using bat instead of cat and LSD instead of ls and so on. Colors are stimulating and fun. Something like the hyper terminal is another idea.

I would appreciate someone building a faster alternative to the hyper terminal in C or Rust.

And then there's Nand to Tetris, which you should pick up together as well.

Regarding unsupervised time on the net: be strict. Regulate screen time. Hold the kid playfully accountable. No, 9 is not too young for anything. It's all about deliberate parenting & discipline.

[0] https://controld.com/

[1] https://pi-hole.net/

[2] https://www.nand2tetris.org/

@ziggyzecat, thank you so much for your super detailed answer. I'm indeed looking for a low budget at first. He is on the spectrum and super smart, but his hands are not his best allies. Despite all his efforts and work with specialists, he remains clumsy and might involuntarily damage his computer. Cheap and fixable is a good thing. Things will get much better with time.

I love the idea of building the network as a family project with him!!!

I've found that wireless keyboards/mice and desktop computers worked out best for my child. Alternatively, you might want to seek out an old heavy mechanical keyboard, those things are built like battleships.
The other perk of a mechanical keyboard is that it will make his hands work out a bit. And we will be able to hear it should he try to dodge the time limitation...
Well presumably your WiFi needs a password. When you get a device, install what you need and clear the WiFi password. No internet browsing.
Thanks.That's certainly the safest option until I can be 100% of parental control and the discipline that goes with it.
I second the "$200 ThinkPad and Ubuntu Linux" approach, s/either one/the kid's preference. Growing up in the land of Linux was a critical ingredient for me as a teenager growing into my modern developer-sysadmin-whatever myself. Plus, you can always tell them no matter how much they screw up the software, they can always just reinstall the whole thing from scratch.
Thanks @hiAndrewQuinn. I want to design a process that is as resilient as possible. And, I 100% agree with you on the importance of growing up in a Linux/OSS environment. Anything is possible, as long as you give yourself the chance to learn a bit more and go a bit deeper. And, if something is missing, that's an opportunity to contribute and help thousands of other people. That's something!
Rpi directly booting into MS-DOS with QBasic?
Hi @markus_zhang! That could be a PI400. Maybe with Linux, but that would be super cheap and flexible. Thank you for the idea!!
No problem! The only thing I'm not sure is whether kids like this idea nowadays. I'm preparing to give my son a shot when he reaches 7/8 (he is 4), with some sample games and such.

I think the key is to make sure kids don't get swamped by other games/short videos beforehand, otherwise they would find it extremely boring...

I am not sure either to know or understand what kids want. We are slowly getting into the "you're boring and don't understand me" phase.

I would like him to build things and start developing a bit of discipline and willpower before adding games and consoles to the mix.

Video games are super great. But without willpower and discipline, they can become a bit too addictive.

There is maybe a line between "enjoying what I've built" and "enjoying what other have built". Having a bit of both should be great.

Yeah, I agree. Video games today are super advanced and sophisticated. It's not like in the early 80s while "commercial" games (the one you typed into the PC or cassettes you bought from a shop) are of similar quality to the ones one could learn and type in BASIC.

I'd argue it is a lot more difficult to learn game programming these days than the 80s. You could program a decade and still not close to the quality of commercial games. Or in the rare case you get a good idea, work for a decade, and have a huge success.

I got my nephews a Raspberry Pi around that age. The first one got a Kano Kit, which had its own setup to make things more user friendly for kids with a bunch of learn to code stuff, to try and make it more interactive and fun. Kano has since shut down.

The next one I got a Pi 400, the one built into a keyboard. It came with a book with a bunch of stuff to teach kids to code and other such things.

I don’t know now much either got used. I know the oldest used his a decent amount. I think the Pi 400 started having issues, and without the book or someone to help, it just dumps the kid on a normal Linux desktop, so that was probably rough (I wasn’t close by to regularly help).

There is a 3rd kid, and I’m planning to ask his mom if it’s worth getting him something like that as well. They have my old iMac now, which they play Minecraft on. So anything smaller/slower may be a moot point.

A standard used laptop/desktop is probably a better option. That was what I originally planned, but pointless family drama killed that idea. The Pis were pretty slow. Fine if learning to code, but they of course wanted to mix in other stuff to make it fun.

@al_borland, thank you for your very detailed response. My son also plays Minecraft on my iPad and listens to podcasts and stories on it. It could be cool for his to be able to do this autonomously on his device so I can be able to use mine for frequently.
Since the primary goal is learning to code, you'll want to remove (for now) any other obstacles, so perhaps a Chromebook with the NextDNS[1] extension to filter against harmful content.

With a Chromebook, there's no having to fuss with anything else. He can focus on learning to code.

Web-based programming apps like Scratch, Replit, and JSFiddle work well with Chromebooks. We use them with our programming classes, and while I was initially skeptical, they've worked out really well, for years now.

We did try stuff like the Raspberry Pi, but didn't get much traction with students at the primary grade levels, it was too much setup and too much fiddling to grab their attention. They needed simple. We typically see more interest and success with Pis and Linux installs at the high school level.

1. https://my.nextdns.io/start (free/cheap)

Thanks @runjake! I haven't considered Chromebooks before. I did know the tradeoff price/value was that good!
I suggest a simple Linux machine running a Gnome DE and learning Racket with Dr Scheme or, perhaps, Smalltalk. Alternatively, if the kid is interested in hardware, go the Arduino route.

I learned BASIC and then Logo when I was 4-8. It made a huge difference to understand iteration and recursion from a young age.

If he is going to be self-directed, something with good learning materials geared towards his age is the key. Those three options should have plenty.

@nextos, thanks! We'll surely go the Linux road.
(comment deleted)
Perhaps a playdate, or a similar kind of programmable game device. Anything that he can use, and play games on, and code.
Thank you, @kamphey! I never heard of Playdate before. And that's absolutely AWESOME!!!!!! Thank you so much!
Id honestly leave him with Scratch - Im amazed at the creativity and skills of the scratch community. From complex games to animations.

My daughter is into Warrior cats and loves the whole fan fiction animations around that community. Its really impressive

I'd consider languages with easy syntax and focus on teaching programming concepts. Scratch, swift playgrounds, and python all seem like good options.

Frankly, I'd just buy a device for him. I think it's important to lets kids explore and find their own internal motivation.

I had unsupervised access to the internet and I turned out fine :) If you're worried about that part, you can use parental controls.

I think it's not about the devices, but about the limitations. If I had a super computer as a child, I would have played games and not looked at coding or programming. If you teach a person on a computer that has limitations, he will learn optimization, he will think about structure, he will be more organized than someone with unlimited PC power
Get an ipad and have them do Scratch or MakeCode