Breaking Down Down: Ako pristupovať k problémom s technickými rozhovormi

Bezpečný recept na to, ako zistiť, ako vyriešiť akýkoľvek problém.

1. Keď dostanete otázku (predtým, ako napíšete jediný riadok kódu)

Najjednoduchší spôsob, ako zaistiť, aby ste pochopili otázku, je prejsť testovacími prípadmi.

Čo je potrebné objasniť s vašim anketárom:
Aký je očakávaný vstup? Aký je očakávaný výstup?
Akékoľvek predpoklady, ktoré by ste mohli mať o určitých testovacích prípadoch

Po absolvovaní testovacích prípadov si poznačte všetky premenné, ktoré by ste mali sledovať, a aké dátové štruktúry by pre tento problém mali najväčší zmysel.

Vždy premýšľajte o spôsoboch, ako problém vyriešiť. Existuje menší, ľahší čiastkový problém, ktorý môžete vyriešiť? A ak áno, ako by toto riešenie vyzeralo?

2. Písanie kódu (a čo robiť, ak uviaznete)

Po vymyslení algoritmu a vysvetlení logiky je pre vás ďalšou vecou preložiť svoj nápad do kódu.

V tomto okamihu je hrubá sila úplne v poriadku. Vytvorenie funkčného riešenia (aj keď jeho prevádzková a priestorová efektivita nie je dokonalá) je oveľa lepšie, ako sa držať pokusu o predčasnú optimalizáciu kódu.

Pri písaní kódu nezabudnite:

  1. Hovorte jasne o tom, na čom práve pracujete a prečo ho pridávate do svojho riešenia
  2. Pokúste sa použiť zrejmé názvy premenných a spríjemnite čítanie kódu
  3. Porozprávajte sa so svojím anketárom prostredníctvom myšlienkového procesu a toho, aké výhody a nevýhody môžu pri vašom riešení prísť
  4. Ak je to možné, urobte kód modulovým (pomocné funkcie sú vaši priatelia!)

O manipulácii s tým nepríjemným tichom, ak uviaznete alebo potrebujete nejaký čas premýšľať ...

Stáva sa to všetkým nám, a je úplne bežné stretnúť sa s tým počas rozhovoru. Podľa mojich skúseností prichádza takmer pre všetky technické rozhovory chvíľa, keď si musím myslieť na seba a nemôžem s rozhovorom hovoriť ďalej. Keď sa to stane, zvyčajne hovorím niečo podobným spôsobom:

Potrebujem sekundu, aby som premýšľal nad svojím riešením a zistil, či to dáva zmysel
Nie som si úplne istý, či je to správny prístup, dovoľte mi dvakrát skontrolovať svoju prácu
Zdá sa, že (vložiť časť vášho navrhovaného riešenia) pravdepodobne nebude fungovať (vložte nejaký prípad). Premýšľam o tom, ako to vyriešiť

Osoba, ktorá vedie pohovor, je zvyčajne na vašej strane a chce, aby ste uspeli - nezabudnite, či vám dá pomoc, nikdy ju neignorujte!

3. Skontrolujte svoje riešenie a pridajte optimalizácie

Po dokončení písania kódu ho sledujte pomocou testovacieho prípadu, aby ste sa uistili, že sa váš program správa tak, ako očakávate.

V tejto chvíli je dobré zvážiť:

  1. Možné prípady okrajov, ktoré ste mohli vynechať
  2. Akékoľvek chyby spôsobené jednou chybou (najmä pri indexovaní alebo používaní slučky)
  3. Existuje vo vašom kóde opakovanie, ktoré môžete vyčistiť?

Otázky, ktoré treba položiť pri pokuse o optimalizáciu:

  1. Aká je aktuálna doba prevádzky a zložitosť priestoru?
  2. Existuje priestor na zlepšenie, ak ste použili inú štruktúru údajov alebo mierne upravili svoj prístup?

Pri kontrole kódu nezabudnite, že je úplne možné, že ste urobili neúmyselnú chybu - skúste sledovať svoj program, akoby to bola práca niekoho iného, ​​ktorú vidíte prvýkrát!

Zabaliť to všetko

Rozhovory sú zručnosti a podobne ako všetky ostatné zručnosti sa dajú vylepšiť v praxi! Práca s technickými problémami, pohodlie s vaším jazykom výberu a dátovými štruktúrami, to všetko môže byť práca, ktorú robíte vopred, aby ste zvýšili svoje šance na silný výkon počas rozhovoru.

Zoznam otázok, dátových štruktúr a zdrojov na preskúmanie nájdete tu: 4-týždňový plán na zabitie vášho ďalšieho technického rozhovoru

Pamätajte, že každý rozhovor je skúsenosťou s učením a bez ohľadu na výsledok ste získali cenné informácie, ktoré ste predtým nemali. Zostať pozitívny a poučiť sa zo spätnej väzby je skvelý spôsob, ako neustále zlepšovať! Veľa štastia!

Ak vám tento sprievodca mohol nejakým spôsobom pomôcť, pošlite klapku alebo dve otázky :) to pre mňa znamená veľa - ďakujem a prajem veľa šťastia pri vašej ceste!