Solicité la pasantía a través de LinkedIn. El procedimiento de contratación consta de 3 rondas.
Ronda 1 (Evaluación en línea en HackerRank): fue una prueba de 2,5 horas que consta de alrededor de 20 preguntas. Había 2 preguntas de programación que eran bastante básicas, pocas consultas SQL de rango básico a moderado, pocas MCQ basadas en temas fundamentales de informática: programación orientada a objetos, sistema operativo, DSA, CN y DBMS.
Ronda 2 (entrevista virtual de DSA): el entrevistador comenzó con preguntas básicas de DSA. Me pidió que escribiera el pseudocódigo de los siguientes problemas como
- Invierte una lista enlazada en tiempo O(n).
- Invierte una pila en tiempo lineal pero usando espacio constante. (Sugerencia proporcionada por el entrevistador: Pruébelo usando listas enlazadas)
- Dado un arreglo y un entero K, encuentre el máximo para cada subarreglo contiguo de tamaño k.
Resolví la primera y la tercera pregunta correctamente. Intenté la segunda pregunta usando la recursividad, pero no pude hacerlo en un espacio constante. Me dio una pregunta extra que reemplazaría a la segunda pregunta si la resuelva. la pregunta era:
- problema de la torre de hanoi
Resolví este problema. Estaba contento con toda la sesión y me dijo que me preparara para la siguiente ronda.
Ronda 3 (Entrevista virtual de resolución de problemas): El entrevistador primero me preguntó un poco sobre mis proyectos. Después de eso, me pidió que encontrara el elemento dado en un árbol binario que sigue dos condiciones:
- La raíz de cada subárbol es el elemento más pequeño del subárbol.
- Todos los elementos del subárbol izquierdo son más pequeños que los elementos del subárbol derecho.
- Me pidió que lo optimizara a la complejidad temporal de O(log n). Pude optimizarlo a la complejidad O (log n).
- Luego me pidió que programara un problema que resolví usando una cola de prioridad.
- Luego me preguntó cómo se implementan las colas de prioridad. Le dije que se puede implementar mejor usando la estructura de datos del montón.
Después de esto, me hizo varias preguntas relacionadas con la complejidad de tiempo y espacio de los montones frente a los árboles binarios y cuándo preferir qué estructura de datos (montón o árbol binario) y por qué.
Luego me hizo varias preguntas sobre el diseño de programas utilizando la programación orientada a objetos, como diseñar la estructura de datos del montón.
Después de esto, me pidió que diseñara un programa (usando conceptos de programación orientada a objetos) para un servicio de backend.
PD: Uno de mis proyectos incluía desarrollo backend.
(Ninguna de las preguntas de diseño tenía una respuesta específica. Solo me pidieron vagamente que diseñara las funciones básicas que podrían ser necesarias para completar la funcionalidad).
Diseñé todos los programas lo mejor que pude pero, desafortunadamente, no fui seleccionado para la pasantía.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA