Die Foobar-Herausforderung: Googles versteckter Test für Entwickler

Sie sitzen nur an Ihrem Schreibtisch, kümmern sich um Ihre eigenen Angelegenheiten und versuchen, etwas Arbeit zu erledigen. Dann stoßen Sie, wie unvermeidlich, auf eine kleine Straßensperre: Ihr Code gibt eine kryptische Fehlermeldung aus.

"Kein Problem", denken Sie. Dies ist nicht dein erstes Rodeo. Sie kopieren also die Fehlermeldung und fügen sie wörtlich in Google ein und sehen, was Sie erhalten.

Kein Glück.

Es gibt viele Suchergebnisse, aber keines passt genau zu Ihrer Situation, um wirklich eine nützliche Antwort zu liefern.

Und so beginnt der kreative Googeln-Prozess. Sie versuchen mehrere Kombinationen des Fehlers + des Kontexts, in dem Sie ihn verwenden. Sie versuchen, den Namen der Bibliothek anzugeben, die Sie verwenden. Sie wissen, dass Sie näher kommen ...

Bei Ihrem sechsten Versuch versuchen Sie es mit einer anderen Kombination von Suchbegriffen und drücken die Eingabetaste. Die Seite wird geladen und Sie haben gerade begonnen, die Ergebnisse zu überfliegen, als sich plötzlich Ihr Browserfenster öffnet und Sie Folgendes sehen:

„Du sprichst unsere Sprache. Lust auf eine Herausforderung? “

"Warte was?"

"Von wo ist das gekommen?"

"Eine Herausforderung von Google ... basiert dies auf meinem Suchverlauf?"

Sie vergessen den Fehler in Ihrem Code vollständig. Sie sind jetzt völlig in die bizarre Situation vertieft, in der Sie sich befinden. Und so interessant das alles bereits ist, Sie bemerken etwas, das nur zur Intrige beiträgt. Neben der Nachricht sehen Sie, dass auf der ersten Schaltfläche Folgendes steht:

"Ich will spielen"

Oh, das ist also ein Spiel ? Interessant…

Mit Neugier überwinden, akzeptieren Sie. Die Aufteilung in Ihrem Browserfenster wächst langsam und zeigt einen großen schwarzen Bildschirm an, der dann ausgeblendet wird. Sie werden dann zu www.google.com/foobar/ weitergeleitet. Ein schwarzer Bildschirm wird eingeblendet und es wird Text angezeigt. Es sieht aus wie eine Unix-Shell.

Die Ästhetik der Seite (die Retro-Computerschriftart, das versteckte Terminal, das Fehlen einer modernen Benutzeroberfläche) in Kombination mit dem Gefühl „007 - Ihre Mission, sollten Sie sich dafür entscheiden, sie zu akzeptieren“ dieser ganzen Erfahrung lässt Sie sich wie zu Hause fühlen wurde in eine geheime Welt gezogen. Sie sind jetzt völlig vertieft.

Am oberen Bildschirmrand befindet sich Text:

"Google hat eine Code-Herausforderung für Sie parat."

Direkt darunter befindet sich ein Absatz mit bläulichem Text, der die Voraussetzungen für ein Science-Fiction-Abenteuer schafft:

"Erfolg! Sie haben es geschafft, Commander Lambdas böse Organisation zu infiltrieren und sich schließlich eine Einstiegsposition als Minion auf ihrer Raumstation verdient. Von hier aus können Sie möglicherweise ihre Pläne untergraben, das LAMBCHOP Doomsday-Gerät zu verwenden, um Bunny Planet zu zerstören. Das Problem ist, dass Minions die niedrigsten der niedrigsten in der Lambda-Hierarchie sind. Besser aufbocken und arbeiten, sonst schaffst du es nie an die Spitze… “

"Alles klar dann. Es sieht also so aus, als könnte ich entweder das Terminal erkunden oder die Herausforderung starten… “

Ihre Neugier wird wieder größer und Sie denken: "Ich kann das Spiel nicht einfach starten, ohne ein bisschen herumzuschnüffeln." Sie geben also "help" ein und drücken die Eingabetaste. Eine Liste der Shell-Befehle wird angezeigt.

"Sehr interessant. Wir werden also eindeutig mit einem Dateisystem arbeiten. Dies ist jedoch eine ziemlich begrenzte Liste von Optionen. “

Sie entscheiden, ob einer der nicht aufgelisteten allgemeinen Befehle verfügbar ist, und versuchen etwas Einfaches:

foobar:~/guest$ pwd

Es klappt! Sie sehen:

/home/guest

Genial.

„Okay, schauen wir uns das Home-Verzeichnis an. Dort wird es bestimmt noch interessanteres geben. “

Also versuchst du:

foobar:~/guest$ cd ..

Und…

Nichts.

