
A contemporary, yet classic, introduction to today's key networking technologies Computer Networks, Fifth Edition, is the ideal introduction to the networking field. This bestseller reflects the latest networking technologies with a special emphasis on wireless networking, including 802.11, 802.16, Bluetooth™, and 3G cellular, paired with fixed-network coverage of ADSL, Internet over cable, gigabit Ethernet, MLPS, and peer-to-peer networks. Notably, this latest edition incorporates new coverage on 3G mobile phone networks, Fiber to the Home, RIFD, delay-tolerant networks, and 802.11 security, in addition to expanded material on Internet routing, multicasting, congestion control, quality of service, real-time transport, and content distribution. Authors Andrew Tanenbaum and Davis Wetherall describe the inner facets of the network, exploring its functionality from underlying hardware to applications, including: Physical layer (e.g., copper, fiber, wireless, satellites, and Internet over cable) Data link layer (e.g., protocol principles, protocol verification, HDLC, and PPP) MAC Sublayer (e.g., gigabit Ethernet, 802.11, broadband wireless, and switching) Network layer (e.g., routing algorithms, congestion control, QoS, IPv4, and IPv6) Transport layer (e.g., socket programming, UDP, TCP, RTP, and network performance) Application layer (e.g., e-mail, the Web, PHP, wireless Web, MP3, and streaming audio) Network security (e.g., AES, RSA, quantum cryptography, IPsec, and Web…
Depends on how you prefer to learn, but here are a few suggestions.
I've heard good things about the Computer Networks book by Tanenbaum and Wetherall, but I haven't read it myself. Very broad and comprehensive. The most hardcore way would be to make reading RFCs your hobby. It can be tough to get through, but if you regularly take half an hour to do it, you'll learn so much. I've recently started a course at https://classes.pracnet.net/, which is good too.
On the side, I'm trying to enhance my knowledge on embedded systems as well, and picked up the book "Making Embedded System" by Elecia White. I have learned so much in just the first few chapters, even though I worked on an embedded software project for a full year recently. This has served me well, because previously my understanding of embedded systems was more of at the level of an Arduino, rather than an embedded developer. Arduino is fantastic for getting your feet wet, but it does hide away a lot of slightly complicated details (that are not actually that hard to learn with a little effort).
I would basically say, always prefer lengthy and somewhat dry textbooks over superficial and meme-heavy blog posts (or worse, YouTube videos). Learn the subject as if you only have one shot in your career to learn it, and have to learn a permanent representation of the subject that can last decades. Entertaining corporate docs, blog posts and videos are like a sugar-heavy diet for the mind, you'll feel energized at first, but eventually become sick from lack of deep understanding of anything
In a twist of irony, here is a blog post that explains this idea reasonably well - https://archive.ph/XSPRr
Here's a canonical blog post (again, the irony) on why understanding subjects deeply is important - https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-a...
Ask HN: Good book to learn modern networking? - https://news.ycombinator.com/item?id=38918418 - Jan 2024
Ask HN: Best Books for Modern Computer Networks - https://news.ycombinator.com/item?id=39501933 - Feb 2024
Ask HN: What is a good book to learn about the network stack? - https://news.ycombinator.com/item?id=18506651 - Nov 2018