Nutraukimas: kaip išspręsti bet kokią techninio pokalbio problemą

Saugus receptas, skirtas išsiaiškinti, kaip bet kurią problemą lengviau valdyti.

1. Kai gausite klausimą (prieš rašydami vieną eilutę kodo)

Paprasčiausias būdas įsitikinti, kad suprantate klausimą, yra atlikti bandomuosius pavyzdžius.

Ką reikia išsiaiškinti su pašnekovu:
Ko tikimasi? Koks laukiamas rezultatas?
Bet kokios prielaidos, susijusios su tam tikrais bandymo atvejais

Pavaikščioję po bandomuosius atvejus, atkreipkite dėmesį į visus kintamuosius, kuriuos turėtumėte stebėti, ir kokios duomenų struktūros šią problemą pajustų labiausiai.

Visada galvok, kaip išspręsti problemą. Ar yra mažesnė, lengvesnė antrinė problema, kurią galite išspręsti? Ir jei taip, kaip atrodytų toks sprendimas?

2. Kodo rašymas (ir ką daryti, jei įstrigsi)

Kai išsiaiškinsite algoritmą ir paaiškinsite savo logiką, kitas dalykas, kurį turite padaryti, yra paversti savo idėją kodu.

Šiuo metu brutalioji jėga yra visiškai ok. Sukurti veikiantį sprendimą (net jei jo vykdymo laikas ir erdvės efektyvumas nėra tobulas) yra daug geriau, nei užstrigti bandant per anksti optimizuoti savo kodą.

Rašydami kodą nepamirškite:

  1. Aiškiai kalbėkite apie tai, kokį kodą naudojate šiuo metu ir kodėl jį pridedate prie savo sprendimo
  2. Pabandykite naudoti akivaizdžius kintamųjų pavadinimus ir padarykite savo kodą draugišką skaityti
  3. Pakalbėkite su pašnekovu per savo minties procesą ir apie tai, kokie privalumai ir trūkumai gali būti su jūsų sprendimu
  4. Kai įmanoma, padarykite savo modulinį modulį (pagalbinės funkcijos yra jūsų draugai!)

Apie tai, kaip elgtis su nepatogia tyla, jei užstrigote ar jums reikia laiko pagalvoti ...

Tai atsitinka mums visiems, ir tai yra visiškai normalu tai patirti per interviu. Remdamasis savo patirtimi, beveik visuose mano techniniuose pokalbiuose ateina momentas, kai turiu galvoti apie save ir nesugebu toliau kalbėtis su pašnekovu. Kai tai atsitinka, aš paprastai sakau ką nors:

Man reikia šiek tiek laiko pagalvoti apie savo sprendimą ir išsiaiškinti, ar jis turi prasmę
Nesu visiškai tikras, ar tai teisingas požiūris, leiskite man dar kartą patikrinti savo darbą
Atrodo, kad galbūt (įterpkite dalį jūsų siūlomo sprendimo) iš tikrųjų neveiks (įterpkite kai kuriuos kraštinius atvejus)… Aš galvoju, kaip spręsti tą problemą

Pašnekovas paprastai yra jūsų pusėje ir nori, kad jums pasisektų - tiesiog atminkite, jei jis / ji jums duoda užuominą, niekada nekreipkite į tai dėmesio!

3. Peržiūrėkite savo sprendimą ir pridėkite optimizacijų

Baigę rašyti kodą, peržvelkite jį naudodami testą, kad įsitikintumėte, jog jūsų programa elgiasi taip, kaip tikitės.

Šiuo metu verta apsvarstyti:

  1. Galimi kraštų atvejai, kuriuos galbūt praleidote
  2. Bet kokia klaida (ypač indeksuojant ar naudojant kilpą)
  3. Ar yra koks nors jūsų kodų pakartojamumas, kurį galite išvalyti?

Klausimai, kuriuos reikia užduoti bandant optimizuoti:

  1. Koks yra dabartinis bėgimo laikas ir erdvė?
  2. Ar yra ką tobulinti, jei naudojote kitokią duomenų struktūrą ar šiek tiek pakeistumėte savo požiūrį?

Peržiūrėdami kodą atminkite, kad visiškai įmanoma, kad padarėte netyčinę klaidą - pabandykite per savo programą atsekti, tarsi tai būtų kažkas kitas, kurį matote pirmą kartą!

Viską suvynioti

Interviu yra įgūdis ir, kaip ir bet kuris kitas įgūdis, jį galima patobulinti atliekant praktiką! Dirbdami per technines problemas, norėdami patogiai pasirinkti pasirinktą kalbą ir duomenų struktūrą, visa tai gali būti darbas, kurį atlikote iš anksto, kad padidintumėte savo šansus gerai pasirodyti pokalbio metu.

Klausimų, duomenų struktūrų ir apžvalgos šaltinių sąrašą galite pamatyti daugiau čia: 4 savaičių planas, kaip tvarkyti jūsų kitą techninį interviu

Atminkite, kad kiekvienas pokalbis yra mokymosi patirtis ir, nepaisant to, kokį rezultatą įgijote vertingų įžvalgų, kurių anksčiau neturėjote. Išlikite pozityvūs ir mokykitės iš atsiliepimų - tai puikus būdas nuolat tobulėti! Sėkmės!

Jei šis vadovas galėjo jums kokiu nors būdu padėti, atsiųskite klaipėdietę ar dvi :) tai man tikrai reiškia labai daug - ačiū ir sėkmės kelionėje!