Introducing computing to a child
I’ve been very gradually easing my 5YO daughter into the world of computing. We began with a Remington typewriter to get her used to the idea of a QWERTY keyboard & the function of the shift key. Sadly, I was unable to procure a ribbon for it so she couldn’t actually generate any output, which eventually grew disappointing. So I replaced it with a label-maker that features a QWERTY keyboard. That was much more appealing and she delighted in typing out the names of her friends and stuffed animals to print labels for them.
Then I got her a copy of Grace Hopper: Queen of Computer Code to inspire her as well as How to Code a Sandcastle and Ara the Star Engineer to encourage her. Once she had gotten used to typing on a keyboard, I got her an AlphaSmart Neo to introduce the concept of editable text and files. This was much more exciting for her because the keyboard was considerably easier to use, the screen could display multiple lines of text at once, and her output persisted across sessions.
After hearing the stories about Grace and Ara many times, she began to start asking about coding. She even began eavesdropping on my work video chats during the pandemic and asking about Java and Flutter! She would watch in fascination as I hacked on code in Vim & ask if I was doing the same thing as Grace and Ara. It was time to plunge into the world of using real computers!
My wife has a clunky laptop she’d purchased over a decade ago, before I’d even met her; the battery no longer holds much of a charge and even the wifi doesn’t work very well. She had largely stopped using it a couple of years ago in favour of a newer laptop so she copied all her old data off it and I wiped the disk clean. Then I installed Arch Linux onto it. I did not install X. Our daughter was thrilled to finally get a real computer and I began teaching her how to use it from the ground up.
First I showed her how to log in by typing her username, which I conveniently set to be her first name in lowercase. I explained what a password is and why they exist. She grokked the idea, although she was initially a bit thrown off by not seeing the characters when she entered it. Then I taught her the whoami command and explained that it serves to verify that the computer knows who she is now that she’s introduced herself by logging in. I also taught her how to use clear to wipe the screen and the up arrow key to cycle through previous commands. She had some fun repeatedly using these three.
Then it was time to talk about files. She was already familiar with the concept of text stored as a persistent unit, thanks to the Neo. I explained that, unlike that word-processor with a fixed set of files, a real computer can have as many files as she wants but she needs to give each of them a unique name. Finally, I taught her how to get a list of the files that exist, how to create new files, add text to them (via the echo command and the output redirection operator) and see what’s in them (via the cat command). She amused herself by creating a file called `dog` & passing it to cat; clearly she has the right sense of humour to be a *nix hacker.
The next day I introduced the idea of making copies of files (and taught her cp) before I showed her how to delete them (via rm).