3 ms·
Yeah, but low level systems stuff isn't anything that's going to change anytime soon. My operating systems professor had been teaching that class for years! If
by temuze 13y ago
Yeah, but low level systems stuff isn't anything that's going to change anytime soon. My operating systems professor had been teaching that class for years!
If you write code, you should know what your code is running on. You should understand some of the layers of abstraction or at least be curious about them! Even if it's not related to your job, you shouldn't take the magic underneath for granted.
I see a big correlation between programmers who take a lot of this stuff for granted with cargo cult programmers - people who tend to think of things as "if I do x, y comes out" instead of "if I do x, this will trigger y, which causes z".
- oinksoft 13y agoSure, but why TCP and not UDP? Why threads and not processes? Why a web server and not a mail server? Why ports instead of sockets? The list you made is a decent baseline for somebody doing web development, but a smart person programming in another domain could easily pick up any of these things.
- toast0 13y agoTCP is more complex than UDP. UDP is really just I pick my local ip and port, and send to your remote ip and port, and hope you get it. TCP has handshaking, acks, flags, resets, etc; a lot more to go wrong. Anyway, understanding DNS means understanding UDP too. I've seen a lot of things in HTTP land that I wouldn't have been able to figure out without tcpdump. The most exciting thing is that livehttpheaders doesn't always tell the whole truth. :( But also subtle things like (TCP) load balancers mungling option fields, forged reset packets (and determining from whence they may have come), weird packet corruption. Yes, absolutely I don't expect people coming from an offline world to know the internet stuff... but who's really offline these days?