Izkušnja z intervjujem za Goldman Sachs | Komplet 19
Imel sem razgovor z GS v njihovi pisarni v Bengaluru. Imam 4 leta izkušenj z razvojem celotnega sklada z uporabo Jave. Dobil sem klic od svetovalca.
1. krog
Kateri koncepti vam ustrezajo v Javi? Rekel sem zbirke. Vprašal je, katere razrede zbiranja ste uporabljali? Rekel sem HashMap ArrayList in HashSet.
Kdaj bi uporabili Set in kdaj seznam? Rekel sem, da Set podpira edinstvene neničelne elemente in List nima te omejitve. Torej, če želim edinstvene elemente, bom uporabil Set. Je vprašal še kaj drugega? Rekel sem vrsto poizvedb, ki jih je treba izvesti v zbirki. Kot iskanje. Vprašal je kakšen primer? Rekel sem – baza zaposlenih. Zaposleni morajo biti edinstveni, da lahko uporabimo seznam in iščemo z binarnim iskanjem ali podobno tehniko, saj so na splošno razvrščeni v nekem vrstnem redu. Vendar mislim, da je pričakoval O(1) odgovor časa iskanja ali Set. Razložil sem delovanje HashMap in HashSet in kako bi to pomagalo razvijalcu, da zlahka doseže edinstvenost elementov, vendar anketarja ni prepričal moj odgovor na njegovo prvotno vprašanje.
Kakšna je pogodba za equals() in hashCode()? Kaj pa, če je eden preglasen, drugi pa ne?
Poiščite drugi minimum v danem nizu .
Poiščite vrtilno točko v razvrščeni in zasukani matriki.
Kakšno vprašanje zame?
2. krog
Na kratko opišite svoje delovne izkušnje.
Podajte pregled zasnove svojega nedavnega projekta.
Recimo, da imam uporabniški vmesnik, kjer je seznam ali tabela elementov in ima vsak element atribut dobička, atribut popusta itd. Kako zagotoviti, da več uporabnikov ne zapusti stanja katerega koli predmeta nedoslednega. Uporabnik lahko posodobi atribute ali pa to stori katera druga spletna storitev. Predlagal sem sinhronizacijo metod nastavljanja predmeta. Vprašal je, kako razvrstiti predmete. Rekel sem, da se bodo elementi nahajali na matričnem seznamu, in implementiral vmesnik Comparable. Prosil je za delovno kodo. Ko sem napisal izraz znotraj metode compareTo(), je rekel, da zasnova ni prilagodljiva, saj obstaja trdo kodiranje kriterijev razvrščanja. Rekel je, da ko želi nekdo razvrstiti po drugem atributu, postane nemogoče upravljati toliko podvojenih predmetov. Rekel sem, da lahko to storimo z vzorcem tovarniške metode. S tem je dejansko prekinil krog intervjujev. Nekje vmes je omenil vmesnik Comparator in razložil sem mu, kako deluje. Rekel sem, da je dobra izbira, če ne želite spreminjati obstoječih razredov. Mislim, da je pričakoval implementacijo metode compare(), saj ta ne bi zahtevala podvojenih predmetov, razvrščanje po različnih kriterijih pa je mogoče izvesti tako, da preprosto implementirate Comparator v različnih razredih en razred za vsak kriterij sortiranja in nato prikličete metodo sort() razreda Collections s to implementacijo Comparatorja.
Kakšno vprašanje zame?
Rekli so mu, naj odide za ta dan. Nasvet: poskusite ne omenjati vzorcev načrtovanja, razen če vas to zahteva ali če imate izkušnje z reševanjem težav z vzorci načrtovanja. Poslušajte anketarja in bodite pozorni. Ponujajo namige. Tudi v 1. krogu sem naredil napako pri vprašanju o zasukanem nizu. Dal je testni primer, kjer moja koda ne bi uspela. Popravil sem napako. Pred dnevom razgovora si privoščite dovolj spanca. Vse vaje za Goldman Sachs ! Ustvari kviz