Le défi Foobar: le test secret de Google pour les développeurs

image

Vous êtes juste assis à votre bureau, en train de faire votre propre travail, en essayant de faire une sorte de travail. Ensuite, comme cela se produit inévitablement, vous êtes confronté à un obstacle mineur: votre code génère un message d'erreur cryptique.

«Pas de problème», comme vous le pensez. Ce n'est pas votre premier rodéo. De cette façon, vous copiez et collez textuellement le message d'erreur sur Google et voyez ce que vous obtenez.

Échec.

Il existe de nombreux résultats de recherche, mais aucun d'entre eux n'est suffisamment proche pour que votre situation fournisse vraiment une réponse utile.

Et c'est ainsi que commence le processus de recherche créative sur Google. Vous essayez plusieurs combinaisons d'erreur + contexte dans lequel vous l'utilisez. Vous essayez de spécifier le nom de la bibliothèque que vous utilisez. Vous savez que vous vous rapprochez ...

Logiciel EDISON - développement web
Le poste a été rédigé avec le soutien d'EDISON Software, qui développe des logiciels pour les banques , et est engagé dans l'automatisation des mesures et des systèmes experts .


Maintenant, dans votre sixième tentative, vous essayez une autre combinaison de termes de recherche et appuyez sur la touche de recherche. La page se charge, et dès que vous avez commencé à regarder les résultats, lorsque soudainement la fenêtre de votre navigateur s'ouvre, et vous voyez ceci:

image

«Vous parlez notre langue. Prêt pour le test? "

"Attendez quoi?"

"D'où cela vient-il?"

"Une sorte de défi de Google ... Est-ce basé sur mon historique de recherche?"

Vous oubliez complètement l'erreur dans votre code. Maintenant, vous êtes complètement absorbé par l'étrange situation dans laquelle vous vous trouvez. Et, peu importe à quel point c'est intéressant, vous remarquez quelque chose qui ne fait qu'ajouter à l'intrigue. À côté du message, vous voyez le premier bouton disant:

"Je veux jouer"

Oh donc c'est un jeu? Intéressant ...

Curieux, vous acceptez. La division de la fenêtre de votre navigateur augmente lentement, affichant un grand écran noir, qui disparaît ensuite. Vous serez ensuite redirigé vers www.google.com/foobar/ . Un écran noir apparaît et du texte apparaît. Ceci est similaire au shell Unix.

L'esthétique de la page (police informatique rétro, terminal caché, absence d'une interface utilisateur moderne) combinée avec "007 - Votre mission, si vous décidez de l'accepter", le sentiment de toute cette expérience vous donne l'impression d'être plongé dans un monde secret. Vous êtes maintenant complètement absorbé.

En haut de l'écran, il y a du texte:

"Google a un code de défi préparé pour vous."

Ci-dessous, un paragraphe de texte bleuâtre qui prépare le terrain pour une aventure fantastique:

«Succès! Vous avez réussi à infiltrer l'organisation maléfique du commandant Lambda et, enfin, à vous mériter un poste d'entrée de gamme en tant que séide sur sa station spatiale. De là, vous pouvez simplement détruire ses plans en utilisant le dispositif apocalyptique LAMBCHOP pour détruire Planet Bunny. Le problème est que les serviteurs sont les plus bas des plus bas de la hiérarchie Lambda. Mieux vaut se secouer et se mettre au travail, sinon vous n'atteindrez jamais le sommet ... "


image

"D'accord. Il me semble que je peux soit explorer le terminal, soit lancer le test ... "

Votre curiosité vous bat à nouveau et vous pensez: "Je ne peux pas simplement commencer le jeu sans explorer un peu." Vous tapez donc «aide» et appuyez sur la touche. Une liste de commandes shell apparaît.

image

«Très intéressant. Donc, nous allons évidemment travailler avec le système de fichiers. Mais ceci est une liste d'options assez limitée. »

Vous décidez de vérifier si l'une des commandes courantes est disponible, alors essayez quelque chose de simple:

foobar:~/guest$ pwd

Ça marche! Vous voyez:

/home/guest

Génial.

«OK, regardons ce répertoire personnel. Il y aura probablement autre chose d'intéressant. »

