Update: Advice re son learning to program.

https://lemmy.world/post/13002184

Update: Advice re son learning to program. - Lemmy.World

Hi all, A fair while ago I asked the community here advice as my 8yo lad wanted to experiment with programming: Old Post [https://lemmy.world/post/6087801]. 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?

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

You can’t go wrong with Visual Studio Code. 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 :)

Visual Studio Code - The open source AI code editor

Visual Studio Code redefines AI-powered coding with GitHub Copilot for building and debugging modern web and cloud applications. Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.

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.

VSCodium - Open Source Binaries of VSCode

Free/Libre Open Source Software Binaries of VSCode

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
Pointless, no. Many (but yes, not all) extensions are still available to use in VScodium.
It is possible to use official vs code repository. Just you would have to add it manually.
Neovim and language servers tbh
For an 8yo?

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.

I thought about vim tutor when OP mentioned tutorial
Vscode and vscodium have already been recommended.
Its not an ide. 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.

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.

What you’re supposed to do is hold down a key while turning it on (probably Command-R on your Mac, it varies) and it will boot into Recovery mode which can do all of the same things and is vastly preferable to a bootable restore disk.

Not to disagree with your point about learning git, but you might be interested to know that “all large companies use git” isn’t actually exactly true - Facebook/Meta, one of the largest tech companies, uses mercurial: graphite.dev/blog/why-facebook-doesnt-use-git
Why Facebook doesn’t use Git

Explore the journey of Facebook's transition from Git to Mercurial, uncovering the technical and social dynamics that influenced one of the tech industry's pivotal decisions in source control management. This post delves into the reasons behind Facebook's shift, the challenges of scaling Git, and the pivotal role of community and collaboration in adopting Mercurial

Graphite.dev

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

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

Your Mac has “recovery mode” in the firmware, it will often boot into recovery automatically if there’s something wrong with your boot disk

Oh really? Agh I just assumed incorrectly then. Thanks.

Thanks for the ‘more realistic’ intro to dev. I will be showing him CLI. And I think these are good steps. First though I want to give him the opportunity to learn the ‘thinking/design/problem-solving’ element of programming.

Great suggestions. I’m tempted to get a Chat GPT sub myself.

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

Pyxel is coded in Python, but has opinionated libraries for building games, and has built-in sprite editor, map editor, and music editor.

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. If you’re privacy minded, it is easy enough to find the two files that need updated, by searching to e Codium wiki pages.

GitHub - kitao/pyxel: A retro game engine for Python

A retro game engine for Python. Contribute to kitao/pyxel development by creating an account on GitHub.

GitHub
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.

Kinda a neat utility for kids. I thought it was kinda neat when I used it as a kid.

scratch.mit.edu/parents/

Scratch - Imagine, Program, Share

Scratch is a free programming language and online community where you can create your own interactive stories, games, and animations.

I feel a lot of advice here is trying to push the learning envelope without considering “fun-ness”. 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 environments that hold your hand like 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 marble/piston/track machine on a hex grid
  • upperstory.com/turingtumble/ - A physical marble and lever puzzle “board” game that’s turing complete
  • <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
  • 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.
  • 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 it (best way to learn!).

Turing Tumble - Build Marble-Powered Computers

Turing Tumble is a revolutionary new game where players build marble-powered computers to solve logic puzzles. It’s fun, addicting, and while you’re at it, you discover how computers work.

Turing Tumble - Build Marble-Powered Computers

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

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.

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.

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.