Why my eldest needed a blinking LED before code made sense
My eldest has watched me code for years without much interest — screens, to a kid, all look the same whether they’re rendering a dashboard or a YouTube video. What actually landed wasn’t an app. It was a nine-dollar LED and a breadboard.
I’d tried the kid-friendly coding apps first — drag-block tutorials, turtle graphics, the works. They were fine as far as they went, but they went nowhere. The output of dragging blocks around is always just more blocks moving. There’s no moment where the world outside the screen visibly changes because of something you typed.
So we set up a Raspberry Pi instead. Same fundamentals — variables, loops,
conditionals — but the payoff was a physical light turning on in the real
room we were sitting in. GPIO.output(17, True) isn’t more sophisticated
code than anything in a tutorial app. It’s just code with a receipt.
The actual lesson wasn't the LED — it was watching a ten-line loop turn into "wait, can I make it blink faster?" on their own, unprompted. That's the tell that something clicked.
What surprised me wasn’t that hardware was more engaging than software — that part’s a cliché, and true clichés are still true. It was how much better I got at explaining code, because a kid asking why it blinked twice instead of once doesn’t accept “just trust the loop” as an answer the way a code review comment might. Explaining a system clearly to a curious kid and explaining it clearly to a teammate turned out to be closer to the same skill than I expected.
We’ve since moved on to a small motor and, against my better judgement, a passive buzzer. The house is louder. The explanations are getting better too.