Vous essayez donc:

foobar:~/guest$ cd ..

III ...

Rien de tel.

Vous obtenez une nouvelle ligne sans erreur, mais lorsque vous exécutez à nouveau pwd , juste pour vérification, vous voyez toujours /home/guest . D'accord, ce n'est probablement pas un shell Unix en monde ouvert rempli d'oeufs de Pâques, comme vous l'espériez. Vous avez donc décidé de continuer l'appel.

Vous entrez le mot «demande» et appuyez sur la touche avant.

Une invitation apparaîtra vous avertissant qu'il s'agit d'une tâche temporaire et vous aurez 48 heures pour la terminer.

«Wow. Eh bien, c'est chronométré ... "

Vous acceptez et continuez.

image

Plus de science-fiction, puis vous verrez que quelque chose appelé solar_doomsday été ajouté à votre dossier de départ. Alors, allez dans le dossier, ouvrez-le et trouvez quatre fichiers:

constraints.txt
readme.txt
solution.java
solution.py


Le fichier Lisezmoi semble être un point de départ évident. Vous ouvrez le fichier Lisezmoi et voyez ce qui suit:

image

"Bien", pensez-vous lorsque vous avez parcouru l'histoire, "ils veulent que vous écriviez une fonction qui renvoie un tableau trié de tous les nombres carrés (y compris 1) qui s'additionnent à un nombre donné, en commençant par le plus grand." Assez cool

"C'est donc exactement ce que le défi de Google est utilisé pour tester la capacité de résoudre des problèmes?"

«Eh bien, je suis déjà allé si loin. Vous pouvez l'essayer!

À propos de Foobar Challenge


Ce qui précède est une description du défi Google Foobar: une sorte d'oeuf de Pâques dans Chrome, qui est censé être utilisé pour trouver de nouveaux talents pour l'équipe d'ingénierie de Google; bien que Google ne semble pas reconnaître Foobar de manière significative (au moins, je ne l'ai pas trouvé). Cependant, de nombreux développeurs sont passés par ce processus pour clarifier ce point.

La particularité du défi Foobar est qu'il vous trouve. Et pas comme un message texte de recrutement indésirable ou un message texte de vente «vous trouve». Il vous trouve en suivant votre activité de recherche et (apparemment) en la comparant aux besoins bien connus des services d'ingénierie de Google. En outre, la perturbation visuelle soudaine de quelque chose de si constant et immuable sur la page de résultats de recherche Google est suffisamment nette pour vous attirer vraiment - certainement une utilisation très intelligente des actifs de Google.

Compte tenu de l'accès de Google à (1) vos activités en ligne personnelles et (2) à la plate-forme sur laquelle vous surfez sur Internet, ils ont vraiment une excellente occasion d'attraper des personnes talentueuses où qu'elles se trouvent d'une manière vraiment directe et intéressante. Il semble qu'ils essaient de déterminer votre niveau de compétence de base et vos domaines de compétence en fonction de votre historique de recherche, puis essaient de vous attirer pour participer à leur entonnoir de talents en utilisant ce «jeu», qui, s'il est terminé avec succès, peut ou non conduire à une invitation pour une entrevue.

La première mention du Foobar Challenge semble avoir été dans ce post sur HackerNews en 2014.

Remarque: withgoogle.com


Lorsque vous êtes sur la page Foobar, si vous ouvrez devtools et regardez le DOM, vous verrez que la page entière est dans un iFrame, dont la source est: https: //foobar.withgoogle.com/? Eid = ... Quand j'ai vu cela pour la première fois J'ai pensé: "Withgoogle.com? Qu'est ce que c'est

Encore une fois, ce n'est qu'un sujet distinct de l'ensemble du défi Foobar, mais il s'avère que la tâche elle-même vit dans un «projet Google tiers» appelé «withgoogle.com». Si vous y plongez un peu, vous trouverez plusieurs autres projets assez intéressants. Voici quelques-unes de celles que j'ai rencontrées:
Signaux papier , Quickdraw , CSFirst , QiblaFinder , AIYProjects , ScienceJournal

Source: https://habr.com/ru/post/fr433104/


All Articles