Tidligere job-interviewer hos Google: Her er opgaven fra samtalen

Illustration: Elle Aon/BigStock
Kan du lave en algoritme, der kan sammenligne to enheder, som ikke rigtigt har noget med hinanden at gøre, og returnere forholdet mellem dem? Det burde vel ikke være så svært ...

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.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (3)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Niels Dybdahl

Det er vist kun amerikanere (som ikke bruger SI-systemet) som kan finde på den opgave. Alle andre ville bare regne de to mål om til SI-enheden og dividere. Men der er mange andre gode opgaver hvor man kan bruge grafteori.

  • 3
  • 0
Daniel Korsgaard

Det er da korrekt at et netværk hvor knuderne er enheder og kanterne er omregningsfunktioner kunne være et bud.

Men hvorfor mener Google at en simpel tabel med funktioner til og fra SI enheder ikke en oplagt løsning?

Jeg er med på at der kan være tab af præcision ved brug af eksempelvis IEEE floats fordi at faktoren mellem imperial og SI er skæve, hvor imperial/imperial ofte er heltal.
Men svaret til det er nok at bruge rationelle tal i stedet for IEEE floats.

Og skulle der være en konvertering hvor fakoren fra en enhed til en anden ikke er rationel, så tror jeg bare vi må erkende at IEEE floats i et grafnetværk også ville give anledning til en upræcis konvertering.

Noget jeg ofte synes er påfaldende ved nogle af de meget tekniske opgaver/spørgsmål som eksempelvis google giver, så er det lidt som om at intervieweren er ekstremt opsat på at kandidaten død og pine skal nå frem til den løsningsmodel som intervieweren allerede har tænkt på. Det har jeg allerede oplevet ved Google.

Jeg oplevede noget lignende ved Samsung, hvor de bed mærke i at jeg havde lavet min egen quaternion bibliotek til min quadcopter balancerings software.

Deres eneste tekiske spørgsmål var så; "hvordan konverterer du så din quaternion til en rotations matrix?" hvortil svaret naturligvis er: "Det gør jeg ikke. På intet tidspunkt konverterer jeg mine quaternioner til matrikser. Jeg roterer mine vektorer direkte med quaternioner."

Jeg tror deres ingeniør-type spurgte tre gange, hvordi mine svar blev mere og mere detaljeret omkring hvorfor det ville være fjollet overhovedet at introducere rotationsmatrikser.

Jeg fik efterfølgende at vide at de ikke kunne bruge mig fordi jeg var dårlig til at svare på deres (eneste) tekniske spørgsmål.

Jeg tænker det er ærgeligt at interviewere er så stålsatte i deres løsningsmodel.

  • 10
  • 0
Kim Schulz

Lyder ikke som samsung i Danmark. Her har sociale evner langt højere værdi end de tekniske. De stiller tekniske spørgsmål ja, men det er blot for at vise at man ikke er helt tabt bag en vogn og tydeligt kan forklare tekniske detaljer. Du kontrolleres altså langt mere på dine kommunikative evner end på dine tekniske evner.
Tekniske evner kan trænes - sociale evner er langt sværere at lave om på.
Mon ikke bare der var en bedre kandidat?

  • 0
  • 0
Log ind eller Opret konto for at kommentere