Programmer who builds card games, board games and puzzles to teach his daughter machine code, C pointers and Unix, and writes on code and trust.
Commenters treat it as a source of hands-on teaching games, praising the 4-bit CPU card game and a gentle APL intro, and mention a coming C deck.
Well, this is not the n-th visual block language but an IDE with realtime reruns of modified code.
Tangentially, but not so much: I was talking with a 17 yo last weekend. She teached Python herself a couple of years ago and they are teaching it now in her class. She can't understand how her classmates can have difficulties understanding
x = 5
y = 6
z = x + y
I asked the value of z to a 30 yo that was listening to the conversation and he first answered 5 + 6, then looked at us, thought again and said 11.
The student then told me that some of the other students eventually understood that z takes the value of 11 but their question was "how a machine can do that" and nobody answered to them. I wonder if a little of assembler on a toy CPU could be a better starting point. For example this Machine Code for Kids card game [1] They are selling the cards from the home page of the site (I'm not affiliated with them, I just bought a few decks.)
Or a two bits binary adder with logic gates.
[1] https://punkx.org/4917/guide.html
I am halfway done with the C deck, as we are switching to C soon, and I will setup a kickstarter after, should be done around December.
I want her to know why x[3] and 3[x] are the same thing.
int x[3];
2[x] = 5;
printf("%d %d\n", 2[x], x[2])
A lot of people struggle with
x = 5
y = 6
y = x
x = 7
print(y)
and
x = [1,2]
y = [3,4]
y = x
x.append(5)
print(y)
There is something magical in understanding how the computer uses its memory, its almost as if you walk out of a mist.
I think it will be very valuable to have a set of 4 decks: python, machine code, unix pipes and C, so that the decks compliment each other. In the machine code deck there are few cards that have pointers (e.g. https://punkx.org/4917/play.html#43), and they can be used to help with the C deck for example.
Then its LISP.
I vibecoded https://punkx.org/apl/learn.html its good slow entry into gnu-apl, at least it got me to be able to make tictactoe, vibecoded or not, it helped me to start.
I am amazed how quickly APL changed the way I think.
Also strongly recommend watching Aaron Hsu on youtube.
There is no better time to re-learn programming, try APL, Forth, LISP, z80 machine code, UXN TAL, just try new things.
"Men are born soft and supple; dead they are stiff and hard. Plants are born tender and pliant; dead, they are brittle and dry. Thus whoever is stiff and inflexible is a disciple of death. Whoever is soft and yielding is a disciple of life. The hard and stiff will be broken. The soft and supple will prevail."
i love 4 bit cpus, it is so nice to teach with them
i made a card "game" for Richard Buckland's made up instruction set and my daughter was very receptive, we also started to build Ben Eater's cpu, but it was too slow and she got impatient
i think nibbler is the right amount of fun/effort, i will absolutely try it
link to the game if someone is interested (you can also print it yourself):
https://punkx.org/4917
> Linux experience is so miserable
This is just not true. I switched back to linux recently https://punkx.org/jackdoe/linux-desktop.html and honestly the experience is amazing. I even did dist-upgrade and everything still works, including all my pytorch stuff.
Windows experience is hundreds of times worse.
MacOS is quite good, I would recommend it as well, but don't dismiss linux without trying.