Saltar al contenido
cookie

Guía para estudiantes · Otoño e invierno del penúltimo año

Entrevistas para prácticas de ingeniería de software

La mayoría de las entrevistas para prácticas de ingeniería de software empiezan con una prueba de programación en línea, seguida de una o dos entrevistas de programación en directo. Cada una suele incluir uno o dos problemas y preguntas de seguimiento, además de algunas preguntas sobre tu experiencia anterior. Las personas entrevistadoras evalúan cómo entiendes el problema, llegas a una solución que funciona, explicas su complejidad temporal y espacial y la pruebas. También se espera que te den pistas.

Las etapas

Muchas grandes empresas empiezan con una prueba en línea de programación cronometrada, que haces desde casa. Por ejemplo, Amazon dice que su prueba en línea para prácticas dura unos 90 minutos y evalúa programación, resolución de problemas técnicos y sus Leadership Principles. La parte de programación dura unos 70 minutos. Después vienen las entrevistas en directo por vídeo, en las que resuelves problemas mientras un ingeniero te observa y te hace preguntas.

La guía de Meta para sus entrevistas de prácticas, actualizada por última vez en 2022, describe dos etapas: una entrevista telefónica inicial y luego más entrevistas, con las mismas expectativas en ambas. Dedica unos 30 a 35 minutos de cada entrevista a programar una o dos preguntas. Google dice que pueden pedir a los candidatos que completen un ejercicio de programación, que evalúan a todas las personas con criterios claros y que no hay acertijos. Los detalles cambian, así que consulta la página de la propia empresa cuando te inviten.

Qué evalúan las personas entrevistadoras

Sobre todo, evalúan cómo llegas a la respuesta. Google dice que la persona entrevistadora tiene en cuenta tu proceso de razonamiento tanto como la respuesta y que te hará preguntas de seguimiento. La guía de Meta te pide que hables de la complejidad big-O de tus métodos y que hagas preguntas para aclarar el problema. También dice que es mejor tener código funcional, aunque no sea óptimo, que quedarse solo con una idea. Además, recomienda empezar con una solución por fuerza bruta y mejorarla si te atascas, y señala que recibir pistas de la persona entrevistadora no es algo malo.

En la práctica, eso significa cinco cosas: entender el problema (explicarlo con tus propias palabras y preguntar por los casos límite y el tamaño de los datos de entrada), encontrar una solución correcta, explicar su complejidad temporal y espacial, mejorarla si puedes y probarla recorriendo un ejemplo y los casos límite a mano. La comunicación es importante en todo el proceso, porque la persona entrevistadora solo puede evaluar lo que dices.

Ejemplo resuelto: suma de dos

Dada una lista de números y un objetivo, devuelve las posiciones de dos números cuya suma sea igual al objetivo. Empieza haciendo preguntas: ¿puede haber más de una respuesta?, ¿se puede usar dos veces el mismo número?, ¿está ordenada la lista?, ¿cuánto puede medir? Después, explica en voz alta el método por fuerza bruta: comprobar cada pareja. Es correcto, pero para una lista de n números requiere un tiempo proporcional a n al cuadrado.

Después, mejora el método. Mientras recorres la lista, guarda en un mapa hash cada número que has visto y su posición. Para cada número nuevo, comprueba si el objetivo menos ese número ya está en el mapa. Así encuentras la pareja en una sola pasada, en un tiempo proporcional a n, a cambio de usar memoria adicional proporcional a n. Por último, prueba el método en voz alta con un ejemplo pequeño, una lista sin respuesta y otra con números repetidos. Explica qué cambiarías si la lista ya estuviera ordenada: usar dos punteros desde cada extremo, sin memoria adicional.

Temas que debes conocer y qué lenguaje usar

