Fog Creek Software
Discussion Board

How much tea in China

John Allen Paulos has written a decent article on estimating wild things like "how much tea is there in China"

His columns are always enlightening.

Homo Sapien Intelligentus
Saturday, July 5, 2003

Very cool!

I read a page on interviewing candidates for programmer jobs (I think it was at that advocated asking questions like this -- the point, obviously, not being that the successful candidate knows the per capita land area of the earth, but that she can be creative and diligent in solving a problem without much to go on.

Saturday, July 5, 2003

A programmer went to a job interview. His interviewer was a very attractive young lady. Her first question was "There are three birds sitting on a wire. A hunter shoots one of the birds, how many are left?"
"None" he answers.
"How do you figure?"
"He shot one, and the other two flew away"
"Well" she said, "that's not technically correct, but I like the way you think."
The interview went on, and at the end she asked "do you have any questions for me?"
"Yes," he replied, "three women are sitting on a park bench eating popsicles. One is licking hers, another is biting the popsicle, and the last one is sucking it. Which one is married?"
The interviewer blushed, then said "the one who's sucking it?"
"No," he said with a smile, "the one with the wedding ring. But I like the way you think."


Saturday, July 5, 2003

Huh. I do these kinds of estimations all the time. It's nice to know that I'm in good company.
Saturday, July 5, 2003

6 or 42

Homo Ironicus
Saturday, July 5, 2003

A lot of companies -- Microsoft included -- are noted for asking these sorts of questions in interviews.  I personally enjoy pondering these sorts of questions -- computing the number of litres of human blood in the world, etc, is fun mental arithmetic.

However, I've got to question the assumption that questions like these tell you anything _relevant_ about an interview candidate. 

Either the ability to manipulate large numbers is relevant to the job or it isn't.  If it is, then surely there must be examples FROM THE JOB which you can use.  If there are no such examples then don't ask questions that test an irrelevant skill!

I ask "manipulate these large numbers" questions all the time in interviews, and I would never in a million BILLION years ask about tea or the Mississippi or piano tuners.  I ask questions based on problems that I actually had to solve in the course of my job! 

"How much memory will this data structure consume if the web site has thirty million unique users?  How long will it take to persist one user's state off disk into this tree?  Given that, what's the worst-case loaded server performance in pages per second?"


"Given that an IEEE double has 53 bits of precision and we need nanosecond precision, roughly what's the range of dates we can store in a double?"

I don't care if you can guess how many grams of tea are in China.  I care deeply if you can look at a piece of code and say "this will consume ten billion bits of disk space", or "this 32 bit integer counter is going to overflow every 53 days", or "this will drop throughput to no more than ten pages per second per server", etc.


Eric Lippert
Saturday, July 5, 2003

Perhaps it's not testing what you think it's testing - maybe it's testing their ability to think independantly in the face of uncertainty without constantly asking for guidance.

Ask an unanswerable question and see how the candidate responds. Do they "panic" and ask for guidance, or do they proceed to devise an answer on the spot.
Saturday, July 5, 2003

Eric, the talent they're looking for is:
"A client wants to put all his archived data into SQL Server. Currently it's maintained in five filing cabinets. How long will data migration take and how much disk space does he need?"

Admittedly when $$$ are on the line, the only answer is "I'd have to look at the data." But in the meantime, can you give a gut feel for what we're talking about here?

Does the applicant sit there looking panicked? Or do they start with "okay, one page is about 1kb. 500 pages in a ream, which is 3 inches thick. A filing cabinet drawer is 24" deep..."

The next thing they do is try to make the problem as abstract as possible to remove any possible "insider info" (your last job might've been migrating a filing cabinet of data to SQL Server).

These questions test analysis and synthesis techniques - extrapolation and intuition, as well as confidence in your own abilities. They are not the Holy Grail of interview questions, they are simply a way to assess an aspect of personality that is fairly critical to high-level design but difficult to evaluate objectively.


Saturday, July 5, 2003

How much tea in China is usually not relevant to the job, but how you handle such questions, in all aspects, might be relevant.

You can't ask a person "Are you smart?", so you ask about "Way of thinking" as in Philo's example.

Sunday, July 6, 2003

Is it just me... Several times I've posted something and then the next post, or a couple of posts later, someone says basically the same thing, but adds or removes a few details, and everyone loves the 2nd person's explanation.
Sunday, July 6, 2003

This link works better:

The link in the OP is for the most recent column, no longer the one on estimating.

Sunday, July 6, 2003

Anyone ever noticed that sometimes you post something, and another poster repeats what you posted by every word, leaving out or adding minor details, and people actually stick to what the second poster said? Strange.

Johnny Bravo
Sunday, July 6, 2003

Yes, Mr Bravo, I have noticed that. I wonder who's going to copy you?

Sunday, July 6, 2003

Well, so far there tends to be only one refinement until people are happy with it, I don't think I've seen a third revision.
Monday, July 7, 2003

Philo, that's an excellent example of the kind of relevant problem I'm talking about.  However, I am very confused by this paragraph:

> The next thing they do is try to make the problem as
> abstract as possible to remove any possible
> "insider 'info" (your last job might've been migrating
> a filing cabinet of data to SQL Server).

Surely if I am hiring someone to do data migration, and they've already done exactly the kind of data migration I'm interested in, I should be delving deeply into that experience rather than trying to structure questions which obscure it!  Or am I missing your point?


Eric Lippert
Monday, July 7, 2003

I don't believe that this tests personality and not knowledge. As the article mentioned, I had a couple of lessons in my high-school Physics class about how to make order-of-magnitude estimates: so, you'd only be testing whether someone has had a couple of hours training to do this sometime in their lives.

* Use whatever general knowledge you have for your assumptions; state your assumptions, so that the interviewer can check your arithmetic
* Get the right order of magnitude (easier for people who work with metric rather than the old imperial units), compared with which the first significant digit is insignificant

Christopher Wells
Monday, July 7, 2003

When I first heard a problem of this type, I was totally stumped.  But then once I figured it out, all those problems became equivalently difficult.  So I wonder if asking this question is really testing any type of intelligence, or whether it's just testing whether they've heard a similar question before.

Foolish Jordan
Monday, July 7, 2003

Eric - if all you wanted was someone who could apply what they'd learned, you'd hire a monkey. I think the big money goes (*especially* in data migration) to those that can deal with problems they'd never encountered before. Do you really want a tech who will look at a form, say "never seen this before, can't help you"?

Now, if you asked me "how would you check an appointment to see if it overlaps any existing appointments?" You'd probably be impressed with my single SQL Statement. Would you be just as impressed if you knew that I learned it from a friend seven years ago?

You interview eight people and ask each of them the filing cabinet question. Seven of them fumble with numbers and guesstimate some number of terabytes. One guy (the guy with the least experience) says "One point twenty-one gigabytes." and is exactly right. Do you hire him on the spot for knowing the exact answer? Does it matter when he tells you "I was the tech writer on a similar project - that's what they came up with"?

Thus my point - by using an obscure question, you're edging around the possibility that they've had to do the math on something that you're asking. You want to see their analysis in progress, not the results of analysis in the past.

Chris - I've found that a LOT of people can learn a methodology. Only a very small subset can apply it outside a controlled environment. Don't sell yourself short in your ability to do that.

Jordan - yes, knowing that you have to break it down is one big step; knowing what to break down and how is still another matter entirely.

Incidentally, I think that the fact that hiring managers still encourage these types of problems tells me that they are still a good winnowing method, which means not as many people as you'd think know/understand how to solve them.


Monday, July 7, 2003

Philo - all good points. I'm gonna take a moment to plug the book "Sources of Power" by Gary Klien (Klein?). He was hired by the military to conduct studies on how stress affects decision making, and this book is the result. Based on your post, I think you might like it. Cheesy title, but one of my fave books.
Tuesday, July 8, 2003

*  Recent Topics

*  Fog Creek Home