DE Shaw realizó una campaña de reclutamiento en el campus para el puesto de pasante de SDE (2 meses) en nuestro campus en la primera semana de agosto de 2020.
El siguiente es un resumen de mi experiencia.
Hubo tres rondas en el proceso de selección:
Ronda 1: Prueba Técnica (90 minutos) | Rango de pirata informático
Había tres preguntas de código en esta ronda. Una pregunta era sobre arreglos, mientras que las otras dos eran sobre Programación Dinámica. Cada pregunta tenía un límite de tiempo establecido que no podía transferirse a la siguiente pregunta. Las tres preguntas eran:
- Dada una array de n números, encuentre el número de tripletes tales que Ai<Aj<Ak o Ai>Aj>Ak donde I, j, k son índices de la array e i<j<k. El enfoque O(n^3) no pasaría todos los casos de prueba y la solución debía optimizarse a O(n^2) u O(n log(n)).
- Te dan x leones, y tigres, z leopardos y w panteras. Hay m jaulas en una línea y tienes que llenar todas las m jaulas de manera que no haya dos animales iguales uno al lado del otro. Halla el número total de formas de hacerlo. Las restricciones dadas fueron: (0<=x,y,z,w<=51). Iba a ser resuelto usando DP.
- Era una pregunta estándar de DP el LCS de tres cuerdas.
Resolví la primera pregunta en 15-17 minutos de 25 minutos, en la segunda pregunta tomé 30 minutos completos y la tercera pregunta la resolví en 10-12 minutos de 35 minutos, por lo que fui seleccionado para la siguiente ronda .
12 estudiantes fueron preseleccionados para la entrevista técnica de un total de 101.
Ronda 2: Entrevista Técnica (Ronda 1) | Par de códigos (rango de pirata informático) | (60 minutos)
Esta ronda estaba programada para llevarse a cabo tres días después de la ronda de codificación. Había un panel de dos entrevistadores, ambos bastante agradables. Puede usar el tablero de codificación de la plataforma y las funciones de pizarra para describir sus soluciones. La cantidad de preguntas que se hacen en esta ronda no está fijada para cada candidato, pero básicamente depende del entrevistador.
Esta ronda necesitaba una sólida comprensión de mi principal lenguaje de programación: C++, así como DSA y algoritmos. El resumen de la ronda es el siguiente:
- Me preguntaron cuál es mi idioma principal y cuáles son los idiomas con los que me siento cómodo.
- ¿Cómo implementaría su propio vector (array dinámica) en C++? A lo que respondí usando una lista vinculada o arrays autoexpandibles usando new y delete (la forma real en que se implementan los vectores). Luego me pidieron una implementación detallada de los procedimientos de agregar, eliminar, buscar y acceder de ambas implementaciones, sus complejidades de tiempo y su comparación con el otro enfoque.
- Similar a la pregunta anterior, también solicitaron una implementación detallada de mapas y conjuntos ordenados y desordenados en C++.
- Distintas formas de evitar y resolver colisiones en hashing
- Combine dos arrays desordenadas de tamaño n y m sin espacio adicional
- Problema de intercambio de monedas cuando necesitamos DP y cuando podemos usar codiciosos.
- Algunas otras preguntas simples de DP y Greedy
- Dibuja NFA, DFA para gramáticas dadas (2-3 preguntas diferentes en el mismo)
- Usos de NFA, DFA
- Funcionamiento del microprocesador
- Cálculo del tiempo para procesar mil millones de instrucciones, dado el tiempo para cada ciclo
- Algunas otras preguntas sobre instrucciones y ciclos de proceso.
- Algunas discusiones sobre uno de los proyectos de mi currículum.
- ¿Qué es un recolector de basura ?
- Tipos de punteros inteligentes en C++ y sus usos y funcionamiento
- Desventajas de usar punteros, problemas de punteros colgantes, punteros salvajes.
- En orden de recorrido de un árbol en O (1) Espacio
- Mediana de un flujo de números enteros en ejecución.
- Algunas preguntas más sobre DSA
3 estudiantes de 12 fueron promovidos a la siguiente ronda de entrevistas técnicas. Los factores más importantes son su puntaje en la ronda de codificación, actitud, confianza y habilidades de comunicación. Debe tener un conocimiento profundo de al menos uno de los lenguajes de programación.
Ronda 3: Entrevista Técnica (Ronda 2) | Par de códigos (rango de pirata informático) | (60 minutos)
Esta ronda estaba programada para el mismo día por la noche. También hubo dos entrevistadores en esta ronda. También fueron muy útiles y brindaron consejos útiles en los momentos apropiados. Esta ronda se basó principalmente en proyectos y OOPS. El resumen de la ronda es el siguiente:
- Discusión detallada sobre mi proyecto más reciente, está funcionando, sus aplicaciones en la industria, las bibliotecas utilizadas. Luego, algunas preguntas como por qué siguió este enfoque y no ese y por qué usó esto o por qué no usó esto en su proyecto.
- Cambios que haría para mejorar los proyectos y cómo manejar grandes cantidades de datos.
- Preguntas sobre recorridos de árboles
- Cómo eliminar un Node en una lista enlazada simple en tiempo O (1) cuando solo se proporciona su dirección
- Preguntas del PD intermedio.
- Algunas otras preguntas sobre los algoritmos básicos.
- Explicar todos los conceptos de OOPS y su implementación en el lenguaje de programación.
- Implemente la lista de estilos de python (que puede tomar diferentes tipos de datos en una sola lista) en C++
- Implemente la clase singleton en C++ (clase que solo puede tener un objeto)
- Variables y funciones estáticas, variables globales, variables externas y variables constantes.
- Algunos otros conceptos básicos de C++
- Diferencia entre lenguajes fuertemente tipados y débilmente tipificados, lenguajes dinámicos y estáticos, y sus ejemplos.
En la mayoría de los casos también hay una ronda de RRHH, aunque en nuestra situación no estaba, posiblemente por falta de tiempo.
Solo dos estudiantes fueron elegidos para la pasantía de verano después de esta ronda, y tuve la suerte de ser uno de ellos.
Después de cada ronda, puede hacerle al entrevistado las preguntas que desee. Por ejemplo, puede preguntar sobre las tecnologías de la empresa o los idiomas utilizados.
Publicación traducida automáticamente
Artículo escrito por pranshuvyas y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA