Me recomendó un estudiante de último año de la universidad. El proceso tomó 2 semanas en total.
1 ronda telefónica, preguntando sobre mi experiencia como algunas preguntas básicas de DS.
Después de 4/5 días, me invitaron a una entrevista con ellos en su oficina de Bangalore. (Ya estaba en Bangalore)
4 rondas consecutivas con 1 hora de almuerzo en el medio. Todas las rondas continuaron durante 45 minutos a 1 hora aproximadamente. La ronda del gerente de contratación se prolongó durante 2 horas.
Ronda 1:
Me pidió que me presentara, luego me preguntó sobre mis proyectos anteriores, etc. Luego me pidió encontrar LCA en Binary Tree .
Esta fue una pregunta bastante fácil. Me pidieron que me acercara primero. Una vez que le dije mi enfoque, me pidió usar la pizarra para codificarlo. Después de codificar, me preguntó si podía optimizarlo aún más. Me insinuó la cantidad de llamadas recursivas adicionales que ocurrieron incluso después de encontrar el lca. Descubrí y edité el código para cumplir con los requisitos. Después de eso, me pidió que probara mi código y qué casos debería considerar. (Use tantos casos extremos/casos negativos como sea posible. Microsoft está obsesionado con la recursividad y los casos extremos). Parecía satisfecho con eso. Luego me preguntó si esto era un BST ., ¿cómo hubiera abordado la pregunta? Tuve que editar el código para ejecutar BST después de discutir el enfoque. (Complejidad de tiempo y casos extremos) Luego continuó preguntando por qué quería cambiar tan pronto (ya que me había unido a otra firma 3 meses antes) y si tenía alguna pregunta.
La ronda 2:
Una ronda rápida de introducción. Diseñé un motor de recomendación de video y me dio el género de la canción y el artista como caso de uso. Discutido el enfoque primero. Utilicé una estructura de árbol simple para el almacenamiento de metadatos y mi enfoque se basó en la calificación de la canción y el tiempo de reproducción. Ella me hizo muchas preguntas sobre eso. Me pidió que escribiera diagramas de clase en una pizarra blanca. Después de escribir los diagramas de clases, me preguntó qué patrón de diseño seguí, cómo lo ampliaría, qué almacenamiento preferiría y por qué. Luego me preguntó esto: «Suponga que un niño dibuja una forma geométrica regular en una página en blanco de MS Paint, escriba un algoritmo para identificar la forma». Ella estaba esperando que yo le hiciera una contrapregunta sobre los diversos escenarios, y la pregunta finalmente se redujo a identificar una forma en una array 2d, donde 0 significa que no está llena de color, 1 significa que está llena de color. Se esperaba que escribiera código modular con nombres adecuados de variables y funciones. Pareció satisfecha con mi respuesta. Luego me preguntó si tenía alguna pregunta para ella, etc.
Ronda 3:
El entrevistador era otra persona mayor. Se presentó y habló sobre su papel en Microsoft. Luego me pidió que me presentara y tuvimos una discusión sobre mis proyectos anteriores. Luego preguntó esto: “Hay un número de origen y un número de destino. Puede seguir realizando cualquiera de las siguientes operaciones: *2, /2, +2 en la fuente. Tienes que pensar en un Sí o un No si el destino es alcanzable”. Me pidió que escribiera el código en una pizarra blanca. Después de eso, me preguntó si se trataba de una aplicación que había desarrollado y quería enviarla, qué cosas debería considerar antes de enviarla. Qué haría todas las pruebas antes de que se implementara en diferentes entornos, cómo me aseguraré de que no haya un desbordamiento de pila debido a una función recursiva en mi aplicación (se me ocurrió un enfoque de contador). Todo lo que hay que tener en cuenta al probar la carga de mi aplicación, etc. Hizo algunas preguntas más sobre la limitación de velocidad, la sincronización de subprocesos y los bloqueos. Después de una larga discusión, me hizo la misma pregunta de por qué quería unirme a MS (¡Duh!), Por qué cambiar tan pronto y algunas preguntas más sobre comportamiento.
Pausa para almorzar
Ronda 4:
El entrevistador era una persona muy importante (Nivel de Director). Primero me hizo algunas preguntas de comportamiento. ¿Por qué MS?, ¿Por qué salir tan temprano? etc . Luego tuvimos una discusión en profundidad sobre mis proyectos anteriores y mi papel en esos proyectos. Luego me pidió Número mínimo de plataformas. pregunta. Después de dar el enfoque, me pidió que lo codificara en una pizarra blanca (también preguntó por la complejidad del tiempo). Luego lo modificó a esto: «Supongamos que cada plataforma Pi tiene un vendedor de té y cada tren Ti tiene personas Xi subiendo al tren. Ahora, si todos los pasajeros beben té antes de abordar el tren, ¿cómo asignará los trenes a las estaciones para minimizar la diferencia máxima de ganancias de los vendedores de té (suponga que el precio del té es constante)? Esta modificación me tomó un tiempo para entender. Mostró un poco de agitación al principio (tal vez solo para ver cómo los entrevistados abordan situaciones desfavorables) pero luego terminamos con una buena carcajada. Hice algunas contrapreguntas y finalmente se me ocurrió un enfoque basado en montones. Me preguntó la complejidad del tiempo y luego me pidió que lo codificara en una pizarra. (Todos los códigos estaban en pizarra para todas las rondas). Pareció satisfecho con mi respuesta. Continuó haciendo algunas preguntas más de comportamiento.
Puntos importantes: Haga preguntas si tiene alguna confusión. ¡Practique mucho la codificación de la pizarra! Tenga un buen conocimiento de la complejidad del tiempo (le preguntarán después de cada código que escriba). Considere todos los casos extremos mientras prueba su código. Preferir soluciones recursivas si no aumenta la complejidad del tiempo.
¡Finalmente, después de una semana, recibí una llamada de recursos humanos y obtuve la oferta! Gracias a GeeksForGeeks por ayudarme con la preparación.
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