4 ms·
It's funny how the things you know well always happen to be the bare minimum of what you expect from others. Then you learn something else and hopefully realize
by oinksoft 13y ago
It's funny how the things you know well always happen to be the bare minimum of what you expect from others. Then you learn something else and hopefully realize that yourself of yesteryear still managed to write good, maintainable software, but that your current self would consider the old self a charlatan.
Lists like these reflect your own experience. I care more if an engineer can quickly grasp the "big ideas": Maybe they don't know about threads, but do they express disbelief that they solve a real problem, or an unwillingness to explore them? A willingness and aptitude for learning is so much more important because the state of the art is a moving target.
- temuze 13y agoYeah, 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?