Wiki idea: what happens when you press Enter on your browser
Here is an idea that I had and that I don't have time to work on. I read somewhere about the following job interview question:
What happens after you write a URL in your browser and press Enter?
If you think about this for a moment, you might realize that what this question really means is "tells us everything you know about computers". I have yet to find a topic that wouldn't be involved in giving a full response. Off the top of my head, and in roughly chronological order, you would have to explain...
- ... how your keyboard sends signals, including the difference between pressing and releasing a key. Also, how your computer display works.
- ... how to turn a series of electric impulses into a character.
- ... how to parse a URL, including the difference between Unicode and ASCII.
- ... how the internet works: DNS, TCP/IP, IPv4 vs IPv6, routing, etc
- ... how the browser and server negotiate the type of content they want. It might also include an introduction to the GZIP compression algorithm.
- ... a primer on HTTPS, including cryptography and handling certificates.
- ... what is a web server and how it works. Same for load balancers, proxies, and pretty much all modern server infrastructure.
- ... how your operating system renders anything on screen.
- ... how your web browser renders content.
- ... the standards involved in receiving content: HTML, CSS, JavaScript, etc.
I imagine that this would be a great idea for a Wiki: the main page would simply present the general question, and you could go deeper and deeper until you reach your motherboard's buses, your microprocessor's cache, the specifics of BGP, or pretty much anything that was ever used in an internet-connected computer.
I was never asked this question, which is a bit of a missed opportunity: I don't know exactly how many hours I could waste on this question, but I'm willing to bet it would be more than what any reasonable interviewer is willing to spend. More realistically, I imagine the point of the question is both to check whether you know about computers and, more important, whether you know when to stop talking about computers.