Como parte del proceso de entrevista, inicialmente pedimos a los candidatos que hagan 'FizzBuzz' hoy en día, el porcentaje de candidatos que pueden responder correctamente a FizzBuzz ha aumentado dramáticamente, esto puede deberse a su popularidad en la web.
Hace aproximadamente un año, como segunda pregunta, comenzamos a hacer una pregunta muy similar al FizzBuzz original. La pregunta fue diseñada para ser tan simple como el FizzBuzz original, y también para evaluar una habilidad particular del candidato, específicamente la capacidad de ordenar y priorizar de manera significativa y lógica un conjunto de "reglas comerciales" que se han proporcionado en algunos orden arbitrario Inicialmente, la redacción de la pregunta parece un poco ambigua, lo que puede dificultar a los hablantes de inglés no nativos, pero si se puede resolver correctamente, también le da al candidato la oportunidad de hacer preguntas para aclarar, lo que siempre es algo bueno. .
Consideramos que esta es una habilidad muy importante como desarrollador, ya que el desarrollo de software generalmente se basa en requisitos funcionales que se derivan en ningún orden en particular a lo largo del tiempo, que pueden imponer restricciones y condiciones sobre otras áreas del software sin indicarlo explícitamente y es el trabajo del desarrollador astuto para al menos investigar posibles problemas y conflictos con respecto a la implementación.
Lo que encontramos fue que un poco más del 65% de los candidatos (tamaño de muestra de 38) que aprobaron FizzBuzz fallaron por completo FizzBuzz v2.0 Normalmente, estos candidatos serían detectados más adelante en el proceso, pero parece ser una buena manera de detectar ellos desde el principio.
Mi pregunta no es si FizzBuzz está desactualizado o no, sino qué factores podrían estar contribuyendo a que un número tan alto de candidatos falle la pregunta de FizzBuzz v2.
- ¿Es la pregunta demasiado ambigua?
- ¿El estrés del ambiente de una entrevista disminuye la capacidad de pensar críticamente hasta el punto de no poder completar una tarea tan trivial?
Pregunta:
Escriba una rutina en su lenguaje de programación favorito que tomará una lista de cadenas como entrada, y para cada cadena de la lista realizará una de las siguientes acciones:
- Imprima solo Fizz si la cadena contiene la letra A
- Imprima solo Buzz si la cadena contiene la letra B
- Imprima solo BuzzBuzz si la cadena contiene A y B
- Imprima solo FizzFizz si la cadena no contiene A y B
- Imprima solo FizzBuzz si la cadena contiene solo una A y solo una B
Algunas preguntas típicas formuladas por los candidatos son:
- ¿Debería ser sensible a mayúsculas y minúsculas?
- ¿"Contiene A y B" significa que A debe venir antes que B
- ¿Qué se debe imprimir si no se cumple ninguno de los puntos?
- ¿Qué debería suceder si se puede cumplir más de una condición?
Descubrimos que la abrumadora mayoría de los candidatos que completaron con éxito la pregunta, no preguntaron nada, simplemente lo hicieron como hicieron con FizzBuzz.