Grokking Computer Networking for Software Engineers
Learn networking essentials for software engineers: client-server models, Python sockets, CLI tools, key protocols, and hands-on distributed processing.
Dr. Khayyam Hashmi is a seasoned computer scientist and Generative AI and Machine Learning specialist. As a researcher, educator, and the VP of Technical Content at Educative, he is dedicated to making complex computing concepts accessible for learners worldwide. With a PhD in Computer Science from Wayne State University and academic publications in service-oriented systems and intelligent computing, Khayyam excels at fusing an academic perspective with practical software engineering insights. Khayyam’s courses, writing, and research spans technical topics including adaptive AI systems, neural networks, Intelligent tutoring systems, and production-ready software design.
Join 3.1 million developers at
What You'll Learn
- Identify core networking terms, layered architecture, and encapsulation across OSI and TCP/IP models
- Use ping, traceroute, tcpdump, curl, nslookup, dig, and host to inspect and troubleshoot network behavior
- Build UDP and TCP client-server applications in Python using sockets, sendall, and custom receive logic
- Analyze HTTP requests/responses, status codes, headers, persistent connections, and cookie-based sessions
- Explain DNS hierarchy and interpret A, CNAME, MX records and DNS query/response message fields
- Implement routing logic in Python by simulating RIP updates and computing shortest paths with Dijkstra’s
- Compare UDP vs TCP reliability, flow control, and congestion control using sliding windows and AIMD/slow start
Learning Roadmap
1.
Getting Started
Getting Started
2.
Getting to Know the Internet
Getting to Know the Internet
3.
Access Networks
Access Networks
4 Lessons
4 Lessons
4.
Types of Computer Networks
Types of Computer Networks
4 Lessons
4 Lessons
5.
Network Infrastructure: The OSI Model
Network Infrastructure: The OSI Model
3 Lessons
3 Lessons
6.
The Application Layer
The Application Layer
20 Lessons
20 Lessons
7.
The Transport Layer
The Transport Layer
25 Lessons
25 Lessons
8.
An Introduction to Socket Programming with Python
An Introduction to Socket Programming with Python
9 Lessons
9 Lessons
9.
Network Layer
Network Layer
27 Lessons
27 Lessons
10.
Link Layer
Link Layer
15 Lessons
15 Lessons
11.
Conclusion
Conclusion
2 Lessons
2 Lessons
Show License and Attributions
Khayyam Hashmi
Computer scientist and Generative AI and Machine Learning specialist. VP of Technical Content @ educative.io.
Trusted by 3.1 million developers working at companies
Anthony Walker
@_webarchitect_
Evan Dunbar
ML Engineer
Software Developer
Carlos Matias La Borde
Souvik Kundu
Front-end Developer
Vinay Krishnaiah
Software Developer
Built for 10x Developers












Free Resources