Skip Navigation

How to get a 5 yo started in (useful) computing?

The kid's grandparents got him an Amazon Fire tablet and I loathe the thing. It teaches literally nothing about computing and the games they have for kids are barely even games, and are more focusing on advertising various IPs.

I'd like to get the kid started, as he learns to read, on something that will be more useful than detrimental, let that soft little brain soak up some actual computer science, literacy. I teach him about basic electrical circuits and how that translates to computing, if, and, or, xor, nor, etc. He's got some familiar with hex (colors) and the concept of binary (on/off).

But what to get for a first computer? I almost want to get him something Linux based and turn him loose. Is there anything like that, that would require him to learn some command prompt and basic computing skills?

Every time and try and Google it, I get a bunch of crap suggestions and ads.

59 comments
  • It’s great that you want to support your kid and hopefully get them away from the focus-destroying dopamine traps that are many „kid friendly“ apps. But please ask yourself what your kid likes first, not what you want them to be interested in. It’s perfectly fine to restrict tablet time and let him focus on what he likes, be it computer stuff or football or cycling or reading or painting or whatever. If he really interested in Linux and nor, xor etc that’s great, but don’t force it on him.

    And that is coming from someone who bought and built his first own computer around that age and wrote his first few lines of very basic basic code not long after. Not because it was expected of me, but because I was interested and given the opportunity to follow those interests.

    So, if that kid is interested in computers, Minecraft is a great game for kids. It encourages creativity, problem solving, perseverance and, maybe later, collaboration. It’s also possible to play together and scale their experience to their age: get started in creative or peaceful, then let them discover mobs and mods when they are a bit older, then let them play with friends.

    If the kid likes building and Legos, you might want to look into Lego Boost and Spike, although they are rather expensive.

    Oh, and paint. Kids love paint, be it MS paint, Paint.net or any other open source alternative. Show them that with a computer they can create, not just consume.

  • I have this kid relative. Whenever they visited, I'd take out a portable whiteboard and draw mazes for them. Then I'd have them draw mazes for me. Ofc we'd play lots of tic tac toe. Sometimes I'd write word puzzles, or math puzzles. (i.e. simple addition problems) Then I'd have them write some math problems for me. ofc they'd write huge numbers for me to add and I'd pretend I was confused and bewildered and I'd count on my fingers to solve them. It was just to have fun. It didn't involve a computer but it got them thinking, and now that they're older they like math. It's important that you emphasize the fun parts.

    I'd open up a computer with them and we'd look at stuff together. I'd say: "that's like the part that thinks. that's like the part that remembers. that's like the part that remembers a LONG TIME" etc. Then we'd look at the patterns on the circuit boards, etc. For Science Fair they did a project called "Will it Boot?" We took a computer, they opened it up, and removed the hard drive. Then we asked "will it boot?" and turned it on. Then we replaced the hard drive and removed the RAM and asked "will it boot?" and turned it on again. Etc. I took pictures of them opening the case, we made a table of what the PC could boot without, printed a diagram that I downloaded of the part names, put it all on a posterboard and that was the Science Fair project.

    This is your kid, right? Severely limit "tablet time" but don't worry about it being in their life -- back in the day we had TV which was not much better, and it's important that the kid have some knowledge of mass media to talk about with their future classmates. But tell them they can take it apart and put it together again whenever they want. And if it accidentally breaks when they're doing that, then sincerely congratulate them ("your first unsuccessful experiment!") and immediately head out to buy them a new one. Just get an inexpensive box that you can put Linux on. Easily. Like, let them put the USB stick in and boot it, and tell them what to press. (ahead of time, try to make sure it'll work!) (tell them "it's just a toy now, but we'll turn it into a REAL computer!") Then point Firefox to youtube and look up a video or something. Make sure the PC is somewhere public where you can see it too. Hang out and watch what they're doing, watch what they're watching. Talk back to the show. Make jokes about the show and tell the show when you don't like it. Come up with fanfic ideas. Me and my fam came up with this awesome alternate-reality Pokemon world and role-played it, resolving battles with "rock paper scissors" oops gotta go.

  • The kid is five, and it's an android device. You have options without trashing the thing.

    Sideload some open source games through F-Droid, set up a simple emulator frontend/app with a few age appropriate games. Lemuroid is a pretty straightforward emulator frontend with a decent UI for a kid to poke the boxart they want to play and just go, but I'm not sure how much you could lock it down to prevent them from borking the settings.

    Lock the kid's access to the app store the fuck down. Install an on-device-vpn based adblocker like blokada or rethink dns to block ads across all apps on the device. It might break some games but the overwhelming majority will just fallback to "you don't have an internet connection" functionality at worst.

    You can look up how to enable adb on the device, then plug it into your computer and use https://github.com/0x192/universal-android-debloater to remove/disable built-in apps you don't need. There's a ton you can do with adb to tweak the device, but uad is the most user friendly way.

    If you want to push programming, others have mentioned a version of swift that's available on the kindle fire. Someone else mentioned Luanti as an open source minecraft clone, which I know is available through F-Droid (but can be quite janky due to not being made for phones/tablets).

    • Actually, the mobile/touch screen client side has gotten more love lately! I would recommend Luanti, especially with the mineclonia game, since Minecraft is so common they’ll have more to talk about with friends who play Minecraft, and not feel left out. The redstone stuff just recently got redone to the point it feels very similar to Minecraft, and I’ve found it’s actually a fun way for them to learn about programming, although mine, at 6, still struggles with the concepts and I’d be very surprised if a 5yo got a grasp on them properly. But then again it is entirely possible they are less logically inclined than their peers, and maybe they come more naturally to most other kids. But even so, it’s productive fun. It promotes imagination and sticking to a project in longer term. Building up things is fun for all kids I bet, but add to it the need to go gather, search and produce the tools and materials to build, it teaches some important life lessons too, that would not be so easy to convey otherwise. And with all this, it’s still just fun. If they get frustrated, they can just instead go sail across the seas and spelunk in some caves.

      Screen time has to be enforced a lot more though, since it’s so easily addictive. If one doesn’t put boundaries on it from the start, it’ll get unhealthy and hard to shake. A lot of grumpiness is bound to follow, unless really carefully keeping limits from the get-go.

    • I will definitely follow up on some of these. I have some limited experience with ADB. I have a PiHole for DNS; think I need a VPN, too? It definitely breaks some things for me, but when that happens I know I'm better off without it. Thanks for the reply.

  • Minecraft has a ton of potential. So many ways to develop creativity, problem solving, redstone, and using commands.

    Then there's modding. navigating the web to find safe ones, navigate the file explorer to put them in the right spot. Troubleshoot mods that don't work together. (I remember having to manually change hundreds of Item IDs before they changed the system).

    5 is probably too young to start with mods, but texture packs would probably go well, open up paint and start scribbling on blocks. Eventually give them paint.net (or anything more complex than Win Paint) and start messing with layers and saving things to the right file type.

    Does the kindle fire let you do USB transfer for music and books? Transfer stuff manually. (Amazon taking the download feature away from the store, so books will need to be got elsewhere) I'm a big fan of Standardebooks.org, all free and public domain, not a lot of children's books, but should be good by the time they're 10. Although the LCD screen probably isn't the best for reading, I'd get them an eink for reading time. Also easier to separate reading time from game time. Also if you can go to the public library for physical books. The simple responsibility of borrowing a books, taking care of it and having to return it on time is good. (I'm rambling off topic...)

    Install a bunch of easy puzzle games. I've always like Flow, there's also simple math ones, sudoku, jigsaws, word searches, find the object, there's probably a hundred others.

    The tablet is only as detrimental as you make it. Find games with an actual story that the kid has to read. 5 might be a bit young for RTS games, but those will definitely make him read and think. When they get stuck, show them how to find the guide online and read just enough while avoiding story spoilers.

  • You might try something from the lego mindstorms series, tho it might be too early for the child. It allows you to program your creation from both the device itself, as well as from a pc or tablet.

  • I almost want to get him something Linux based and turn him loose.

    I don't have a five-year-old, but if I did, I would. Worse he can do is wipe what's on it. Can just reinstall the OS.

    Maybe also hand them a simple programming environment. When I was a kid, starting kids out with Logo was a pretty easy way to go. Pretty sure that current Linux distros have some Logo variant, lets you make pretty pictures. Dunno if that's still considered an effective route to get kids interested today.

    kagis

    It looks like, in Debian trixie, there's kturtle and ucblogo; the latter was written for university students, though. I've written code for ucblogo myself some years back, when I wanted to generate organic-looking desktop backgrounds.

    For a five-year-old, if it's a laptop, I'd probably get something relatively-inexpensive (unless you don't care about the financial aspect). If you can install a Linux distro on it, can probably use any old secondhand laptop, even. Don't think that the brand matters that much, as long as one can get it up and running.

    A point someone made before, though, on a Reddit discussion I was reading talking about how "kids these days can't use computers any more, just mobile OSes" -- kids used to need to learn to use a computer if they wanted to play video games, so they had a major incentive. A lot of games are accessible via mobile OSes today, so that may degrade the appeal. YouTube/TikTok are accessible on both.

    I teach him about basic electrical circuits and how that translates to computing, if, and, or, xor, nor, etc. He’s got some familiar with hex (colors) and the concept of binary (on/off).

    There's a genre of programming video games. Steam doesn't list suggested age ranges, though, so shrugs.

    https://store.steampowered.com/search/?sort_by=Reviews_DESC&tags=5432&supportedlang=english&ndl=1

    I haven't played much by way of programming games myself -- I mean, I've got enough real-world programming stuff that I'd do -- so I can't recommend much personally. Played some Mac-specific Core War knockoff years back. When I got into programming, it was because personal computers shipped with an actual -- if simple -- programming environment built into it.

    Problem is, what you're talking about is really a child-rearing problem, not a technical problem. I don't know how one makes engineeringy-stuff appealing relative to non-engineeringy stuff. I didn't have a smartphone with YouTube and TikTok and a huge library of video games as a kid.

    • I did Logo back in the 80s on Apple ][s and I still remember it. Definitely recommended and I'm surprised that schools don't try to incorporate things like this more.

      • So, I don't know exactly what's happened with instructional languages, but my guess is that they may be trying to use languages that have broader real-world applications, even if they're somewhat more-complicated. Logo is great in terms of having a low bar to letting you do something fun...but it also doesn't see a lot of real-world use. I've seen some programming games using Javascript, for example.

        Not "first programming language" stuff, but on the subject of instructional languages...

        Around the mid-late 1990s to early 2000s, it was common for a lot of computer science courses to be taught in C++, since it was a commonly-used "serious" applications language. If you took an intro computer science course, you'd have good odds of doing C++, maybe blending into Java towards the end of that period.

        I remember eating dinner with a Stanford University computer science professor once, and he was talking about how he was much happier teaching intro students in Python. The problem was just that C++ has a lot of stuff that's designed to help programming languages produce performant code or scale up, but which added a huge amount of complexity as an instructional language. With C++, he was spending more time helping students learn the language than the concepts that he was aiming to teach.

        Now, okay. C++ (especially C++ in 2025, as it used to be a considerably-simpler language) is a complicated programming language. A lot of that isn't stuff that the compiler will handle, either, and stuff that the programmer needs to know to avoid screwing up.

        • A lot of error-checking happens in type-checking using templates, and at least with the compilers I've used -- and maybe things have improved -- the errors are stupendously-unreadable, where you can get the compiler telling you that half-page-long templated type A is incompatible with half-page-long templated type B, and not trying to reduce the error to just show the differences.
        • C and C++ also expose some of the underlying bare metal, and effective debugging means knowing something about the underlying, in-memory representation. It really is a huge bar to overcome to "writing useful software".
        • C++ inherited C's preprocessor, so you're actually needing to learn a macro language (which has some odd quirks) as well, and understand that you're working with two languages.
        • C++ has gone through several "paradigms". Originally, it was "better C", then more-OO stuff, RAII-structured OO, what looks to me like some kind of stuff with implicit static typing akin to the ML family today. I kind of like C-style OO code using PIMPL. But point is, if you're trying to learn a language and documentation at various dates has pretty different ways of writing code, that's another pain to dig through.

        You don't have to know (all) of that to get Hello World working, but it also shows up pretty quickly.

        I wasn't sure that I entirely agreed with the guy, because I think that part of what a lot of people were doing in Python was writing incorrect software that there just wasn't a strong static type-checking system to catch. I mean, maybe he didn't care about that in terms of getting across his topics, but I do think that writing rigorously-correct code is a good habit to get into for most fields of software, though it certainly matters more for some than others.

        Now, that's C++-versus-Python. My guess -- and I haven't looked recently -- is that neither is probably the "first language of choice" these days in schools. But while I don't know if I'd agree with the guy as to Python being a great option -- I think that Python makes a great language on Unix sitting halfway between shell scripts and C -- I think that his broader point holds, that there is a valid point that keeping the bar down to getting something up-and-running is truly valuable for learning.

        I kind of wish that someone would take a major modern "real world" applications programming language, something like Go or Rust or something, and then make a stripped-down version to help introduce students to concepts, with the idea that they'd later transition to that "larger" language, but to try and get the barrier down as far as possible from the "sit someone who has no idea what they're doing" to the "can make interesting output" stage.

        Like, what changes would it take to make it pretty easy for a six-year-old to be writing something that is either a subset of Rust or something that can mechanically be transformed into a subset of Rust? What do new learners find confusing? I mean, if you had to ruthlessly cut anything, across-the-board, what would come out?

        And OP, sorry, I know that you're mostly looking for basic computer familiarity, and I'm kind of heading off specifically down programming language learning, but I do think that that's an interesting issue too.

  • I’ve recently introduced my 5 year old to Luanti (open source Minecraft clone). He loves it, sees me open terminals (Linux only house), use the in-game terminal which I’m teaching him to use, learns what keys are where etc. and personally I’m OK with that for now. Baby steps.

    My own computer route was to play games initially (load “”) then move on to coding later. It is much easier to learn coding now than it was then but just moving him off the tablet will already be a huge win. If he shows an aptitude or interest in it, coderdojo or similar will be waiting.

    Oh! If you do decide to do something similar, I hooked the laptop up to the TV with keyboard and mouse and it was a huge win both in fine motor control and fun!

    Good luck!

  • A Raspberry Pi. Literally designed for this sort of thing.

  • Perhaps a Raspberry Pi 500 (or the older Raspberry Pi 400), can do all the things an ordinary Raspberry Pi can, but comes as a complete device with built-in keyboard. Runs Linux and is rather easy to use.

  • Adding to Scratch recommendations, look for First Lego League Jr teams in your area for next year. FLL Jr is for ages 6-10. They get simple kits with visual programming, and it preps them for FLL (non-jr) through to FIRST at the high school level.

  • Well, if anyone is seeing this, I decided to buy a Pi 5 and a case and we're going to get some Linux variant running, and I'll set him up with some browsing capability and some kid friendly apps.

59 comments