7 ms·
I sometimes ask the question "how does the internet work?" in interviews. The vague and wrong answers I hear are astonishing. I'm looking for a basic understan
by OliverJones 11y ago
I sometimes ask the question "how does the internet work?" in interviews. The vague and wrong answers I hear are astonishing. I'm looking for a basic understanding of the layering of TCP, or RDP, or ICMP (or anything actually) on top of IP. I don't get that level of insight much. The people who do have that insight usually can go deeper -- slow-start, BGP, etc.
I wonder if we have a modern version of C.P. Snow's mid-twentieth-century two cultures lament. https://en.wikipedia.org/wiki/The_Two_Cultures https://en.wikipedia.org/wiki/The_Two_Cultures. That's the complaint that educated humanities folks don't know the basics of science.
Are we miseducating our so-called "full-stack" engineers by not offering them a basic understanding of telecom? Or are they not listening?
- moron4hire 11y agoOr is it just not very important? Obviously, from your line of questioning, you think it is. But for the majority of software developers who only work on CRUD web apps, is it at all necessary to know this sort of stuff?
- userbinator 11y agoInterviews for what type of work? I'm assuming it's networking-related?
- mariojv 11y agoDo you have a good recommendation for introductory to intermediate level guides for understanding the aspects of networking you find important? I learn a little bit about intra-DC networking on the job, but I've never needed to use anything else yet.
- Panoramix 11y agoYou have to stop at some point. Or do you go in depth into the workings of >10Gbps transceivers? the quantum mechanics of optical fibers? how to they manufacture top-notch photodiodes anyway? You can literally spend a lifetime in these depths.
- BatFastard 11y agoAnd the complexity is growing every second. Its glorious and confounding. I want a million life times to learn it all! I feel the learning is like living in a fractal. Just as you feel that you grasp the scale of it, you see a whole new level of complexity.
- userbinator 11y agoI think stopping at the MAC level would be a good place, unless you're interviewing for an EE job in which case the higher layers aren't so important.
- gue5t 11y agoWhat are some good resources for learning about >10Gbps transceivers (and high-speed communication in general)? I'm not sure where to start a Wikipedia crawl.
- VLM 11y agoVery little over 10G exists on any single wavelength, its all in stacking at different wavelengths. Much as your cabletv has a zillion 6MHz wide channels holding HDTV or whatever, you can run 4, 10, whatever, 10G ethernet light wavelengths on a piece of fiber at slightly different colors. https://en.wikipedia.org/wiki/Wavelength-division_multiplexing https://en.wikipedia.org/wiki/Wavelength-division_multiplexi... https://en.wikipedia.org/wiki/Synchronous_optical_networking https://en.wikipedia.org/wiki/Synchronous_optical_networking https://en.wikipedia.org/wiki/100_Gigabit_Ethernet https://en.wikipedia.org/wiki/100_Gigabit_Ethernet Note the difference between latency and bandwidth... infiniband isn't really all that fast, but it is very low latency. Infiniband-FDR "fourteen data rate" is technically over your speed criteria. https://en.wikipedia.org/wiki/InfiniBand https://en.wikipedia.org/wiki/InfiniBand You start having problems with infinitely narrow pulses because glass isn't linear enough and lasers aren't monochromatic enough, and multipath etc.
- VLM 11y agoThe question is a stealth customer support question. I'm not talking about interviewing for customer support, but unless you're hiring a hermit they'll be talking to other, probably non-technical people. I guess the standard HN car analogy would be asking a car mechanic how suspension works and you want to hire the mechanic that makes the questioner happy and comfortable and feels informed, not the mechanic who says F off noob LMGTFY or gets "stuck" in a deep corner of Hookes law analysis of torsion bars vs axial springs regardless of questioners interest or simply starts making stuff up about left handed crescent wrenches and frequency grease. Also you want a reasonably fast answer, not beating around the bush for an hour without figuring out what the customer is looking for. Its not just dealing with non-techies anyway. I could elaborate at length on ye olde FDDI 10b/8b optical code making analogies with good old AMI/B8ZS encoding on T1 circuits to maintain clock sync, but I might have to talk to a guy about 2015-era photodiode manufacture trivia or the photodiode guy might have to talk trivia with me, and its interesting to see reactions. Usually tech people get along better with tech people even if non-tech people ask the same question which is kind of interesting. As a strategy to "win" at an interview its pretty hard to beat a table turning approach of you tell me your mental model and I'll be your tour guide as we straighten out misconceptions as you steer us down the path to whatever it is you want answered or you reach your fill of answers. Gotta be brave for this one if they inevitably take some weird side detour, and yes they will notice if you start steering away from your own weak spot.
- akerl_ 11y agoThis goes on the list of interview questions that's great at letting the interviewer claim pretty much any candidate they want to discard is unworthy of the position. It's the tech community's variant of a voting literacy test. If you ask me "how does the internet work" and what you really want is details on the underlying protocols, at around the range of TCP/IP, why aren't you actually asking for that? Your question is so broad that it's not shocking in the slightest that most people pick a different focal point for their answer, especially given the already hostile interview environment and the added agitation provided by such an unclear question. If your goal is to elicit and understanding of somebody's background in TCP/IP and the surrounding protocols, ask them a question about that. If that's not relevant for the position (it's almost certainly not for most "full-stack" engineers), switch to asking questions that are relevant to the work they'll actually be doing.
- mikehollinger 11y agothis. I'll chime in as someone with a skill set that is completely not special (linux application development, and hardware / firmware / software integration), but in certain circles, is unique since it doesn't involve JavaScript (yet). I think the question is too vague, but I've asked a similar question: To kernel hackers (not application developers) - Tell me what you know about the Linux boot process To anyone with a 5th-gen language on their resume: how's a hash table implemented? (use of a feature or function without understanding why and how it works can lead to really interesting performance problems, even if the code is functionally correct)
- akerl_ 11y agoI'd argue that the cases where a hash table's performance characteristics come into play are few and far between for most developers, and when they do, it's way more relevant that the person have a general idea how to profile perf in their code and say "yup, this is the spot that I need to worry about optimizing first". By marking down people who don't know how to implement a hash table, you're cutting out a large chunk of your candidate pool, and I'm willing to stake my hiring choices on the fact that a decent chunk of them could easily by taught that knowledge if it became relevant for their career on your team.
- rayiner 11y agoThat question might be a conceit. I like to think that stuff is pretty important--I used to do that level of dev for a living. But does it really matter? That stuff is all pretty well abstracted these days. When was the last time the three-way handshake affected anyone? I'd compare it to the fact that I know jack shit about how cars work. I can't tell a spark plug from a ball bearing--I just take my car to the dealer when it makes a funny noise and keep writing checks until it goes away. And I'm okay with that.
- halayli 11y agoThe problem is in your question and expectations. Your question is very vague while your expectations are very specific. The candidate has to be lucky to give you an answer that you happen to be expecting.
- deleted 11y ago[deleted]
- camgunz 11y agoWhile I totally agree with your point, I think the problem goes both ways. A lack of understanding of science causes serious problems, especially when you look at policy making for example. However, there are plenty of scientists and engineers with completely wrong-headed ideas about social issues, history, and so on. I would argue there needs to be a lot more crossover: Liberal Arts majors should probably have to get through Chemistry, Physics, Calculus, Biology and Electronics, and STEM majors should probably have to get through (sorry, US-centric) Women's Issues, Western and World History, African-American studies, Introductory Constitutional Law, etc.
- perlgeek 11y ago> Are we miseducating our so-called "full-stack" engineers by not offering them a basic understanding of telecom? Or are they not listening? What's that "stack" anyway? Usually I get the impression that people frontend (user-interface, so usually HTML, JS, maybe a thin web app) and backend (API service, business logic and storage in a database). Is understanding of the OS, of the memory model, of networking protocols (and possibly even how they are implemented), specifics of file systems etc. part of it? What of the instruction set of the process, of the actual silicon layer? Understanding the physics of the embedded transistors? Understanding the quantum and thermodynamical problems that chip makers run into? The answer is probably different for everybody who uses that term, since it's a term people use for self-marketing, or for vaguely describing requirements of a job.
- seiji 11y agoBefore nodejs people started calling themselves "full stack" for doing JavaScript on the fronted and the backend, full stack meant everything from knowing networking hardware to kernel insides to databases to application servers to front end html/css/javascript frameworks.
- bjterry 11y agoEvery time I've heard the term full stack used, it referred to web developers, and I think it just implies that someone could go from nothing to having a full website without outside help. That is, they can create HTML and JavaScript front-end and a back-end using a web framework and a database. Anything outside of that is pretty much ignoring common usage. Obviously it isn't a situation like "if you wish to create a website from scratch, you must first create the universe" because that would be a singularly unhelpful definition of full stack.
- __d 11y agoI used to ask job applicants for a network-oriented programming position to explain how IP packets were delivered between machines: first on a LAN, and then on a WAN. The vast majority had no idea what went on beneath the BSD sockets API. Similarly, asking developers roughly how computation occurs (memory, cache, registers, instruction sets, etc) typically drew answers well into the comical spectrum. Yes, I think our education of engineers is failing them miserably.