Experiencia de entrevista de Goldman Sachs | Por más de 1.5 años de experiencia

Recibí la llamada de la entrevista de GS HR (a través de Naukri o algún otro portal de empleo). El proceso contó con 9 rondas, todas técnicas, que demoraron alrededor de 2 meses en completarse. Mi perfil era Analista y rol – desarrollador java.

Ronda 1 (HackerRank – En línea):

Se hicieron 2 preguntas de codificación: 1 fácil, 1 mediana.

Duración : 90 minutos

  1. Dado un rango de números [x, y] y un número entero q. Multiplique todos los números en el rango por q y devuelva la cuenta de todos los números que no tienen los mismos dígitos que el producto correspondiente obtenido.
    Ej. Si x=10, y=12, q=2. Entonces los productos correspondientes a 10, 11, 12 son 20, 22, 24.
    La cuenta será 1 ya que solo 22 tiene todos los dígitos diferentes a 11.
  2. 0/1 Problema de mochila. Una adición más es que tenía que decir qué elementos se eligieron para la solución óptima.  https://www.geeksforgeeks.org/printing-items-01-mochila/

Hice ambas cosas, pero creo que 1 pregunta también es suficiente para la próxima llamada.

Ronda 2 (Coderpad 1- Telefónica):

Acerca de coderpad: es una herramienta en línea donde la pantalla se comparte entre usted y su entrevistador y tiene que ejecutar y depurar su

2 preguntas de codificación: 1 fácil, 1 mediana.

Duración : 60 minutos

  1. Hay algunos estudiantes, sentados en círculo. A cada alumno se le asigna un número de lista (del 1 al n). Hay un profesor al que le dieron un no en el rol inicial y tiene que sacar al alumno con el no en el rol inicial. y luego tiene que remover al estudiante que estaba en esa posición a partir del estudiante removido. Su función debe devolver el último estudiante que queda.
    Ejemplo: 2, 3, 1, 4, 5 comienza con 3, elimina 3, luego elimina 5, luego elimina 1 (sigue el círculo), luego elimina 4. Respuesta: 2. El problema es similar a https://www.geeksforgeeks. org/josephus-problem-set-1-a-on-solution/
  2. Dada una lista de estudiantes con sus puntajes en diferentes materias, encuentre al estudiante con un puntaje promedio máximo.

Hice ambas preguntas. Tienes que pasar todos los casos de prueba. El entrevistador estaba interesado en conocer el proceso de pensamiento y también sus habilidades de depuración.

Ronda 3 (Coderpad 2- Telefónico):

Todas las restricciones fueron las mismas que en la ronda anterior. Esta vez el entrevistador era de Nueva York.

  1. Mediana de dos arrays ordenadas (sin espacio adicional). Enlace: https://www.geeksforgeeks.org/median-two-sorted-arrays- different -sizes-ologminn-m/
  2. Dado un archivo de registro, cada línea comienza con alguna dirección IP, encuentre la dirección IP más frecuente.

Hice ambas preguntas.

Consejos para las rondas de coderpad:

  • Continúe hablando con su entrevistador para que pueda ayudarlo cuando esté atascado.
  • Puede lanzar nuevos casos de prueba, extensión del problema o puede solicitar optimizar el código. Prepárate para eso.
  • Está bien tomarse un tiempo extra, tomé casi 10 minutos extra y el entrevistador estuvo de acuerdo con eso, pero tienes que pasar todos los casos de prueba.
  • Tenga calma si su código no se ejecuta en el primer intento. Simplemente depúrelo usando las técnicas habituales.
  • Según mi experiencia, una vez que descifras estas rondas, es un poco más fácil descifrar las otras.

Ronda 4 (Telefónica):

Esta ronda fue la más fácil de todas. 4 preguntas 60 minutos

  1. Dada una array de enteros pos y neg, devuelve el elemento, eliminando cuál el producto de los elementos restantes es máximo.
  2. Compruebe si un árbol binario está equilibrado. Optimizarlo para O(n). Enlace: https://www.geeksforgeeks.org/how-to-determine-if-a-binary-tree-is-balanced/
  3. ¿Cómo funciona hashmap? ¿Qué sucede si no anula los métodos equals y hashcode para la clase personalizada?
  4. Dadas 2 strings, compruebe si una string contiene otra como substring. Enlace: https://www.geeksforgeeks.org/check-string-substring-another/

Tuve que escribir códigos para las preguntas 1, 2 y 4 y luego recitarlos línea por línea (es gracioso, lo sé).

Las siguientes 5 rondas fueron rondas presenciales, cada ronda fue realizada por 2 entrevistadores, con una duración de 60 a 75 minutos.

Ronda 5 (F2F):

  1. Hay 50 millones de usuarios que acceden al sitio web de Goldman. ¿Cómo reducirá el soporte manual, es decir, cómo automatizará el sistema de soporte? Luego, algunas preguntas de seguimiento.
  2. Discusión del proyecto: 30 min (Eran personas muy inteligentes y realmente disfruté esta discusión con ellos)
  3. Dado un arreglo, encuentre el subarreglo decreciente más grande. Escribe el código para ello. Ahora la array es circular, modifique su código para eso. Discusión de la complejidad del tiempo. Similar a – https://www.geeksforgeeks.org/longest-increasing-subarray/
  4. Dada una pila, encuentre el elemento máximo en O(1) con una complejidad de espacio mínima. Enlace: https://www.geeksforgeeks.org/design-a-stack-that-supports-getmin-in-o1-time-and-o1-extra-space/

Ronda 6 (F2F):

