¿Debo dar la respuesta a un ejercicio fallido de codificación de entrevista? [cerrado]

14

Tuvimos un candidato de entrevista de alto nivel que falló un matiz de la pregunta FizzBuzz 1 2 .
Quiero decir, realmente, completamente, completamente, fallé la pregunta, ni siquiera cerca.
Incluso lo entrenó a través de pensar acerca del uso de un bucle y que 3y 5eran realmente vale la pena considerar como casos especiales.

Lo sopló.

Solo para fines de control de calidad, di la misma pregunta exacta a tres compañeros de equipo; les dio 5 minutos; y luego regresó para recoger su pseudocódigo. Todos lo clavaron y no habían visto la pregunta antes. Dos preguntaron cuál era el truco ...

En un ejercicio de lógica diferente, el candidato mostró cierta comprensión de algunas de las características disponibles dentro del lenguaje que eligió usar (C #). Entonces no es como si nunca hubiera escrito una línea de código. Pero su lógica todavía apestaba.

Mi pregunta es si debería haberle dado o no la respuesta a las preguntas lógicas.

Sabía que los sopló, y lo reconoció más tarde en la entrevista.
Por otro lado, nunca pidió la respuesta o lo que esperaba ver.

Sé que los ejercicios de codificación se pueden usar para preparar a los candidatos para el fracaso (nuevamente, vea el segundo enlace desde arriba). Y realmente traté de ayudarlo a volver a casa para responder el núcleo de la pregunta. Pero este era un candidato de alto nivel y Fizz-Buzz es, francamente, ridículamente fácil incluso después de tener en cuenta las inquietudes de la entrevista.

Sentí que debería haberle mostrado una forma de resolver el problema para que al menos pudiera aprender de la experiencia. Pero de nuevo, no preguntó.

¿Cuál es la forma correcta de manejar esa situación?


1 Bien, ese no es el enlace a la pregunta real de FizzBuzz, pero es una buena discusión de P.SE sobre FizzBuzz y enlaces a los diversos aspectos de la misma.

2 Para ayudar a aclarar, este es el matiz de Fizz-Buzz que pregunté y es del primer problema del Proyecto Euler . Sustituto de impresión Fizz | Buzz por sumar los números y tienes la misma pregunta fundamental.
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. Write a function that finds the sum of all the multiples of 3 or 5 below 1000.

3 Esta pregunta atrajo más atención de lo que esperaba, y agradezco todas las respuestas. Algunas de las respuestas posteriores realmente han llegado al centro de mi pregunta, por lo que permitiré a la comunidad revisar y votar antes de asignar "la" respuesta.

4 Seleccioné "la" respuesta basada en los votos de la comunidad en ese momento. Y creo que la respuesta de Yannis es apropiada para entrevistas con desarrolladores más nuevos. Creo que la respuesta colectiva centrada en la falta de pedir la respuesta también es acertada.

Comunidad
fuente
34
Déjalos sueltos y sigue con tu día. En lo que a mí respecta, fallar FizzBuzz en el "nivel superior" está perdiendo mi tiempo a propósito y maliciosamente.
Steven Evers
66
Recientemente me entrevisté para varios puestos en mi área, y los que requerían código me indicaron que tenían problemas para encontrar candidatos de nivel superior que pudieran pasar sus propias pruebas de "FizzBuzz". En todos los casos mi reacción fue "no puedes hablar en serio". Aparentemente, hay muchos programadores terribles disfrazados de alto nivel que ni siquiera están cerca.
Joel Etherton
66
@JoelEtherton - Lo mismo por aquí. He buscado pantallas de teléfono donde quiera que vaya. Si está solicitando ser un Senior usando C # y no puede decirnos la diferencia entre un tipo de valor y un tipo de referencia, no recibirá una entrevista.
Telastyn
3
@ 0A0D, liderar un equipo es un tipo diferente de habilidad de ser un buen desarrollador. También he visto líderes de equipo que fueron malos desarrolladores.
Kyralessa
44
@JoelEtherton, no te sorprendas. Pensé que "199 de 200 solicitantes no pueden codificar" era una simple hipérbole hasta que realmente comencé a ayudar a seleccionar y entrevistar candidatos. Años de (supuesta) experiencia simplemente no importan. Los títulos de trabajo no importan. La mayoría de los solicitantes son increíblemente jóvenes, lo sepan o no.
Anthony Pegram el

Respuestas:

15

La mayoría de mis entrevistas fueron con estudiantes que buscaban un puesto de pasantía, y la mayoría de las veces arruinaron ejercicios simples (?). Quería una forma fácil y amigable de comunicar sus errores, y lo que se me ocurrió fue bastante simple: resolví los ejercicios yo mismo y les mostré mis soluciones después de que terminaron con los suyos.

Tuve algunas discusiones extremadamente interesantes y reveladoras con candidatos que comenzaron comparando nuestros diferentes enfoques para resolver el mismo problema. Después de un tiempo, incluso anticipé algunos de los errores, simplemente comprobando a qué escuela asistía el candidato (algunos "profesores" son ... imbéciles). Y, bueno, en los pocos casos en que un candidato no pudo encontrar ninguna solución, ya les había dado una para la próxima vez.

Yannis
fuente
Tiene sentido; Estaba buscando un nuevo trabajo recientemente, y descubrí que la mayoría de los entrevistadores hicieron lo mismo cuando respondí mal (o respondí un poco "fuera de lugar") a sus preguntas. Esta es una muy buena práctica. Principalmente porque abre al candidato (yo, por ejemplo) y hace que la entrevista en sí sea más atractiva por ambas partes. Pero, por supuesto, estábamos discutiendo plantillas, RAII y subprocesos múltiples en C ++. La pregunta es ¿qué le dices a una persona que no puede resolver el fizzbuzz?
Chani
11
@RitwikG Honestamente, si el candidato está entrevistando para un puesto de programación y no puede hacer frente a fizzbuzz, probablemente ... ría (hey, nunca dije que fuera un buen entrevistador;). Dicho esto, hace unos meses perdí unos días luchando contra lo que resultó ser un OBOE extremadamente trivial en mi código. Todos tenemos nuestros momentos libres, y realmente no me obsesionaría con que el candidato arruine un ejercicio, probablemente pasaría al siguiente rápidamente. Si también fallaron el siguiente, probablemente les agradecería su tiempo y seguirían adelante.
Yannis
1
@YannisRizos Ese es probablemente un buen enfoque; siempre existe la posibilidad de que a la persona no le vaya bien en las situaciones de entrevista, o que de alguna manera haya evitado la operación de módulo en su trabajo (aunque eso no es un buen augurio, por decir lo menos). En mi experiencia, un número significativo de solicitantes se quedan perplejos cuando se les pide que escriban un bucle simple (en cualquier idioma de su elección), incluso para puestos de alto nivel. Ahora que , me parece completamente imposible de justificar.
Daniel B
Esa también es una buena idea del proceso. El candidato estaba comprensiblemente nervioso, y yo estaba más que dispuesto a dar algo de eso. Cuando finalmente comenzó a hablar sobre su intento de encontrar una solución, fue enrevesada y creó condiciones límite que no pudo ver.
15

Dando la respuesta

Iba a decir que si el candidato no está lo suficientemente interesado como para preguntar, no perdería el aliento, pero la respuesta de @Yannis_Rizos es mucho mejor.

Las entrevistas son bastante rápidas. Sé que a menudo busco cosas durante días después de una entrevista.

Personas que no pueden codificar FizzBuzz Classic

Me imagino que un gran punto de conflicto es ser consciente del operador%. Es de esperar que alguien pueda pensar en comparar, (myInt / 3) == (myDouble / 3.0)pero tal vez con el estrés de una entrevista ... Aún así, FizzBuzz Classic fuerza un enfoque de fuerza bruta, colocándolo en la categoría de los problemas de algoritmo más fáciles de resolver. Como pista, ¿ha intentado pedirle a la gente que solo codifique "Fizz" para la mitad del crédito y quizás agregue "Buzz" más tarde como una mejora?

Creo que la respuesta final a su pregunta es que es realmente difícil encontrar buenos candidatos.

Preguntas de la entrevista en general

A menudo me ha resultado más fácil y productivo pedirles a los candidatos que describan el último proyecto de programación que les entusiasmó. He tenido un 100% de éxito con esta pregunta, lo que significa que las personas que hablaron animadamente sobre un proyecto de programación y pudieron responder preguntas técnicas al respecto fueron excelentes contratados y aquellos que no pudieron, no lo fueron. Esto tiene los buenos efectos secundarios de tranquilizar al candidato y alentar una discusión abierta. Con esta pregunta, el candidato, en efecto, le dirá para qué es más adecuado.

Quizás en un algoritmo de think tank también sean necesarias las preguntas, pero las abandoné a favor de la pregunta del "proyecto favorito".

Suma (Hijo) de FizzBuzz

Tu pregunta de la entrevista no es equivalente a FizzBuzz:

Si enumeramos todos los números naturales por debajo de 10 que son múltiplos de 3 o 5, obtenemos 3, 5, 6 y 9. La suma de estos múltiplos es 23. Escribe una función que encuentre la suma de todos los múltiplos de 3 o 5 por debajo de 1000.

Donde FizzBuzz Classic lo obliga a pasar por n iteraciones (para imprimir cada número o Fizz / Buzz), su problema se puede hacer en n / 5 + n / 3 + n / 15 iteraciones, o incluso sin iteraciones, una corrección directa. El cálculo de puntos es posible. El siguiente programa compara estos tres métodos:

public static void main(String[] args) {
  long n = Long.valueOf(args[0]).longValue();
  long sum = 0;
  long ms = System.currentTimeMillis();
  // Brute force method  Performance: cn
  for (long i = 1; i <= n; i++) {
    if ((i % 3) == 0) { sum += i;
    } else if ((i % 5) == 0) { sum += i; }
  }
  System.out.print("Brute force sum:    " + sum);
  System.out.println(" time: " + (System.currentTimeMillis() - ms));
  ms = System.currentTimeMillis();

  // Second solution: iterate through only numbers we are
  // interested in.  Performance: c * (n/3 + n/5 + n/15)
  // We counted multiples of 15 twice, so subtract one of them
  sum = countSum(n, 3) + countSum(n, 5) - countSum(n, 15);
  System.out.print("Only multiples sum: " + sum);
  System.out.println(" time: " + (System.currentTimeMillis() - ms));
  ms = System.currentTimeMillis();

  // Third solution: Use high school algebra.  Performance: c
  sum = sumSeries(n, 3) + sumSeries(n, 5) - sumSeries(n, 15);
  System.out.print("Sum of series:      " + sum);
  System.out.println(" time: " + (System.currentTimeMillis() - ms));
}

// Iteravely sum all multiples of skip
private static long countSum(long n, long skip) {
  long skipTotal = skip;
  long grandTotal = 0;
  while (skipTotal <= n) {
    grandTotal += skipTotal; skipTotal += skip;
  }
  return grandTotal;
}

// Thanks to @Caleb for pointing this out!  High school algebra
// tells us that the sum of a series is: (n * (a1 + an)) / 2
// where a1 is the first term and an is the nth term.  E.g. The
// sum of a series of 3 is: (n/3 * (3 + n - (n % 3))) / 2
// Since we are thinking about performance here, we'll shift
// right one instead of dividing by 2 for style points.  ;-D
private static long sumSeries(long n, long skip) {
  return (n/skip * (skip + n - (n % skip))) >> 1;
}

Salida (suma de FizzBuzz <1000):

$JDK_HOME/bin/java FizzBuzzNot 999
Brute force sum:    233168 time: 0
Only multiples sum: 233168 time: 0
Sum of series:      233168 time: 0

Con una n mayor para la comparación de rendimiento:

$JDK_HOME/bin/java FizzBuzzNot 1000000000
Brute force sum:    233333334166666668 time: 4744
Only multiples sum: 233333334166666668 time: 818
Sum of series:      233333334166666668 time: 0

Nota para aquellos que votaron en contra de esto como fuera de tema

El objetivo de presentar una solución a esta pregunta es mostrar que, si bien la solución de fuerza bruta para Sum of FizzBuzz es similar a FizzBuzz Classic, existen mejores soluciones para el problema de Sum, lo que lo convierte en un problema fundamentalmente diferente. La suma de FizzBuzz es extremadamente difícil si no recuerda la fórmula adecuada para la suma de una serie, o no se da cuenta de que se aplica al pasar por 3 o 5.

Si deriva la fórmula para la suma de una serie dividiendo la serie por la mitad, invirtiendo la mitad y emparejándolas, obtendrá (n + 1) (n / 2) que puede llevarlo por un camino realmente desordenado en lo que respecta a la división de enteros y los restos truncados. La versión (n (a1 + an)) / 2 de esta fórmula es absolutamente crítica para una respuesta simple para todos los valores de n.

GlenPeterson
fuente
3
Esto se puede calcular directamente (Ruby): t = { |i| (i * (i+1)) / 2 }; fizzbuzz = { |n| 3 * t((n-1)/3) + 5 * t((n-1)/5) }
Kevin Cline
1
@ GlenH7 Sí, eliminé mi comentario porque era buzzkill. Glen merece apoyos para su análisis, incluso si no responde a la pregunta: D (Además, codifiqué totalmente y probé mi propia solución hace unos momentos)
Andres F.
2
Está buscando la suma de una serie, dado que esta serie es de módulo = 0, se puede usar la fórmula n / 2 * (m + nm). Donde m = el número de módulo yn = número de elementos en la serie (también conocido como floor (x / m). Después de eso es fácil, S (3) + S (5) - S (3 * 5) [para que algunos números no te cuenten dos veces]
jmoreno
3
Una razón por la que podría tener un problema es que está contando algunos números dos veces (los que son divisibles por 15). Para ver un programa de ejemplo, visite ideone.com/clone/oNWrhJ
jmoreno el
8

Sentí que debería haberle mostrado una forma de resolver el problema para que al menos pudiera aprender de la experiencia. Pero de nuevo, no preguntó. ¿Cuál es la forma correcta de manejar esa situación?

No me importa para qué nivel es la entrevista, ni siquiera si es una pregunta de nivel "FizzBuzz" o una pregunta avanzada. Si le pide a un candidato que resuelva una pregunta y no puede, pero ni siquiera se molesta en pedirle la respuesta correcta, entonces no vale la pena su tiempo. ¿Cómo demonios podrías ser tan intelectualmente perezoso?

E incluso si apestas totalmente como programador y solo estás tratando de llegar a un trabajo, ¿por qué al menos no serías tan pragmático como para obtener la respuesta correcta ahora, para que lo sepas en la próxima entrevista?

Así que no, no debe "dar" la respuesta, pero debe esperar que el candidato insista en escuchar la respuesta correcta después de que falle. Si no lo hacen, es una gran bandera roja en mi libro.

Si alguien explotó FizzBuzz en una entrevista de desarrollo de nivel junior porque no podía recordar el operador del módulo y simplemente no podía seguir adelante sin él, pero luego se apasionó por volver a hacerlo una vez que explicaba la respuesta correcta, o al menos hablar el código correcto con usted, entonces eso es casi tan bueno como contestarlo correctamente.

Graham
fuente
1
¿Por qué? Puedes simplemente buscar la respuesta en Google más tarde. FizzBuzz es bastante popular. Sería sinceramente preocupado si alguien no conoce la división de módulos.
Brian
Le habría dado crédito por tratar de encontrar algo en lugar del operador de módulo, pero ni siquiera llegó a ese punto. Creo que tiene un buen punto al concentrarse en su incapacidad para pedir la respuesta. Su observación está en línea con algunos de los otros desafíos que surgieron durante la entrevista.
Me pongo muy testarudo sobre FizzBuzz ... pero esta es la respuesta correcta. Si el candidato no pide la respuesta, no se la dé.
James P. Wright
@ JamesP.Wright - Estoy de acuerdo en cierto grado, y al entrar en la entrevista, me sentí un poco avergonzado de usar eso como la pregunta de codificación principal. Se suponía que era ridículamente fácil, e incluso lo presenté con una advertencia para no leer demasiado la pregunta. Tuve un seguimiento que también se suponía que era fácil, y luego tuve un tercero que le permitiría demostrar habilidades de desarrollo / diseño de mayor nivel. Nunca llegamos a la tercera pregunta ...
1
@ 0A0D, la "matemática" involucrada en FizzBuzz es simplemente verificar si una variable dada es divisible por 3 y / o por 5. Ese nivel de matemática está presente en prácticamente todas las aplicaciones que escribe. Incluso los "desarrolladores de negocios" como yo, que solo implementan el mismo tipo de proyectos una y otra vez, usan este nivel de matemáticas. GlenH7, ni siquiera estoy seguro de si usar la recursividad en FizzBuzz me impresionaría o me asustaría ... Ciertamente parece una exageración peligrosa.
Graham
4

Escribí fizzbuzz mientras hablaba por teléfono con el entrevistador durante una pre-pantalla. Eso es algo de lo que, incluso si todos no han oído hablar, deberían poder improvisar después de un semestre, por supuesto, trabajar, pero definitivamente después de adquirir el estatus de "senior".

Realmente no hay recuperación de no poder hacer eso. Es una de esas molestias necesarias que debes evitar por si acaso.

Yo diría que tiene sentido entregar como una pre-pantalla para que no pierdas el tiempo de todos al traerlos al sitio para una entrevista.

Michael Brown
fuente
Para nuestra pre-pantalla, habíamos pedido un código de muestra, que fue proporcionado. Ese código tenía algunas características de lenguaje C # intermedio a avanzado, por lo que realmente esperaba que explotara las preguntas lógicas en solo un minuto o dos.
77
Cuando el código de muestra proporcionado no coincide con el conocimiento demostrado en una entrevista, mi cerebro inmediatamente sospecha del código de muestra.
Graham
@Graham: contratarlo como temporero durante 6 meses ..
Brian
@ 0A0D Lamentablemente, nunca he trabajado en un lugar que permita ese tipo de flexibilidad. Si el puesto anunciado era un trabajo a tiempo completo, eso es TODO lo que podríamos ofrecer a la persona.
Graham
3
No hay valla en ese escenario. Si su "código de muestra" demuestra un conocimiento sólido y no puede codificar fizzbuzz, extraiga la muestra y pregúntele detalles. Si no puede respaldarlo, entonces es hora de mi línea favorita "todavía tenemos algunos candidatos para revisar, nos pondremos en contacto con usted".
Michael Brown
4

Incluso lo entrené para que pensara en usar un bucle y valió la pena considerar 3 y 5 como casos especiales.

Sería interesante saber cuál cree que es la respuesta "correcta" a su pregunta de FizzBuzz-ish. Desde donde estoy sentado, uno bueno (en C) escrito en la carta de su pregunta es:

int f(void) {
    // sum the multiples of 3 and of 5 and subtract multiples of 15 so we don't count them twice
    return ((1000/3)/2)*(999+3) + ((1000/5)/2)*(995+5) - ((1000/15)/2)*(990+15);
}

Una mejor podría ser:

¿Por qué diablos escribirías un programa para hacer eso cuando puedes calcularlo directamente?

El punto es que hay más de una forma de desollar a un gato, y el hecho de que el candidato en cuestión no comenzó inmediatamente a escribir forbucles y modoperadores no significa que sea estúpido. Si quiere saber lo que sabe el candidato, discuta el problema, descubra lo que está pensando. Si está atrapado o confundido, averigüe dónde y por qué. Podría llevarte a un enfoque que nunca consideraste.

Mi pregunta es si debería haberle dado o no la respuesta a las preguntas lógicas.

Como entrevistador, no es su lugar enseñarle una lección al candidato . Si realmente no saben cómo escribir código, no hay absolutamente ninguna necesidad de avergonzarlos pensando en cuánto no saben. Si están lo suficientemente interesados ​​como para preguntar, entonces no dude en compartir. De lo contrario, termine la entrevista, agradézcales por su tiempo y pase al próximo candidato.

Caleb
fuente
+1 para la respuesta sólida en tu último párrafo. Y usted plantea un buen punto en que debería haber dicho "una" respuesta en lugar de "la" respuesta. Hay varias formas de resolver esa en particular. En cuanto a discuss the problem, ese elemento surgió con otras preguntas durante la entrevista. Lamentablemente, el candidato fue ... menos que inmediato en responder. No agregué ese aspecto a la pregunta original ya que realmente estaba tratando de mantenerme dentro de las pautas de P.SE para "buen subjetivo".
1
"No es tu lugar enseñarle una lección al candidato" - No estoy de acuerdo. Un buen programador siempre está aprendiendo. Si responden a su lección actuando agradecidos por aprender cosas nuevas, es una señal de que son buenos programadores. Si hacen caso omiso de su lección, lo más probable es que sean un programador de mierda.
nbv4
Si yo fuera tu entrevistador y me dieras ese tipo de respuesta, te recomendaría a un distrito escolar que necesite maestros de álgebra. FizzBuzz se trata de demostrar un conocimiento básico de programación para que el entrevistador pueda pasar a preguntas que lo diferencien de otros programadores básicamente decentes. Sus respuestas son inteligentes, pero no establecen que entienda el bucle, la aritmética modular, etc., dejando la entrevista para seguir adelante asumiendo que las personas que conocen el álgebra también conocen la programación (incorrecta) o simplemente darle la mano. y seguir adelante (más probable).
user1172763
@ user1172763 Ese es el punto: a diferencia de FizzBuzz, la pregunta de la entrevista del OP se puede responder con un solo cálculo. Por lo tanto, es una mala elección si el punto es ver si el candidato puede escribir un bucle. No puede esperar que un candidato elija una solución más lenta y mucho más detallada en el supuesto de que esté haciendo la pregunta por un motivo específico (y no declarado). De hecho, el entrevistador podría ser fácilmente una pregunta "engañosa" para ver si el candidato nota que el bucle es completamente innecesario. Leer tu mente no es responsabilidad del candidato.
Caleb
2

Su "problema" es que es un humano empático, por lo que es difícil ver a alguien luchar con un problema para el que conoce la respuesta (esto también es un problema si realiza estudios de usabilidad). Desde la perspectiva de los deberes como entrevistador, no está obligado de ninguna manera a enseñarle al entrevistado cómo programar o resolver problemas, o la solución a un problema que usted pregunta.

Cuando entrena a un entrevistado, no es para que pueda obtener la respuesta correcta. Es para que pueda ver si realmente no pueden resolver el problema o si simplemente se quedaron atrapados en uno o dos errores o malentendidos.

Entonces, si desea darle a un entrevistado la solución después del hecho, lo está haciendo solo para usted. En general, prefiero usar ese tiempo para permitir que el entrevistado intente otro problema. Pero un programador "senior" que no puede responder a FizzBuzz probablemente esté fuera de la lista. Si decides dar soluciones, asegúrate de no engañarte a ti mismo pensando que la entrevista fue mejor de lo que fue (si te encuentras pensando, "él no pudo resolver el problema, pero cuando lo expliqué lo entendió bien", entonces Estás en un camino peligroso).

Y sí, he sido un entrevistado que estaba por encima de su cabeza y ni siquiera podía hacer el primer intento de resolver un problema de entrevista. Eso simplemente significaba que necesitaba aprender mucho más para buscar un trabajo en ese campo.

Toma panorámica
fuente
2

Obtener la respuesta correcta no es la parte importante de esta prueba. Lo que estás midiendo es el enfoque de alguien para resolver problemas, cómo se involucran con la pregunta, cualquier cosa creativa o interesante que encuentren en el camino; Ese tipo de cosas. Incluso si obtienen la respuesta incorrecta, pueden ser viables según estos criterios.

OK, no saber que el operador mod es inexcusable, y según las métricas que le he dado a este candidato, parece ser una cancelación, pero no creo que dar la respuesta correcta a este candidato sea de alguna utilidad. beneficio.

Esto se reduce a su propia opinión personal desde aquí. ¿Desea brindar comentarios de la entrevista con el fin de ayudar al candidato a mejorar en futuras entrevistas (y para que los futuros entrevistadores no tengan que sufrir lo que acaba de pasar)? Si es así, exprese sus comentarios en los términos que acabo de describir anteriormente: dígales que no se trata solo de la respuesta correcta, sino de cómo funcionan para llegar a la respuesta es un factor crítico.

Maximus Minimus
fuente
+1 para el comentario de how they work to arrive at the answer is a critical factor. Mientras esperaba que se usara un operador de módulo, eso es solo porque así es como lo habría resuelto. Estaba muy abierto a ver cualquier otro enfoque que resolviera el problema sin crear errores deslumbrantes de las condiciones de contorno (vea mis diversos comentarios sobre el enfoque con recursividad ...).
2

Sentí que debería haberle mostrado una forma de resolver el problema para que al menos pudiera aprender de la experiencia. Pero de nuevo, no preguntó. ¿Cuál es la forma correcta de manejar esa situación?

A mi modo de ver, no hay situación que manejar. Suponiendo que haya rechazado su solicitud, la falta de interés (aparente) del candidato no es algo de lo que deba preocuparse.

De hecho, incluso si él no pide, no debe él una explicación. Y si habló con sus amigos de RR. HH. Al respecto, podrían aconsejarle que no sea aconsejable continuar con el candidato por razones legales.


También vale la pena señalar que el problema de FizzBuzz tiene diferentes "mejores" respuestas dependiendo de cómo lo pregunte. Si solicita la solución "más simple" y la solución "más eficiente", las mejores respuestas son radicalmente diferentes. Y esto puede cambiar su juicio de manera injusta ... si no estaba claro en la forma en que hizo la pregunta. (Por otro lado, un candidato bueno / experimentado tendría la previsión de aclarar eso antes de comenzar a codificar ...)

Stephen C
fuente
2

Para responder a su pregunta, no, no daría la respuesta. Si la persona quiere ser un mejor ingeniero de software, encontrará la respuesta. Si les das una respuesta, les estás robando esta oportunidad.

La pregunta más relevante es ¿cuándo puedes llamarte un desarrollador senior? Esto varía entre organizaciones y países. Por ejemplo, una empresa con la que trabajé consideraba ingenieros de software con 5 años de experiencia como personas mayores. No se hizo hincapié en la calidad de la experiencia, solo en la duración.

Hasta que lleguemos a un estándar que clasifique a todos los ingenieros de software, independientemente de su idioma, nos queda la decisión individual del nivel de sus habilidades. Y continuaremos escuchando sobre "Ingenieros Senior" que reprobaron la prueba de habilidades más rudimentaria.

Hace un par de semanas se hizo la pregunta "¿Cuándo deberías llamarte Desarrollador Senior?" . También escribí una publicación de blog sobre el tema.

Chuck Conway
fuente
¿Podría revisar amablemente el enlace de su blog?
André
@ André enlace actualizado.
Chuck Conway