Are kids these days actually able to grasp things like this? I don't have kids and am never around them, so please take this question as genuine and in good faith.
It is difficult because I have to compete with snapchat and google/meta for her attention, and school is quite exhausting. Snapchat has this super annoying 'streaks' and the more friends you have the more streaks you have to keep alive, so you have to send like 400 messages per day.. its non stop. I teach her that there are 100_000 developers and psychologists and product owners and etc, that they go to work every single day thinking how to extract the most value out of her attention, and she has to constantly be aware of what is the "algorithm" making her do.
Unix Pipes she got quite quickly, but doesn't use often, but the idea of one program reading another program's output she got. Also grasping the command line was not that difficult. But I used quite some tricks to help. For example her windows PC I change the shell from explorer to cmd.exe, so it boots in cmd, so she has to navigate and also fix it. I also make scavenger hunts on her filesystem so she has to look for a file using dir and cd and etc, also https://overthewire.org/wargames/bandit/ I bribed her with robux for passing each level of the bandit game
I want to teach her how computers work and how to make them do what she wants. From what is a register, to an instruction, to a program to a process. Kihon no Kihon as they say. But in the process I also teach her how to break things down and how to think and most importantly how to learn. I teach her about the heart of things, so there is no mystery between the keyboard press and the letter appearing on the screen, or how chatgpt predicts the next word (I am working on a RNN board game with 3 neurons and you have to teach it to count https://punkx.org/move-37/rnn.pdf [work in progress])
So in the end I am not sure if it matters what you teach your children :)
> Snapchat has this super annoying 'streaks' and the more friends you have the more streaks you have to keep alive, so you have to send like 400 messages per day.. its non stop.
I had no idea. That sounds insane. Can that "feature" be disabled?
> I teach her that there are 100_000 developers and psychologists and product owners and etc, that they go to work every single day thinking how to extract the most value out of her attention, and she has to constantly be aware of what is the "algorithm" making her do.
It's great that you make her aware of it. And still, it sounds like an horribly unfair fight.
not that I know of, but also she has social pressure to not let her friends "down", its a huge thing who you have "streak" with, and also the longer the streak is the more "important" it is.
Not sure about kids, but I've seen university students that literally did not know how to use a non iOS computing device. Colleagues had to start explaining what a file is, a folder, etc etc, in their courses.
Honestly I don't find that too bad. My guess is that computers will go the same way cars did: Most people will only know the very basics that are needed to operate the thing. Any deeper knowledge will be left to enthusiasts and professionals. Thus computers, while getting more complicated internally, will have fewer and fewer modi of usages.
What is a file, what is a program, how programs run and how programs communicate, is not understood by most people (including most CS students).
> Honestly I don't find that too bad.
I understand what you mean, it is the same with most technology, users just use it, as your example of cars, or even furniture, or forks and spoons, or language, I am not even sure it is related to complexity.
But I disagree on what it means to use a computer, because unlike other machines, it does what you make of it (now even more, with llama 3.1 out), I think to use a computer means to program it. Somehow in the last 30-40 years, user interfaces gave up on their users. You dont own your programs, your files or in many cases even your computer, it doesnt start the programs you want(iphone for example), and you cant debug other programs (e.g. in case of macos you cant gdb -p into signed programs unless you disable the system's integrity protection).
Somehow we managed to squeeze all the fun out of it. As John Carmack says: the distance between what it is, and what it could be, is the opportunity, and I am sure people can have way more fun programming :)
The first class of my CS degree was "How to use Microsoft Word" and some of the other students had a really, really hard time figuring this out. Including the guy next to me who kept telling me he had a job lined up already to write software for nuclear reactors in Pascal.
Great fun with the autocorrected Unicode double quotes.
A customer of mine got bitten on a preproduction server because of a copy and paste from some blog, where ASCII " were converted to Unicode (slanted) "
Why would using a fancy editor be in any way relevant to writing code? That CS class should be dropped from the curriculum, imo, until such time as bolding a register has some sort of meaning, or perhaps viewing an sql table via "print preview".
A good developer I've been working with years ago told me "I really don't know how networking works [and SQL] but... I studied Graphic Design, not CS. While I was studying that I realized that I liked programming more than design so I started doing it and never got a formal education about computer stuff." He was really good at Node and he ended up being the lead developer of the company he was working for. I know good developers coming from all sort of backgrounds, from Philosophy to Agrarian science (if that's the right English term for that.)
It is difficult because I have to compete with snapchat and google/meta for her attention, and school is quite exhausting. Snapchat has this super annoying 'streaks' and the more friends you have the more streaks you have to keep alive, so you have to send like 400 messages per day.. its non stop. I teach her that there are 100_000 developers and psychologists and product owners and etc, that they go to work every single day thinking how to extract the most value out of her attention, and she has to constantly be aware of what is the "algorithm" making her do.
Unix Pipes she got quite quickly, but doesn't use often, but the idea of one program reading another program's output she got. Also grasping the command line was not that difficult. But I used quite some tricks to help. For example her windows PC I change the shell from explorer to cmd.exe, so it boots in cmd, so she has to navigate and also fix it. I also make scavenger hunts on her filesystem so she has to look for a file using dir and cd and etc, also https://overthewire.org/wargames/bandit/ I bribed her with robux for passing each level of the bandit game
I want to teach her how computers work and how to make them do what she wants. From what is a register, to an instruction, to a program to a process. Kihon no Kihon as they say. But in the process I also teach her how to break things down and how to think and most importantly how to learn. I teach her about the heart of things, so there is no mystery between the keyboard press and the letter appearing on the screen, or how chatgpt predicts the next word (I am working on a RNN board game with 3 neurons and you have to teach it to count https://punkx.org/move-37/rnn.pdf [work in progress])
So in the end I am not sure if it matters what you teach your children :)