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.

  • @[email protected]
    link
    fedilink
    English
    8
    edit-2
    6 hours ago

    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.

    • Cid Vicious
      link
      fedilink
      English
      26 hours ago

      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.

      • @[email protected]
        link
        fedilink
        English
        14 hours ago

        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.