Network Programming in Go
Network Programming in Go
Summary:
Introduction
The book "Network Programming with Go" by Jan Newmarch was published in 2017 and immediately earned a worthy place in every Go developer's library. This is not just a reference guide to network protocols — it is a full-fledged practical guide that teaches you how to build reliable, scalable, and secure network applications in Go. Despite being written for Golang, its concepts and approaches will be useful to any programmer working with networks. On the educational website PythonLib, we recommend it as a must-read for anyone who wants to delve deeper into network development.
What the book is about
The book covers all key aspects of network programming: from basic TCP and UDP protocols to high-level technologies like HTTP/2, RPC, WebSocket, and gRPC. The author progressively guides the reader from simple examples (creating a TCP client and server) to complex topics: asynchronous I/O, connection multiplexing, working with TLS/SSL, building distributed systems. Special attention is paid to idiomatic Go code: goroutines, channels, interfaces, and concurrency patterns.
Who this book is for
The book is aimed at developers already familiar with the basics of Go (syntax, types, basic constructs). Beginners in the language may find it challenging — it's better to first complete an introductory course in Golang. However, if you have already written simple scripts in Go and want to move on to creating network services, microservices, chat servers, or proxies — this book will be your best assistant.
What the reader will learn
- Fundamentals of network programming: OSI model, sockets, TCP and UDP in practice.
- Working with application layer protocols: HTTP/1.1, HTTP/2, WebSocket, SMTP, DNS.
- Creating RPC services: standard net/rpc and modern gRPC.
- Connection security: TLS/SSL, certificates, authentication.
- Concurrency in networks: goroutines, channels, connection pools, timeouts.
- Monitoring and debugging: profiling, logging, testing network code.
- Advanced topics: multiplexing (select, epoll), asynchronous I/O, frameworks (Gin, Echo) and their internal structure.
Strengths of the book
1. Practical focus. Each chapter contains working code examples that can be immediately run and modified. The author does not delve into excessive theory but shows how to solve real-world problems.
2. Structured approach. The material is divided into logical blocks: from simple to complex. Each chapter ends with a summary and links to additional resources.
3. Emphasis on Go idioms. Newmarch teaches you to write not just working code, but code that follows the Go philosophy: simplicity, readability, efficiency.
4. Deep coverage of security. A separate chapter is dedicated to TLS, encryption, and authentication — this is rare for books on network technologies.
5. Modernity (at the time of release). The book covers HTTP/2, gRPC, and other technologies relevant for 2017+. Even today (2025), most of the material remains relevant.
Who it is recommended for
The book will be useful for:
- Backend developers in Go building microservices and APIs.
- DevOps engineers writing network utilities and proxies.
- Students and instructors of network technology courses.
- Developers in other languages (Python, Java, C++) wanting to learn network approaches in Go.
If you want not just to "know the theory" but to be able to write production-grade network applications in Go — this book is for you.
Conclusion
"Network Programming with Go" is one of the best books