Sie erhalten eine neue Zeile ohne Fehler, aber wenn Sie sie pwderneut ausführen , sehen Sie immer noch, um sie zu überprüfen /home/guest. Ok, dieses Ding ist wahrscheinlich nicht die Open-World-Unix-Shell voller Ostereier, von der Sie gehofft hatten, dass sie es war. Sie entscheiden sich also, die Herausforderung einfach anzunehmen.

Sie geben das Wort "Anfrage" ein und drücken die Eingabetaste.

Eine Eingabeaufforderung warnt Sie, dass dies eine zeitgesteuerte Herausforderung ist und Sie 48 Stunden Zeit haben, um sie abzuschließen.

"Beeindruckend. Ok, es ist also zeitlich festgelegt… “

Sie stimmen zu und fahren fort.

Mehr Science-Fiction-Erzählung, und dann sehen Sie, dass etwas namens namens solar_doomsdayzu Ihrem Home-Ordner hinzugefügt wurde. Sie navigieren also zum Ordner, öffnen ihn und suchen vier Dateien:

constraints.txtreadme.txtsolution.javasolution.py

Readme scheint der naheliegende Ausgangspunkt zu sein. Sie öffnen die Readme-Datei und sehen Folgendes:

"Ok", denken Sie, "wenn Sie die Erzählung entfernen, möchten sie, dass ich eine Funktion schreibe, die ein sortiertes Array aller quadratischen Zahlen (einschließlich 1) zurückgibt, die sich zu einer bestimmten Zahl addieren, beginnend mit der größten." Ziemlich cool.

"Das ist also die Art von Herausforderung, mit der Google die Fähigkeit zur Problemlösung testet?"

„Nun, ich bin schon so weit gegangen. Könnte es auch versuchen! "

Über die Foobar-Herausforderung

Das Obige ist eine Beschreibung der Foobar-Herausforderung von Google: eine Art Osterei in Chrome, das angeblich verwendet wird, um neue Talente für das Google-Entwicklungsteam zu gewinnen; obwohl Google Foobar anscheinend nicht in irgendeiner sinnvollen Weise anerkannt hat (zumindest nicht, dass ich es gefunden habe). Es gibt jedoch viele Berichte aus erster Hand von Entwicklern, die den Prozess durchlaufen haben, um zu verdeutlichen, worum es geht.

Das Einzigartige an der Foobar-Herausforderung ist, dass sie dich findet . Und nicht so, wie eine unerwünschte Rekrutierungs-E-Mail oder eine Verkaufstextnachricht Sie „findet“. Es findet Sie, indem es Ihre Suchaktivität verfolgt und sie (scheinbar) an bekannte Anforderungen in den technischen Abteilungen von Google anpasst. Darüber hinaus ist die plötzliche visuelle Störung von etwas, das ansonsten so konstant und unveränderlich ist, der Google-Suchergebnisseite, erschütternd genug, um Sie wirklich anzulocken - sicherlich eine sehr clevere Verwendung der Google-Assets.

Angesichts des Zugriffs von Google auf (1) Ihre persönliche Browsing-Aktivität und (2) die Plattform, auf der Sie im Internet surfen, haben sie wirklich die perfekte Gelegenheit, talentierte Leute zu fangen, egal wo sie sich auf wirklich direkte und ansprechende Weise befinden. Sie scheinen zu versuchen, Ihre grundlegenden Fähigkeiten und Kompetenzbereiche basierend auf Ihrem Suchverlauf zu ermitteln und Sie dann dazu zu bewegen, ihren Talenttrichter mit diesem „Spiel“ zu betreten, das, wenn es erfolgreich abgeschlossen wird, möglicherweise oder möglicherweise nicht zu einer Intervieweinladung führen.

Die erste Erwähnung der Foobar-Herausforderung scheint dieser Beitrag auf HackerNews aus dem Jahr 2014 gewesen zu sein.

Randnotiz: withgoogle.com

Wenn Sie sich auf der Foobar-Herausforderungsseite befinden und devtools öffnen und das DOM anzeigen, sehen Sie, dass sich die gesamte Seite in einem iFrame befindet, dessen Quelle lautet: //foobar.withgoogle.com/?eid = ... Als ich das zum ersten Mal sah, dachte ich: „Withgoogle.com? Was um alles in der Welt ist das? "

Auch dies ist eine Summe, abgesehen vom gesamten Thema der Foobar-Herausforderung, aber es stellt sich heraus, dass die Herausforderung selbst in Googles "Nebenprojektdomäne" namens "withgoogle.com" lebt. Wenn Sie sich ein wenig damit beschäftigen, werden Sie einige andere ziemlich interessante Projekte finden. Hier sind nur einige, auf die ich gestoßen bin:

Papiersignale, Quickdraw, CSFirst, QiblaFinder, AIYProjects, ScienceJournal