Introduction to Computer Networking
Tags: tutorial, computerscience, programming, webdev
Published: 2022-12-26 07:22:58

In this tutorial series, I'll walk you through the basics of computer networking to familiarize you with some basic concepts that may help you understand the tools you're already using or may use in the future. 

**Disclaimer:** This article series is not written to prepare you for a certification such as CCNA. The only reason for this tutorial series is to give you general knowledge about how things work under the hood.

## Reasons to learn computer networking.

### Less complication

![Struggling developer](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/38rby6zgdnhpmrsxshqw.jpg)

Nowadays, almost everybody uses technologies like Docker and Kubernetes or REST APIs. Every developer uses it, but only some know how these things work. And if you don't see how these things work, when you need to debug your code, you may spend considerable time before making it work again.
Understanding generic concepts like cloud computing, REST, cyber security,  or IoT becomes a nightmare if you don't have an existing knowledge of computer networking. For example, REST endpoints will feel like a black box without prior knowledge of HTTP.

### Stand out in the competition.


![Job interview](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1jz4bbt2ifnp5zt8i7mf.jpg)

Nowadays, more people become software engineers through boot camps or a CS degree. So the competition becomes more challenging every day as the number of developers also increases. Understanding how things work under the hood can help you stand out your profile in this competition.

### Being a better team player

![Team work](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1cnyfdtkuo2a0xli51qn.jpg)

You have already heard that soft skills are essential to land your dream job. And being a good team player is one of the soft skills you'll see in a random list of "n soft skills that every developer should have." kinds of articles or podcasts. It's not only having good relations with your co-workers. You should maintain reasonable social concerns with everyone in your social life. If you understand what your network engineer, your DevOps, or your DevSecOps colleague is doing in their day-to-day job and the kind of challenges they are facing, you can help them as a developer you can make their life easier. And this will make you a better team player.

### Path to becoming an expert.


![Complex working environment](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x2isczhmhgtv6e29e980.jpg)

Learning one or multiple programming languages inside out or using your favorite IDE may make you productive in your daily workflow. Having dozens of years of professional experience in your area may help you quickly understand more complicated scenarios, depending on your experience. But you will need more than these to make you an expert. To become an expert in your field, you must understand how things work under the hood. This is not only for computer science or engineering. For example, if you want to become an expert Formula 1 driver, you must understand aerodynamics or car mechanics. 

## Starting point: Vocabulary

As in most fields, the starting point of computer networking is also knowing some base vocabulary. I know this is boring, but there are not hundreds of them; most of these are things you've already heard.

- **Internet:** a global computer network providing various information and communication facilities, consisting of interconnected networks using a standardized communication protocol, IP (Internet Protocol). We can imagine this as a massive network with billions of connected devices.
- **Web:** the set of hyperlinks that connect the web pages between them. **It's crucial to distinguish the Web and the Internet**. 
- **Web server:**  a computer accessible on the Internet and contains the Web's resources such as pages, images, etc.
Web browser: a software program lets you consult the Web's resources.
- **HTML:**  or HyperText Markup Language, is a markup language that enables you to represent a web page. 
- **Protocol:** a system of rules that explain the correct conduct and procedures to be followed in formal situations. It can be either between two machines or multiple machines.
- **Speed:** the number of bits per second that your Network can transfer (upload or download)
- **Latency:** the number of seconds for the first transferred bit to arrive at its destination from the source.


## What's next?

I hope you enjoyed this tutorial. If you like this article please like and share. In the following article, we'll walk through two widely used representation model of computer networking. 

## More about [Makepad](https://Makepad.io)

We're a tech consulting company based in France and share computer science related content on our socials.
If you want to see more this kind of content follow us on our   socials: [LinkedIn](https://linkedin.com/company/Makepad), [Twitter](https://twitter.com/MakepadDev) and [Instagram](https://instagram.com/Makepad.dev).

{% embed https://dev.to/Makepad %}

Follow us on GitHub to stay tuned with our open-source projects:

{% embed https://github.com/Makepad-fr %}

To join to a community of tech enthusiasts where we talk about tech and other tech-related stuff 👇

{% embed https://discord.gg/NhvYEmyXN2 %}