5 min de lectura

Cómo tener éxito en una entrevista técnica: consejos de un experto

¿Qué es una entrevista técnica? ¿Qué algoritmo se utiliza para desarrollarla? ¿Qué errores típicos deberías evitar en tu próxima entrevista? Boris Tseytlin, Senior Machine Learning Scientist y dueño del canal de Telegram Boris Again, explicó cómo procede usualmente una entrevista técnica y cómo prepararse para la misma.

Boris Tseytlin, Senior Machine Learning Scientist

¿Qué es una entrevista técnica y por qué se necesita?

— Una entrevista técnica es una de las etapas de contratación de especialistas técnicos en una empresa de IT. En esta etapa, un ingeniero de la empresa pone a prueba los conocimientos del candidato. Durante una entrevista técnica, el entrevistador verifica hasta qué punto las habilidades del candidato corresponden al puesto para el cual se desea contratar. Es en las entrevistas técnicas donde se elimina a la mayoría de los candidatos.

Por lo general, hay más de una entrevista técnica, y existen diferentes tipos. Un proceso de contratación tradicional implica dos entrevistas técnicas:

  1. La primera se asemeja a un examen de conocimientos teóricos y aplicados.

  2. La segunda trata sobre el diseño del sistema con preguntas abiertas como: "¿Cómo crearías un servicio de transmisión de video?", "Tienes un servicio con una carga pesada y una base de datos que ya no cabe en el disco de un servidor. ¿Cómo resolverías tal problema?", etc.

Me centraré en el primer tipo de entrevista. Las grandes empresas tienen sus propias reglas específicas para realizar entrevistas técnicas. Realizar una entrevista con una gran empresa puede incluir varias entrevistas con tareas sobre algoritmos. No voy a hablar aquí de las grandes empresas, sino del proceso de contratación en la mayoría de las empresas.

¿Cómo transcurre una entrevista técnica?

— Los detalles de la entrevista técnica varían mucho de una empresa a otra, pero es posible identificar enfoques comunes.

La estructura estándar de la primera entrevista técnica suele implicar dos componentes. Durante los primeros 10-15 minutos, al candidato se le hacen preguntas simples sobre el lenguaje de programación y la tecnología. Si el puesto implica el uso de Python, por ejemplo, a menudo se pregunta: "¿Qué es un decorador?", "¿qué es GIL y cómo funciona?" y "¿cómo trabaja Python con la memoria". Durante esta parte de la entrevista, el entrevistador trata de evaluar el nivel del candidato.

Hay otra estructura, también popular, para la parte inicial de la entrevista. En esta etapa, al candidato se le hace una pregunta sobre su experiencia pasada y luego el entrevistador profundiza en los temas mencionados anteriormente con preguntas adicionales.

Los detalles dependen del puesto:

  • Al programador se le suele preguntar sobre el lenguaje y los algoritmos, las estructuras de datos y el stack tecnológico de la empresa.

  • Para el analista, habrá más preguntas sobre SQL y bases de datos, teoría de la probabilidad y estadísticas matemáticas.

  • En las entrevistas de Aprendizaje Automático (AA) o Machine Learning (ML), se les pregunta a los especialistas sobre estadísticas y teoría de probabilidad, teoría de aprendizaje automático y detalles sobre cómo funcionan los modelos.

Los 30-45 minutos restantes en cualquiera de las estructuras de la primera entrevista técnica es una tarea de código en vivo. El entrevistador y el candidato están conectados a un entorno colaborativo donde pueden escribir código juntos, pero no pueden ejecutarlo. El entrevistador explica la condición del problema y el candidato hace preguntas, aclara la condición, escribe el código y evalúa la complejidad asintótica de la solución en notación O(N).

Consejos para tener éxito en una entrevista técnica

— Lo más importante es abandonar la mentalidad de estudiante en un examen. La entrevista debe ser percibida como la comunicación entre dos especialistas. Los malos entrevistadores dan la impresión de un interrogatorio, pero no te dejes pisotear por ello. Si te preocupas y te defiendes, es probable que fracases. Un truco sencillo para el enfoque correcto es imaginar que tú y el entrevistador ya son colegas y están del mismo lado. La segunda cosa a recordar es que no solo se prueba tu conocimiento técnico en la entrevista. Las personas están intentando averiguar si quieren trabajar contigo. Por lo tanto, necesitas demostrar tu forma de pensar: no dudes en hacer preguntas y no tengas miedo si no sabes algo.

Consejos prácticos

— Para pasar la primera etapa con preguntas simples, necesitas prepararte. El entrevistador generalmente intenta eliminar a las personas que no saben absolutamente nada. Por lo general, todos los entrevistadores hacen las mismas preguntas, en Internet encontrarás las listas. Si no conoces la respuesta de una pregunta que se puede encontrar fácil en Internet en solo 5 minutos, entonces eso será tu talón de Aquiles. Además, prepárate para que te hagan preguntas sobre las tecnologías que mencionaste en tu currículum.

La parte algorítmica de la entrevista es la más difícil. La preparación para ella se divide en dos etapas:

  • Conocer el proceso de la entrevista; y

  • Practicar la resolución de problemas.

El proceso de la entrevista es estándar. Conocer las reglas del juego ayuda mucho. La estructura es la siguiente:

  1. El entrevistador explica la condición de la tarea. En este punto, necesitas hacer preguntas sobre la condición y descubrir todas las restricciones que a menudo no se mencionan específicamente. Por ejemplo: "¿Qué pasa si la matriz está vacía?", "¿Son todos los elementos únicos?", "¿Cuáles son los límites de memoria y velocidad?". La razón más común por la que algunos fracasan en esta etapa es malinterpretar una condición.
  2. No escribas el código de la solución hasta que el entrevistador te dé la "luz verde". La manera más fácil de fracasar en una entrevista es comenzar a escribir en la dirección equivocada, estancarse y luego exceder el tiempo permitido. Retrasar al entrevistador también puede llevar al fracaso.
  3. Durante esta parte de la entrevista, discute verbalmente el problema y la solución con el entrevistador. Es importante pensar en voz alta y hacer preguntas. En esta etapa, puedes escribir pruebas en el código. Intenta descubrir todos los casos únicos que necesitan ser procesados. A menudo, después de hacer esto, te das cuenta de que aún no entendiste la condición correctamente.
  4. Tu tarea es idear la solución óptima. Si no funciona, por regla general, el entrevistador te dará una pista. Necesitar una pista es, por supuesto, algo negativo, pero es mejor resolver con una pista que no resolver en absoluto.
  5. Después de obtener el permiso para escribir código, comienza la implementación.
  6. Después de escribir el código, asegúrate de revisarlo. A menudo, los candidatos se pierden cosas simples debido a los nervios. Pueden, por ejemplo, olvidarse de devolver el resultado de la ejecución. Las pruebas escritas anteriormente serán útiles aquí: ¿cubre la implementación todos los casos? Repasa tu código con la mirada y di los puntos principales en voz alta. Pequeños errores tales como, por ejemplo, confundir los signos de "más" y "menos" no son terribles, pero captarlos te da puntos extra.

— Ahora que conoces la estructura, lo único que queda es practicar la resolución de problemas y escribir código sin la ayuda de la ejecución ni el IDE. Abre LeetCode, ordena las tareas por complejidad o popularidad y resuelve algunas. Lo más probable es que para prepararte para las entrevistas típicas, será suficiente resolver las tareas de nivel fácil.