I started working as a sysadmin just as cloud really took off. I wasn’t really exposed to a lot of the networking minutiae. That was over 9 years ago. I never had to deal with something complicated in the world of networking. I stuck in my Linux lane and never wandered over to the networking lane. I knew some of the basics, but nothing further. It’s been 8 years and I’ve realized that it’s held me back a bit. One of the changes I’ve made ever since I read the Google SRE book is how I approach technical problems. I’m no longer happy to stop at, “Look, I got it working” or “The bug is not in my code, it’s in the library or a layer above”. I want to figure out the root cause.
Recently, I read Julia Evans’ post abut learning skills and it reminded me that networking is something I don’t know very well yet. I’ve looked at books that explain some basics, but I haven’t really gone in depth to understand how the pieces fit together. I don’t have the pressure of learning to pass a competitive exam. I just want to learn so I can fill in the gaps in my knowledge. Just in time, LinkedIn had offered me free premium for a month which also gives me access to LinkedIn Learning. I spent some time looking for a reasonably good course on networking. It’s been a great watch! The course is actually for CompTIA’s Network+ exam, which I have no intention of writing at the moment. However, it presented a good explanation of networking and TCP/IP. I knew some of the topics individually, but I couldn’t tie all of my knowledge together yet. The few days of watching Networking videos has been great. I don’t understand everything in great depth, but I know most of it and I know where to look for more details.
I’ve been reading and listening a great deal about growth mindset and deliberate practice. I’ve been in the tech industry for the last 9 years. I don’t have a degree yet, and even when I finish my current degree, it will not be in computers. It was humbling at first to sit down and learn something from scratch. At the same time, it’s very relieving. I’m more confident that I can understand networks better. I had most of the networking debugging skills I needed, but now I understand the theory better as I debug problems. Similarly, as a python programmer, I’ve barely ever looked deeply into the Unix kernel. However, as a sysadmin, when I debug problems, I would need a more in-depth grasp of what goes on behind the scenes. In the later year, I spent some time reading Advanced Programming in the Unix Environment. I don’t have it committed to memory, but I’ve read it broadly enough to understand where to look. I’ve understood a lot about what happens for IO/Networking/Process Management in Unixes. It helps me appreciate what goes on in Gluster better. It also helps debug some of the more weirder errors that I might run into.
I write this out as a note to myself. There is no shame in sitting down to learn something that you don’t know. It’s not going to be easy, but I’m going to be grateful for it.