That said, I do think the translation into a physical card game means that kids aren't getting the experimentation and near-instant feedback that they'd be getting if they were doing this digitally.
In order for a kid to "win," they either have to already know, or explicitly be told using words, what all of the commands do. Then they have to hear the parent analyze their solution, and tell them where they went wrong. Picture, however, a different game, played online: A kid has no idea what "sort" does, but when they link the "sort" command to a blob of text, all the lines are sorted in order. Now no one has told them what this command does, but they've discovered it. By playing the role of a scientist discovering these commands, they might actually gain an intuitive understanding of them.
I'm thinking of the board game "robot turtle," where kids needed to create a "program" of commands to move a turtle to a goal. When they did that, they had near-instantaneous feedback: the parent moved the turtle. If the kid mixed up their left with the robot's left, the failure was obvious. But if the game has been re-made so that there was no board, and the parent and kid just needed to talk about whether the turtle would actually end up seven paces forward and three paces to the left -- i.e. doing it all verbally -- it wouldn't have been nearly as powerful.
So I'm not raining on this, I can see this as very cool. But I am having a hard time imagining it's the best way to learn to pipe together commands.
This idea of experimenting and getting instant feedback is just survivorship bias for a certain type of person, not “the way we ought to teach Unix shell”
This view is corroborated by the research summarized and presented in the programmer’s brain by Felienne Hermans.
> As that is not a surprise, since research keeps showing that direct instruction—explanation followed by a lot of focused practice—works well.
Note the "lot of focused practice".
Maybe Linux commands is a little different but I kinda doubt it. Errors and feedback are the way to learn, as long as you can endure the pain of getting to the correct result.
At least it was just $5 but I think it's 1000% more fun to actually use a unix terminal with some sort capture the flag kind of game.
I used to randomly set HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon Shell to cmd.exe on my daughter's laptop so she can run programs from there, e.g. go the discord directory and start discord from there.
Then I made unix pipes just to help her with https://overthewire.org/wargames/bandit/ and so we can discuss how do you make "programs that do not know how they will be used", e.g. the programmer of "sort" does not know how it will be used, and you can create ridiculous pipe chains with the cards, just for fun.
Of course I made other random tasks, e.g. we take a random book and we start "catting" and "grepping" it
Most of the games i made on https://punkx.org are like that, i am just trying to teach her something and i need a bit of physical help to "get out of the computer"
The only real card game is http://punkx.org/punk0 which is like uno with state and I play it often with friends, and https://punkx.org/overflow/ which is super intense depending who you play with.
2024 - https://news.ycombinator.com/item?id=41047110 (41 comments)
2022 - https://news.ycombinator.com/item?id=33222687 (59 comments)
Started using it last year and being able to type ‘ls | sort-by modified -r | take 5’ feels liberating.