Why every Software Engineer should do CCNA

There was a guy named Dave. He was a brilliant engineer and had a reputation for being an expert in manufacturing machinary. His colleagues often came to him for solutions on difficult problems.

One day, there was a major malfunction in the manufacturing plant. The plant was down for a few hours, and the company was losing a lot of money. Dave was called in to fix the problem. He took a look at the problem, found root cause within an hour, and fixed the problem. The plant was back up and running in no time.

In the past, I have worked on several different interesting projects. Ranging from local grocery delivery, to helping people setup their own portfolio site within a few clicks. One thing that was common in all of these projects was they were hosted on a server, and hence could be categorized as "Web Applications".

This is why I thought to myself, "Huh, I should learn how the web works". I bought a neat book called Computer Networking - Top-Down Approach, and started reading it. I was amazed at how much I didn't know about the way day-to-day devices work. This is the reason why I turned to CCNA as well.

This also helped me understand the concepts used in daily operations such as Distributed Load Balancing, DNS, Subnets, CIDR blocks, and more. Knowing how the packets are transferred over the network, and what particular layers are in your control, and how the whole HTTP lifecycle works has helped me immensely.

Most of the Software Engineers in the current day deal with the web applications in some manner. Sometimes it is just a regular CRUD application, and sometimes it is a microservice that is part of a larger system. But most of them ignore the very basis of all this - the internet. How and why it works the way it does can help you become more like Dave.

IMO, go over to YouTube and check out NetworkChuck's Playlist on Free CCNA, download the Cisco Packet Tracer, and start tinkering around now.