HACKER Q&A
📣 never_inline

How do I grok networking concepts, as a software engineer?


I am a run-off-the-mill software engineer, very much junior, graduated a run-off-the-mill "computer science" degree with what I thought a good enough understanding of networks and OS.

I know stuff here and there about TCP, UDP, Port forwarding. kind of understand NAT, ping, traceroute, firewalls. But I keep seeing new stuff like "NAT traversal", "TCP head-of-line blocking" or "bridge network" my head will spin.

Is all this stuff part of standard computer science curriculum? If so is there a standard textbooks or courses to learn these basics?

Or does everyone learn this kind of stuff on-demand?


  👤 enasterosophes Accepted Answer ✓
You're just running into the fact that people often spurt jargon as a shorthand because they're trying to quickly get a point across to other people who have encountered the same jargon before. Everyone in the industry knows that it takes a long time to actually learn anything non-trivial to a deep level, and everyone knows that everyone has their strengths and weaknesses.

So, I see (and remember) how it seems forbidding, but I also see that you're being too hard on yourself, relative to what anyone will ever actually expect you to know. You will pick stuff up and make things happen when you need to. Until then, just ride the waves of jargon with slow inscrutable nodding.

If you're after specifics, I found I understood bridging a bit better after I decided to build a router from scratch. My router at home is just a linux box with a 4-port NIC (network interface card), and the ports on the card are bridged to make it easier to route and firewall them. I had to use a bridge, so I learned the command to make a bridge, suddenly I'm the bridging expert because no one else dogfoods this kind of crap, get it?


👤 jsz0
Just focus on the fundamentals. Ignore the obscure edge case stuff until it's relevant to what you're doing and chances are it never will be. There are experienced network engineers who don't know most of this stuff off the top of their head. If you can get to the point where you can read a packet capture and understand what's happening you're way ahead of the game.