I've really enjoyed this exchange. I come to HN to have my thoughts provoked. Thank you.
One of the most shocking things (no pun initially intended) about learning electronics [as someone who has spent absurd amounts of time tweaking the user experience of interacting with text input elements] is the cold realization that you have to manually handle switch bounce. Because physics.
Wait, I have to think about how tiny bits of widget bounce when they come into contact with each other? Every button and every encoder? You'be got to be kidding me.
And so you set out on the dark road as you first wonder WTF is going on with your counter, then you start tracking the time between pulses. Then you learn about hardware interrupts and state machines and oscilloscopes. Then you learn about RC and Schottky diodes and soon, hex inverters.
Would I benefit from a two hour lecture about the math behind RC calculations? It might be interesting, but at some point if you pull enough yarn out of the sweater, it stops keeping you warm.
I have always really enjoyed clever and/or obsessive answers to "describe what happens when you type a URL into your browser". If someone starts with the mechanical behaviour of a cherry switch before talking about the USB protocol, is this not the free jazz of computer science?
Is it not our "The Aristocrats"?