What The F*ck Is The Internet Vol. 1: Bits, Encoding, Packets, and Protocols
I organize a weekly series of tech talks at work. It's a good way to stay up on what technologies people are using in and out of the office. Recently, I've started presenting at these talks on various computer science fundamentals I was never exposed to in college, using the presentation as a driver to read up on these topics.
Last winter I read a short book on cryptography and gave a presentation on various historical cyphers as a way to provide a context for modern cryptographic techniques (there were no slides). The theme was basically, "we tied this and it didn't work for this reason so now we do this instead".
I followed that up a few weeks ago with a presentation on basic networking. And when I say basic, I really mean from the from the ground up starting with binary encoding and work up only as far as protocols. Because we sometimes have non technical members of our team sit in on these talks I made en effort to really walk through all the fundamentals step by step. Here are the slides:
Hopefully, I'll be able to follow this up later in the spring with another presentation digging into how network messages are routed using IP address and sockets.
Meanwhile, as my experience of being a self-taught software engineer becomes increasingly common it's good to see new resources springing up as more developers try to fill in our knowledge gaps. I particularly liked this site which popped up on Hacker News this week: https://teachyourselfcs.com/