En las preguntas para prácticas se suelen usar temas de un primer curso de estructuras de datos y algoritmos: matrices y cadenas de texto, mapas hash y conjuntos, pilas y colas, listas enlazadas, árboles y grafos con búsqueda en anchura y en profundidad, ordenación y búsqueda binaria, recursión y programación dinámica sencilla. Conocer el coste temporal y espacial de cada operación es tan importante como conocer la estructura.

Usa el lenguaje que mejor conozcas. La guía de Meta para sus prácticas recomienda usar el lenguaje con el que te sientas más cómodo, y los consejos de Amazon para su prueba recomiendan repasar y practicar el lenguaje que piensas usar. Python es habitual porque se escribe poco, pero la soltura importa más que la elección.

Pensar en voz alta y la IA en la entrevista

Di lo que estás pensando, incluso si es «aún no estoy seguro», porque el silencio no le da nada que evaluar a la persona entrevistadora ni le permite ayudarte. Si te da una pista, aprovéchala y explica cómo cambia tu método. Practicar así a solas resulta extraño. Por eso ayuda tanto practicar con un amigo o grabarte mientras resuelves un problema y hablas.

Las normas de las empresas sobre el uso de la IA varían, así que compruébalas antes del día de la entrevista. Google dice que no se permite usar herramientas de IA durante sus entrevistas, mientras que Meta dice que muchas de sus entrevistas incluyen un asistente de IA integrado en el entorno de la entrevista, que se espera que los candidatos usen. Si no está permitido, usarlo es hacer trampa. Si forma parte de la entrevista, se evalúa cómo compruebas y corriges lo que te ofrece.

Preguntas sobre tu experiencia y forma de trabajar

La mayoría de las entrevistas técnicas incluyen algunas preguntas sobre tu experiencia: un proyecto del que estés orgulloso, un error difícil de resolver o una ocasión en la que no estuvieras de acuerdo con un compañero de equipo. Amazon evalúa a los candidatos según sus Leadership Principles, que empiezan por la obsesión por el cliente: la idea de que los líderes parten del cliente y trabajan hacia atrás. Así que léelos y prepara un ejemplo para los principales.

Con una cuenta, Preparación para entrevistas de cookie hace una entrevista de práctica para el puesto que indiques con un entrevistador de IA. Te hace una pregunta cada vez, hace preguntas de seguimiento sobre tus respuestas como lo haría un entrevistador real y al final escribe un informe sobre cada respuesta. Usa créditos y muestra una estimación primero.

Dónde comprobarlo

Comprobado con estas fuentes el . Las reglas cambian de un año a otro, así que, si algo de aquí no coincide, consulta las páginas anteriores.

Preguntas frecuentes

¿Qué es una prueba de evaluación en línea?

Una prueba de programación cronometrada que se hace desde casa y que muchas empresas usan antes de las entrevistas en directo. Amazon dice que su prueba para prácticas dura unos 90 minutos y se centra sobre todo en programación.

¿Qué lenguaje debería usar en una entrevista de programación?

El que mejor conozcas. Meta recomienda usar el lenguaje con el que tengas más soltura y Amazon aconseja practicar con el que piensas usar. Así que la fluidez importa más que cuál elijas.

¿Qué dificultad tienen las preguntas de programación para prácticas?

Normalmente se basan en los temas de primer año de estructuras de datos y algoritmos: matrices, mapas hash, árboles, grafos, ordenación y recursión. Las preguntas de seguimiento te piden mejorar o ampliar tu solución.

¿Qué hago si me atasco en una entrevista de programación?

Di en qué punto te has atascado, prueba primero una solución por fuerza bruta y mejórala, y aprovecha cualquier pista que te den. La guía de Meta dice que recibir pistas de la persona entrevistadora no es algo malo.

¿Puedo usar IA en una entrevista de programación?

Depende de la empresa. Google dice que no se permite usar herramientas de IA durante sus entrevistas; Meta dice que muchas de sus entrevistas incluyen un asistente de IA integrado que se espera que los candidatos usen.