Fog Creek Software
g
Discussion Board




Ferocious Pirates and Technical Interviews


I've been reading "...Mt. Fuji," and I don't think I'd do very well in this sort of tech interview.  I've never really liked this style of interviewing very much, and my point here really isn't an attempt at being clever--it's to demonstrate why I don't like these interviews.

The answer to the Pirate puzzle (see the tech interview section from the Joel home page) is one in which the first pirate takes 98 and that he gives a single coin to both the third and the fifth pirate.  This is the solution at which one arrives when one uses backward induction to solve the problem.

Given the way the question is phrased, there doesn't appear to be any prohibition against cooperation. 

In the solution given, the last three pirates wind up with 2 coins between them.  If they're really greedy, perhaps they might conspire to kill off the first two pirates by vote and split the coins between them as evenly as possible.  In this scenario, the last three pirates wind up with 100 coins between them rather than 2 coins.  Wouldn't "very greedy" and "very intelligent" agents choose 100 over 2? 

Given the possibility of the last three pirates cooperating, one could argue that the first pirate might then propose his own alliance with the next two pirates in line, etc. Things might iterate indefinitely, but these are "very intelligent" pirates that can predict so things.

There's been a lot of work among game theorists and economists on game theory and cooperation going back to Axelrod and before.  You can Google for Axelrod and cooperation, iterated prisoner's dilemma, cooperation and genetic algorithms, etc. 

I also think that one could make the case that the first pirate might seek the path with minimized expected costs and maximized expected benefits.  Given that the coins are worthless to a dead man, he might forfeit the loot altogether and divide it between two pirates to secure their votes.

For me, the biggest problem with the pirate problem is how it is framed. If it is a test to see if one can arrive at a solution by backward induction, I think it should be more strictly defined to at least prohibit cooperation. One might claim that by definition the greedy and intelligent pirates wouldn't cooperate, but it seems to me that are also some implicit assumptions on the linearity of the pirates thinking. In the real world, intelligent people do see the benefits of cooperation and act accordingly.

And as far as it all goes, if someone simply told me to "design a house," I think I'd probably just draw a square. It's the simplest solution to the problem.  As an engineer I hate it when people come up with unnecessarily complicated solutions to problems. 

Um, the motivation behind the "design a house" question is a search for a parsimonious response, right?  "No," you say.  It's a test of whether or not I ask you "the right" questions.    If the question were stated clearly, "Tell me how you would go about designing a house in the real world..." then the answer would be simple.

This sort of interview leaves me feeling like I'm supposed to be good at playing mind games. It's very hard to work for people who can't communicate effectively, people who expect you to read their minds and penalize you for reading minds incorrectly. 

An interview is not only an opportunity for an employer to evaluate a candidate employee--it's also an opportunity for an employee to evaluate a candidate employer.

When it seems like an interviewer is playing games, I'm really put off.  I'm very much a work hard, play hard sort of person. I love to play as much as the next guy, but business is business, and for me finding the right employer is serious business.

prometheus
Thursday, January 1, 2004

prometheus,

Tip:  I think it would have been helpful if you had discussed your background a little (i.e. business programming experience, commercial development experience, open source experience, student, etc.) before you started writing about why you don't care for a certain type of technical interview.

