¿Puedo preguntarle a un entrevistador cuáles son sus preferencias antes de trabajar en una tarea técnica?

Actualmente me encuentro en proceso de búsqueda de empleo como desarrollador de software. En este campo, las asignaciones técnicas son una forma popular para que los empleadores evalúen a los candidatos. Me gusta este proceso, pero tengo una preocupación.

Tengo la sensación de que los entrevistadores (comprensiblemente) tienen preferencias subjetivas específicas que se relacionan con los paradigmas de programación, las opciones arquitectónicas, etc. Estas preferencias pueden afectar su proceso de revisión.

En cuanto a mí, también tengo mis propias preferencias subjetivas, pero creo que soy bastante adaptable y puedo escribir código en estilos dramáticamente diferentes; realmente depende del tipo de proyecto en el que estoy trabajando y quién es mi audiencia.


El problema es que cuando envío código para tareas técnicas, no sé quién es mi audiencia. La elección de la tecnología a menudo no me dice mucho, porque algunos lenguajes son multi-paradigma (por ejemplo, C# y Scala) y puede haber dos formas igualmente válidas de usarlos (por ejemplo, la forma de Java y la forma de Haskell). Y, en general, soy terrible para evaluar las preferencias de otra persona sin preguntarles .

Por lo tanto, cada vez que recibo una tarea, corro el riesgo de presentar una solución que no le gustará al entrevistador, aunque podría (y estaba dispuesto a) presentar una solución que le hubiera gustado. Este no es el fin del mundo, por supuesto, pero hace que todo el proceso se sienta como un juego y una pérdida de mi tiempo (y el de ellos).

¿Puedo solicitar amablemente una aclaración del entrevistador antes de invertir tiempo y esfuerzo en la tarea, o eso se consideraría descortés? (Esa aclaración sería sobre qué paradigmas y prácticas seguiría su solución ideal). ¿Y hay algún punto con el que deba tener cuidado en mi solicitud?

Respuestas (3)

La respuesta a esto es tanto sí como no. Algunos entrevistadores serán como yo. Cuando te dan una tarea, quieren que hagas preguntas. De hecho, uno de los propósitos de la tarea es ver si hace preguntas. (No llevo "tareas" a casa, esto es para una entrevista de pizarra en persona). Si doy una tarea vaga, es porque espero que haga preguntas aclaratorias antes de comenzar.

Otros entrevistadores, sin embargo, quieren minimizar su esfuerzo al descartar a las personas que ni siquiera saben codificar. Esto es especialmente cierto cuando ha descargado una tarea de un sitio web y se espera que solo cargue su solución. Responder a sus preguntas no minimiza su esfuerzo. Por lo tanto, sería bueno formular preguntas específicas y precisas que le proporcionen mucha información a la vez y lo hagan parecer inteligente, no como alguien que vaga por el desierto sin saber cómo hacer las cosas. Estos podrían ser:

  • ¿Usas una guía de estilo específica? (Opcionalmente, agregue "o debería usar X", donde X es una guía de estilo muy conocida en su comunidad).
  • ¿Está bien usar [marco] en esto o necesitas [lenguaje] puro?
  • ¿Puede darme un contexto de la imagen más grande en la que encajaría esto (si se le pide que diseñe una API o alguna otra interfaz externa y necesita más información para tomar decisiones)
  • ¿Tiene un ejemplo de algo más de su equipo para que pueda usar un enfoque similar para nombrar y diseñar?

Si la persona se niega a responderlas, es posible que le esté diciendo que trabajar allí no sería bueno para usted. Pueden estar pensando para sí mismos "este candidato no puede tomar ninguna decisión y me pregunta cosas triviales". Pueden estar orgullosos de sí mismos y de su capacidad para pasar por alto sus elecciones de estilo, convenciones de nomenclatura e incluso elecciones de paradigmas en algunos casos, para detectar el verdadero talento de programación que hay debajo. Tu pregunta implica que no tienen esa habilidad y pueden contar en tu contra. (O, por supuesto, puede mostrar cómo eres lo suficientemente inteligente como para saber dos formas de hacerlo y lo suficientemente sabio como para preguntar cuál prefiere. Mucho depende de cómo formules la pregunta).

En pocas palabras: si necesita información para continuar (por ejemplo, no le dijeron qué lenguaje de programación usar o qué versión de algo apuntar) o puede hacer una pregunta breve y fácil como "¿tiene una guía de estilo que quiere que haga?" seguir", entonces probablemente sea seguro hacer una pregunta si se trata de algo asíncrono por correo electrónico o a través de un sitio web. Dependiendo de la respuesta, puede sentirse seguro preguntando a otro. Si se trata de una entrevista de pizarra o una sesión de emparejamiento remoto, continúe y pregunte todo lo que quiera, eso es parte del proceso.

Trate de hacer buenas preguntas donde pueda. Comparar:

  • ¿Querías pruebas sobre esto también?

con:

  • Estamos incluyendo pruebas, ¿verdad? ¿Usas [marco de pruebas]?

Trate de enmarcar las preguntas como "Sé algo, eso es bueno, ¿debería mostrarle que puedo hacerlo?" y no como "¿quieres que haga algo?" lo que no confirma que puedas y lo harás.

Gracias por la respuesta. Creo que debería eliminar la palabra "legibilidad" de mi pregunta, porque distrae de lo que quería preguntar. Lo que más me preocupa son las fuertes preferencias en cosas más grandes, como los paradigmas de programación, por ejemplo: ¿qué pasa si el entrevistador está fuertemente a favor de la OOP imperativa tradicional mientras que una solución de FP más moderna podría funcionar (o viceversa)?
Me resulta difícil imaginar que la descripción del trabajo no sería su guía allí, junto con el lenguaje y el marco que le dijeron que usara. Pero de todos modos, una pregunta que no te haga parecer débil, esa es la clave.
¿Diría que es razonable para mí exigir esto antes de hacer la tarea? Es decir, si se niegan a aclarar y realmente no puedo decir lo que les gustaría ver (y lo que no les gustaría), ¿sería irrazonable si me negara a "apostar" (por así decirlo) por completo?
No creo que importe si es razonable o no. Si elige no hacer la tarea, probablemente no lo contratarán. Es posible que no piensen mal de ti, pero no podrás omitirlo y proceder a una entrevista en función de su negativa a brindarte más información. ¿ Creería que fue razonable detener un proceso de contratación que no estaba funcionando para usted? Seguro. Pero eso no hace que te contraten.
"Pueden estar orgullosos de sí mismos y de su capacidad para pasar por alto [...] elecciones de paradigmas [...] para detectar el verdadero talento de programación que hay debajo" - ¿Detecto un indicio de desaprobación aquí? Si es así, ¿podrías ampliarlo un poco? Soy culpable de suponer que alguien que se expresa bien en un paradigma se expresaría bien en otro...
No, no estoy desaprobando al entrevistador. Creo que muchos pueden decir si eres bueno o no, incluso si estás usando un enfoque diferente. Y otros creen que pueden aunque en realidad se dejen llevar por cosas como "puaj, ascua" o cosas por el estilo. Mi advertencia es que si le dices al entrevistador "Necesito saber si prefieres A o B porque creo que si accidentalmente hazlo en A, no podrás ver lo brillante que soy solo por tu preferencia por B", eso no es un cumplido.

Como entrevistador, si me hiciera preguntas sobre lo que esperaba en una respuesta, me complacería que se asegurara de que entendiera lo que estaba preguntando, a menos que sus preguntas fueran estúpidas. Las buenas preguntas pueden mostrarme que comprende que puede haber molestias en la pregunta y compensaciones en la posible respuesta. Si me hiciera preguntas sobre esas compensaciones, me impresionaría que sepa que no hay una forma correcta de hacer algo. Creo que esto es cierto para cualquier buen entrevistador.

Cuando se trata de opiniones sobre paradigmas y arquitecturas, puede preguntar y diferentes entrevistas reaccionarán de manera diferente. Tendría cuidado de no guiarlo hacia una elección en particular. Me gustaría que tú tomaras las decisiones. Después podríamos hablar sobre las elecciones que haría. Otras entrevistas pueden estar mucho más dispuestas a orientarlo sobre estas decisiones. Dudo que alguien lo sostuviera por hacer estas preguntas. Después de dar su respuesta, seguiría con preguntas sobre su respuesta para asegurarme de que está haciendo lo que cree que es lo correcto y no lo que cree que estoy buscando.

Cuando se trata de cuestiones de filosofía y juicio, haga las elecciones que haría, no las que crea que complacerán al entrevistador.

Hay dos propósitos para una entrevista:

  1. Para que la empresa decida si eres un buen candidato para el puesto.
  2. Porque tú decides si la empresa es un buen lugar para que trabajes.

Si cambia la forma en que trabaja en la entrevista para obtener el trabajo, puede funcionar. Entonces tendrás que trabajar de esa manera cuando consigas el trabajo. Puede ser lo suficientemente adaptable para hacerlo. Sin embargo, estarás haciendo las cosas de maneras que no elegirías. Hay algunos compromisos como este en cada trabajo, sin embargo, si tiene fundamentalmente diferentes filosofías sobre paradigmas y arquitecturas, no será feliz. Todos los días tendrás que forzarte a ti mismo a trabajar en contra de tu juicio. No podrás poner tu pasión en el trabajo.

En su lugar, deja que la entrevista sepa lo que crees. Ambos pueden decidir la forma en que funcionan las empresas y la forma en que trabajas son lo suficientemente cercanas como para que te entusiasme trabajar allí.

Entiendo lo que quiere decir, pero mi pregunta no es si debo tratar de adaptarme a las expectativas de un entrevistador, aunque también es una pregunta válida con mucha profundidad. Se trata más bien de si debo preguntar cuáles son sus expectativas y preferencias antes de gastar el tiempo y el esfuerzo necesarios.
@TC Agregué a la pregunta para abordar las preguntas sobre las expectativas.

Si no quieres preguntar, espero que al menos siempre te expliques. Eso es lo que hago en las entrevistas.

Explica mi proceso de pensamiento, cada paso del camino, comenzando por reformular mi comprensión del problema en mis propias palabras, para diseñar decisiones, para cada línea de código a medida que lo escribo, dando al entrevistador la oportunidad de evaluarme y corrígeme.

Como dijiste en tu pregunta, puede haber múltiples formas de abordar un problema. Al explicar, le muestro al entrevistador mi proceso de pensamiento, al mismo tiempo que le doy la oportunidad de guiarme a una solución que podría ser más relevante para el proyecto para el que estoy entrevistando.