Ronda 1 – Prueba escrita
En esta ronda, fuimos evaluados en aptitud, conceptos básicos de informática básica, preguntas basadas en resultados en C (todas de nivel medio).
Ronda 2 – Técnica 1
En esta ronda, se pusieron a prueba mis habilidades básicas de programación, conceptos de sistemas operativos y conceptos de redes informáticas.
Codificación
Explicar la lógica y la implementación de encontrar un punto de intersección en dos listas enlazadas ( https://www.geeksforgeeks.org/write-a-function-to-get-the-intersection-point-of-two-linked-lists/ ) .
Expliqué dos enfoques,
- Usando espacio adicional, es decir, use un HashSet, agregue todos los elementos de la primera lista y luego agregue los elementos de la segunda lista. Siempre que encontramos un elemento que ya está presente en el HashSet, encontramos el punto de intersección.
Obviamente, el entrevistador me pidió que no usara espacio extra. Así que expliqué el otro enfoque,
- Encuentre las longitudes de ambas listas vinculadas y encuentre la diferencia ‘d’ entre ambas longitudes. Recorra la lista enlazada más larga por ‘d’ y luego recorra ambas listas juntas y en cada iteración verifique si ambos Nodes son iguales. Si son iguales, tenemos nuestro punto de intersección.
Quedó satisfecho con la respuesta pero no quería tantas operaciones, así que me pidió otro enfoque. Mientras pensaba en la solución, me preguntó si podía detectar un bucle en la lista enlazada. Después de hablarle sobre la detección de bucles usando punteros rápidos y lentos, me preguntó si puedo usar la detección de bucles en la solución del primer problema. La respuesta a eso es conectar el último Node de la lista vinculada al primer Node de cualquiera de las listas vinculadas, lo que simplemente creará un bucle en la lista vinculada y el problema se reduce a encontrar el Node de bucle en la lista vinculada.
Sistema operativo
El entrevistador me preguntó
- Inversión de prioridad y formas de abordarla
- Para explicar la condición de carrera, interbloqueo, problema de la sección crítica con ejemplos
- Preguntas relacionadas con hilos y procesos
- Diseñe el diseño de la memoria de un programa en C que escribió.
Red de computadoras
Me pidió que explicara todas las capas del conjunto de protocolos TCP/IP y profundizó en la capa de enlace de datos (responsabilidades y métodos utilizados en ella).
Proyecto – El entrevistador me pidió que explicara uno de mis proyectos en detalle.
Ronda 3 – Técnica 2
Esta ronda también trató sobre codificación y sistemas operativos.
Codificación
El entrevistador me pidió que explicara y escribiera el código de nivel de producción para este problema de https://www.geeksforgeeks.org/check-for-balanced-parentheses-in-an-expression/ .
Sistema operativo
- Se hicieron muchas preguntas sobre los sistemas de memoria compartida (como cómo se comparte exactamente la memoria entre procesos en diferentes escenarios)
- No recuerdo completamente la pregunta, pero era algo así como: cómo copiar el contenido de dos relojes, uno de los cuales cambia cada milisegundo mientras que el otro cambia cada segundo en dos registros sin usar ningún registro temporal. No pude responder correctamente, pero estaba satisfecho con mi proceso de pensamiento.
- Algunas preguntas más sobre memoria virtual y paginación.
ronda de recursos humanos
La última ronda parecía una formalidad en la que Recursos Humanos me pidió que me presentara, me preguntó mis preferencias en términos de trabajo y ubicación. También hice algunas preguntas sobre Qualcomm y el trabajo que voy a hacer allí.
Resultado final
Oferta de colocación recibida para el puesto de Ingeniero (Software).
Publicación traducida automáticamente
Artículo escrito por Anand Batra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA