Hi all,

A fair while ago I asked the community here advice as my 8yo lad wanted to experiment with programming: Old Post.

Thanks so much for all the words of wisdom - there’s still stuff we can explore in the replies.

Thought I’d just give a little update.

So I installed dual boot Linux Mint / OSX on an old intel MacBook Air (dual boot in case his homework/school stuff needs it, but he hasn’t used OSX much!).

It was much easier than I thought it’d be. Perhaps it’s just the hardware/OS choice, but I don’t consider myself to be ‘properly’ technical and it was a breeze. Perhaps the only difficult part was creating a bootable OSX restore disk just in case I destroyed the OS… it’s almost like Mac really don’t want you to be doing this.

He’s working his way through foundational courses on programming, in codeacademy, and using scratch as usual. So far, so good.

Is there an IDE you’d recommend that has some element of a tutorial to it?

  • abhibeckert@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    8 months ago

    Perhaps the only difficult part was creating a bootable OSX restore disk just in case I destroyed the OS… it’s almost like Mac really don’t want you to be doing this.

    Um, yeah, they really don’t want you to be doing that. Creating the recovery disk was probably a waste of time and I recommend erasing the disk and doing something more useful with it (give it to your kid as a backup disk or something).

    Your Mac has “recovery mode” int he firmware, it will often boot into recovery automatically if there’s something wrong with your boot disk, or you can manually trigger it by holding down certain keys at boot time.

    Back on topic:

    I recommend teaching your kid how to develop “inside a container” with Visual Studio Code and Docker: https://code.visualstudio.com/docs/devcontainers/containers

    It’s a bit of a steep learning curve - you’re going to have to learn it yourself and help him at first, but it will save your kid so much time in the long run and will allow more freedom to experiment and potentially mess things up. When you install software inside a container, and mess it up, you can restart from scratch (or even better, go back to how it was a few days ago) in a few seconds.

    I also recommend buying your kid a ChatGPT 4 subscription - so he can ask questions like this and get answers a thousand times faster than with a Google search:

    Finally - your kid isn’t ready for it yet but as soon as he is, teach him how to use Git.

    • Kache@lemm.ee
      link
      fedilink
      arrow-up
      0
      ·
      edit-2
      8 months ago

      Disagree with Docker and git at this stage of learning. This is an 8yr old playing with scratch, Minecraft, and early levels of CodeAcademy.

      The answer to “not dealing with environment” isn’t Docker, it’s a programming(-esque) game or an in-browser environment.

  • ___@lemm.ee
    link
    fedilink
    arrow-up
    0
    ·
    8 months ago

    For IDE, VSCode is the usual recommendation. Some of the plugins really help making code readable and digestible.

  • owsei@programming.dev
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    8 months ago

    You can’t go wrong with Visual Studio Code (AKA VSCode). It’s easy to pick up on, there are some pretty neat extensions and it works for seveal languages.

    However there are IDEs specific to some languages, like PyCharm for python. While they usually have some cool features, your child will probably not need to use them.

    Good luck :)

  • librecat@lemmy.basedcount.com
    link
    fedilink
    arrow-up
    0
    ·
    8 months ago

    I wanted to mention VSCodium as an alternative to VSCode, from their website “VSCodium is a community-driven, freely-licensed binary distribution of Microsoft’s editor VS Code.”

    Basically it just removes telemetry/tracking.

    • EasternLettuce@lemm.ee
      link
      fedilink
      arrow-up
      0
      ·
      8 months ago

      Keep in mind that this prohibits you from using the official vs code extension repository which makes it essentially pointless. It’s much simpler to just install vs code and disable telemetry in the settings

      • PHLAK@lemmy.world
        link
        fedilink
        English
        arrow-up
        0
        ·
        edit-2
        8 months ago

        Pointless, no. Many (but yes, not all) extensions are still available to use in VSCodium.

  • MajorHavoc@programming.dev
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    8 months ago

    Assuming your 8 year old wants to write a game (who doesn’t?!), I recommend grabbing a free copy of Pyxel.

    Pyxel games are coded in Python, and has opinionated libraries for building games. It comes with a built-in sprite editor, map editor, and music editor.

    The Pyxel tutorial ecosystem isn’t as mature as Scratch, or Microsoft’s Code.org, but it’s a strong next step for a kid who wants a bit more power from their code.

    You can also host the games your 8 year old ceates on a static website, or in other easy sharing forms, if you’re so inclined.

    The only thing Pyxel doesn’t include is a code editor. I heartily endorse the previous recommendations for VSCode or VSCodium.

    While I’m a die-hard fan of Codium, doing the extra work to find plugins outside the Microsoft ecosystem, or point Codium into the Microsoft plugin ecosystem, probably isn’t the best use of your or your 8 year old’s time. But if you’re particularly privacy minded, you can easily use the Microsoft plugin ecosystem within Codium, by searching the Codium wiki pages for the two files that need modified.

    I would definitely encourage finding and using the Microsoft published VSCode/VSCodium Python plugin pack, to support your 8 year old’s learning journey, if you go this route.

    • foofiepie@lemmy.worldOP
      link
      fedilink
      arrow-up
      0
      ·
      8 months ago

      He currently really likes locally copying people’s games from Scratch and modifying them in funny ways which he calls ‘hacking’ lol. He’s having fun so I’m happy for him to do what he likes so long as it’s age appropriate.

    • ibasaw@lemmy.world
      link
      fedilink
      arrow-up
      0
      ·
      edit-2
      8 months ago

      I thought about vim tutor when OP mentioned tutorial

      Also, it’s much much easier to get started on nvim these days… check out kickstart nvim by Tee J Dvries

      No kidding, git clone and you are good to go

      • nexussapphire@lemm.ee
        link
        fedilink
        English
        arrow-up
        0
        ·
        8 months ago

        Get em started young. By the time they’re 16 they’ll ask what’s all this about then and flip the desk like a British rockstar every time they’re handed a computer with vscode.

        Sorry, had too much fun crossing the natural rockstar trope with the vim Chad meme.

  • ThatFembyWho@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    0
    ·
    8 months ago

    My advice: make sure he has other interests and socializes.

    I was obsessed with coding from age 7, and now wish I had spent that time otherwise, more being a “normal” kid and less time sitting alone giving orders to a damned computer. Once I reached my mid-twenties the joy died in the realities of the job market, and now I can’t even think about that crap anymore.

    You know what I enjoy now? Playing a guitar. Didn’t start until age 30, and it was like a revelation.

    Sorry I didn’t answer your question. I still think any parent who wants to “get their child started” on something early should heed my advice and experience. I am for real a walking, talking (sometimes) warning.

    • foofiepie@lemmy.worldOP
      link
      fedilink
      arrow-up
      0
      ·
      8 months ago

      Hah yes we try and ‘balance’ it all. He’s a voracious reader, loves his rugby and we try and get out of the house as much as possible when it’s not continuously raining, thanks Britain.

  • Kache@lemm.ee
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    8 months ago

    I feel a lot of advice here is trying to push the learning envelope without considering fun. This is for an 8 yr old, and I’m seeing suggestions that would seriously challenge high schoolers, college students, and even some software engineers in industry I’ve encountered.

    For the software aspects of programming, I would suggest looking at programming(-esque) games and web browser programming environments. Here’s a solid short list, vaguely sorted from “proramming-esque” to “actual programming”:

    • Factorio - A factory-building game that “feels” a lot like software development. Not programming.
    • Opus Magnum - mechanical puzzle game by Zachtronics, build algorithmic “molecule-building machines”. Not programming.
    • https://upperstory.com/turingtumble/ - A physical marble and lever puzzle “board” game that’s turing complete. Not programming.
    • <Any other game by Zachtronics> - varies from “not-programming” to “contains programming”
    • Human Resource Machine - Programming puzzle game using assembly-like language
    • 7 Billion Humans - “sequel” to Human Resource Machine, more featureful language, concurrency puzzles
    • https://www.hedycode.com/ - An innovative learning programming lang and “levels” method that makes Scratch primitive by comparison. Has free online lesson plan & environment. Hedy level 18 is vanilla Python.
    • https://www.codecademy.com/ - you said you’re using this already

    Suggestions to go physical tinkering with electronics is good, but I’m unable to make good suggestions there.

    A real computer and coding environment/shell could be good for systems and admin skills, but the learning curve is steep. You’ll also have to be okay with letting him accidentally brick the computer (best way to learn!).

    • cafuneandchill@lemmy.world
      link
      fedilink
      arrow-up
      0
      ·
      8 months ago

      This is very true; if it’s not fun, why bother. Granted, fun is subjective, but the point stands, I think

      If the kid wants to make games, I would suggest fantasy consoles, aka things like PICO-8, TIC-80, etc. Dunno how easy it would be to be at this stage, though

    • foofiepie@lemmy.worldOP
      link
      fedilink
      arrow-up
      0
      ·
      8 months ago

      Amazing thanks so much. Yes, structured ‘play’ might be just what he’s after. He can then tinker in an IDE - I did wonder if anyone had built one for kids specifically.

      I can teach him a bit of CLI / Shell and I’m ok if he bricks the computer, hence the choice of OS. Super easy for me to nuke and start again.

      I’ll be checking these out.

  • towerful@programming.dev
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    8 months ago

    Vscode and vscodium have already been recommended.
    Its not an ide by itself. Its a highly extensible text editor, and its very mainstream. The extensions can turn it into an IDE. And there is a huge community around it.

    Its worth searching for things like “vscode recommended python extensions” and making sure they make sense, then installing them via the vscode extensions.

    You can have different extensions for different workspaces. So you can have a web workspace, a python workspace, a platformio workspace etc.

    I use vscode as my main editor/ide