2008-01-29

Fizz-Buzz o como cribar aspirantes a programador

Existen muchas clases de informáticos, los que tienen carrera y los que no, los de sistemas y los de gestión, los que tienen formación profesional y los que han aprendido montando equipos en una tienda, los que saben mucho y los que saben poco, los que creen que saben mucho y los que saben mucho de verdad, los que tienen trabajo y los que lo buscan. Dentro del grupo de los que buscan trabajo pueden estar incluidos todos los anteriores, incluso los que tienen trabajo y buscan uno mejor.

Cuando se busca un informático, hay que tener claro a que se dedicará, ya que no todos los informáticos son buenos en todas las áreas. En el caso de los programadores (que es de lo que entiendo) existen algunos métodos para descartar rápidamente una gran cantidad de los aspirantes ahorrando el precioso tiempo del que contrata y del que aspira a ser contratado. Uno de ellos se llama Fizz-Buzz que podría plantearse con el siguiente enunciado:

Escribe un programa que muestre en pantalla los números del 1 al 100, sustituyendo los múltiplos de 3 por “Fizz” y los múltiplos de 5 por “Buzz”. Para los números que son a la vez múltiplos de 3 y 5 “FizzBuzz”.

El resultado ha de ser parecido al siguiente:

1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, FizzBuzz, 16, 17, ...

Cualquier candidato deseable no ha de tardar más de 2 ó 3 minutos (en un lenguaje de su elección). Así que pasados 15 minutos podemos descartar todos los demás sin miramientos, no merecen llamarse programadores.

Otra prueba para reducir rápidamente los lenguajes de programación que un candidato ha puesto en su C.V. es obligarle a escribir un bucle que escriba en pantalla los números del 1 al 10. Es rápido y eficaz y no supondrá más de un minuto por lenguaje.

Esta es una criba rápida que no garantiza nada sobre los que la pasan, sólo que el resto no merecían el puesto.

Leí en algún blog el verano pasado que sólo 1 de cada 200 aspirantes a programadores pasaban la prueba de FizzBuzz, desconozco la cifra y en todo caso dependerá del país, la región y de la empresa. Pero en lo que sí sé es que todo el que no sea capaz de superarla en menos de 15 minutos ha de ser descartado y si se otorga a si mismo el calificativo de programador arderá en un nivel especial del infierno, un nivel reservado para los pedófilos y para la gente que habla en el teatro.

En fin, si tienes la feliz idea de comentarlo en tu empresa comprueba que eres capaz de superarla, no sea que la usen para descartarte :-)

No, no busques el código de la solución, no lo pondré, no sea que alguno de esos "mal llamados programadores" la memorice.

No hay comentarios: