En Mon, 12 May 2008 14:42:30 -0300, [EMAIL PROTECTED] <[EMAIL PROTECTED]> escribió:

On 12 mai, 09:00, "Gabriel Genellina" <[EMAIL PROTECTED]> wrote:
En Sat, 10 May 2008 22:12:37 -0300, globalrev <[EMAIL PROTECTED]> escribió:

> "Write a program that prints the numbers from 1 to 100. But for
> multiples of three print "Fizz" instead of the number and for the
> multiples of five print "Buzz". For numbers which are multiples of
> both three and five print "FizzBuzz".

(We used this question last year - some people gave a sensible answer in less than 5 minutes, but others did not even know how to start)

I just can't believe someone applying for a programmer position cannot
provide a sensible anwser in 5 or less minutes.

For some people, "program" == "form with buttons", excluding all else. Maybe it's an education problem - "programming in XXX" courses usually focus on the XXX language itself, assuming (sometimes wrongly) that the student has a "general programming" background. Worse, I've seen a book on VB.net (and I think it's not the only one) that is more focused on "how to use Visual Studio" than teaching the language itself, so it's not surprising that some people may consider "what's the shortcut to [do some visual task]" an important "programming skill".

So I think the FizzBuzz problem is a good test to filter out candidates based on (lack of) practical programming skills. But I don't like that it is still slightly math-biased (our version said: if multiple of 7 OR ends in 7 -> replace with the word "Domingo"). I probably would not reject an answer like this:

for n in range(1,100):
  if multiple_of_7(n) or ends_with_7(n): print "Domingo"
  else: print n

even if multiple_of_7 or ends_with_7 are incorrect or have some comment like "I don't remember how to check this". The overall structure is OK, the guy has decomposed the problem into two smaller subproblems, now it's time to ask a domain expert about the details... :) But the poor guy doesn't know that; he's under a lot of stress, nervous, only has a few minutes remaining and surely thinks "I *have* to write this in full else I won't get the job!" I would like to write a similar problem without this non-programming distracting issues (that is, a problem simple enough to be answered in a few minutes, that requires only programming skills to be solved, and leaving out any domain-specific knowledge).

--
Gabriel Genellina

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to