Foobari väljakutse: Google'i varjatud test arendajatele

Istud lihtsalt oma laua taga, mõtled omaenda ettevõtmisele, üritad natuke tööd teha. Siis, nagu paratamatult juhtub, tabate väikest teetõket: teie kood viskab krüptilise veateate.

"Pole probleemi", arvate. See pole teie esimene rodeo. Nii et kopeerite ja kleepite veateate sõna otseses mõttes Google'i ja näete, mida saate.

Ei vedanud.

Otsingutulemusi on palju, kuid ükski neist ei sobi teie olukorraga piisavalt täpselt, et tõesti kasulikku vastust pakkuda.

Ja nii algab loov googeldamise protsess. Proovite mitut vea kombinatsiooni ja konteksti, milles seda kasutate. Püüate lisada kasutatava teegi nime. Tead, et lähed lähemale ...

Nüüd proovite oma kuuendal katsel mõnda muud otsinguterminite kombinatsiooni ja vajutate return. Leht laaditakse ja olete alles hakanud tulemusi sirvima, kui äkitselt teie brauseriaken avaneb ja näete järgmist:

"Sa räägid meie keelt. Üleskutse jaoks? "

"Oota mida?"

"Kust see tuli?"

"Mingi väljakutse Google'ilt ... Kas see põhineb minu otsinguajalool?"

Unustate oma koodis oleva vea täielikult. Te olete nüüd täielikult haaratud veidrast olukorrast, kuhu sattute. Ja nii huvitav kui see kõik juba on, märkate midagi, mis ainult intrigeerib. Sõnumi kõrval näete, et esimene nupp ütleb:

"Ma tahan mängida"

Oh, nii et see on mäng ? Huvitav ...

Võitke uudishimust, nõustute. Teie brauseriakna jagunemine kasvab aeglaselt, paljastades suure musta ekraani, mis seejärel kaob. Seejärel suunatakse teid aadressile www.google.com/foobar/. Must ekraan tuhmub ja ilmub mõni tekst. See näeb välja nagu Unixi kest.

Lehe esteetika (retroarvuti font, peidetud terminal, kaasaegse kasutajaliidese puudumine) koos kogu selle kogemuse tunnetusega „007 - Teie missioon, kas peaksite sellega nõustuma” tekitab tunde, nagu oleksite salajasse maailma. Sa oled nüüd täielikult süvenenud.

Ekraani ülaosas on tekst:

„Google'il on teie jaoks koodiväljakutse valmis“

Vahetult allpool on sinakasvärviline lõik, mis paneb paika ulmelise seikluse:

"Edu! Teil on õnnestunud sissetungida komandör Lambda kurja organisatsiooni ja lõpuks teenitud endale Minioni algtaseme koht tema kosmosejaamas. Siit saate võib-olla õõnestada tema plaanid kasutada LAMBCHOPi maailmalõpu seadet Bunny Planeti hävitamiseks. Probleem on selles, et käsilased on madalaim madalaimast lambda hierarhias. Parem käima ja asuge tööle, muidu ei jõua te kunagi tippu ...

"Olgu siis. Nii tundub, et saan kas terminali uurida või proovile panna ... "

Teie uudishimu saab teist jälle võitu ja te arvate, et "ma ei saa mängu lihtsalt alustada ilma natuke ringi nuhkimata". Nii et tippite "help" ja vajutate return. Hüpatakse loend shellikäskudest.

"Väga huvitav. Seega hakkame selgelt töötama failisüsteemiga. Kuid see on üsna piiratud valikuvõimaluste loetelu. ”

Otsustate vaadata, kas mõni loetlemata ühistest käskudest on saadaval, nii et proovite midagi lihtsat:

foobar:~/guest$ pwd

See töötab! Sa näed:

/home/guest

Vinge.

"Olgu, heidame pilgu sellele kodukataloogile. Kindlasti tuleb seal veel huvitavat kraami ”

Nii et proovite:

foobar:~/guest$ cd ..

Ja…

