Technické rozhovory jsou známé pro jejich hádanky. Ať už jste požádáni o napsání binárního stromu na tabuli, vysvětlení třídicího algoritmu nebo implementaci FizzBuzz v 10 řádcích nebo méně, měli byste se připravit na technické programovací otázky v průměrném rozhovoru.
Ale to není jediná věc, na kterou byste měli být připraveni.
Skutečností je, že mnoho vývojářů bude schopno řešit běžné otázky týkající se rozhovorů s programováním s malým rozdílem mezi odpověďmi. Co vás tedy odlišuje od dalšího kandidáta? Na to se přesně zaměříme v těchto pěti tipech.
1. Vyslovte svůj proces zdůvodnění a řešení problémů
Nejhorší, co můžete udělat, když položíte těžkou otázku, je jít úplně beze slov. Bohužel je velmi snadné to udělat při nehodě. Když narazíte na problém, který vyžaduje značnou mentální energii a soustředění, je pravděpodobné, že vaším prvním sklonem je ustoupit do vaší mysli. I když je to přirozené, pro tazatele to také není příliš užitečné.
Smyslem technických otázek je částečně odhalit, jak si myslíte o řešení problémů. Jaký je váš proces? Jak rozdělujete jednotlivé komponenty? Jak se dostanete k řešení? Jak reagujete, když zkoušíte něco, co nefunguje? Jste lepší experimentovat v kódu nebo načrtnout něco na tabuli?
Vysvětlete, co se děje ve vaší hlavě, když problém vyřešíte. Chovejte se, jako byste nahrávali svůj hlas, abyste mohli publikovat online a naučit ostatní, jak tento problém vyřešit. I když vám vaši tazatelé dávají prostor k tichému přemýšlení, můžete mít prospěch z vysvětlení myšlenkového procesu, aniž by vás k tomu vyzvali. To jim nejenže pomůže důkladněji pochopit vaše dovednosti a kritické myšlení, ale také vám pomůže zapamatovat si.
2. Co je lepší než vyřešení problému v technickém rozhovoru? Řešení dvakrát
Velmi málo problémů má pouze jedno řešení a všechny problémy mají nekonečná nesprávná řešení. Pokud se tedy soustředíte pouze na jeden způsob řešení problému, chybí vám velká příležitost prokázat vaši flexibilitu a soubor dovedností.
Místo toho, abyste prostě šli s dobře známým řešením nebo pracovali v jednom jazyce, otevřete diskusi o tomto konkrétním problému a vyřešte jej pro různé scénáře. Například, pokud jste požádáni o programování FizzBuzz, můžete nabídnout, že tak učiníte ve dvou jazycích, nebo použitím dvou různých paradigmat, nebo snad tím, že vezmete některá omezení výkonu pro jedno řešení a estetická omezení pro jiné.
Potvrzením, že problém může mít více řešení, prokazujete svou přizpůsobivost, flexibilitu a povědomí, což vše vzbudí důvěru v vaše tazatele, že si budete moci vybrat mezi mnoha možnostmi správné řešení.
Samozřejmě, nepřecházejte přes palubu - umění číst, když je odpověď na otázku s více řešeními nadměrná nebo šťastně vítaná. V případě pochybností se nebojte se zeptat tazatelů, jestli jim to vadí, pokud si uděláte nějaký čas na rozšíření svého řešení pomocí sekundární možnosti.
3. Nebojte se sdílet své názory, pokud je to možné
Někdy při řešení problémů budete činit rozhodnutí, která jsou zcela založena na vašem vlastním vkusu a názorech. A to je v pořádku - zaměstnavatelé se zajímají o váš názor! Způsob, jakým přemýšlíte a reagujete na situace, má velký vliv na kulturu společnosti. Mít názor je také známkou vůdcovství a technické vyspělosti vývojáře. Chcete-li diskutovat o svých názorech, musíte vyhodnotit další pozice v daném tématu.
Nezapomeňte však, že názory lze držet velmi úzce. Pokud s daným tazatelem nesouhlasíte s daným tématem, při sdílení těchto informací lehce šlapejte. I když je dobré mít názor, je také důležité si uvědomit, že sdílení není vždy nutné a vědět, jak vybrat své bitvy. Dobré pravidlo: Sdílejte svůj názor, pokud se vás na to nepožádá.
4. Nikdy nekončit odpověď „Nevím“
Pokud se nestojíte před scénářem „Kobayashi Maru“, nikdy neskončte otázku s dotazem „Nevím.“ To není v práci možnost, takže v rozhovoru by to neměla být možnost.
Samozřejmě neříkám, že byste měli vědět všechno. To není možné! Měli byste však ukázat, že máte strategii pro učení toho, co potřebujete vědět, abyste tuto práci mohli udělat. Zkuste odpovědět „Nevím, jak to udělat, ale tady je návod, jak bych si to vymyslel.“ Tato odpověď by měla jít dále, než jen říkat „Já bych to Google“. Je lepší vysvětlit nejpravděpodobnější směr, který byste prozkoumali.
Především se nemusíte stydět! Učení je do značné míry procesem vymýšlení věcí, které neznáte. Váš zaměstnavatel neočekává, že budete dokonalí, ale očekávají, že budete usilovní a inteligentní a nikdy neopustíte problém.
5. Vždy hrajte za tým
Pokud nejste vývojář na volné noze, bude vaše práce vždy nastavena v kontextu týmu a úspěch týmu je vždy rozhodující pro váš vlastní. Takže váš rozhovor by měl odrážet, že se nejednáte pouze o řešení vašich problémů v daný den, ale spíše o to, že se zaměřujete na to, co je nezbytné pro úspěch týmu.
Jak to můžete sdělit v rozhovoru?
Nikdy nemluvte o problémech, jako by byly ve vakuu
Téměř každý projekt by měl prakticky požadavky na zdroje a limity, takže prokažte své povědomí o kontextu problému. Problém, který je dobře vyřešen, ale překročil rozpočet, není ve skutečnosti největším řešením.
Ukažte své povědomí o odborných znalostech existujícího týmu
Někdy je nejlepší odpověď na otázku položit ostatním ve vašem týmu, aby s vámi spolupracovali, a můžete tyto lidi zmínit v technických otázkách: „Kdybych byl tento problém představen v kontextu našeho týmu, pravděpodobně bych požádal o přezkoumání moje řešení. “To ukazuje, že jste ochotni spoléhat se na odborné znalosti ostatních a že vaším cílem je dospět k nejlepšímu řešení.
Sdělte své hodnoty řízené týmem výslovně
Toto je dostatečně důležitá záležitost, kterou byste měli vyjít a říct. Chcete se ujistit, že vaši zaměstnavatelé jsou si plně vědomi toho, že vaším cílem je pomoci společnosti uspět, nejen sedět u stolu a kódovat celý den.
Vaše práce vývojáře nakonec není jen kódování. Musí to být týmový hráč, vůdce a někdo, kdo se nikdy nechce na problém vzdát. Příležitosti v technickém rozhovoru nejsou jen ukázat, že můžete splnit cíle nebo napsat algoritmy, ale také postavit se nad konkurenci a ukázat hodnotu, kterou přidáte zaměstnavateli.