(no title)
SamBam | 1 month ago
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.
d-us-vb|1 month ago
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.
robocat|1 month ago
I think that is a developer's superpower. The poncy term for it is grit. I tell others that the secret to leaning computers is frustration and persistence.
> and then giving up.
Knowing when to stop or change direction is hard.
I've definitely wasted years of work failing to solve something that I eventually had to give up on (most memorably depending on nasty Microsoft products).
But I've also been paid very nicely because I've solved problems that others struggled with.
And I was paid for the failures too.
nomadygnt|1 month ago
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.
shakna|1 month ago
> 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".
[0] https://www.felienne.com/archives/6150
vacuity|1 month ago
inopinatus|1 month ago
pmontra|1 month ago
jackdoe|1 month ago
To be honest, it is very strange how hard it is to teach programming concepts, for some reason almost all humans use computers but only 0.1% or so can program them.
I am not sure we have the 'best way' to teach anything computer related.
People develop world model for physics quite early, they know they can pull with a rope but cant push with a rope.
And they get intuition, things that are thrown up, go down, and they can transfer this intuition in the math, because math is real.
For some reason its hard to do that with code. People keep trying to push with a rope, even after studying for many years.
PS: I am trying to teach her neural networks now and am working on this RNN board game https://punkx.org/projekt0/book/part2/rnn.html to fight the "square" dragon. I want her to develop good world model for neural networks, so that she understands what chatgpt is. I just keep experimenting, sometimes things click, sometimes not.
bc569a80a344f9c|1 month ago
This is nitpicking but I was curious: there are 4.4 million software developers in the US (https://www.griddynamics.com/blog/number-software-developers...). The population is 340 million, 0.1% would be 340,000. You’re off by over one order of magnitude.
smj-edison|1 month ago
Not saying this is the best way, but have you followed any of Bret Victor's work with dynamicland[1]?
[1] https://dynamicland.org/
dr_kiszonka|1 month ago
derrida|1 month ago
one shot result:
https://wonderful.exe.xyz
you could do the same, or I could give you access to this one if you want.
empath75|1 month ago
d--b|1 month ago
dhosek|1 month ago
williamcotton|1 month ago
https://github.com/williamcotton/guish
It's a GUI for constructing and executing Unix pipelines and it shows the output of each step in the pipeline.