Recientemente recibí una oferta de pasantía de Microsoft IDC y me gustaría compartir mi experiencia con la entrevista. Es un poco largo porque estoy compartiendo mi experiencia, no solo las preguntas.
Primera ronda (en línea): esto era común tanto para Microsoft IT como para IDC. Hubo 2 preguntas de codificación (1 hora) y 20 MCQ (30 minutos). Los MCQ se basaron principalmente en estructuras de datos, C/C++ y algunos en el sistema operativo. En las preguntas de codificación nos dieron la función principal, solo teníamos que completar el código de las funciones.
Pregunta de codificación 1: Encuentre el punto de intersección de dos listas vinculadas. (Puntos de bonificación por verificar si las listas vinculadas dadas son circulares)
Pregunta de codificación 2: Dada una array que consta de 1 y 0, un grupo se define como una colección de 0 completamente rodeada por 1. Ejemplo,
1 1 1 1 1 1 0 0 0 0 1 1 1
1 1 1 0 0 1 1 0 0 1 1 1 1
1 1 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 0 0 0 0
Esta array contiene solo un grupo ya que solo un grupo de 0 está completamente rodeado de 1
Encuentre el número de piscinas en una array dada
Resolví ambas preguntas pero no pude pasar todos los casos de prueba para la segunda pregunta. Pero resolví el problema de la bonificación en la primera pregunta y mi puntaje general aumentó. Entonces, si recibe alguna pregunta adicional, no la ignore. Pueden ayudarlo a obtener una puntuación realmente buena.
Segunda ronda (teléfono): el entrevistador comenzó hablando sobre Indore (mi ciudad natal), mis debilidades, mis pasatiempos, etc. Así que básicamente estaba tratando de calmarme (aunque no estaba entrando en pánico. No tengo idea de por qué pensó Yo estaba :-P). Luego comenzó con las preguntas.
Pregunta 1: Suponga que está a cargo de un proyecto en el que necesita desarrollar un sistema de reserva de boletos de tren en línea. ¿Cuáles son las cosas que consideraría al planificar el proyecto y por qué?
Estaba emocionado porque ya había preparado esta respuesta. Básicamente es el tipo de pregunta en la que desean verificar la escala en la que piensas y cuánto te mantienes actualizado con la última tecnología. En primer lugar, hablé sobre cómo nuestros requisitos ayudarían a determinar qué tecnología utilizar. Le conté sobre mis proyectos en php y ASP.NET y luego comparé los dos en términos de costo, escalabilidad, soporte, facilidad de uso, etc. Luego le conté un poco sobre UI/UX y finalmente sobre los factores que podrían hacer que nuestro sitio web se bloquee. Hablamos sobre la copia de seguridad de la base de datos, la restauración, etc. en resumen. No hay una respuesta perfecta a esta pregunta, solo necesita mostrarles que piensa en el «panorama general» mientras diseña el sistema. Cuando estuvo completamente convencido, pasamos al siguiente problema.
Pregunta 2: Se le da un puntero a un Node en una lista enlazada (¡No el puntero a la Lista enlazada!). ¿Cómo eliminará este Node?
Francamente, nunca escuché esta pregunta antes. Me sorprendió mucho que esta pregunta fuera bastante común, ¡pero me la pasé por alto durante mi preparación! Me puse nervioso en este punto. Pero recordé que debía hacerle saber al entrevistador lo que estaba pasando por mi mente, así que seguí hablando. Pero después de 5 minutos pasó a la siguiente pregunta y dijo que volveríamos a esta pregunta nuevamente.
Pregunta 3: Usted es gerente de proyectos y tiene 100 horas para completar un proyecto. ¿Cuánto tiempo dedicará a la planificación, la codificación y las pruebas?
En este punto me arrepentí de dormir durante las conferencias de ingeniería de software. Pensé que hacer conjeturas salvajes daría una muy mala impresión. Entonces, en lugar de darle números, le dije que, según mi experiencia, la codificación tomaría el tiempo máximo, seguido de la planificación y luego la prueba. Se rió de mi respuesta (Ohh sí… hacen eso -_-). Pero tal vez pensó en mí como un niño que apenas tiene experiencia y tuvo la amabilidad de decirme que no es así como funcionan los proyectos en la industria. Le dan el máximo tiempo a la planificación porque si la planificación se realiza correctamente, ¡la codificación apenas lleva tiempo! (Sé que la mayoría de ustedes están conmigo en esto :-P)
Pero mientras me contaba todo esto, tuve tiempo de pensar en la segunda pregunta. Pero el problema era que mi respuesta no funcionaba cuando el Node era el último de la lista. Y esto es exactamente lo que le dije antes de responder la pregunta. Sorprendentemente, mi respuesta fue correcta. Me preguntó que haré en caso de que el Node quede al final? Dije que no tenía idea. Luego me habló del «Node ficticio», pero me dijo que estaba satisfecho con mi respuesta.
Así que mi entrevista duró más de 45 minutos (¡a diferencia de la de mis amigos, que duró 20-30 minutos! :-O). Pensé que me equivoqué mucho y no seré seleccionado para la próxima ronda. Pero lo estaba (supongo que otros lo estropearon más que yo ;-))
Ronda 3 (cara a cara en Microsoft IDC, campus de Hyderabad): Entonces, el campus es enorme, excelente interior, instalaciones, etc. En media hora, me llamaron para mi primera ronda.
F2F 1: El propio entrevistador entró en la sala de espera y me llevó a la sala de entrevistas. Bueno, era una gran sala con 8 entrevistadores sentados lejos unos de otros. Todos tenían sus computadoras portátiles, bolígrafos y algunas hojas en blanco con ellos.
Entrevistador: ¿Por qué no me cuentas algo sobre ti?
Le di una breve presentación sobre mí (puse especial énfasis en el hecho de que soy Microsoft Student Associate ;-))
Entrevistador: Bueno, pasemos a las preguntas… Se le da una string que consta de Rs, Gs y Bs. Debes ordenar la string de modo que todas las R queden hacia el frente, las G en el medio y las B hacia el final.
Enfoque 1: fuerza bruta, es decir, clasificación por selección simple
Enfoque 2: use 3 contadores r, g, b y cuente el número de R, G y B en el primer análisis y coloque esos muchos R, G y B en el segundo análisis. (sonrió y dijo que es una buena solución pero quiere una respuesta diferente)
Enfoque 3: en el primer análisis, lleve todas las R hacia el frente. La string restante tendría solo Gs y Bs. Del mismo modo, en el segundo análisis, recopile todas las B al final (dijo que puedo hacerlo mejor)
Enfoque 4: Me tomó un poco de tiempo pensar en esto, pero me dio pistas y finalmente se me ocurrió un algoritmo. Me pidió que lo codificara y comenzó a hacer su propio trabajo. Lo guié a través del código (y traté de resaltar cómo me ocupé de las entradas no válidas, casos de esquina, etc. :-P)
Entrevistador: Bueno… eso es todo por mi parte. ¿Quieres hacerme alguna pregunta?
Bueno, no me importó un poco de charla 😛 Así que comencé a preguntarle sobre el proyecto más desafiante que hizo en MS y sobre la estrategia de desarrollo que siguen para el desarrollo de aplicaciones multiplataforma. Fue amable y me contó todo con mucho interés.
F2F 2: 2 de mis amigos fueron rechazados en la primera ronda, mientras que los 3 restantes pasamos a la siguiente ronda. Este entrevistador parecía muy serio.
Entrevistador: Cuéntame algo sobre ti…
Con sus expresiones no parecía estar interesado en mi respuesta y rápidamente me hizo una pregunta.
Entrevistador: Está bien, entonces te dan una string que consta de vocales, consonantes y otros caracteres. Debe ordenar la string de manera que todas las vocales queden hacia el frente, las consonantes en el medio y otros caracteres hacia el final.
No podría estar más feliz en ese momento 😀 No le dije que me habían hecho esta pregunta en la entrevista anterior y le dije mi enfoque (Enfoque 4 de la última entrevista). Pero entendió que yo sabía la respuesta y entonces cambió la pregunta 😛
Entrevistador: Se le da una array que consta de caracteres y necesita buscar una string en esa array. Ahora la string se puede formar yendo en cualquier dirección desde una posición particular de la array. Entonces, la única restricción es que las esquinas de las celdas deben tocarse.
Este fue un problema fácil y le dije mi método.
Entrevistador: Ahora estoy poniendo una restricción más sobre esto. No puede atravesar un elemento más de una vez.
Esto fue de nuevo fácil. Simplemente usé un carácter ficticio (*) en lugar de los caracteres que ya habían sido visitados y restauré el carácter después del paso recursivo. Se confundió un poco con este concepto de personaje ficticio, pero luego le expliqué por qué funcionaría y quedó satisfecho con mi respuesta. Entonces me pidió que lo codificara. Cometí algunos errores que corregí más tarde, pero en general esta ronda fue buena 🙂
F2F 3: Esta fue la ronda final y se suponía que sería una ronda de recursos humanos. Pero como tenían que terminar las entrevistas me mandaron a un técnico! (¡Miré su computadora portátil y vi que tenía los comentarios de mis rondas anteriores y también las preguntas que me hicieron!)
Entrevistador: Cuéntame algo sobre ti.
Nuevamente di la misma respuesta (por supuesto con énfasis en lo de MSA :-P)
Entrevistador: ¿Qué podrías haber hecho mejor en alguna de tus entrevistas anteriores?
Le conté sobre un pequeño error en mi código. Olvidé incrementar una variable y el entrevistador la ignoró.
Entrevistador: Veo que ha trabajado en Hadoop. ¿Puedes decirme qué hiciste en tu proyecto?
Estaba esperando esta pregunta y le di una buena explicación al respecto. Mi proyecto fue sobre sistemas de detección de intrusos en la red usando big data.
Entrevistador: Ya que has trabajado en IP, déjame darte un pequeño problema. Convierta el siguiente número al formato IPv4.
Fue bastante fácil y escribí el código. Cometí algunos errores en mi código (estaba muy nervioso esta vez) pero los corregí más tarde
Entrevistador: Bueno, cuéntame algo sobre la recolección de basura…
Dijo la definición
Entrevistador: ¿En qué idioma tenemos la recolección de basura?
Le dije a C++ (sí… eso es lo que haces cuando estás bajo tanta presión -_-) ¡Me miró raro y luego me di cuenta de lo que le había dicho! Pero supongo que entendió que estaba entrando en pánico.
Entrevistador: Bien… ¿Qué son las strings Unicode?
Nunca esperé esta pregunta en una entrevista y di una muy mala definición. No parecía impresionado en absoluto.
Entrevistador: Umm… déjame darte un problema de codificación. Te dan un lienzo y tienes que dibujar una línea desde el punto A al B. ¿Cómo harías para resolver este problema?
Uf… esta pregunta me salvaría (al menos eso es lo que pensaba). Pero no consideré los casos de esquina. Me dio una pista y por suerte pude resolver el problema con éxito.
Entrevistador: Eso es todo por mi parte. ¿Tienes alguna pregunta para mí?
¡Sí, por supuesto! Le pregunté sobre el proyecto más desafiante que hizo, pero parecía estar un poco confundido acerca de qué responder. Así que le expliqué mi pregunta nuevamente y le di algunos ejemplos de lo que respondieron otros entrevistadores (se sintió increíble en ese momento porque él estaba en la misma posición que yo en ese momento 10 minutos :-P)
La experiencia fue buena porque se centraron solo en aspectos técnicos y las preguntas también fueron buenas. Me gustó mucho la actitud de ayuda de la gente de allí.
Me gustaría agradecer a geeksforgeeks por ayudarme en la preparación de esta entrevista. Creo que están haciendo un gran trabajo ayudando a los estudiantes 😀
Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo y enviarlo por correo electrónico a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
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