Grokking Computer Networking for Software Engineers black with pink text with cartoon machine image background in blues

Grokking Computer Networking for Software Engineers [ Course Review]

Grokking computer networking for software engineers is no small task. And having a firm understanding of how it all goes together is crucial:

  • The fundamentals of how the Internet works
  • Socket programming in Python
  • Client-server architecture
  • Command line tools

The list goes on.

As a software engineer, computer networking skills help you in the engineering process.

That’s a lot to take in.

But luckily there’s a course that can help…

This post contains affiliate links. I may receive compensation if you buy something. Read my disclosure for more details.

“So what’s this Grokking Computer Networking for Software Engineers course all about?”

Well, while the course is listed for beginners, don’t expect to kick back and relax.

It’s packed with hours of hands-on learning materials including lessons, quizzes, challenges and playgrounds.

Student learning environment: TCP Header Flags lesson in Grokking Computer Networking for Software Engineers

“What will I be able to do by the end of this course?”

Upon completion of this computer networking course, you’ll be able to:

  • develop socket programs in Python
  • trace network metadata through the command line
  • debug network problems with tools
  • understand how apps work from the network perspective
  • understand browser interactions with websites

And much more.

Now let’s check out this course in closer detail!

Want to know more about the Grokking series on Educative?
Check out our full review list.

Grokking Computer Networking for Software Engineers

⚠️ Level: Beginner


Estimated completion time: 20 hours

Grokking Computer Networking for Software Engineers kicks off with an introduction to the basics.

And then you’ll go through 9 learning modules:

🔷 Getting to Know the Internet

🔷 Access Networks

🔷 Types of Computer Networks

🔷 Network Infrastructure: The OSI Model

🔷 The Application Layer

🔷 The Transport Layer

🔷 Introduction to Socket Programming with Python

🔷 Network Layer

Each module contains a heavy load of information. But they’re broken down into smaller, digestible lessons.

So let’s see what’s inside these modules…

✨ Module 1: Getting to Know the Internet

This module covers the absolute basics of what the Internet actually is. You’ll learn about:

  • what a network is
  • the purpose of computer networks
  • Internet networks

And from there you’ll learn extensively about the history of the Internet.

We’re going all the way back to The Cold War in this history lesson. It covers things like ARPANET and CERN all the way up to the Internet of Things.

Old school computer computer networking, ’80s style

Then it addresses Internet Standards Documents and RFCs.

And finally, this computer networking course module covers communication over the Internet:

✅ Protocols – TCP, UDP, HTTP

✅ Packets

✅ Addressing – IP addresses, ports

And then you’ll take one of many quizzes throughout this course.

✨ Module 2: Access Networks

An access network is a user network that connects subscribers to their service providers. So this section goes over:

The Edge of the Internet – end systems, network edge

Access Networks – network interface adapter, transmission rates

Types of Access Networks – DSL, cable Internet, FTTH, etc.

And more.

✨ Module 3: Types of Computer Networks

Next you’ll learn about types of computer networks:

Guided Physical Media – coaxial cable, fiber optics, twisted pair copper wire, etc.

Unguided Physical Media – terrestrial radio channels, free-space optical communication

Topology – bus, ring, star, tree, mesh

Geographical DistanceLAN, MAN, WAN

✨ Module 4: Network Infrastructure – The OSI Model

This module covers 3 key topics.

1. Layered Architecture & Protocol Stacks – Here you’ll learn about vertical and horizontal layers, independent evolution, encapsulation and decapsulation.

2. OSI Model Layers – This covers layers such as application, presentation, session, transport, network, etc.

3. TCP/IP Model – You’ll discover the layers of the TCP/IP stack, end-to-end argument in system design, and more.

✨ Module 5: The Application Layer

Here is where you’ll dig deeper into TCP/IP layers. This is an expansive module that covers:

Network Application Architectures – client-server, peer-to-peer, data centers, hybrid

HTTP basics – anatomy of a URL, objects, lower layer reliability, types of connections, request and response messages

Email – SMTP, POP, IMAP, check domain’s mail server, etc.

DNS – types of servers, local DNS cache, records, messages

BitTorrent – trackers, torrent files, swarming, etc.

BitTorrent in relation to HTTP and Gnutella in Grokking Computer Networking for Software Engineers

Plus you’ll learn about cookies, how processes communicate and much more.

✨ Module 6: The Transport Layer

The transport layer delivers messages from the network to relevant applications.

And in this complex module, there are 25 lessons which cover:

Congestion Control – bandwidth allocation principles, efficiency and power, max-min fairness, convergence

✅ Reliable Data Transfer – checksums, retransmission timers, pipelining, go-back-n protocol, etc.

Reliable data transfer quiz question in Grokking Computer Networking for Software Engineers

User Datagram Protocol (UDP) – structure, capturing UDP packets, checksum calculation

Transmission Control Protocol (TCP) – segment header, header flags, 3-way handshake, connection release, data transmission, scaling, AIMD, etc.

In addition, you’ll become familiar with multiplexing & demultiplexing, measuring RTT with ping, and more.

✨ Module 7: Introduction to Socket Programming with Python

Ready get started on socket programming with Python?

This module will teach you the basics like:

Plus, you’ll work on a project: write a UDP chat app!

Then you can compare your app with the solution files.

✨ Module 8: Network Layer

A network layer allows end systems to exchange information through routers using packets.

This module explains it all in 27 lessons. Topics include:

The Control Plane – static and dynamic routing, distance vector, link state routing, route calculation, and more

The Internet ProtocolIPV4 packets, fragmentation, reassembly, etc.

Internet Control Message Protocol (ICMP) – headers, messages, sending messages with ping and traceroute

Middleboxes – firewalls and NATs

Routing in IP – intradomain and interdomain routing

Border Gateway Protocolhot potato routing, route selection algorithm

In addition, you’ll become familiar with Address Resolution Protocol (ARP) and Dynamic Host Configuration Protocol (DHCP).

Plus, there are multiple programming challenges that will give you a chance to apply what you’ve learned.

✨ Module 9: Link Layer

Finally, we get to the Link Layer module.

This module explains the data link layer and how it receives packets from the network layer. And from there it provides communication between physically linked entities.

In these 15 lessons you’ll learn:

Principles of the Data Link Layer – framing, error detection

Medium Access Control – static allocation, stochastic methods ALOHA & CSMA

Ethernet – frame format, physical layers, switches

Virtual LANs

Then you’ll work on a programming challenge to implement a simplified version of a spanning tree protocol.

💰 Cost

You can buy this course for $49 per year.

Or you can get these perks with a subscription to the platform:

Grokking Computer
Cost$49 per year$59 per month$21 per month
Access to
170+ courses
Early access to
new courses
Certificate of
Completion (New!)

You can check out Grokking Computer Networking for Software Engineers here.

Is Grokking Computer Networking for Software Engineers worth it? Conclusion

If you’re looking for a course jam-packed with hours of content, then Grokking Computer Networking for Software Engineers is worth it.

It will teach you much of the foundational knowledge software engineers need to have a firm understanding of client-server architecture and networking.

Up Next: What is a DevOps Engineer? The Comprehensive Introduction for 2020