Variaciones interesantes de FizzBuzz? [cerrado]

7

En la contratación de programadores, una prueba común es la prueba Fizz Buzz. ¿Cuáles son algunas variaciones interesantes / interesantes en el zumbido de efervescencia que se mantienen con el mismo nivel de dificultad?

Básicamente, si le pidiera a alguien que realice una prueba de zumbido de fizz por correo electrónico o algo así, me gustaría asegurarme de que no puedan simplemente buscar el código en Google.

    
pregunta Earlz 17.04.2011 - 06:31

8 respuestas

5

Como han dicho otros, no creo que FizzBuzz sea apropiado a través del correo electrónico, pero podría ser apropiado en algún otro lugar (por ejemplo, en una feria de trabajo donde necesita una manera de descartar rápidamente los currículos que son un desperdicio de ambos). tiempo de seguimiento del entrevistador y del solicitante). Realmente solo es apropiado para clasificar a los candidatos en dos grupos: programadores y no.

Así que con eso fuera del camino, asumiendo que está apuntando a un entorno apropiado, aquí hay algunos otros rápidos:

  1. Escriba una función que tome una matriz bidimensional de int s (o un List<? extends List<? extends Number>> o equivalente) y encuentre el número más pequeño en cada fila, y devuelva la suma de aquellos por fila más pequeños valores. (O devuelve el valor mínimo general, o el índice de fila que contiene el mínimo más grande, etc.)

  2. Imprima una parte del triángulo de Pascal: específicamente, pídales que escriban una función que tome un número entero ( a ) e imprima las primeras filas a del Triángulo de Pascal.

  3. Escriba una función que imprima un desglose de un número entero en una suma de números que tengan un solo dígito distinto de cero. Por ejemplo, dado 43018 debería imprimir 40000 + 3000 + 10 + 8 .

  4. Relacionado con eso, escriba una función que acepte un número entero de centavos e imprima un desglose en centavos, centavos, monedas de diez centavos, cuartos, (lo que desee, medio dólar, monedas de dólar), usando menor cantidad de monedas.

  5. Cualquier cosa de la sección "Codificación" de esto: enlace

respondido por el Daniel Martin 02.05.2011 - 21:21
13

FizzBuzz no es no como una prueba de habilidad, sino como una forma de eliminar a los incompetentes.

Debería tomar todos los 5 minutos. En persona (oa través de un documento compartido). Y si el candidato no puede resolverlo tan rápido como él o ella puede escribir, entonces deberían aparecer algunas señales de alerta.

Darle a FizzBuzz o cualquier problema similar como un problema de correo electrónico hace dos cosas: (1) no elimina a los incompetentes, y (2) arroja señales de alerta a cualquier candidato competente de que su empresa no es muy buena en la entrevista.

    
respondido por el Anon 17.04.2011 - 14:41
5

Si cambias las palabras "fizz" y "buzz", rápidamente se vuelve irrompible. Si han estudiado las preguntas comunes de la entrevista, es posible que aún lo reconozcan, pero al menos indica un nivel de preparación que los coloca por encima del promedio.

    
respondido por el Mark Ransom 02.05.2011 - 23:02
3

¿Qué tal si les pedimos que resuelvan fizzbuzz con recursión? o sin división entera.

    
respondido por el Christopher Mahan 02.05.2011 - 21:56
2

Un ejemplo de una "prueba" de programación que recibí recientemente fue que tuve que escribir un método que multiplicaría 2 enteros, sin usar el carácter '*'. Es muy simple, pero la pregunta no era sobre evaluar mi competencia, sino sobre poder revisar el código que escribí, señalar cualquier posible problema con él, áreas en las que se podrían realizar mejoras.

    
respondido por el Mick Walker 17.04.2011 - 15:15
1

Cuando se trata de eso, FizzBuzz aprovecha los conceptos de programación más básicos, incluyendo (como Bob Martin tiende a ponerlo) Secuencia, selección e iteración. Lo que puede hacer es proporcionar una nueva pregunta, similar a FizzBuzz, pero aprovechar conceptos de lenguaje más avanzados para la comparación de patrones. Por ejemplo, en lugar de usar números, quizás en lugar de eso, se trata de una colección de entidades, que están relacionadas de manera polimórfica. Esto le permitiría verificar el conocimiento de los candidatos sobre el polimorfismo, las interfaces, la herencia, etc. Para su selección, en lugar de un módulo como el FizzBuzz tradicional, podría buscar la coincidencia de tipos en los elementos.

No estoy seguro de si esto es lo que quería decir al solicitar ideas con la misma dificultad, pero traté de imaginar cómo podría hacer esta pregunta en una entrevista.

    
respondido por el Ben Lakey 17.04.2011 - 09:25
0

Si dicen saber C ++ (y no), siempre puedes decirles que escriban FizzBuzz con plantillas.

Aunque es potencialmente divertido, no lo consideraría de muy buen gusto. Si dicen ser expertos en C ++ y no lo son, considero este juego justo.

    
respondido por el jsternberg 17.04.2011 - 07:53
0

¿Qué tal si lo haces específico para tu pila para mostrar que la persona tiene al menos capacidad de tipo fiz-buzz con tu marco / plataforma? Si fuera una posición de desarrollador de Winforms, por ejemplo:

  

Tienes una ventana llamada MyWindow que   tiene varios controles sobre él. Escribe un   método que hará que todos los   Fondos de cuadro de texto rojo. Hacer todo el   etiqueta de fondo azul. Si un cuadro de texto o   una etiqueta actualmente dice "fizzbuzz", luego establece su   fondo a púrpura.

Esto debería ser trivialmente fácil de hacer para cualquier desarrollador de Winforms con lápiz y papel. Demuestra un poco de conocimiento de las colecciones, las jerarquías de control de .Net, la iteración, los condicionales y la herencia.

    
respondido por el Morgan Herlocker 02.05.2011 - 22:35

Lea otras preguntas en las etiquetas