21 ms·
Question - where do you learn? I actually would love to know more about network programming. Specifically, "how do I go from electrons wiggling in a wire (or r
by CalRobert 4y ago
Question - where do you learn?
I actually would love to know more about network programming. Specifically, "how do I go from electrons wiggling in a wire (or radio waves in air) to the TCP stack"
I have had hints of this - the OSI model, wireshark, etc but when it comes to figuring out the nitty gritty of networks I feel like I'm stabbing around in the dark. How should I configure my networks on AWS? What's the best way to get VPC's talking to each other safely?
At an interview with a former (excellent) boss I was doing an exercise and set up a REST API. He said one simple thing - "ok, but why HTTP?" and suddenly my very, very faint memories of netcat came to mind and I ended up making it ~10 times faster but just putting bare messages on TCP instead of using HTTP. (I'd have used a low overhead protocol in a production situation). But I want that sort of idea to come naturally.
Should I just take the AWS cert courses or is there a better way? I want to have more than just "uhh netstat -peanut and grep for stuff" to figure things out.
Similar, how do the internals of linux work? I can generally get what I need to do, done, but I only knew to check load average after a colleague mentioned it.
Everything I've learned is top-down; I think I'd like to learn bottom-up.
- mikevin 4y agoThis might be a bit extreme but if you really want to learn bottom-up I would suggest nand2tetris https://www.nand2tetris.org/ https://www.nand2tetris.org/ It's not about networking but it's a good way to understand the picture from electrons wiggling to a basic computer. It involves all the layers below Linux basically and a little bit of overlap. I'm not sure how much it will help in your network programming goals but it's not that hard to do and helped me a lot with fundamentals and knowing which parts of a system are responsible for what. For more direct help I believe Beej's guide to network programming is greatly recommended https://beej.us/guide/bgnet/ https://beej.us/guide/bgnet/