Su antruoju dideliu Silicio slėnio technologijų bumu inžinieriai turėjo nepaprastai didelę paklausą tiek pradedantiesiems, tiek technikos milžinams. Tiems, kurie turi inžinerinį išsilavinimą arba studijuoja informatiką, šiuo metu pasaulis yra jūsų austrė.
Atsižvelgiant į tai, įmonės ne tik atiduoda darbo vietas. Programuotojams vis dar reikia pereiti specializuotus interviu procesus, įskaitant kartais baiminamą techninį interviu.
Pasiruošimas šiems gali kelti painiavą. Ar turėtumėte studijuoti konkrečius techninius projektus ar apskritai atnaujinti daugybę temų? Ar reikėtų mankštintis prie kompiuterio ar su draugu?
Būdamas trečiuoju „Pocket Gems“, kuriame dirba apie 165 techninius darbuotojus, inžinieriumi, vedžiau šimtus pokalbių telefonu ir vietoje. Per tą laiką aš daug sužinojau, kaip tinkamai pasiruošti. Čia yra patarimai, kurių jums reikia norint išsiaiškinti kitą techninį interviu.
Dėmesys pagrindams
Pašnekovai daugiausia ketina užduoti jums klausimus apie jūsų pagrindus: duomenų struktūras, algoritminio sudėtingumo analizę, klasės dizainą ir panašiai. Tai bus klausimai tiek tiesiogiai apie pagrindus (pvz., Naudokite X, kad padarytumėte Y), tiek ir klausimai, kuriems naudosite pagrindus (plačiau apie tai žemiau).
Pagalvokite apie pagrindus kaip įrankių rinkinyje esančius įrankius. Jie išliks tokie patys, nepaisant to, kokia nuostabi naujovė pasirodys. Turėdami tvirtus pagrindus, būsite geriau pasirengę spręsti neterminuotas problemas - problemas, kurias mes ir daugelis kitų verslo įmonių pradedame spręsti kiekvieną dieną. Sutelkę dėmesį į pagrindus, pašnekovai gali praleisti mažiau laiko nustatydami interviu klausimus ir daugiau laiko pamatyti, kaip jūs galvojate.
Pvz., Jūsų gali būti paprašyta kažko panašaus: jums duotas dvejetainis medis ir du mazgai medyje. Raskite žemiausią dviejų protėvių protėvį per O (n) laiką.
Šiuo klausimu pašnekovas nori sužinoti, kaip gerai galite perduoti savo minties procesą ir sprendimą. Tai, kaip jūs galvojate apie problemą, organizuojate savo mintis ir perduodate savo atsakymą, dažnai taip pat svarbu, kaip ir jūsų išvada. Mes dirbame sudėtingoje ir nuolat besikeičiančioje aplinkoje ir mums reikia žmonių, kurie sugebėtų išspręsti sunkias problemas ir efektyviai jas perduoti savo techniniams ir netechniniams komandos draugams.
Šioje interviu srityje jums turėtų būti patogu aptarti tokius dalykus kaip eilutės, masyvai, pagrindinė sintaksė, duomenų tipai, susieti sąrašai, medžiai, grafikai, krūvos, eilės ir maišos lentelės. O, įsitikinkite, kad galite atsakyti į „FizzBuzz“, nė nemirktelėjęs.
Būkite pasirengę spręsti įvairius būdus
Kiekvienas iš jūsų pagrindų turi privalumų ir trūkumų bei siūlo unikalų sprendimą tam tikros rūšies problemai. Po to, kai pašnekovai užduos jums klausimą tik dėl pagrindų, jie greičiausiai sužinos, kaip jūs galite juos naudoti praktikoje. Tai pasiekiama uždavus atvirus klausimus, kuriuos galima išspręsti įvairiais būdais.
Klausimo pavyzdys čia būtų: Jums pateikiama aritmetinė lygtis kaip eilutė. Ši lygtis turės pavienius skaitmenis 0–9, sudės, atims, padaugins ir skliaustuose. Parašykite funkciją, kuri priima šią lygtį ir apskaičiuoja teisingą atsakymą. Įvesties pavyzdžiai yra „1 + 1“ ir „2 * (1 + 9) - ((2 + 5) -9“).
Kaip ir anksčiau, pašnekovas nori pamatyti, kaip jūs išskaidote atvirus klausimus ir minties procesą pasirinkdami jūsų sprendimą. Svarbiausia, jie nori pamatyti, kad jūs galite efektyviai bendrauti dėl sudėtingų problemų.
Nesvarbu, kokį klausimą ar kokį sprendimą pasirinksite, būtinai pagalvokite garsiai! Jei turite skirtingus problemos sprendimo būdus, prieš nuspręsdami, kurį variantą naudoti, aptarkite parinktis. Tai padeda pašnekovui pamatyti ir suprasti jūsų minčių procesą. Be to, pašnekovas gali rekomenduoti vieną sprendimą, palyginti su kitais, nes jis / ji žino, kad kiti gali turėti tam tikrų spragų arba gali būti už interviu ribų.
Nebijokite užduoti klausimų, jei kažkas neaišku ar nėra pateikta daug detalių. Jie rodo, kad jūs taip pat galvojate, ir suteikia pašnekovui supratimą, kaip galėtumėte dirbti su kitais. Įsitikinkite, kad klausiate patikslinančių klausimų, kad suprastumėte klausimą, ir neišplečiate problemos apimties (pvz., Kokie yra kai kurie įvesties pavyzdžiai? Ar turėčiau nerimauti, kad padalysiu iš 0? Ar turėčiau jaudintis dėl dienos šviesos taupymas?)
Galiausiai įsitikinkite, kad prieš sakant, kad baigėte, žodžiu išbandėte keletą testų. Tai leidžia tiek patikrinti kodą, tiek pašnekovui parodyti, kad tikrinate kodą. Deja, mes negalime perskaityti jūsų minties, nes tai būtų lengva, nes tai būtų darbo pokalbiai.
Taigi, kai ruošiatės, spręskite klausimus naudodamiesi skirtingais įrankiais iš savo priemonių rinkinio, kad susidarytumėte intuiciją apie tai. Žinokite, kada naudoti kiekvieną iš savo įrankių, kad per pokalbį nepakliūtumėte į užribį. Ir įsitikinkite, kad praktiškai išsamiai aprašėte savo minties procesą - tai gali būti sunkiausia koduotojams, įpratusiems dirbti atskirai.
Praktika, praktika, praktika
Kuo daugiau treniruositės, tuo geriau būsite pasiruošę pokalbiui dėl techninio kodavimo. Tai pasakytina apie daugumą dalykų, bet ypač aktualu techniniams pokalbiams - jie iš tikrųjų reikalauja, kad sušildytumėte savo smegenis.
Čia yra keli patarimai, kurie padės jums maksimaliai išnaudoti praktikos laiką:
- Įsitikinkite, kad modeliuojate interviu aplinką. Skirkite sau laiko ribą problemoms spręsti. Jei ketinate daryti pokalbį telefonu, atlikite praktiką ir „Stypi“, ir „Google“ dokumentuose. (Aš pats žinau, kad neturėdamas automatinio užpildymo ir sintaksės paryškinimo, mane aplenkė telefoniniai interviu.) Jei ketini daryti interviu asmeniškai, praktikuokis darydamas problemas ant popieriaus ar ant lentos.
- Tegul netechninis draugas užduos jums interviu klausimus ir perduokite jį atsakymams. Jei galite jam tai paaiškinti, esu tikras, kad galite tai paaiškinti savo techniniam pašnekovui.
- Nesijauskite apgaudinėjami, jei naudojate kai kuriuos paruošiamuosius įrankius. Jie dažnai siūlo puikias įžvalgas ir praktinius klausimus. Mano mėgstamiausios yra tokios svetainės kaip „TopCoder“ ir „ Head First“ knygos. Kai kurios kitos knygos, kuriose daugiau pasakojama apie interviu procesą, yra „ Interviu interviu programavimas“ ir „Interviu su kodu“ .
Techninio kodo interviu gali atrodyti gana bauginančiai, tačiau tinkamai pasirinkę tikslingos praktikos tipus būsite pasirengę juos ištverti. Nepamirškite sutelkti dėmesio į savo duoną ir sviestą, pagrindus ir daug praktikuoti. Vykdykite aukščiau pateiktus patarimus ir būsite pasirengę kitam interviu dėl techninio kodavimo.
Norite daugiau informacijos? Neseniai pristačiau šią temą UC Berkeley inžinerijos / techninės karjeros konferencijoje. Peržiūrėkite mano skaidres iš toliau pateiktos diskusijos, kad gautumėte daugiau minčių ir išteklių!












