I had a phone interview with Google today. I took notes; some of the
questions they asked were interesting. We were allowed to ask
questions. The interviewer didn't ask many questions in response to my
answers, except to occasionally say "interesting". There's almost
certainly more than one answer to each of these, and a few are probably
wrong answers or could be improved in some way; I only include my
answers for comparison. Any intermediate questions that I asked for
clarification or otherwise have been omitted.
Without further ado, a few of the more interesting ones:
Q: "You are shrunk to the height of a nickel and your mass is
proportionally reduced so as to maintain your original density. You are
then thrown into an empty glass blender. The blades will start moving
in 60 seconds. What do you do?"
(my answer): Take off all my clothes, wedge them between the
blades and the floor to prevent it from turning. Back up against the
edge of the blender until the electric motor overheats and burns out.
Using the notches etched in the side for measuring, climb out. If there
are no such notches or they're too far apart, retrieve clothes and make
a rope to hurl myself out.
Q: "How would you find out if a machine's stack grows up or down in memory?"
(my answer): Instantiate a local variable. Call another function
with a local. Look at the address of that function and then compare. If
the function's local is higher, the stack grows away from address
location 0; if the function's local is lower, the stack grows towards
address location 0. (If they're the same, you did something wrong!)
Q: "Explain a database in three sentences to your eight-year-old nephew."
(my answer): A database is a way of organizing information. It's
like a genie who knows where every toy in your room is. Instead of
hunting for certain toys yourself and searching the whole room, you can
ask the genie to find all your toy soldiers, or only X-Men action
figures, or only race cars -- anything you want.
Q: "How many gas stations would you say there are in the United States?"
(my answer): A business doesn't stick around for long unless it
makes a profit. Let's assume that all gas stations in the US are making
at least some profit over the long run. Assume that the number of
people who own more than one car is negligibly small relative to the
total American population. Figure that 20% of people are too young to
drive a car, another 10% can't drive because of disability or old age,
5% of people use public transportation or carpool, another 5% choose
not to drive, and another 5% of the cars are inventory sitting in lots
or warehouses that a dealership owns but which no one drives.
There's about 280 million people in the US; subtracting 50%, that means
there's about 140 million automobiles and 140 million drivers for them.
The busiest city or interstate gas stations probably get a customer
pulling in about twice a minute, or about 120 customers per hour; a
slower gas station out in an agrarian area probably sees a customer
once every 10 or 15 minutes, or about 4 customers per hour. Let's take
a weighted average and suppose there's about one customer every 90
seconds, or about 40 customers an hour. Figuring a fourteen-hour
business day (staying open from 7 AM to 9 PM), that's about 560
customers a day.
If the average gas station services 560 customers a day, then there are
250,000 gas stations in the US. This number slightly overstates the
true number of gas stations because some people are serviced by more
than one gas station. [Actual number in 2003, according to the Journal
of Petroleum Marketing: 237,284, an error of about 5%.]
P.S. Apparently, if you make it to the next stage, you can't even
tell people you're interviewing, because you sign a 6-page NDA. I haven't had to sign anything yet, though.