That is great to hear. My kids are both on pi 4s, but we customized the Debian distribution quite a bit to optimize its hardware acceleration capabilities and to overclock the hardware as much as possible. The pi boots from a fast nvme usb drive and i/o peripherals are connected via a fast usb hub. They are cooled by the ice tower [1]. They are both using exwm [2] and do not require a mouse. They both type on plank mechanical keyboards from olkb. All of this customization they found quite exciting. Especially being able to mess with their own keyboards.
> I'm trying to wean them off iPads and consumption devices. But it feels like addictive apps can draw them back very quickly (looking at you, YouTube).
We do not own any ipads. Only desktop computers, and I own a couple of laptops, such as the librem 14 and the mnt-reform. Youtube is a bit of a problem, I agree. They need access to it for their schooling at the moment, but the use of it does need to be limited, and the content limited as well, or they will just start watching brain numbing junk. I have decided not to block anything on our network with the goal of establishing a sense of trust, but I also don't allow them to have free rein. It is an endless exercise in finding the right balance :-). To be honest, it is much more of a problem with my son, then it is with my daughter, who spends a lot of her free time drawing and writing and isn't as entertained by youtube videos.
As for teaching them to code, I have been giving them series of exercises and challenges that build up their skill with a few goals:
1. to build their own online mud (multi user dungeon)
2. to write their own compiler
3. to write their own operating system
4. to make their own computer
5. They each have come up with their own personal projects, so I tailor exercises to help them with problems that they need to solve
For our development environment, we use emacs + eglot [3], which is not surprising since the windows manager is exwm. I make them compile and debug from the command-line, because I want them to be competent with standard command-line tools. Fancy GUI-centric IDEs are distracting because all of the options are visible to them even though they lack the skill or need for such features.
I wanted this to be a happy experience, so I have never pushed them, but always challenge them to push themselves. I spend a few hours with them every weekend, then a couple of hours with them mid week to help them with challenges. But that is not how I started. I started with 1 hour first thing every morning Monday to Friday to teach them the basics and get them inspired. If they seemed drained, or I sensed that they needed a break, I just let them have a day off.
We also play erion mud [3] and sometimes hexonyx [4] because I wanted them to understand what a mud is all about and to build up interest. I am really into text-based games, so not surprisingly we play nethack (rogue like) [5]. I am also into interactive fiction and started them off on Adventure [6]. If you are interested in interactive fiction, then you might enjoy reading "Twisty Little Passages - an approach to interactive fiction" by Nick Montfort [7].
Full disclosure, I believe that the main reason I am able to pull this all off is that my wife and I home-school our children. It is a challenge though. Very few families where we are from are similar to us in our philosophy of technology and education.
[1] https://www.amazon.com/GeeekPi-Raspberry-Cooling-Cooler-Heat...
[2] https://github.com/emacs-exwm/exwm
[3] https://github.com/joaotavora/eglot
[7] https://quuxplusone.github.io/Advent/play.html
[8] https://www.amazon.com/Twisty-Little-Passages-Approach-Inter...
[2]https://microcorruption.com/
[3]https://amar.bornofsnails.net/login
[4]https://overthewire.org/wargames/bandit/
Just though I'd toss those your way. I also love text-based gaming, so I'll be trying out the MUDS you linked. I used to play many moons ago, and definitely miss that era of my life. Was also big into the BBS scene in those days as well. And of course, who doesn't love Nethack? Ahh, the memories.
Yeah, I was wondering how to teach my kid some computer languages I never quite got the hang of
I could not agree with this statement more. I started teaching my daughter Python and bash when she was 8. I am currently teaching my son (11) C++ and bash and he does all of his coding in emacs. They both use exwm and are eager to continue learning.
Having said that, I can see a huge challenge for non-technical parents. If those families would like to teach their children about computers, operating systems, the internet, web browsers and possibly programming, they need help from somewhere. I don't think my kids would have stuck with it if I had just handed them a link to the RFC standards [1] or the c++ getting started resources [2]. I really can't say how I would have approached ensuring my kids had a head start with technical computer knowledge had I not the knowledge myself. It is a predatory world out there, and access to your child's attention is valuable since they are the future. It must be difficult for parents who are conscious of this to find quality technical learning resources for their kids.
[1] https://www.ietf.org/standards/rfcs/
[2] https://isocpp.org/get-started