Microsoft visitó BITS Pilani, campus de Hyderabad para realizar colocaciones en agosto de 2018. El proceso detallado fue el siguiente:
Ronda 1: Codificación en línea, 75 minutos, 3 preguntas de codificación de un banco de preguntas (65/~150 preseleccionados)
La plataforma utilizada fue Co-Cubos . Se realizaron 3 preguntas de 2, 3 y 5 puntos respectivamente con dificultad variable.
- Dado un número, redondearlo al múltiplo de 10 más cercano. https://www.geeksforgeeks.org/round-the-given-number-to-nearest-multiple-of-10/
- Dada una fecha, encuentre el día que será si el 1/1/1990 fue lunes. similar a: https://www.geeksforgeeks.org/find-day-of-the-week-for-a-given-date/
- Dada una lista enlazada, imprima m Nodes, elimine n Nodes y así sucesivamente. https://www.geeksforgeeks.org/delete-n-nodes-after-m-nodes-of-a-linked-list/
algunas de las otras preguntas que también se hicieron fueron
- Dada una cuadrícula en la que cada celda consta de puntos positivos, negativos o ningún punto, es decir, cero puntos, encuentre los puntos iniciales mínimos para llegar a la celda (m-1, n-1) desde (0, 0), con algunas restricciones. https://www.geeksforgeeks.org/minimum-positive-points-to-reach-destination/
- Dada una string ‘str’ de dígitos y un entero ‘n’, construya el número más bajo posible eliminando ‘n’ dígitos de la string y sin cambiar el orden de los dígitos de entrada. https://www.geeksforgeeks.org/build-lowest-number-by-removing-n-digits-from-a-given-number/
Ronda 2: Ronda de vuelo grupal, 45 minutos, 2 preguntas de codificación, ronda escrita (~20/65 preseleccionados)
Esta fue una ronda escrita y se esperaba que escribiéramos un código completamente funcional, sin fallas ni errores. Las funciones de biblioteca utilizadas, si las hubiera, tenían que explicarse y, si era posible, codificarlas también (no tan riguroso). También se permitieron pseudocódigos y algoritmos. Todas las suposiciones hechas tenían que ser explicadas también.
- Imprime la n-ésima línea del patrón dado
- 1
- 11
- 21
- 1211
- 111221
- 312211
- 13112221
- …
https://www.geeksforgeeks.org/look-and-say-sequence/
- Dada una serie de números, organícelos de manera que produzca el mayor valor.
Ronda 3: Entrevista Técnica 1, ~1:15 Hrs
El entrevistador fue muy amable y comenzó haciéndome algunas preguntas relacionadas con mi currículum y mi pasantía de verano. Luego comenzó con algunas preguntas basadas en Estructuras de Datos y Algoritmos.
- Dada una ruta de archivo de Unix como una string, normalícela de la manera más eficiente posible
por ejemplo, “/abc/def/../..” produciría “/” en la normalización y “/ghi/jkl/./..” produciría “/ghi”
https://www.geeksforgeeks.org/simplify-directory-path-unix-like/
Le di un enfoque usando stack y quedó satisfecho con él. Los casos de esquina eran muy importantes.
- Dada una expresión polinomial, simplícela lo más eficientemente posible y ordénela en potencias decrecientes de la variable.
por ejemplo, 5x^12 + 6x^10 + 4x^5 + 6x^5 + 3x^3 + 2x^3 + 9 daría como resultado 5x^12 + 6x^10 + 10x^5 + 5x^3 + 9
Le proporcioné 3 enfoques, uno con árboles, uno con max heap y finalmente uno con listas enlazadas, considerando todos los casos de esquina y optimizando continuamente el código con respecto a la complejidad de tiempo y espacio. Parecía feliz con mi acercamiento.
- Dada una referencia a un Node de lista enlazada (no al Node principal), elimine ese Node. https://www.geeksforgeeks.org/in-a-linked-list-given-only-a-pointer-to-a-node-to-be-deleted-in-a-singly-linked-list-how- lo-borras-lo/
A continuación, pasó a DBMS y OS. Se hicieron algunas consultas SQL y problemas de sincronización y se me pidió que explicara el problema del productor-consumidor en la sincronización. También se hicieron algunas preguntas de ML.
Luego, el entrevistador pasó a mis proyectos y me pidió que dibujara el diagrama ER detallado para uno de mis proyectos.
Ronda 4: Entrevista Técnica 2, ~1:15 Hrs
Se hicieron algunas preguntas más relacionadas con los proyectos junto con algunos acertijos. También se hicieron algunas preguntas básicas de codificación.
Esta ronda fue una mezcla de aspectos técnicos y de recursos humanos, ya que hubo muchas preguntas relacionadas con el currículum. Se me pidió que explicara en detalle el proyecto que había hecho en mi pasantía de verano, qué tecnologías había usado, la estructura del equipo, el diseño del proyecto y por qué habíamos elegido seguir con dichos detalles.
Ronda 5: RR. HH. / Ronda de diseño, ~1:30 h
Esta ronda fue básicamente una mezcla de recursos humanos y diseño creativo. El entrevistador quería comprobar si el candidato puede pensar fuera de la caja con respecto a cualquier problema dado y encontrar soluciones únicas y optimizadas.
Se hicieron preguntas como el diseño de un espectáculo, el sistema de gestión de inventario y mucha teoría de DBMS como abstracción de 3 esquemas, independencia de datos, propiedades ACID, control de concurrencia, arquitectura de 3 niveles y 2 niveles. Se me pidió que dibujara todas y cada una de las fases del proceso de diseño.
Al final, 4 candidatos fueron seleccionados para el papel y yo fui uno de ellos!!!
Algunos consejos relacionados con la codificación de entrevistas que me ayudaron mucho
- Los entrevistadores fueron muy amables y conocedores y trataron de comprender su solución, en lugar de imponerle la suya, a diferencia de ciertas empresas.
- Lo NÚMERO UNO que buscaban los entrevistadores era CONFIANZA . Casi todos los preseleccionados tenían un excelente conocimiento de la informática, pero si no podía hablar con confianza o se quedaba callado durante las entrevistas, ¡era rechazado en el acto! Incluso las personas que obtuvieron la puntuación más alta después del vuelo en grupo y completaron primero la ronda de HR fueron rechazadas debido a esto.
- Está bien cometer errores durante las entrevistas, están ahí para corregirte y ayudarte, pero es más importante seguir hablando y dejar que el entrevistador sepa lo que pasa por tu cabeza todo el tiempo.
- Siga hablando sobre su proceso de pensamiento y dígale al entrevistador lo que está pasando en su cabeza. No te quedes sin hacer nada.
- Siempre infórmeles de cualquier suposición y sus preferencias de idioma que haga antes de codificar y luego continúe. Trate siempre de incluir Corner Cases . Son muy importantes.
- Sí, y una cosa, excepto la ronda de codificación en línea, SIEMPRE escribe comentarios mientras codificas. Repito, siempre escribe comentarios para cualquier cosa que hagas. Importa mucho, especialmente para la ronda de vuelo grupal.
- Prepare 2-3 preguntas para el entrevistador para cada ronda. Es mejor si está relacionado con la empresa, JD y muestra su interés en ellos.
- Debe saber todos y cada uno de los escritos en su currículum. Se le puede pedir que elabore cualquier cosa en detalle. No escribas nada que no puedas hablar durante ~5 minutos.
- Los temas importantes incluyen DSA, DBMS, OOPS, OS, TOC y, en cierta medida, Redes. Las optativas disciplinarias también son muy importantes.
- *Información vital: Co-Cubes muestra solo 3 casos de prueba y el resto está oculto. Así que trate de hacer que su código sea lo más eficiente y óptimo posible, incluidos todos los casos de esquina.
- Trate de practicar la codificación en una computadora, así como en papel . Comprenderá mejor los matices del código.
- ¡ Pasantías ! Intenta obtener una pasantía de verano. El trabajo que hará allí será un tema de conversación importante en su currículum. Si obtiene un PPO, entonces relájese, de lo contrario, la experiencia sigue siendo muy valiosa. El currículum es muy importante y dedique más tiempo a escribirlo correctamente.
¡Gracias!
Publicación traducida automáticamente
Artículo escrito por Mukund_Kothari y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA