During my interview with Yelp today I was asked the following questions:
- Why would you like to work for Yelp?
- How many bits can be represented by a single octal digit? Answer: 3 Source
- What should be the sizeof(int) on a 64 bit machine?
- How many bits can be represented by a single octal digit?
- On which data structure it would be faster to perform binary search linked list or sorted array?
- What is the worst case time of inserting element in the beginning linked list?
- What is the number for the kill signal in unix?
- How does a domain name map to a server on the internet?
- What does ssl stand for?
- Something about finding all references of a word or function under linux. I said use grep command and it seemed to be right.
- Something about mutable in Python. I don’t know Python so I didn’t answer it.
In a simplified way:
- browser checks cache; if requested object is in cache and is fresh, skip to #9
- browser asks OS for server’s IP address
- OS makes a DNS lookup and replies the IP address to the browser
- browser opens a TCP connection to server (this step is much more complex with HTTPS)
- browser sends the HTTP request through TCP connection
- browser receives HTTP response and may close the TCP connection, or reuse it for another request
- browser checks if the response is a redirect (3xx result status codes), authorization request (401), error (4xx and 5xx), etc.; these are handled differently from normal responses (2xx)
- if cacheable, response is stored in cache
- browser decodes response (e.g. if it’s gzipped)
- browser determines what to do with response (e.g. is it a HTML page, is it an image, is it a sound clip?)
- browser renders response, or offers a download dialog for unrecognized types
You can get more information here.
TCP/IP (Transmission Control Protocol/Internet Protocol) is the basic communication language or protocol of the Internet. It can also be used as a communications protocol in a private network (either an intranet or an extranet). When you are set up with direct access to the Internet, your computer is provided with a copy of the TCP/IP program just as every other computer that you may send messages to or get information from also has a copy of TCP/IP.
UDP (User Datagram Protocol) is an alternative communications protocol to Transmission Control Protocol (TCP) used primarily for establishing low-latency and loss tolerating connections between applications on the Internet. Both UDP and TCP run on top of the Internet Protocol (IP) and are sometimes referred to as UDP/IP or TCP/IP. Both protocols send short packets of data, called datagrams.
SSL stands for Secure Sockets Layer. It provides a secure connection between internet browsers and websites, allowing you to transmit private data online. Sites secured with SSL display a padlock in the browsers URL and possibly a green address bar if secured by an EV Certificate.
Encapsulation is the packing of data and functions into a single component. The features of encapsulation are supported using classes in most object-oriented programming languages, although other alternatives also exist.
Scalability is the ability of a system network or process to handle a growing amount of work in a capable manner or its ability to be enlarged to accomodate that growth.