Piilaakson toisella suurella teknologiabuumilla insinöörejä on ollut uskomattoman suuri kysyntä niin startup-yrityksissä kuin teknisen jättiläisenkin keskuudessa. Niille, joilla on teknistä taustaa tai jotka opiskelevat tietotekniikkaa, maailma on osteri nyt.
Yritykset eivät kuitenkaan vain anna työpaikkoja. Ohjelmoijien on edelleen käydä läpi erikoistuneet haastatteluprosessit - mukaan lukien toisinaan pelätty tekninen haastattelu.
Näihin valmistautuminen voi olla hämmentäviä koettelemuksia. Pitäisikö sinun opiskella tiettyjä teknisiä projekteja tai yleensä päivittää paljon aiheita? Pitäisikö harjoitella tietokoneella tai ystävän kanssa?
Kolmantena insinöörinä Pocket Gemsissä, jolla on noin 165 teknistä työntekijää, olen suorittanut satoja puhelin- ja paikallishaastatteluja. Tänä aikana olen oppinut paljon siitä, kuinka valmistautua siihen oikein. Tässä on vinkkejä, jotka tarvitset naulataksesi seuraavaan tekniseen haastatteluun.
Keskity perusteisiin
Haastattelijat aikovat kysyä sinulta lähinnä kysymyksiä perusteista: tietorakenteet, algoritminen monimutkaisuusanalyysi, luokan suunnittelu ja vastaavat. Nämä ovat kysymyksiä sekä suoraan perusteista (esim. Käytä X tehdä Y) että kysymyksiä, joita varten käytät perustekijöitäsi (lisätietoja alla).
Ajattele perusteita työkalupakin työkaluina. He pysyvät samana riippumatta siitä, mikä upea uusi tekniikka ilmestyi. Vahvojen perustekijöiden avulla olet paremmin valmistautunut käsittelemään avoimia ongelmia - sellaisia ongelmia, joita me ja monet muut startupit ratkaisevat päivittäin. Keskittymällä perustekijöihin haastattelijat voivat viettää vähemmän aikaa haastattelukysymysten asettamiseen ja enemmän aikaa nähdä miten ajattelet.
Esimerkiksi, sinulta voidaan kysyä jotain seuraavaa: sinulle annetaan binäärinen puu ja kaksi solmua puussa. Etsi kahden annetun solmun alin yhteinen esi-isä O (n) -ajassa.
Tämän kysymyksen avulla haastattelija haluaa nähdä kuinka hyvin pystyt kommunikoimaan ajatteluprosessisi ja ratkaisusi. Se, miten ajattelet ongelmaa, organisoit ajatuksesi ja kommunikoit vastauksesi, on usein yhtä tärkeä kuin päätelmäsi. Työskentelemme monimutkaisissa ja jatkuvasti muuttuvissa ympäristöissä ja tarvitsemme ihmisiä, jotka pystyvät sekä ratkaisemaan kovat ongelmat että kommunikoimaan ne tehokkaasti teknisille ja ei-teknisille joukkuetovereilleen.
Haastattelun tällä alueella sinun tulisi mukavasti keskustella asioista, kuten merkkijonot, taulukot, perussyntaksi, tietotyypit, linkitetyt luettelot, puut, kaaviot, pinot, jonot ja hash-taulukot. Voi, ja varmista, että voit vastata FizzBuzziin lyömättä silmää.
Ole valmis ratkaisemaan asioita eri tavoin
Jokaisella perusteellasi on etuja ja haittoja, ja se tarjoaa ainutlaatuisen ratkaisun tietyntyyppisiin ongelmiin. Kun haastattelijat esittävät sinulle kysymyksen yksinomaan perusteista, he todennäköisesti näkevät, kuinka voit käyttää niitä käytännössä. Tämä saavutetaan kysymällä avoimia kysymyksiä, jotka voidaan ratkaista monin tavoin.
Esimerkkikysymys tässä olisi: Sinulle annetaan aritmeettinen yhtälö merkkijonona. Tässä yhtälössä on yksinumeroiset numerot 0-9, summaus, vähennys, kertolasku ja suluissa. Kirjoita funktio, joka ottaa tämän yhtälön ja laskee oikean vastauksen. Esimerkkejä sisääntuloista ovat “1 + 1” ja “2 * (1 + 9) - ((2 + 5) -9”).
Kuten aikaisemmin, haastattelija haluaa nähdä, kuinka hajotat avoimet kysymykset ja ajatteluprosessisi valitsemalla ratkaisusi. Tärkeintä on, että he haluavat nähdä, että pystyt kommunikoimaan tehokkaasti monimutkaisten ongelmien kanssa.
Riippumatta siitä, minkä kysymyksen tai minkä ratkaisun valitset, muista ajatella ääneen! Jos sinulla on erilaisia tapoja ratkaista ongelma, keskustele vaihtoehdoista ennen kuin päätät mitä käyttää. Se auttaa haastattelijaa näkemään ja ymmärtämään ajatusprosessiasi. Haastattelija voi myös suositella yhtä ratkaisua muihin nähden, koska hän tietää, että muilla saattaa olla tiettyjä sudenkuoppia tai olla haastattelun ulkopuolella.
Älä pelkää kysyä kysymyksiä, jos jokin on epäselvää tai siinä ei ole paljon yksityiskohtia. Nämä osoittavat, että ajattelet myös - ja antavat haastattelijalle käsityksen siitä, kuinka toimisit muiden kanssa. Varmista, että kysyt selkeitä kysymyksiä ymmärtääksesi kysymyksen täysin, etkä laajenna ongelman laajuutta (esim. Mitkä ovat esimerkkejä syötteistä? Onko minun huolehdittava jakamisesta luvulla 0? Onko minun huolehdittava kesäaika?)
Lopuksi, varmista, että suoritat suullisesti muutaman testitapauksen ennen kuin sanot, että olet valmis. Tämän avulla voit sekä tarkistaa koodin että näyttää haastattelijalle, että tarkistat koodisi. Niin helppoa kuin se tekisi työhaastattelut, emme valitettavasti pysty lukemaan mieltäsi.
Joten valmistellessasi harjoitella kysymysten ratkaisemista työkalupakin eri työkaluilla, niin että kehität siitä intuitiota. Tiedä milloin käyttää kutakin työkaluasi, jotta et pääse kompastuksi haastattelun aikana. Ja varmista, että käytät kuvaamaan ajatteluprosessiasi kokonaan - tämä voi olla vaikein tehtävä koodareille, jotka ovat tottuneet työskentelemään eristyksissä.
Harjoittelu, harjoittelu, harjoittelu
Mitä enemmän harjoittelet, sitä paremmin olet valmis teknistä koodausta varten. Tämä pätee useimpiin asioihin, mutta koskee erityisesti teknisiä haastatteluja - ne todella vaativat sinua aivojen lämmittämiseen.
Tässä on muutamia vinkkejä, joiden avulla saat kaiken hyödyn irti harjoitteluajasta:
- Varmista, että simuloit haastatteluympäristöä. Anna itsellesi aikaraja ongelmiin. Jos aiot tehdä puhelinhaastattelua, harjoittele sekä Stypissä että Google-dokumenteissa. (Tiedän itselleni, ettei automaattisen täydennyksen ja syntaksin korostaminen ole laukaissut minua puhelinhaastatteluihin.) Jos aiot tehdä haastattelun henkilökohtaisesti, harjoittele ongelmien tekemistä paperilla tai taululla.
- Pyydä ei-teknistä ystävää esittämään haastattelukysymykset ja selvittämään häntä vastauksistasi. Jos osaat selittää sen hänelle, voin varmasti selittää sen tekniselle haastattelijallesi.
- Älä tunne huijaa, jos käytät joitain valmiina työkaluja, jotka ovat olemassa. He tarjoavat usein hyviä oivalluksia ja käytännön kysymyksiä. Suosikkini ovat sivustot, kuten TopCoder ja Head First -kirjat. Muita kirjoja, joissa puhutaan enemmän haastatteluprosessista, ovat ohjelmoidut haastattelut paljastetut ja koodinhaastattelun murtaminen .
Tekniset koodaushaastattelut saattavat tuntua melko pelottavilta, mutta oikean tyyppisellä keskittyneellä käytännöllä olet valmis heittämään heidät. Muista keskittyä leipäsi ja voisi, perusteisiin ja harjoitella paljon. Noudata yllä olevia vinkkejä ja olet valmis seuraavaan tekniseen koodaushaastatteluun.
Haluatko lisätietoja? Esittelin hiljattain tästä aiheesta UC Berkeley Engineering / Tech Career -konferenssissa. Katso lisää diojani alla olevasta keskustelusta saadaksesi lisää ajatuksia ja resursseja!