Ei midagi.

Saate uue rea ilma veata, kuid kui pwduuesti käivitate , näete ikkagi kontrollimiseks /home/guest. Okei, nii et see asi ei ole ilmselt avatud maailma unix-koort täis pungil munad, mida oleksite lootnud. Nii et otsustate väljakutsega lihtsalt hakkama saada.

Sisestate sõna „request” ja vajutate return.

Ilmub viip, mis hoiatab teid, et see on ajastatud väljakutse ja teil on selle täitmiseks 48 tundi.

"Wow. Ok, nii et see on ajastatud ... "

Nõustute ja jätkate.

Veel ulmelist narratiivi ja siis näete, solar_doomsdayet teie kodukataloogi lisati midagi nn . Nii et navigeerite kausta, avate selle ja leiate neli faili:

constraints.txtreadme.txtsolution.javasolution.py

Readme näib olevat ilmne koht alustamiseks. Avate readme-faili ja näete järgmist:

"Ok", arvate sa, "kui narratiivi eemaldad, tahavad nad, et ma kirjutaksin funktsiooni, mis tagastab järjestatud massiivi kõigist antud numbrile liituvatest ruudunumbritest (sealhulgas 1), alustades suurimast." Päris lahe.

"Nii et seda tüüpi väljakutset kasutab Google probleemide lahendamise võime testimiseks?"

"Noh, ma olen juba nii kaugele jõudnud. Võib ka selle maha lasta! "

Foobari väljakutse kohta

Eespool kirjeldatakse Google'i väljakutset Foobar: omamoodi lihavõttemuna Chrome'is, mida näiliselt kasutatakse Google'i insenerimeeskonna uute talentide hankimiseks; kuigi Google ei näi Foobarit kuidagi sisukalt tunnustanud (vähemalt mitte seda, mida ma leidsin). Protsessi läbinud arendajate poolt on siiski palju esmakontosid, mis teevad selgeks, et see on kõik.

Foobari väljakutse ainulaadne omadus on see , et see leiab teid üles . Ja mitte nii, et soovimatu värbamismeil või müügisõnum teid „üles leiaks“. See leiab teid, jälgides teie otsingutegevust ja sobitades selle (näiliselt) Google'i inseneriosakondade teadaolevate vajadustega. Lisaks on Google'i otsingutulemuste lehel muidu nii pideva ja muutumatu asja äkiline visuaalne katkestamine piisavalt karm, et teid tõeliselt sisse meelitada - kindlasti väga nutikas Google'i varade kasutamine.

Arvestades Google'i juurdepääsu (1) teie isiklikule sirvimistegevusele ja (2) platvormile, kus te Internetti sirvite, on neil tõepoolest suurepärane võimalus tõeliselt otsekohesel ja kaasahaaraval moel andekaid inimesi näppida. Tundub, et nad proovivad teie otsinguajaloo põhjal välja selgitada teie põhioskuste taseme ja pädevusvaldkonna (d) ning püüavad teid seejärel selle mängu abil oma andekuse lehtrisse sisestada. ei too kaasa intervjuukutset.

Esimene näide Foobari väljakutsest näib olevat olnud see HackerNewsi postitus 2014. aastast tagasi.

Ääremärkus: withgoogle.com

Kui olete Foobari väljakutse lehel, avate devtoolid ja vaatate DOM-i, näete, et kogu leht on iFrame'is, mille allikas on: //foobar.withgoogle.com/?eid = ... Kui seda esimest korda nägin, mõtlesin: „Withgoogle.com? Mis see maa peal on? "

Jällegi on see kogu Foobari väljakutse teema kõrvale, kuid selgub, et väljakutse ise elab google'i "kõrvalprojekti domeenis" nimega "withgoogle.com". Kui sellesse natuke süveneda, leiate veel mõned päris huvitavad projektid. Siin on vaid mõned, mida kohtasin:

Paberisignaalid, Quickdraw, CSFirst, QiblaFinder, AIYProjects, ScienceJournal