My favourite “lesson” I ever gave was in a grade 9 technology class. It was a pretty small class, about 10 kids. I split them up into two teams and made a competition. They chose their own teams — it ended up being boys vs girls. I never would have made it that way on my own but that’s how it worked out.
The school had a bunch of old, decommissioned PCs that were headed to the junk yard. I sorted through all of them to get two exact sets of working parts for the competition.
The goal of the competition was to recover a jpeg from one of the hard drives. Each team had a computer with the ram removed and two hard drives. One was blank and the other had the jpeg on it. They also had a Linux Mint installer on a usb stick.
I don’t remember exactly how I had set it up but it was points based, something about getting to different stages first. Like 5 points to be the team that turns the computer on first. One of the big ones was that they got an extra 10 points if they did the whole thing without a mouse.
I told the other classes about the competition and asked some other teachers if it would be okay for them to watch and cheer on. It ended up being the nerdiest and most exciting class ever. Students were literally cheering each team through a Linux install. One team got stuck and had to pull out the mouse. There was booing. It was so epic.
The girls won, being the first to recover the jpeg and they did it all without a mouse. It was so awesome. The jpeg was the meme about how would a dog wear pants.
It was about 5 years ago, my first year teaching. I really miss those days. I only teach math now, and while I like that, there was something magical about showing kids how fun computers can be.
I just started them on Linux machines from the get go. The same reason I got good at 3.1/95/98 was to setup games, filesharing, and getting hardware to work for better games. Even with Steam, there's always some work to handle oddities. The kids are rapidly becoming reasonable basic admins the same way I did. Whether they decide to go further and learn more will be up to them.
Give a kid the arch install wiki and a computer with the USB iso ready to go. Tell them they aren't allowed food until they install it and run neofetch.
The only advice I have is to try to make it interesting for them and not just additional practical information they have to memorize. You don't want to be the weird dad that insists on using stuff nobody else does, you have to show them what's cool about it, and also accept maybe they'll just stick with Windows for now.
I also think the main takeaway they should have out of it is that there's many ways of doing the same thing and none is "the correct and only way". They should learn to think critically, navigate unfamiliar user interfaces, learn some more general concepts and connect the dots on how things work, and that computers are logical machines, they don't just do random things because they're weird. Teach them the value of being able to dig into how it works even if it doesn't necessarily benefit them immediately.
Maybe set up a computer or VM with all sorts of WMs and DEs with the express permission to wreck it if they want, or a VM they can set up (even better if they learn they can make their own VMs as well!). Probably have some games on there as well. Maybe tour some old operating systems for the historical context of how we got where we are today. Show them how you can make the computers do things via a terminal and it does the same thing as in the GUI. Show different GUIs, different file managers, different text/document editors, maybe different DE's, maybe even tiling vs floating. What is a file, how are ways you can organize them, how you can move them around, how some programs can open other program's files.
Teach them the computer works for them not the other way around. They can make the computer do literally anything they want if they wish so. But it's okay to use other people's stuff too.
With my kid, he just gets on Steam and starts doing his thing with his friends like everybody else as if he was on Windows. It makes no difference to him. I figure I'd let him learn the same way I learned computers, by just standing back and letting him poke and prod around and giving assistance and guidance when necessary. He can't break anything important.
My kids have always been using Linux because that's what I use on my gaming PC. When it was time for my eldest to get his own computer I tried to educate him on the differences between Linux and Windows (admittedly with my bias) and he chose Linux. I feel like wobbly windows played a big part in that.
He moans about some unsupported multiplayer games now and then and I have told him that we have a spare SSD he may use to install Windows. But so far his suffering wasn't big enough to help me step him through that process.
Just introducing them to it is probably enough. Show them different desktop environments and applications to get them used to the idea of diverse interfaces and workflows. Just knowing that alternatives exist could help them break out of the Windows monoculture later. Enable all of the cool window effects.
Probably to play games, access the internet and maybe do their homework. Most probably, they don't use Windows because they specifically enjoy working with Windows, but because it easily lets them do whatever they actually want to do on a PC.
Spending 5h on fixing some weird incompatibility between the Nvidia GPU, your DE and Proton might be fun for some, but it's most probably not what your kid wants to do when they could be gaming or doing whatever they actually want to do. Problems like that can scare them off quickly.
So first setup the PC so that everything they usually do on Windows works without issues.
The next question is, why would your kid want to run Linux instead of Windows?
The usual advantages (FOSS, free to use, better for developers) don't really matter to most kids. The only things I can think of right now are:
Runs on PCs that aren't Win11 compatible
Some games like Minecraft run faster (but some games also run slower)
With the setup completed and advantages thought of, you can let the kid use Linux quite similarly to Windows. When the kid wants new software or has an issue, work together with them to get everything running. First do everything and let them watch, later let them do more and more of the process.
My father was lucky, I wanted a minecraft server so bad that I accepted to learn how to handle an Ubuntu Server, with ~10 years.
Then I kinda had my edgy hacking phase with 12, and installed Kali as dual boot.
As my Windows install got older, dirtier and buggier, I decided to just f it and installed Pop over everything.
So, get them to be interested in having/doing something requiring Linux, then show them the wonders of the Linux desktop, preferably not Kali, but something more user friendly, and finally wait till they want to reinstall for whatever reason, like a new PC (with AMD or Intel GPU).
I had good luck walking my nephew through installing and setting up arch. Great introduction into linux, he was 13 but thats close enough to the given range
A friend of mine got his son to use Linux by just not providing an alternative, he installed Debian edu (don't know if that's the name, but basically a Debian spin for kids with parental restrictions and stuff) on an old laptop for him and that's what he used. Once he got his own PC it was over though since he wanted to play Fortnite so bad that he bought windows for that. He still dual boots Fedora, but I don't think he has used it since the windows partition is there.
I think the thing is you can't really get kids (or people in general for that matter) into Linux the way you are probably into it and interested in it. At least not if they're not already interested in it on their own. They will learn how to use it sure, but not the way we're used to using Linux, understanding the intricacies of the system, keeping the system safe,... They'll probably find a way to do what they already do on windows and ignore that the OS is different.
I think I read his blog back then. Telling about the progress his (then) very young son made. How he didn't install a graphical user interface at first but the kid loved 'sl' (the steam locomotive if you mistype 'ls'), and cowsay and so on. And they had a command-line chat to communicate (or just smash buttons).
My kids only know Linux and have never seen Windows in their life before. They know their way around KDE just fine and get the stuff done they need. For gaming, it is steam with proton but mostly they game on consoles.
Awesome question. And good advice here. To add something: Don't just give them games. Hook up an old printer, install LibreOffice plus the openclipart images. Kids can make everything into a game. We used to play with my dad's old pc and imagined being private investigators and had our own little office. We printed out lots of silly stuff and took notes on the computer. There are a few 'learn typing on a keyboard' games, but back then I didn't have fun with them.
Maybe they like drawing, install TuxPaint, Krita. Or video editing or recording stuff, give them a webcam/phone and Kdenlive. Have them do a spoof on a movie or do their own Lego stop-motion film. Or they like to make music, install Audacity's sucessor, LMMS, a drum sequencer ...
And of course the whole kids-education metapackage if your distribution has one. So they can program little turtles and start coding with Python. You can do this at age 8, depending on the kids personality.
It works best if it's tied somehow into their lives. For example (occasionally) printing homework assignments, a stop-motion suite if they play a lot with Lego anyways...
Other than that, my boy scout education tells me to "look at the boy". Have them explore and see that they like. Assist and teach them how to operate the software they want to use. Help them once they get stuck or can't figure something out on their own.
You will have to guide them and show how they can achieve the results they want, so they stay motivated.
Give them background knowledge and tell them the 'why's. Why something is the way it is. I'd say that is the point where we get to Linux. At age 10 or so, you don't necessarily care about an operating system. But you're curious and happy to learn why there are different ones and why they behave differently and the story behind that. And the thing that hooks you is the possibilities and usefulness for your life. So that's why I recommend installing lots of useful (to kids) software.
And maybe give them a chat / instant-messenger program. So they can contact you and ask questions.
As it is with teaching generally, it heavily depends on how you do it. Kids are very curious by default. In my experience: "Look at the boy" has served me well. Kids come in a wide variety. Don't teach them top-down but find a mix of letting them explore and roam, but also make sure to teach them the basics first. And guide them how to apply things to their life and find use-cases and the fun in it. If you pay attention to them, you can adjust your own behaviour.
A discarded Windows laptop is ideal for use with Linux. That's what this Managing Director of an IT company has been doing for over a decade. My desktop PC is a customer cast off from a good five years ago. I slapped in an ageing Nvidia el cheapo card to get two monitors running. My laptop is a cast off from one of my employees - I simply opened it up and moved my M.2 card into it.
I do run ESET on my Linux gear to show solidarity and to show that Linux really is rather more resource friendly than Windows. I login to AD and I use Evolution with Kerb to access Exchange for email. I have the same "drive mappings" to the same file servers too and so on and so forth.
I used to teach word processing, spreadsheeting and databases n that for UK govt funded courses, I've written a Finite Capacity planner for a factory in Excel (note the lack of In-). I still find people who have no idea how decimal tab stops work or how to efficiently use styles. I can confidently inform you that Libre Office is just as good as MSO. They both have their ... issues but both work pretty well.
Kids are easy. Adults are a pain! KDE has a lot of educational games ready to go out of the box.
My sons are in that age bracket and when they requested a laptops for themselves (older sister got one for school stuff) I "borrowed" decommissioned thinkpads from work, threw empty ssd's on them and gave computers to boys with linux mint installer on usb-stick. Younger one got it running in couple of hours without any help and is actively learning on how to use the thing, yesterday he told me how he had learned to open software using keyboard shortcuts and in general is interested about the tinkering aspect of things. Older one has a bit more pragmatic approach, he got the installation done as well but he's not interested about the computer itself as it's just a tool to listen to a music, look up for tutorials for his other interests and things like that.
Both cases are of course equally valid and I'm just happy that they are willing to learn things beyond just pushing the buttons. But I'm also (secretly) happy that my youngest shares my interests and he's been doing simple games with scratch and in general shows interest on how the computers, networking and other stuff actually works.
As a kid I had windows 98 (and later xp) dual booted with debian and at some point some version of suse. This was ~20 years ago
Well I used it just fine and I knew a bout the mysterious "root" and "sudo" that my dad would use but I was just playing some games and maybe using the web browser.
Using the GUI I never learned Linux and it wasn't until a few years ago that I started using Linux again, and it was only because I wouldn't be able to continue using Windows 7 anymore.
So I don't have any experience with teaching Linux and especially not to kids, but I think kids are actually really good at learning stuff if they need too, so give them a PC and the tools to figure things out, if they want to use it they've got to learn, and don't give them other options where they don't have to learn anything.
My older brother got me into Ubuntu when I was around 12. He basically showed me the basics, like the terminal and a couple commands, then just told me to manpage or Google everything else.
Then I got Linux for the Wii and that really got me into the nitty gritties of Linux.
I taught adult education in college and always introduced people to computing with "DOS for Dummies" even though Windows was the OS they interacted with. By teaching them in a command line only environment first I could then easily teach them the desktop environment because they understood what was going on behind the scenes. I think the same could be done with Linux.
It's obviously not representative of the overall Linux experience but I recently realised that messing around on the Linux bits in ChromeOS would be a pretty good way to learn Terminal things, at least for Debian. It's sandboxed so it doesn't matter if you screw up and if you do it's like two or three clicks to start afresh, way simpler than setting up and resetting a standard VM for the inexperienced.
It, of course, means using a ChromeOS device but maybe that can be a secondary lesson on having megacorps profit from your data.
You can only teach someone Linux if they have a desire to learn it. If they don't want to learn it, then they might learn that it's "bad" or "weird" compared to mainstream OSes, which would be working backwards.