[HN Gopher] Ask HN: Good books/courses to learn networking essen... ___________________________________________________________________ Ask HN: Good books/courses to learn networking essentials for web developers? With 'networking essentials' I mean software components which constitute the infrastructure which a webapp lives within: e.g reverse proxy, DMZ, firewall, etc. Author : giulianopz Score : 225 points Date : 2021-06-27 11:45 UTC (11 hours ago) | mattficke wrote: | This is a little more idiosyncratic than the other | recommendations, but the "Bite Size Networking" zine by Julia | Evans is a really nice overview of networking tools on Linux. | | https://wizardzines.com/zines/bite-size-networking/ | paulcole wrote: | How to Win Friends & Influence Routers is a classic for a reason. | isbvhodnvemrwvn wrote: | Not the reason for OPs question... | shubik22 wrote: | I'd recommend High Performance Browser Networking by Ilya | Grigorik[0]. It's definitely less in-depth/comprehensive than | some of the other suggestions here but I've found it to be a | really clear, accessible exploration of networking concepts | relevant for web development. | | [0] https://www.amazon.com/dp/1449344763 | jakub_g wrote: | There's not much about firewalls etc. there IIRC, more about | low level concepts like DNS, TCP and so on. Anyway it's a great | book. You can also read online at https://hpbn.co | eatonphil wrote: | It's one of the most practical and in-depth books even among | others shared in this thread so far. It's in the top four books | I'd recommend every developer to read (particularly because | it's so practical)! | mephitix wrote: | Out of curiosity, what are your other top 4 books? | eatonphil wrote: | As luck would have it, my blog on Github pages is down. So | here's the post describing the four in markdown. | | Tldr; Designing Data Intensive Applications, Effective | Python, The Google SRE book, and High Performance Browser | Networking. | | https://github.com/eatonphil/notes.eatonphil.com/blob/maste | r... | mephitix wrote: | This is great, thanks! | | +1 for both data intensive apps and Google SRE books. The | other two I haven't checked out yet | drums8787 wrote: | How well does the Google SRE book apply to environments | at smaller scale? | eatonphil wrote: | If you maintain any software system in a production | environment, I think its topics are pretty relevant! | drums8787 wrote: | Thx! | vitus wrote: | Since you mention the Google SRE book, I'm curious if | you've read the Google SWE book (and if so, what your | thoughts are). | | https://abseil.io/resources/swe-book has a link to a PDF | copy. | | I've read through about... half of it; at least from my | perspective (as a current software engineer at Google | with experience with most of the systems / processes | outlined in the book), a lot of it is philosophical about | the "why" of software engineering. | jijji wrote: | TCP/IP Illustrated, Vol. 1: The Protocols by W. Richard Stevens | [0] | | [0] https://www.amazon.com/TCP-Illustrated-Vol-Addison-Wesley- | Pr... | netfortius wrote: | I was waiting for someone to post this. | [deleted] | joethrow29292 wrote: | This, and any book by W. Richard Stevens. I also cut my teeth | on Internetworking with TCP/IP by Comer. | https://www.amazon.com/Internetworking-TCP-IP-One-6th/dp/013... | OminousWeapons wrote: | This is my favorite networking book but I think it would be | overkill for OP's needs. TCP/IP illustrated walks through | basically every protocol in depth starting from layer 2 and it | sounds like OP really just wants to understand the basics of | network administration like what you would see in a CCNA exam, | and even that might be excessive for their needs. | huy-nguyen wrote: | This is an oldie but goodie: " TCP/IP Network Administration (3rd | Edition; O'Reilly Networking)" by Craig Hunt. However, I think | nothing teaches networking better than making your own network | devices from open source components, for example, creating | routers/firewalls/access points from barebones Linux/Unix | machines. | giantrobot wrote: | Basic course: Networks are unreliable. Everyone's life gets worse | when you ignore that fact. | | Thanks for coming to my TED talk. | scudd wrote: | I think Beej's Guide to Network Programming is IMO hands down the | best resource I've come across: https://beej.us/guide/bgnet/ | | It also doubles as a very great introduction to C, if that | something you're interested in. It's funny because both C and | socket level programming are often a barrier, or at least they | were for me. It's an attestant to the quality of Beej's guide | that he introduces both simultaneously, and makes it very | approachable. | | This is one of those sources that helped me disproportionately | grow as a programmer in a short period of time. | superchink wrote: | +1 for Beej's. I took a networking course at UCLA that used it | as the textbook and it was great. | ruben81adelaide wrote: | Try the CCNA course of CISCO, "The Complete Network | Fundamentals". I did one of those years ago. It's a great course | to achieve a good base of networking. CCNA is just the first step | to a good introduction, if you like it, you can expand your | knowledge with more. | Scarbutt wrote: | This. A CCNA book is great start of the basics. | itsmemattchung wrote: | I took CCNA about 10 years ago and I would say its hands down | one of the best certification programs and applies to my day- | to-day as a software engineer. I also wrote about why all | software developers should have some basic network | troubleshooting skills here: https://dev.to/memattchung/why- | all-developers-should-learn-h... | nickelcitymario wrote: | I did the CCNA course in high school, and it's where I learned | how to troubleshoot. It has served me well beyond the scope of | networking. | JanMa wrote: | When it comes to networking fundamentals I can definitely | recommend "Computer Networks" by Andrew Tanenbaum[0]. | | [0]: https://www.pearson.com/us/higher- | education/program/Tanenbau... | read_if_gay_ wrote: | This and the Ross/Kurose one are definitely the canonical | textbooks, but Beej's Guide is a lighthearted and more easily | digestible alternative if you don't want to learn _everything_ | in detail. | sam56718 wrote: | I found this series to be very useful: | https://www.practicalnetworking.net/series/packet-traveling/... | oliverx0 wrote: | Here are 2 recommendations: | | https://hpbn.co/ | | https://beej.us/guide/bgnet/html//index.html | ramesh31 wrote: | Upvoted for beej. An absolute must read for anyone that works | with a TCP/IP based stack. | arman_ashrafian wrote: | I really like this textbook that was used in my undergrad | networking course. | | https://book.systemsapproach.org/index.html | | The "perspective" sections at the end of every chapter are really | interesting! | captn3m0 wrote: | Udacity has a Networking for Web Developers course[0], but I'd | recommend trying out things (such as running a simple web-app on | your own server). Things like: | | - Running https://certbot.eff.org/instructions | | - Trying out a few different web servers (apache/nginx/caddy) | | - Playing around with load-balancers on $cloud_provider. | | - Spending time with docker networking | (https://docs.docker.com/config/containers/container-networki...) | | - Playing around with various X-Forwarded header options in the | context of your application | | For a web developer, the most useful skill is knowing what each | and every component on the pipeline is doing before your code | executes on the request. As a common eg, if your application | seems to be loading stylesheets from `http://` instead of | `https://` despite being loaded over HTTPS, it is often because | your application didn't honor the X-Forwarded-Proto header (which | most frameworks will do for you). Similarly, seeing a local IP | address (192.168.x.y for eg) on a log, and realizing that you | should be using the X-Forwarded-Ip by "trusting your proxy"[1] | and doing it securely[2].[3]. | | [0]: https://www.udacity.com/course/networking-for-web- | developers... | | [1]: https://expressjs.com/en/guide/behind-proxies.html | | [2]: https://shubs.io/enumerating-ips-in-x-forwarded-headers- | to-b... | | [3]: https://blog.ircmaxell.com/2012/11/anatomy-of-attack-how- | i-h... | rsclient wrote: | For networking background and history, I came up with [this | list](https://sunriseprogrammer.blogspot.com/2019/09/a-network- | rea...) for some new people at work. It includes things | "everyone" used to know: a little bit about internet history from | the original sources, some of the most useful RFCs, and some | stuff about certificates. | nightchalk16 wrote: | Ben Eater Network Tutorial | https://www.youtube.com/watch?v=XaGXPObx2Gs&list=PLowKtXNTBy... | | tcp/ip rfc https://datatracker.ietf.org/doc/html/rfc1180 | | daryl's ip primer https://www.ipprimer.com/#/ | Tester_rjb wrote: | Tester | [deleted] | Tester_rjb wrote: | tester | stakkur wrote: | Not a book, and I only have one (positive) data point from a | coworker, but this free Udacity course tackles that subject: | https://www.udacity.com/course/networking-for-web-developers... | teleforce wrote: | I'd recommend Kurose's Computer Networking: A Top Down Approach | (now in 8th edition) book if you want to learn a proper computer | networks concepts because this is the definitive textbook. | | If you want the practical aspects of computer networks, you can | try Niall Manfields' Practical TCP/IP designing, using and | troubleshooting TCP/IP networks on Linux and Windows book. | Granted it's a bit old (2nd edition is essentially the same 1st | edition), but because you are after the essentials it should be | more than fine. Here's the review of the book: | | https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=122... | yagizdegirmenci wrote: | Yes! Kurose's book was the first book that i read about | networking and it gave me a pretty good level of foundational | knowledge, highly recommended. | mistahenry wrote: | I read Kurose's book in college and recommend it as the perfect | book for this topic. As a neophyte at the time, I remember | really drilling into the details of TCP and just being in awe | of how well thought out the whole system was. This book laid | such a good foundation for my career as a software engineer. | orangefox wrote: | TCP/IP Guide http://www.tcpipguide.com/ is one of my favorites. | Its free at the website and available as a book. | tootie wrote: | Networking is probably not what you're looking for. You are | probably more interested in DevOps and architecture. Topics like | DNS and edge caching. Reverse proxies are typically web servers | (ie nginx) or cloud services like API Gateways. Things like TCP | are rarely relevant unless you're doing serious micro | optimization. | imnitishng wrote: | IDK about OP but this is exactly what I'm looking for. Do you | have some good books/courses for the same? | news_hacker wrote: | I was also interested in this, instead of all the TCP/IP | resources mentioned here. You may find the Interconnect | section of this book helpful: | https://pragprog.com/titles/mnee2/release-it-second-edition/ | | It covers: | | - DNS | | - Load Balancing | | - Demand Control | | - Network Routing | | - Discovering Services | | - Migratory Virtual IP Addresses | inopinatus wrote: | On the contrary, I'd say the details of TCP/IP are inseparable | from the design, implementation, and practical | understanding/configuration of these elements. | spicyramen wrote: | I would start with Cisco CCNA it never gets old ___________________________________________________________________ (page generated 2021-06-27 23:00 UTC)