When you read anything on the World Wide Web such as what Joel offers (articles, several websites, etc.) you really have to put what you read into its proper perspective and try to understand where people such as Joel are coming from (i.e. their background). The fact is, different organizations value different types of people. Sometimes an organization will have multiple personalities and each personality will value different human attributes and skills (i.e. Microsoft proper vs. Microsoft's consulting division).

One Programmer's Opinion
Thursday, January 1, 2004

What makes you think you wouldn't do well at this type of interview? I suspect that some interviewers would be impressed with your reasoned and thoughtful analysis.

It's not always about the right answer or even asking the right questions; the process is important too.

Zahid
Thursday, January 1, 2004

is this question like the 'break the bar into 3 pieces' question?
(hire someone for 8 days, mutual distrust, you need to pay them every day but can only break the bar 3 times. somehow you're supposed to give them a bar of size '4' on day 3, and expect them to give you change of the bar of size '1' from day1. yet why would you rely on them not to have spent it already?)

this also explains why licensing exams are very difficult: you come up with an 'abstract' question, ask it in concrete terms, but the test-taker knows from experience that the concrete question cannot be answered in the theoretically ideal manner due to externalities. so either they learn to take the test (thus voiding its meaning) or fail (thus voiding its meaning).

mb
Friday, January 2, 2004

Try these:http://www.lsat.org/pdfs/test.pdf
It is the LSAT (Law school entrance exam), which as best as I have heard anyone say, tests nothing about your ability to practice law, has shown no correlation to how well you will do in law school, nor on the bar exam.

Perhaps, we should come up with an equally immeasurable process for qualifying people to become developers.  Afterwords, we can then test your knowledge on topics specific to our profession. 

Sorry but when I see off the wall questions that are "suppose" to test certain behaviors, I wonder where people come up with this stuff.  We can't get professionals to agree on how a question should be worded to be fairly interpreted. 

Joel gives a perfect example of this useless behavior with his "impossible question" http://www.joelonsoftware.com/articles/fog0000000073.html , it merely serves to make the person uncomfortable.  How would Joel interprete someone saying "Hold on."  flipping out there cell phone, calling the local library and getting an answer? 

The problem was not testing for an answer but expected the participant to recognize this is an opportunity to impress me, by guessing what I want you to do in a given situation.  Why not ask how might I get light into this room?  It would be as useful, other than you would have people wonder if "turn on the light" is what you are looking for.

Stop gaming people.  If you are really not sure of your abilities to identify good candidates, try before you buy.  Bring them in at twice the rate for six months. They you will see how they act, work, behave, or don't every day.

MSHack
Friday, January 2, 2004

"How would Joel interprete someone saying "Hold on."  flipping out there cell phone, calling the local library and getting an answer?"

If you hadn't explained what YOUR goal was, I'd say that's a "pass". They are solving the problem in a realistic fashion.

If you said ahead of time: "I'm not looking for the right answer, but rather to see how you'd reason through the problem", and they still pulled out the phone, that'd be a "fail".

All depends on how much context you give them. They're not a mind reader, so if they do something contrary to your unspoken expectations, oh well.

Brad Wilson (dotnetguy.techieswithcats.com)
Friday, January 2, 2004

I have to say that, while I sympathize with the nit picking of questions and it can be entertaining, there is also the element of getting down to business. Nitpicking can go to the extent of someone who is not confident to make a decision and qust wants to play word games and CYA by asking for endless clarifications. The guy who is in  the boss' office every five minutes asking basic questions 'should I use a list or an array', 'what color should this button be' and so forth.

So, in an interview it can be fun to go over ambiguities for a few minutes, but if every line of the test is being nitpicked and the person can't even get started or make reasonable assumptions about stuff, they may be very clever and analytical to their own detriment - a level that paralyzes them from action. Thus I would look unfavorably upon such a tendency if it came out *too* strongly in an interview.

Dennis Atkins
Friday, January 2, 2004

Here's the quote I was looking for:

"There comes a time when one must stop suggesting and evaluating new solutions, and get on with the job of analyzing and finally implementing one pretty good solution."  -- Robert Machol

Dennis Atkins
Saturday, January 3, 2004

"The leaders say: 'Let's be more innovative.' The staff says: 'Bravo. When do we start?' The mid-level managers say: 'Wait a minute, let's think about that. What about… and …? Have you REALLY thought it through? Does this mean I have to change?'" -- Claude Legrand

Dennis Atkins
Saturday, January 3, 2004

*  Recent Topics

*  Fog Creek Home