Goldman Sachs vino a mi campus ofreciendo una oferta de tiempo completo para un puesto de analista. Se permitió que todas las sucursales aparecieran para la ronda de codificación.
Obtuvimos un enlace de prueba que se iba a realizar en HackerEarth. La prueba tenía 5 secciones:
- Sección de codificación (2 preguntas moderadas – 30 minutos): una era una pregunta de elementos nobles que tenía que resolverse mediante programación dinámica y la otra era una pregunta básica de manipulación de strings. Pude codificar la pregunta de string, pero para el elemento noble uno, usé el retroceso ya que no pude codificar el enfoque DP y obtuve 6/10 casos de prueba aprobados.
- Sección de codificación avanzada (1 pregunta – 45 minutos): era una pregunta de gráficos, no tuve tiempo ni siquiera de leer esta pregunta por completo, así que me salté esta.
- Aptitud Cuantitativa (Trigonometría, PnC, Geometría de Coordenadas, Tiempo y Trabajo) – 25 minutos
- Programación de computadoras MCQ (OS, DSA, DBMS) 20 minutos
- Preguntas de comportamiento (2) – 15 minutos
Sugeriría intentar todas las secciones. No te saltes ninguna sección por completo. El esquema de calificación fue +5 por cada MCQ correcto y -2 por cada respuesta incorrecta.
Ronda 2 (Entrevista técnica – Tiempo: 40 minutos): Dificultad: Fácil
- La ronda comenzó con el entrevistador pidiéndome que le contara sobre mí. Después de eso, hizo preguntas relacionadas con el proyecto que mencioné en mi currículum. Me preguntó sobre un problema de DSA y tuve que codificarlo en la plataforma de par de códigos de Hackerrank.
- Problema: implementar un árbol n-ario
- Comencé implementando un árbol binario y poco a poco lo llevé a n-ario. Discutí mi implementación con el entrevistador, él fue muy servicial y cortés. Me estuvo dando pequeñas pistas y fue muy paciente durante toda la entrevista. Pude implementar la clase Node básica y todos sus métodos, para n-ary no pude hacerlo por completo. El tiempo había pasado y, por lo tanto, me pidieron que me detuviera eventualmente. La entrevista duró unos 40-45 minutos.
- Después de eso, me hizo algunas preguntas sobre la asignación de memoria en C++ mientras codificaba en este lenguaje. Tuvimos una buena discusión sobre cómo se asigna la memoria en C++ y Java, ya que él era un codificador de Java.
- Finalmente, la entrevista terminó con el entrevistador preguntándome si tenía alguna pregunta para él. Este es el momento en que puede causar una buena impresión, así que piense en las preguntas de antemano e investigue un poco sobre la empresa. Nunca diga No a esta pregunta.
- Me pidieron que esperara a la siguiente ronda.
Ronda 3 (Entrevista técnica – Tiempo: 30 minutos): Dificultad: Fácil
- Nuevamente, esta ronda comenzó con el entrevistador pidiéndome que le contara sobre mí. Tuvimos una breve presentación, después de lo cual ella me presentó un problema de DSA. Primero me pidieron que discutiera mi enfoque de la solución.
- Problema: https://leetcode.com/problems/product-of-array-except-self/
- Al principio, le di el enfoque básico de fuerza bruta, ella me pidió que no usara el operador de división. Pensé durante unos minutos.
- Mientras discutía el enfoque, ella pareció satisfecha y me pidió que lo codificara.
- Lo codifiqué y pregunté si podía hacer un secado rápido. Encontré algunos errores y los corregí de inmediato. Ella estaba impresionada con el enfoque. Me preguntó si podía optimizarlo aún más al no usar espacio adicional. Una vez más, me tomé un tiempo, aunque durante 2-3 minutos y le dije que podía optimizarse aún más. Ella me pidió que lo codificara. Lo estaba codificando pero la solución no funcionó perfectamente. Como nos estábamos quedando cortos de tiempo, parecía satisfecha de que al menos conocía el enfoque, incluso si no podía codificarlo correctamente. Fue una ronda corta y el departamento de recursos humanos me pidió que esperara a la siguiente ronda.
Ronda 4 (Técnica – Tiempo: 40 minutos): Dificultad: Media
- La ronda comenzó con el entrevistador pidiéndome que le contara sobre mí.
- Después de eso, hizo preguntas relacionadas con el proyecto que mencioné en mi currículum. Como estaba haciendo una pasantía en ingeniería de datos, me preguntó si me sentía cómodo haciendo algunas preguntas basadas en DBMS/SQL. Le dije que sí y me hizo una pregunta sobre la normalización de tablas.
- Me dio algunas tablas ficticias en la pizarra y me pidió que escribiera una consulta. Pude escribir la consulta rápidamente y quedó impresionado.
- Después de eso, me pidió que resolviera este problema. No tuve que codificarlo, solo tuvimos que discutir el enfoque de este problema y se nos permitió usar la pizarra para el mismo.
- Problema: https://www.geeksforgeeks.org/count-total-anagram-substrings/
- Discutí todo el enfoque. Me estaba quedando atascado en el medio, pero él me guió. Hizo muchas preguntas en el medio para que yo pudiera corregirme. El enfoque que utilicé fue uno O(n^2) y aunque me pidió que pensara en un enfoque optimizado, pude encontrar otro enfoque que supongo que resolvía la pregunta en O(nLogn). Supongo que pareció satisfecho y finalmente me preguntó si tenía alguna pregunta para él.
- Hice algunas preguntas sobre mi función y con qué departamento trabajaré. Seguimos hablando de las diferentes tecnologías que utiliza el departamento en particular.
- Después de una discusión fructífera, la ronda llegó a su fin y después de 5-6 horas de esta ronda, llegaron los resultados.
¡7 estudiantes recibieron la oferta, incluyéndome a mí!
Publicación traducida automáticamente
Artículo escrito por ananyagupta0504 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA