Izazov Foobar: Googleov skriveni test za programere

Vi samo sjedite za svojim stolom, bavite se svojim poslom i pokušavate obaviti neki posao. Tada, kao što se neizbježno događa, udarite u manju zapreku: vaš kôd šalje kriptičnu poruku o pogrešci.

"Nema problema", mislite. Ovo nije vaš prvi rodeo. Dakle, kopirate i zalijepite poruku o pogrešci doslovno u Google i vidite što ćete dobiti.

Nema srece.

Puno je rezultata pretraživanja, ali niti jedan ne odgovara vašoj situaciji dovoljno da zaista pruži koristan odgovor.

I tako započinje kreativni proces guglanja. Pokušavate s nekoliko kombinacija pogreške + konteksta u kojem je upotrebljavate. Pokušavate uključiti ime biblioteke koju koristite. Znate da se približavate ...

Sada u šestom pokušaju pokušajte s drugom kombinacijom pojmova za pretraživanje i pritisnite return. Stranica se učitava i upravo ste započeli s pregledavanjem rezultata kada se iznenada otvori prozor vašeg preglednika i vidite ovo:

“Govorite naš jezik. Spreman za izazov? "

"Čekaj, što?"

"Odakle ovo?"

"Nekakav izazov od Googlea ... Je li to temeljeno na mojoj povijesti pretraživanja?"

U potpunosti zaboravljate na grešku u vašem kodu. Sad ste potpuno zaokupljeni bizarnom situacijom u kojoj ste se našli. I, koliko god sve ovo već bilo zanimljivo, primijetite nešto što samo dodaje intrigu. Uz poruku vidite da prvi gumb kaže:

"Želim igrati"

Znači, ovo je igra ? Zanimljiv…

Pobijedite znatiželjom, prihvaćate. Dijeljenje prozora preglednika polako raste kako bi se otkrio veliki crni zaslon koji se zatim gasi. Zatim ćete biti preusmjereni na www.google.com/foobar/. Crni zaslon blijedi i pojavljuje se neki tekst. Izgleda kao Unixova ljuska.

Estetika stranice (retro računalni font, skriveni terminal, nedostatak modernog korisničkog sučelja) u kombinaciji s osjećajem "007 - Vaša misija, ako je odlučite prihvatiti" zbog cijelog ovog iskustva čini vam se kao da ste bili uvučeni u tajni svijet. Sad ste potpuno zaokupljeni.

Na vrhu zaslona nalazi se tekst:

"Google je spreman za izazov koda"

Odmah ispod nalazi se odlomak plavičastog teksta koji postavlja pozornicu za znanstveno-fantastičnu avanturu:

"Uspjeh! Uspjeli ste se infiltrirati u zlu organizaciju zapovjednika Lambde i napokon ste stekli početnu poziciju Miniona na njezinoj svemirskoj postaji. Odavde biste možda mogli podrivati ​​njezine planove korištenja uređaja za sudnji dan LAMBCHOP za uništavanje Bunny Planeta. Problem je što su Minioni najniži od najnižih u Lambda hijerarhiji. Bolje se skupite i započnite s radom, inače nikada nećete stići do vrha ... "

"Dobro onda. Izgleda da mogu ili istražiti terminal ili započeti izazov ... "

Vaša vas znatiželja opet poboljšava i vi mislite: "Ne mogu tek tako započeti igru, a da malo ne njuškam". Utipkate "pomoć" i pritisnete return. Pojavi se popis naredbi ljuske.

"Vrlo zanimljivo. Dakle, očito ćemo raditi s datotečnim sustavom. Ali ovo je prilično ograničen popis mogućnosti. "

Odlučite provjeriti je li dostupna neka od uobičajenih naredbi koje nisu navedene, pa pokušajte nešto jednostavno:

foobar:~/guest$ pwd

Radi! Vidiš:

/home/guest

Super.

“Dobro, pogledajmo taj kućni direktorij. Tamo će sigurno biti još zanimljivih stvari ”

Pa pokušajte:

foobar:~/guest$ cd ..

I…

Ništa.

Dobit ćete novi redak bez pogreške, ali kad pwdponovno pokrenete , samo da provjerite, i dalje vidite /home/guest. Ok, ovo vjerojatno nije unix školjka otvorenog svijeta ispunjena uskrsnim jajima za koju ste se nadali da jest. Dakle, odlučili ste samo nastaviti s izazovom.

Utipkate riječ "zahtjev" i pritisnete return.

Pojavit će se upit koji vas upozorava da je ovo vremenski izazov i imat ćete 48 sati da ga dovršite.

“Wow. Ok, dakle, tempirano je ... ”

Slažete se i nastavite.

Još znanstveno-fantastične pripovijesti, a zatim vidite da je nešto što se zove solar_doomsdaydodano u vašu kućnu mapu. Dakle, dođite do mape, otvorite je i pronađite četiri datoteke:

constraints.txtreadme.txtsolution.javasolution.py

Čini se da je Readme očito mjesto za početak. Otvorite datoteku readme i vidite sljedeće:

"U redu" mislite "kad uklonite naraciju, oni žele da napišem funkciju koja vraća razvrstani niz svih kvadratnih brojeva (uključujući 1) koji se zbrajaju u dati broj, počevši od najvećeg." Baš super.

"Dakle, ovo je vrsta izazova koji Google koristi za testiranje sposobnosti rješavanja problema?"

“Pa, već sam otišao tako daleko. Mogao bih i probati! "

O izazovu Foobar

Gore je opisan Googleov izazov Foobar: vrsta uskršnjeg jajeta u Chromeu koje se navodno koristi za stvaranje novih talenata za Googleov inženjerski tim; iako se čini da Google nije prepoznao Foobar na bilo koji suvisao način (barem, ne ono što sam pronašao). Međutim, postoji mnogo računa iz prve ruke programera koji su prošli kroz postupak koji jasno daju do znanja da se radi o tome.

Jedinstvena stvar kod izazova Foobar je ta što vas pronalazi . I to ne na način na koji vas traži neželjena regrutna e-pošta ili prodajna SMS poruka. Pronalazi vas praćenjem vaše pretraživačke aktivnosti i (naizgled) usklađivanjem s poznatim potrebama u Googleovim inženjerskim odjelima. Nadalje, iznenadni vizualni poremećaj nečega što je inače toliko konstantno i nepromjenjivo, stranica rezultata Google pretraživanja, dovoljno je nervozan da vas stvarno privuče - zasigurno vrlo pametna upotreba Googleovih sredstava.

S obzirom na Googleov pristup (1) vašim osobnim aktivnostima pregledavanja i (2) platformi na kojoj pregledavate internet, oni zaista imaju savršenu priliku da uhvate talentirane ljude bez obzira gdje se oni nalaze na zaista izravan i zanimljiv način. Čini se da pokušavaju procijeniti vašu osnovnu razinu vještine i područje (a) kompetencija na temelju vaše povijesti pretraživanja, a zatim vas pokušavaju angažirati da uđete u njihov lijevak za talente ovom "igrom", koja bi, ako se uspješno završi, mogla ili mogla ne dovesti do poziva na intervju.

Čini se da je prvo spominjanje izazova Foobar bio ovaj post na HackerNews-u iz davne 2014. godine.

Napomena: withgoogle.com

Kad se nađete na stranici Foobar challenge, ako otvorite devtools i pogledate DOM, vidjet ćete da je cijela stranica u iFrame-u čiji je izvor: //foobar.withgoogle.com/?eid = ... Kad sam to prvi put vidio, pomislio sam: "Withgoogle.com? Što je to, zaboga? "

Opet, ovo je totalno osim cijele teme izazova Foobar, ali ispostavlja se da sam izazov živi na Googleovoj "domeni bočnog projekta" nazvanoj "withgoogle.com". Ako malo istražite ovo, pronaći ćete još neke prilično zanimljive projekte. Evo samo nekoliko na koje sam naišao:

Papirni signali, Quickdraw, CSFirst, QiblaFinder, AIYProjects, ScienceJournal