Hvis du drømmer om et job hos Google, så skal du være klar til at løse opgaver i både kode og i hovedet.
Det fortæller Alex Golec, der tidligere har stået for ansættelsessamtaler hos Google, i et indlæg på medium.com. Han er stoppet hos Google og er i dag ansat hos Reddit.
Han fortæller, at ansættelsesprocessen i Google er meget besværlig, og derfor skal der stilles de helt rigtige spørgsmål, så han som interviewer efterfølgende kunne gå videre og ikke bare sige, hvorvidt han syntes, de var egnede eller ej, men også tydeliggøre hvorfor. Derfor var spørgsmålet essentielt i samtalen.
Målet var en opgave, der kunne løses på 45 minutter, men samtidig lod de stærkeste kandidater vise, at de kunne gå dybere. Spørgsmålet bruges ikke længere, så det vil ikke hjælpe eventuelle læsere, der søger en stilling hos Google, bemærker Golec.
En hånd kan bruges som længdeenhed. Den svarer til 10,16 cm (eller fire tommer). Et lysår er en anden enhed, der beskriver en længde, nemlig 9.460.730.472.580 km (eller ca. 5.878.600.000.000 miles). De to enheder blev valgt, da hverken amerikanske enheder eller SI-enheder giver et pænt forhold mellem dem. Men der går fire tommer på en hånd, 12 tommer på en fod, 5.280 fod på en mile, og så må du ellers selv lave omregningerne.
Hvis vi går ind på Google, laver den uden problemer omregningen og fortæller os, at en hånd svarer til ca. 1,0737e-17 lysår. Men hvordan har man lavet den omskrivning? For der er med garanti ingen, der har målt et lysår i hænder.
Spørgsmålet
Opgaven er derfor at lave en algoritme i et valgfrit sprog, der tager to enheder, som intet har med hinanden at gøre, og returnerer forholdet mellem dem. Det er en relativt simpel opgave, men den afslører, ifølge Alex Golec, både kandidater, der ikke tænker intuitivt, og kandidater, der ikke formår både at kode og tænke analytisk.
Hans oplevelse er, at de stærkeste kandidater genkender, at algoritmen skal kunne omfatte andet end blot længder. Dette kan i nogle tilfælde betyde, at det ikke er muligt at returnere noget meningsgivende, som hvis du sammenligner meter og ton, men det er en del af opgaven.
Men hvordan ville du skrive sådan en algoritme? Du kender de mange konverteringsforhold, men du kan selv bestemme, om du vil bruge meter eller tommer, så der er forskellige måder at omregne tallene på.
Svaret er at opstille et grafnetværk, hvor alle knuderne er en måleenhed, der er forbundet til alle enheder, de er direkte beslægtet med. Hvis du beder om forholdet mellem to enheder, så vil algoritmen eventuelt returnere konverteringsforholdet. Men hvis de to enheder er usammenlignelige, så vil de ikke være i samme graf, og det vil derfor ikke være muligt at returnere noget.
Bloggen går desuden i dybden med, hvilke type grafanalyse der egner sig bedst til opgaven, afrundingsfejl, at cache resultaterne og at opbygge grafnetværket for derefter at omgås det. Læs hele indlægget her hos medium.com.