Tehnični intervjuji so znani po svojih ugankah. Ne glede na to, ali se od vas zahteva, da na belo tablo napišete binarno drevo, razložite algoritem za razvrščanje ali izvedite FizzBuzz v 10 ali manj vrsticah, se morate v povprečnem intervjuju pripraviti na vprašanja o tehničnem programiranju.
A to ni edino, na kar bi morali biti pripravljeni.
Resničnost je, da bodo številni razvijalci lahko rešili običajna vprašanja glede intervjuja s programiranjem z malo razlike med odgovori. Kaj vas torej razlikuje od naslednjega kandidata? Prav na to se bomo osredotočili v teh petih nasvetih.
1. Pogovorite se o svojem obrazložitvi in postopku reševanja težav
Najslabše, kar lahko storite, ko vam zastavijo težko vprašanje, je, da ostanete popolnoma brez besed. Na žalost je to zelo enostavno storiti naključno. Ko naletite na težavo, ki zahteva veliko mentalne energije in osredotočenosti, je verjetno, da je vaš prvi nagib, da se umaknete v svoj um. Čeprav je to naravno, anketarju tudi ni zelo koristno.
Bistvo tehničnih vprašanj je delno razkriti, kako razmišljate o reševanju težav. Kakšen je vaš postopek? Kako razčlenite različne sestavne dele? Kako pridete do rešitve? Kako reagirate, ko poskusite nekaj, kar ne deluje? Ste boljši v eksperimentiranju s kodo ali v skiciranju nečesa na belo desko?
Pojasnite, kaj se dogaja v vaši glavi, ko rešujete težavo. Delujte, kot da snemate svoj glas za objavo v spletu, da bi druge naučili, kako rešiti to težavo. Tudi če vam anketarji dajejo prostor za mirno razmišljanje, boste morda imeli korist od razlage svojega miselnega procesa, ne da bi vas to spodbudilo. To jim pomaga ne le, da temeljiteje razumejo vaše sposobnosti in kritično razmišljanje, ampak vam postane tudi bolj nepozabno.
2. Kaj je boljše od rešitve težave v tehničnem intervjuju? Rešimo dvakrat
Zelo malo težav ima samo eno rešitev, vsi problemi pa imajo neskončno napačne rešitve. Če se osredotočite na samo en način reševanja težave, vam manjka glavna priložnost, da dokažete svojo prožnost in nabor spretnosti.
Namesto da bi preprosto šli z dobro znano rešitvijo ali delali v enem samem jeziku, odprite razpravo o določeni težavi in jo rešite za različne scenarije. Na primer, če vas prosijo, da programirate FizzBuzz, boste morda ponudili, da to storite v dveh jezikih ali z uporabo dveh različnih paradigem ali morda z uporabo nekaterih omejitev učinkovitosti za eno rešitev in estetskih omejitev za drugo.
Z potrditvijo, da ima težava lahko več rešitev, kažete svojo prilagodljivost, prilagodljivost in zavest, kar bo vsem anketarjem vzbudilo zaupanje, da boste lahko med številnimi možnostmi izbrali pravo rešitev.
Seveda ne pretiravajte - branje je, če je odgovor na vprašanje z več rešitvami, pretirano ali z veseljem dobrodošlo. Če ste v dvomih, ne pozabite vprašati anketarjev, če se motijo, če boste potrebovali nekaj časa za razširitev svoje rešitve s sekundarno možnostjo.
3. Ne bojte se deliti mnenja, kadar je to primerno
Včasih, ko boste delali težave, boste sprejemali odločitve, ki v celoti temeljijo na vašem okusu in mnenju. In to je v redu - delodajalce zanima vaše mnenje! Način razmišljanja in odzivanja na situacije zelo vpliva na kulturo podjetja. Imeti mnenje je tudi znak vodstva in tehnične zrelosti kot razvijalec. Če želite razpravljati o svojih mnenjih, morate preučiti drugačna stališča o določeni temi.
Ne pozabite pa, da se mnenja lahko držijo zelo natančno. Če se ne strinjate s svojim anketarjem o določeni temi, rahlo stopite, ko delite te informacije. Čeprav je dobro imeti stališče, je pomembno upoštevati, da skupna raba ni vedno potrebna in da znate izbrati svoje bitke. Dobro pravilo: Ne delite svojega mnenja, če vas ne vprašajo.
4. Nikoli ne končajte odgovora z »Ne vem«
Razen če se soočate s scenarijem "Kobayashi Maru", nikoli ne končajte vprašanja za intervju z "Ne vem." To delo ni možnost, zato v intervjuju ne bi smela biti možnost.
Seveda ne rečem, da bi morali vedeti vse. To je nemogoče! Pokazati pa bi morali, da imate strategijo za učenje, kaj morate vedeti, da lahko delo opravite. Poskusite odgovoriti z "Ne vem, kako naj to storim, toda tukaj je to, kako bi to razbral." Ta odgovor bi moral iti dlje od tega, da bi govoril samo "Jaz bi to poklical". Bolje si razložite najverjetnejšo smer, ki bi jo raziskali.
Najbolj pa se ne sram! Učenje je v veliki meri postopek ugotavljanja stvari, ki jih ne poznate. Vaš delodajalec ne pričakuje, da boste popolni, vendar pričakujejo, da boste pridni in inteligentni ter da ne boste nikoli odnehali s težavo.
5. Vedno igrajte za ekipo
Razen če niste samostojni razvijalec, bo vaše delo vedno postavljeno v okviru ekipe, uspeh ekipe pa je vedno najpomembnejši za vašo. Torej bi moral vaš intervju odražati, da se ne ukvarjate samo z reševanjem svojih težav v določenem dnevu, temveč da ste osredotočeni na to, da naredite vse, kar je potrebno za uspeh ekipe.
Torej, kako lahko to sporočite v intervjuju?
Nikoli ne razpravljajte o težavah, kot da so v vakuumu
Skoraj vsak projekt bi praktično potreboval vire in omejitve, zato pokažite svojo zavest o kontekstu problema. Problem, ki je dobro rešen, vendar je presegel proračun, resnično ni največja rešitev.
Pokažite svojo zavest o izkušnji obstoječe ekipe
Včasih je najboljši odgovor na vprašanje, da druge osebe iz vaše ekipe zaprosite za sodelovanje z vami in jih lahko napotite v tehničnih vprašanjih: "Če bi mi to težavo predstavili v okviru naše ekipe, bi verjetno prosil za pregled tudi moja rešitev. "To kaže, da ste se pripravljeni zanesti na strokovno znanje drugih in da je vaš cilj doseči najboljšo rešitev.
Izrecno sporočite vrednosti, ki jih poganja ekipa
To je dovolj pomembno vprašanje, da morate takoj priti in povedati. Želite zagotoviti, da se delodajalci v celoti zavedajo, da je vaš cilj pomagati podjetju uspeti, ne le sedeti za mizo in šifrirati ves dan.
Navsezadnje vaša naloga razvijalca ni samo kodiranje. To je biti timski igralec, vodja in nekdo, ki nikoli ni pripravljen prenehati s težavo. Priložnosti v tehničnem razgovoru niso samo, da pokažete, da lahko dosežete cilje ali pišete algoritme, ampak tudi, da se postavite nad konkurenco in delodajalcu pokažete vrednost, ki jo dodate.