[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)