Reasons to learn Computer Networking as a Software Engineer
Tags: networking, computerscience, learning, productivity
Published: 2021-09-07 12:09:58

Listed below are the reasons why you might consider studying Computer Networking. It doesn't matter what your specialization is.  
These are my personal opinions and reasons why I find this subject fascinating even though I don't directly work on it.

> Note: You don't have to be an expert in Computer Networks, just knowing the basics gives an edge. 

There are in no particular order.

## 1. Clear up misconceptions

Since we don't work in the networking field directly, we make some assumptions about how things might work. In fact, even the most basic terms that we ourselves daily use can be wrong.

> For a long time, I thought that the source port is the same as the destination port in a network packet header. All the concepts that depended on this misconception were also erroneously assumed.

Our misconceptions might even be unknown to us until someone challenges them. So challenge yourself and question everything. Be curious.

## 2. Unravel technical terms we encounter every day

There are certain terms that we often hear like routers, web servers, proxy, etc. If we invest time to understand these, it will help us gain a better understanding of the overall perspective.
We don't have to deep dive into them, but the concept behind them should be clear.

We're not just improving our vocabulary, but we're also understanding the meaning of the words as we use them in our conversations.

## 3. Visualize the "Big Picture": Information traveling around the world

An API request like the below one seems simple at first look.

```javascript
fetch('http://example.com')
```

But if we start unfolding it, it might take hours to understand the whole path.

> An oversimplification would be like this:  
Tracking the layers of TCP/IP model -> routers -> remote server somewhere in the world -> back to us  

Just connecting all these dots reveals the "Big Picture". 

<center>
![how-internet-works-1.png](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2py04ni08kzd6ct0okre.png)
Source: [Standford](https://web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm)
</center>

  
Now every time we work on a problem, subconsciously we'll think about it from a Computer Networking perspective as well.

## 4. History as viewed through the lens of Networking

The more I research computer networking, the more interested I become in its history.    

I started with "How the internet works" and now I'm mapping together how HTTP came into the picture, its evolution from HTTP/1 to HTTP/3. 

The questions like "Why does this tech exist?" and "What problems did it solve?" unravel the dilemma of which tech to use in what situations.
And this knowledge comes with practice as well as from knowing its history.

I'm amazed how Computer Networking is evolving and yet it's using the same principles.

---

If any of these reasons convinced you to dive into computer networks, what were they? I'd love to hear any additional reasons that you might add to this list.

## Final Note  
Thank you for reading this article. If you enjoyed it, consider sharing it with other people.
If you find any mistakes, please let me know.
Feel free to share your opinions below.