Esta ronda fue tomada por 2 personas mayores (una de ellas es mi gerente ahora: P)

  1. Si está escribiendo una clase personalizada y desea implementar un mapa hash para ella, ¿de qué cosas se encargará?
  2. Hay una clase de empleado, ¿cómo escribirá el código hash y el método equals para eso?
  3. Si desea obtener los detalles de los empleados correspondientes a emp id, ¿cómo los almacenará? Ahora, si desea datos correspondientes al nombre emp, ¿cómo lo hará? Ahora que desea ambas funcionalidades, proporcione alguna técnica optimizada. Algunas preguntas de seguimiento más.
  4. Implemente un iterador personalizado en Java: hay una lista de listas (List<List<Integer>>). Escriba los métodos hasNext() y next() de tal manera que el método hasNext() debería devolver verdadero si la siguiente lista en la lista principal tiene algún elemento presente y el método next() debería devolver ese elemento. Ejemplo: list – [[1, 2, 3], [4, 5], [6, 7]] luego el next() de su iterador personalizado debería devolver 4 después de 3 y 6 después de 5. De manera similar, hasNext() devolverá false solo a las 7. Tuve que escribir el código del nivel de producción.
  5. ¿Por qué GS?

Ronda 7 (F2F):

  1. Dado un enunciado con espacios fuera de lugar entre palabras. Por ejemplo, «Soy un indio» se verá como – «Soy un indio». Tienes que averiguar cómo obtendrás una pronunciación correcta de ella. Solo se le proporciona un diccionario de todas las palabras posibles en inglés. Sólo estaba interesado en mi enfoque del problema.
  2. Diseño de escritura anticipada (Búsqueda de autocompletar)
  3. Dado el orden posterior de un árbol, ¿cómo se obtendrá el orden a partir de él? Dije que podría haber múltiples posibilidades y luego preguntó ¿cuántas?
  4. Dada una expresión que contiene corchetes, encuentre si es válida. Escribir código. Enlace: https://www.geeksforgeeks.org/check-for-balanced-parentheses-in-an-expression/

Ronda 8 (F2F):

  1. Dada una interfaz de usuario del portal de la empresa, ¿cómo almacenaría y mostraría la jerarquía de los empleados? Di una solución usando un árbol y algo de base de datos en el backend. Pero ella no estaba interesada en DB. Luego di una solución usando caché y DB. Hicieron consultas DB entonces.
  2. Dado un documento, ¿cómo encontraría la primera palabra que no se repite? Ahora bien, si el tamaño del archivo es de 50 GB, ¿cómo lo haría? (Utilice múltiples núcleos)
  3. ¿Por qué quieres cambiar?
  4. Dado un histograma en la interfaz de usuario, debe enviar datos desde el backend, los datos podrían representar cualquier cosa, por ejemplo, la población de ciudades o la densidad de diferentes fluidos, etc. ¿Cómo enviaría esa información? No puede hacer ninguna codificación dura, ya que debe mantener la aplicación genérica. Le di la solución de hashmap, luego ella me pidió que las barras de su histograma también se dividieran y representaran información de nivel más granular, por ejemplo, la población sabia del área de las ciudades. ¿Cómo mejorará su aplicación?

Ronda 9 (F2F):

  1. ¿Cómo resuelve la «excepción de falta de memoria» en producción?
  2. ¿Qué problemas enfrentó en su producción, cómo los depuró?
  3. ¿Cómo usaste la primavera en tu proyecto?
  4. Escriba un código para representar la API de Spring. Luego escribí Obtener código API con todas las anotaciones.
  5. ¿El parámetro dentro de la anotación @RequestParam es obligatorio?
  6. ¿Podemos usar algo más en lugar de @RequestParam? Algunas preguntas más y discusión.
  7. ¿Qué es el frijol?
  8. ¿Qué es la inyección de dependencia? Escriba código para representar DI.
  9. ¿Qué es el COI?
  10. ¿Qué es el cableado automático? Escribe código para ello.
  11. Tiene una sala de exhibición de automóviles, si se lanza un automóvil nuevo, ¿cómo diseñaría el sistema, de modo que se requieran cambios mínimos para la adición de ese automóvil?
  12. Clase abstracta vs interfaz: más discusión sobre OOPS.
  13. Dado un árbol, escriba un código para el recorrido de orden vertical. Enlace: https://www.geeksforgeeks.org/print-binary-tree-vertical-order-set-2/

Puntas : 

Observé cosas a continuación durante mi proceso de entrevista:

  • No están buscando candidatos que puedan dar todas las respuestas sin problemas. Cuando me preguntaron sobre la «excepción de falta de memoria en producción», me quedé completamente en blanco. Le di algunas respuestas insatisfactorias, pero luego ella siguió adelante y me preguntó cómo depuro errores cuando me enfrento a problemas en producción. Le conté algunos escenarios y ella quedó satisfecha. Pero sí, tus habilidades de programación deberían estar a la altura.
  • Esté preparado para preguntas de comportamiento. Comprueban si la persona encaja en su cultura. Además, las habilidades de comunicación son importantes.
  • Según yo, las principales áreas de enfoque fueron (para mi nivel de experiencia): PS-DS-Algo> Comprensión del idioma (ya sea Java o cualquier otro)> Diseño del sistema = Comprensión del proyecto actual> Preguntas basadas en currículum y habilidades de prueba/depuración.
  • Todos los entrevistadores fueron muy comprensivos e inteligentes. En general, fue una buena experiencia.

Mis recursos de preparación: geeksforgeeks, descifrando la entrevista de codificación, OCA/OCP Java SE 7 Programmer I & II Study Guide

En mi caso inmediatamente me dijeron que me seleccionaron pero por lo general tarda unos días. Se tarda de 1 a 3 semanas en procesar la carta de oferta.

Siéntase libre de dejar su identificación de correo en los comentarios en caso de que necesite referencias en el futuro 🙂 ¡Todo lo mejor!

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *