Microsoft IDC Hyderabad visitó nuestro campus en julio para realizar prácticas. Se permitió la Ingeniería Física y todas las ramas de Informática y Eléctrica/Electrónica. Establecieron el límite de CGPA en 7 para presentar la solicitud.
Ronda 1: prueba en línea
La primera ronda en línea fue en línea y tuvo una duración de 75 minutos. Estaba alojado en Co-Cubes, que tenía 3 preguntas de codificación, pero todos tenían preguntas aleatorias. Había una elección de lenguaje entre C, C++, Java y C#. Además, no todos los casos de prueba eran visibles y la mayoría de ellos eran casos de backend/ocultos que se evaluaron más tarde. Los mios fueron:-
- https://www.geeksforgeeks.org/round-the-given-number-to-nearest-multiple-of-10/ (2 puntos)
- https://www.geeksforgeeks.org/linked-list-sum-nodes-0s/ (3 puntos)
- https://www.geeksforgeeks.org/delete-n-nodes-after-m-nodes-of-a-linked-list/ (5 puntos)
Hice estas 3 preguntas en unos 25-30 minutos, ya que eran bastante fáciles. Después de esta ronda, la lista de 110 estudiantes de alrededor de 1000 estudiantes se publicó 5 días después. Aunque los criterios no fueron revelados, en su mayoría se seleccionaron aquellos que completaron todas las preguntas con la complejidad de tiempo y espacio requerida.
Consejo : la velocidad puede ser importante en esta ronda si todos logran hacer 3 preguntas. Piense en la optimización más tarde cuando haya intentado los 3.
Ronda 2: Vuelo grupal (prueba de lápiz y papel)
Esta fue una ronda de lápiz y papel y ocurrió 5 días después de la prueba en línea. Duró 45 minutos e incluyó 7 preguntas de respuesta corta basadas en estructuras de datos y también una pregunta de codificación. La pregunta de codificación tenía 2 partes y la segunda parte era una parte adicional, pero todas las preguntas breves eran obligatorias.
La pregunta de codificación requería que escribiésemos un código de trabajo para Boundary Traversal en papel en un idioma de nuestra elección. Aunque no conocía esta solución de antemano, lo hice usando un BFS modificado y fue aceptado.
La parte adicional se basó en el recorrido en espiral del árbol. Así que también tuvimos que generar todas las capas internas en sentido contrario a las agujas del reloj. No intenté esta parte ya que solo quedaban 5-10 minutos y decidí revisar mis otras respuestas. Afortunadamente también encontré un error. También me aseguré de incluir comentarios en mi código escrito durante este tiempo.
Las preguntas cortas eran fáciles pero propensas a errores. También variaban de persona a persona principalmente en términos de valores dados. Se basaron en: –
- Cálculo de direcciones de array
- Conversión de sufijo infijo
- Expansión de macros
- Diferencia de velocidad b/n Recorrido principal de fila y columna
- Salida de string después de la manipulación por bucles.
- Recomendar una estructura de datos para la situación dada
- Corrección de sugerencia para código dado (si es incorrecto)
Consejo : asegúrese de hacer las preguntas correctamente en lugar de hacer todas las preguntas.
Ronda 3: Entrevista Técnica 1
Solo 31 estudiantes fueron seleccionados después de la ronda anterior para las entrevistas.
Mi entrevista comenzó un par de horas después de la prueba. El entrevistador no se molestó en pedirme mi currículum. Inmediatamente me hizo una pregunta.
Era un problema de LCA y escribí el código basado en el método 2 en menos de 5 minutos.
Entonces ella me preguntó Búsqueda de substrings de anagramas . Para esta pregunta, discutimos bastante sobre la optimización e incluso continuamos discutiendo las compensaciones entre mapas ordenados y desordenados como el uso de memoria y también la estructura de datos subyacente, es decir, Red Black Tree y Hash Table. Inicialmente, no estaba convencida con mi algoritmo y seguía pidiéndome que hiciera casos de prueba y realizara una ejecución en seco (mi escritura a mano y el código desordenado pueden haber contribuido a eso: p). Debido a esto, dedicamos casi media hora a la entrevista.
Sugerencia : Practique escribir código con lápiz y papel, ya que todas las entrevistas se realizaron de esta manera.
Ronda 4: Entrevista técnica 2
Esta entrevista comenzó media hora después de la anterior. El entrevistador preguntó inicialmente cómo me fue en mi prueba escrita y luego me pidió mi currículum. Hizo un par de preguntas sobre algunos puntos mencionados. Después, ella también me dio preguntas para codificar.
En primer lugar, me preguntó Root to leaf path sum problem y escribí el código de manera recursiva. Estaba acumulando la suma en lugar de restarla y ella me preguntó si podía mejorarla más. Le dije que podía eliminar la variable adicional y ella estuvo de acuerdo.
Luego me preguntó cuál es mi estructura de datos favorita (para su información, es DSU) y que haría una pregunta al respecto. Le dije que no me importaba y que me podía preguntar relacionado con el que quisiera. Pareció un poco sorprendida al principio, pero luego me dijo que tenía el espíritu correcto y para esta pregunta me dio una array relacionada. la pregunta era:
Encuentre la posición i en una array de longitud n tal que la diferencia absoluta entre el elemento máximo a la izquierda de i (a[j] donde j<i) y el máximo a la derecha de i (a[k] donde k>i) sea máximo.
En otras palabras, |max(a[0..j])-max(a[k..n-1])| debe ser máximo donde j<i y k>i.
La solución me llamó la atención de inmediato y cuando se la dije, me pidió que la codificara. Se realizó utilizando dos arreglos usando Programación Dinámica unidimensional (prefijo max y sufijo max). Debido a esto, fue la entrevista más corta de todas a pesar de que siguió insistiendo en hacer una variedad de casos de prueba.
Consejo : si confía en sus habilidades, aproveche la oportunidad. Puede impresionar muy bien a los entrevistadores de esta manera.
Ronda 5: RRHH + Entrevista Técnica
Después de esperar alrededor de una hora para que terminaran otras entrevistas, se anunciaron los resultados y se les dijo a algunas personas que esperaran. Fui la primera persona del grupo en ser llamada por el gerente de recursos humanos. Este duró alrededor de media hora. Inicialmente me pidió que le diera una introducción básica y luego me preguntó sobre los proyectos y habilidades de mi currículum (Android+Web+Data Science). Aunque no preguntó sobre Android, discutimos por qué tomé ciertas decisiones en mi proyecto y la lógica detrás. Hubo mucho énfasis en el aspecto reutilizable del código en los proyectos. Incluso llegó a preguntar sobre los detalles de la implementación en paquetes como numpy, pandas y Django y por qué eran efectivos en comparación con las implementaciones convencionales.
Parecía más un gerente ya que era visiblemente mayor que el resto de los entrevistadores. Pero, para mi sorpresa, incluso me hizo preguntas de codificación, ya que pensé que sería estrictamente una ronda de recursos humanos. QWERTY Words era la pregunta. Este lo hice fácilmente. Luego me pidió que lo hiciera de forma iterativa en lugar de recursiva y me tomó un tiempo llegar a la solución. Le expliqué que la diferencia en cuestión era similar a la diferencia entre DFS y BFS, por lo que se podía hacer usando una cola. Cuando terminé de escribir el código, me dijo que la entrevista había terminado y me preguntó si quería preguntarle algo. (Todas las entrevistas terminaron así)
Consejo : las rondas de recursos humanos son una piel de plátano potencial, así que sé comunicativo y no te rindas, ya que puedes obtener una pista sutil pero importante.
Ronda 6: Entrevista final
Esta fue una entrevista improvisada segundos después de la anterior, tomada por otro Gerente que estaba tomando la Ronda de Recursos Humanos de otros candidatos. Sentí que era solo para ponerme a prueba después de un largo día, ya que él volvió con otros candidatos después de darme solo una pregunta. Más tarde descubrí que otros candidatos seleccionados no estaban obligados a dar esto, así que supongo que él solo estaba tratando de ponerme a prueba y/o inquietarme con una entrevista informal. La pregunta era crear una función ATOF personalizada (Ascii to Float) con una array de caracteres como entrada. Después de unos 10 minutos de escribir la función básica, quise preguntarle una duda y cuando lo llamé, regresó y leyó el código de inmediato. Después de leerlo, me dijo que había terminado por hoy.
Naturalmente, estaba de mal humor, ya que habían pasado casi 14 horas en el campus, por lo que me agité un poco en mi respuesta a su respuesta críptica de cuál es el resultado: p. Luego dijo con una sonrisa en hindi: «Ve a casa y festeja». No esperaba la confirmación oficial ese día pero justo cuando llegué a casa el Coordinador de Prácticas envió la lista.
Se seleccionaron 8 personas y mi nombre estaba entre ellos. Inmediatamente comenzaron a llegar las felicitaciones y fue un gran momento.
Consejo : la mayoría de las empresas tecnológicas prefieren concentrarse en la codificación competitiva y la capacidad de resolución de problemas de los solicitantes en las entrevistas. Práctica. Entender. Y no te atiborres porque cuando te enfrentes a una pregunta desconocida, solo tu comprensión de los temas puede ayudarte. Así que cree en ti mismo, ya que puedes encubrir otros defectos concentrándote en esto.
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