A year teaching myself how networks work
Second year of high school. After the OS-internals year I rolled into networking the same way, by reading the standards, then building small tools that exercised every corner of them. The output was less interesting than the curriculum I gave myself.
What I was learning
- DNS, DHCP, ARP. The protocols that make a network feel like one.
- Captive portals: how they work, why they sometimes fail, and the surprising number of layers involved.
- Traffic shaping, packet timing, and the bit where TCP congestion control is more like a feedback control system than a protocol.
- Web auth surfaces, and what a browser actually trusts, and why.
The honest part
Some of what I built during this year ended up being used inside my school's network in ways I shouldn't have used it. I got caught for that too. Same shape of mistake as the year before: I wanted to understand, and I confused understanding with permission. I do not condone any of it now. I'm leaving the page up because the learning was real, but it lives next to a footnote that says: that was the wrong place to learn it.
What it gave me
A working mental model of the internet. When I wrote the UDP hole-punching layer for the 4G car five years later, I wasn't learning it from scratch. I was reaching for something I'd already understood. The same is true every time I have to debug a flaky API call, or reason about why a service can't reach another one in a production environment.
It's also the year that solidified my interest in systems, not just code. Networks, OSes, hardware, ML pipelines. At a certain level they're all the same thing: state moving through layers, and someone has to know what the layers are doing.