Vaig tenir una entrevista amb GS a la seva oficina de Bangalore. Tinc 4 anys d'experiència en desenvolupament full stack amb Java. Vaig rebre una trucada d'un consultor.
Ronda 1
Quins conceptes et sents còmode dins de Java? Vaig dir col·leccions. Va preguntar quines classes de col·lecció has utilitzat? Vaig dir HashMap ArrayList i HashSet.
Quan faries servir Set i quan una llista? Vaig dir que Set admet elements únics no nuls i List no té aquesta restricció. Així que si vull elements únics, faré servir Set. Va demanar alguna altra consideració? Vaig dir el tipus de consultes a realitzar a la col·lecció. Com la recerca. Ha preguntat algun exemple? Vaig dir: base de dades d'empleats. Els empleats han de ser únics perquè puguem utilitzar Llista i cercar per cerca binària o una tècnica similar, ja que generalment s'ordenen en algun ordre. Però crec que esperava la resposta del temps de cerca O(1) o Set. Vaig explicar el funcionament de HashMap i HashSet i com això ajudaria un desenvolupador a aconseguir fàcilment la singularitat dels elements, però l'entrevistador no estava convençut amb la meva resposta a la seva pregunta original.
Quin és el contracte d'equals() i hashCode()? Què passa si un està anul·lat però l'altre no?
Trobeu el segon mínim en una matriu donada .
Trobeu el punt de pivot en una matriu ordenada i girada.
Alguna pregunta per a mi?
Ronda 2
Feu una breu introducció sobre la vostra experiència laboral.
Doneu una visió general del disseny del vostre projecte recent.
Suposem que tinc una IU on hi ha una llista o taula d'articles i cada article té un atribut de benefici, un atribut de descompte, etc. Com assegurar-me que diversos usuaris no deixen l'estat de cap article inconsistent. L'usuari pot actualitzar els atributs o algun altre servei web pot fer el mateix. Vaig suggerir sincronitzar els mètodes de configuració de l'element. Va preguntar com ordenar els elements. Vaig dir que els elements residirien en una llista de matrius i vaig implementar la interfície Comparable. Va demanar un codi de treball. Quan vaig escriure l'expressió dins del mètode compareTo() va dir que el disseny no és flexible, ja que hi ha una codificació dura de criteris d'ordenació. Va dir que quan algú vol ordenar per un altre atribut seria impossible gestionar tants objectes duplicats. Vaig dir que ho podem fer amb el patró del mètode de fàbrica. En aquest cas, va acabar efectivament la ronda d'entrevistes. En algun lloc intermedi havia esmentat la interfície del Comparador i li vaig explicar com funciona. Vaig dir que és una bona opció si no es vol modificar les classes existents. Crec que esperava la implementació del mètode compare() ja que això no requeriria objectes duplicats i l'ordenació per diferents criteris es pot fer simplement implementant Comparator en diferents classes una classe per a cada criteri d'ordenació i després invocant el mètode sort() de la classe Col·leccions amb aquesta implementació de Comparator.
Alguna pregunta per a mi?
Li van dir que marxés pel dia. Consell: Proveu de no mostrar patrons de disseny tret que us ho demani o tingueu experiència en resoldre problemes amb patrons de disseny. Escolteu l'entrevistador i estigueu alerta. Donen pistes. A la ronda 1 també havia comès un error a la pregunta de matriu girada. Va donar un cas de prova on el meu codi fallaria. Vaig corregir la trampa. Dormir prou abans del dia de l'entrevista. Tots els problemes de pràctica per a Goldman Sachs ! Crea un qüestionari