Comment réussir un entretien : questions et tâches délicates lors de l'embauche dans les grandes entreprises et leurs solutions. Comment fonctionne l'entretien téléphonique chez Google : le témoignage d'un candidat au poste de CTO

15 questions d'entretien qui tuent chez Google 16 septembre 2015

Pour commencer, si, mais on parle un peu d'autre chose.

Google préfère recruter des salariés parmi les diplômés de huit universités privées américaines (Ivy League) : Brown University, Harvard, Princeton, University of Pennsylvania, Dartmouth College, Yale University, Columbia University, Cornell University.

Les représentants de l'entreprise ne cachent pas que les notes obtenues lors de la formation sont importantes pour eux, même si le candidat a déjà plus de trente ans. Et une dernière chose : Google recherche des personnes qui veulent changer le monde.

Vous trouverez ci-dessous 15 questions qui pourraient vous être posées si vous étiez interviewé au bureau de Google.

1. Combien de balles de golf un autobus scolaire peut-il contenir ?

C’est l’une des questions que se posent les entreprises pour voir comment le demandeur recherche une solution à un problème. Un candidat a eu une bonne réponse : « J’ai imaginé un autobus scolaire standard mesurant 8 pieds de large, 6 pieds de haut et 20 pieds de long : ce sont des dimensions approximatives basées sur mes observations alors que je restais assis dans la circulation pendant de longues périodes derrière un autobus scolaire. Cela signifie 960 pieds cubes, 1 728 pouces cubes par pied cube, ce qui signifie environ 1,6 million de pouces cubes. J'ai calculé que le volume de la balle de golf est d'environ 2,5 pouces cubes (4/3 * pi * 0,85) puisque le rayon de la balle est de 0,85 pouces. Diviser 1,6 million par 2,5 pouces cubes équivaut à 660 000 balles de golf. Cependant, étant donné que les sièges du bus et d'autres objets prennent de la place, ainsi que la forme sphérique du ballon, j'ai supposé qu'il y aurait beaucoup d'espace entre eux. Et j’ai arrondi la valeur à 500 000 balles.

2. Combien d'argent cela vous coûterait-il pour nettoyer toutes les fenêtres à Seattle ?

Poste : Chef de produit

C’est une de ces questions où vous devez faire appel à votre ingéniosité pour vous aider et donner la réponse la plus simple. Nous répondrions : « 10 $ par fenêtre ».

3. Dans un pays où les gens ne veulent que des garçons, chaque famille continue d'avoir des enfants jusqu'à la naissance d'un garçon. S'ils ont une fille, ils ont un autre enfant. Si c'est un garçon, ils s'arrêtent. Quelle est la proportion de garçons et de filles dans un tel pays ?

Poste : Chef de produit

La réponse à cette question a suscité de vives discussions, nous sommes donc parvenus à la solution suivante. Imaginez qu'il y ait 10 familles avec 10 enfants : 5 filles, 5 garçons (10 au total). Ensuite, 5 couples ayant des filles donneront naissance à cinq autres enfants. La moitié (2,5) sera composée de filles et la moitié (2,5) de garçons. Nous ajoutons 2,5 garçons aux 5 déjà nés et 2,5 filles aux 5 existants (soit un total de 15 enfants, dont 7,5 garçons et 7,5 filles). Désormais, 2,5 couples avec des filles doivent donner naissance à 2,5 enfants. La moitié (1,25) sera composée de garçons et l'autre moitié (1,25) de filles. On ajoute 1,25 garçons aux 7,5 déjà existants et 1,25 filles à ces 7,5. (Il y a 17,5 enfants au total, dont 8,75 garçons et 8,75 filles.) Et ainsi de suite, en adhérant au principe 50/50.

4. Combien y a-t-il d’accordeurs de piano dans le monde ?

Poste : Chef de produit

Nous répondrions : « Autant que le marché l’exige. Disons qu'un piano doit être accordé une fois par semaine et que cela prend une heure, et que l'accordeur travaille 8 heures par jour pendant 5 jours par semaine. Il s’avère alors que 40 pianos nécessitent un accordage hebdomadaire. Notre réponse est un pour 40 pianos.

5. Pourquoi le couvercle du regard est-il rond ?

Poste : développeur de logiciels

Répondre. Afin qu'il ne puisse pas tomber à l'intérieur de la trappe lors de son installation ou de son démontage (le couvercle rectangulaire s'insère facilement dans le corps de la trappe en diagonale).

6. Élaborer un plan d'évacuation pour San Francisco.

Poste : Chef de produit

Répondre. Encore une fois, ils examinent la manière dont le candidat aborde la résolution du problème. Nous commencerions notre réponse par la question : « Quelle catastrophe est prévue aujourd’hui ? »

7. Combien de fois par jour les aiguilles de l’horloge coïncident-elles dans la même position ?

Poste : Chef de produit

Répondre. 22 fois. Depuis WikiAnswers : 00h00, 1h05, 2h11, 3h16, 4h22, 5h27, 6h33, 7h38, 8h44, 9h49, 10h55, 12h00 , 13h05, 14h11, 15h16, 16h22, 17h27, 18h33, 19h38, 20h44, 21h49, 22h55

8. Expliquez le sens de l’expression Dead Beef (littéralement : viande morte)

Poste : développeur de logiciels

Répondre. DEADBEEF est une valeur hexadécimale utilisée pour le débogage à l'époque des grands ordinateurs centraux, car ce marqueur était très facile à trouver dans les dumps hexadécimaux. La plupart des personnes ayant une formation en informatique auraient dû voir cela au moins dans les cours de langage assembleur, c'est pourquoi Google s'attend à ce qu'un développeur de logiciels le sache. 0xDEADBEAF (dead Beef) a été utilisé par IBM RS/6000, Mac OS sur les systèmes PowerPC 32 bits et Commodore Amiga comme valeur magique pour le débogage. Sur Solaris de Sun Microsystem, cela signifiait de la mémoire libre du noyau. Sur OpenVMS fonctionnant sur des processeurs Alpha, DEAD_BEEF peut être vu en appuyant sur CTRL-T.

9. L'homme a conduit sa voiture en direction de l'hôtel, mais n'a pas réussi à le faire. Ce qui s'est passé?

Poste : développeur de logiciels

Répondre. Il est resté coincé sur le trottoir. (Désagréable, non ?)

10. Vous devez vérifier si votre ami Bob a enregistré votre numéro de téléphone correctement ou non. Mais vous ne pouvez pas lui en parler directement. Vous devez écrire une question sur un morceau de papier et la remettre à Eve, qui la portera à Bob, puis rapportera sa réponse. Que devez-vous écrire sur un morceau de papier (pas de question directe) pour que Bob puisse comprendre le message et qu'Ève ne puisse pas trouver votre numéro de téléphone ?

Poste : développeur de logiciels

Répondre. Puisque vous ne faites que tester, demandez-lui d'appeler à une certaine heure. S'il ne le fait pas, c'est qu'il n'a pas votre numéro. Trop facile? Autre réponse : « Dans ce cas, vous devez utiliser une somme de contrôle. Demandez à Bob d'additionner tous les chiffres dans votre chambre et d'écrire le résultat sur un morceau de papier, puis de vous le rendre.

11. Vous êtes le capitaine d'un bateau pirate et votre équipage va voter sur la manière de partager l'or volé. Si moins de la moitié des pirates sont d’accord avec vous, vous mourrez. Comment diviser l’or pour obtenir une bonne part du butin, tout en restant en vie ?

Poste : responsable technique

Répondre. Il est nécessaire de répartir le butin à parts égales entre 51 % de l'ensemble de l'équipe.

12. Vous disposez de 8 boules de même taille. 7 d’entre eux ont le même poids, et un pèse un peu plus que les autres. Trouver la balle la plus lourde que les autres à l'aide d'une balance et de seulement deux pesées ?

Poste : Chef de produit

Répondre. Prenez 6 des 8 boules et placez-en 3 de chaque côté de la balance. Si la balle lourde ne fait pas partie de ce groupe de balles, vous en avez 2 de plus à mettre sur la balance et résoudre le problème. Si la balle lourde est dans le premier groupe de 6 balles, prenez les 3 qui ont été dépassées lors de la première pesée. Parmi ces trois, mettez-en deux sur la balance. Si l’un d’entre eux l’emporte, alors vous l’avez trouvé. S’ils pèsent le même poids, alors votre balle est celle que vous avez mise de côté.

13. Vous avez 2 œufs et accès à un bâtiment de 100 étages. Les œufs peuvent être très solides ou très fragiles, ce qui signifie qu'ils peuvent se briser s'ils tombent du premier étage, ou ne pas se briser même s'ils sont lancés depuis le 100e étage. Les deux œufs sont exactement identiques. Vous devez savoir quel étage de ce bâtiment sera le plus haut afin de préserver l'intégrité des œufs lorsqu'ils en tombent. Question : Combien de tentatives faut-il faire pour connaître l’étage le plus élevé ? Et vous ne pouvez casser que deux œufs.

Poste : Chef de produit

Réponse : Le plus grand nombre de tentatives est de 14 fois. Au lieu de diviser les étages par 10, vous devriez commencer au 14ème, puis monter encore 13 étages, puis 12, puis 11, puis 10, 9, 8, 7, 6, 5, 4, jusqu'à ce que vous atteigniez, vous obtiendrez à 99. Si l'œuf se brise au 100ème étage, il y aura 12 tentatives (ou 11 si vous supposez que l'œuf se brise au 100ème étage). Supposons, par exemple, que nous découvrions que le 49ème étage est l'étage le plus élevé où l'œuf ne s'est pas cassé, alors nos tentatives sont : 14ème, 27ème, 39ème, 50ème (l'œuf s'est cassé au 50ème étage) plus 40, 41, 42, 43, 44, 45, 46, 47, 48 et 49 étages - 14 tentatives au total.

14. Expliquez ce qu'est une base de données en trois phrases pour que votre neveu de 8 ans puisse comprendre

Poste : Chef de produit

Répondre. L'objectif principal de cette question est d'évaluer la capacité du candidat à expliquer une idée complexe en termes simples. Voici notre tentative : « Une base de données est une machine qui mémorise une grande quantité d’informations sur différentes choses. Les gens l'utilisent pour rappeler ces informations lorsqu'ils en ont besoin. Allons jouer."

Et je ne l'ai pas vu. Oui, au fait, et souviens-toi de ça L'article original est sur le site InfoGlaz.rf Lien vers l'article à partir duquel cette copie a été réalisée -

Et si l'on juge de manière générale et dans son ensemble, la sélection donne une bonne idée des questions qui peuvent surgir lors d'un entretien - aussi bien pour postuler à un emploi, que pour l'admission à un programme de bourse, par exemple.

Premièrement,

  • Google préfère les gens de l'Ivy League
  • Ils s'intéressent à vos notes (à l'institut), même si vous avez déjà plus de 30 ans
  • Ils recherchent des personnes qui veulent changer le monde

Pire encore, si vous répondez à tous ces critères, vous devez quand même passer un entretien. Lewis Pin, coach en recherche d'emploi à Seattle, a compilé 140 questions posées à ses clients sur Google.

Combien de balles de golf peuvent contenir un autobus scolaire ?
Poste : Chef de projet

Combien d'argent cela vous coûterait-il pour nettoyer toutes les fenêtres à Seattle ?
Poste : Chef de projet

Dans un pays où les gens veulent que les garçons aient des enfants...
... chaque famille continue d'avoir des enfants jusqu'à ce qu'un garçon apparaisse. S'ils ont une fille, ils ont un autre enfant. S'ils ont un garçon, ils arrêtent. Quelle est la proportion de garçons et de filles dans un tel pays ?
Poste : Chef de projet

Combien y a-t-il d’accordeurs de piano dans le monde ?
Poste : Chef de projet

Pourquoi le couvercle du regard est-il rond ?
Poste : Développeur de logiciels

Élaborer un plan d’évacuation pour San Francisco
Poste : Chef de produit

Combien de fois par jour les aiguilles de l’horloge se croisent-elles ?
Poste : Chef de produit

Expliquez le sens de l’expression « bœuf mort »
Poste : Développeur de logiciels

L’homme a conduit sa voiture en direction de l’hôtel mais n’a pas réussi. Pourquoi?
Poste : Développeur de logiciels

Vous devez vérifier si Bob a correctement répertorié votre numéro de téléphone...
... mais vous ne pouvez pas lui en parler directement. Vous devez écrire une question sur un morceau de papier et la remettre à Eve, qui la portera à Bob et lui rapportera une réponse. Que devriez-vous écrire sur une feuille de papier, autre qu'une question directe, pour que Bob puisse comprendre le message et qu'Ève ne puisse pas trouver votre numéro de téléphone ?
Poste : Développeur de logiciels

Vous êtes le capitaine d'un bateau pirate...
...et votre équipe va voter sur la manière de partager l'or volé. Si moins de la moitié des pirates sont d’accord avec vous, vous mourrez. Comment allez-vous diviser l’or afin d’obtenir une bonne part du butin, tout en restant en vie ?
Poste : Responsable technique

Vous avez 8 boules de même taille...
...7 d'entre eux ont le même poids, et un pèse un peu plus que les autres. trouver la balle qui est plus lourde que les autres en utilisant la balance et seulement deux pesées ?
Poste : Chef de produit

Vous avez 2 œufs...
...et vous avez accès à un immeuble de 100 étages. Les œufs peuvent être très solides ou très fragiles, ce qui signifie qu'ils peuvent se briser s'ils sont lancés depuis le premier étage, ou ne pas se briser même s'ils sont lancés depuis le 100ème étage. Les deux œufs sont absolument identiques. Vous devez trouver l'étage le plus élevé d'un immeuble de 100 étages d'où les œufs peuvent être lancés sans se casser. La question est de savoir combien de tentatives vous devez faire. Vous ne pouvez casser que deux œufs.
Poste : Chef de produit

Expliquez ce qu'est une base de données en trois phrases, comme le ferait votre neveu de 8 ans.
Poste : Chef de produit

Vous avez été réduit à la taille d'une pièce de cinq cents...

... et votre masse a été réduite proportionnellement en fonction de votre densité. Maintenant, vous avez été jeté dans un bol mixeur vide. Les couteaux commenceront à bouger après 60 secondes. Ce qu'il faut faire?
Poste : Chef de produit

Avant de regarder les réponses, essayez de deviner par vous-même ! Dans au moins la moitié des cas, l’ingéniosité suffit. Certains endroits nécessitent des connaissances particulières. Certains problèmes nécessitent des calculs.
_____
Les réponses peuvent également être trouvées sur le lien vers l’original ci-dessous. Je recommande également Habr pour une lecture et une petite méditation sur la question de la plaque d'égout :) En général, il y a des réponses originales dans les commentaires.

Après avoir terminé les cours, j’ai réalisé que beaucoup de connaissances s’accompagnent de beaucoup de chagrin. Si avant je savais simplement que je ne savais rien, maintenant je commençais à réaliser que c’était moi qui ne savais pas.

Comme nous n'étions qu'au mois de mai et que j'avais programmé l'entretien pour l'automne, j'ai décidé de poursuivre mes études. Après avoir examiné les exigences du poste vacant, il a été décidé d'aller dans deux directions en parallèle : continuer à étudier les algorithmes et suivre un cours de base en apprentissage automatique. Pour le premier objectif, j’ai décidé de passer des cours à un livre et j’ai choisi l’ouvrage monumental de Steven Skiena « Algorithmes. Le manuel de conception d'algorithmes. Pas aussi monumental que celui de Knut, mais quand même. Pour le deuxième objectif, je suis retourné à Coursera et je me suis inscrit au cours Machine Learning d'Andrew Ng.

Trois mois supplémentaires se sont écoulés et j'ai terminé le cours et le livre.

Commençons par le livre. La lecture s’est avérée assez intéressante, même si elle n’est pas facile. En principe, je recommanderais le livre, mais pas tout de suite. Dans l'ensemble, le livre fournit un aperçu plus approfondi de ce que j'ai appris pendant le cours. De plus, j'ai découvert (d'un point de vue formel) des choses telles que l'heuristique et la programmation dynamique. Naturellement, je les avais déjà utilisés auparavant, mais je ne savais pas comment ils s’appelaient. Le livre contient également un certain nombre de récits de la vie de l’auteur (War Story), qui diluent quelque peu le caractère académique de la présentation. À propos, la seconde moitié du livre peut être omise ; elle contient plutôt une description des problèmes existants et des méthodes pour les résoudre. C’est utile s’il est régulièrement utilisé dans la pratique, sinon il sera immédiatement oublié.

J'ai été plus que satisfait du cours. L'auteur connaît clairement son métier et parle d'une manière intéressante. Et pas mal de choses, à savoir l'algèbre linéaire et les bases des réseaux de neurones, dont je me souvenais de l'université, donc je n'ai pas rencontré de difficultés particulières. La structure du cours est assez standard. Le cours est divisé en semaines. Chaque semaine, il y a des cours mêlés à de courts tests. Après les cours, vous recevez un devoir que vous devez faire, soumettre et il sera automatiquement vérifié. En résumé, la liste des choses enseignées dans le cours est la suivante :
- fonction de coût
- régression linéaire
- Descente graduelle
- mise à l'échelle des fonctionnalités
- équation normale
- régression logistique
- classification multiclasse (un contre tous)
- les réseaux de neurones
-rétropropagation
- régularisation
- biais/variance
- courbes d'apprentissage
- métriques d'erreur (précision, rappel, F1)
- Machines à vecteurs de support (classification à grande marge)
- K-moyennes
-Analyse des composantes principales
- Détection d'une anomalie
- filtrage collaboratif (système de recommandation)
- descentes de gradient stochastiques, mini-batch, batch
- apprentissage en ligne
- réduction de la carte
- analyse du plafond
Après avoir terminé le cours, une compréhension de tous ces sujets était présente. Au bout de 2 ans, presque tout était naturellement oublié. Je le recommande à ceux qui ne sont pas familiers avec l'apprentissage automatique et qui souhaitent bien comprendre les choses de base pour avancer.

Première exécution

Nous étions déjà en septembre et il était temps de penser à une interview. Comme postuler via le site est assez désastreux, j'ai commencé à chercher des amis qui travaillent chez Google. Le choix s'est porté sur , puisqu'il était le seul que je connaissais directement (même si ce n'était pas personnellement). Il a accepté de transmettre mon CV et j'ai rapidement reçu une lettre du recruteur proposant de réserver une place sur son calendrier pour la première conversation. Quelques jours plus tard, l'appel a eu lieu. Nous avons essayé de communiquer via Hangouts, mais la qualité était épouvantable, nous sommes donc passés au téléphone. Tout d’abord, nous avons rapidement discuté du comment, du pourquoi et du pourquoi de la norme, puis nous sommes passés à l’examen technique. Il s'agissait d'une douzaine de questions dans l'esprit de « quelle est la difficulté d'insérer dans une carte de hachage », « quels arbres équilibrés connaissez-vous ». Ce n'est pas difficile si vous avez une connaissance de base de ces choses. La sélection s'est bien déroulée et sur la base des résultats, nous avons décidé d'organiser le premier entretien dans une semaine.

L'entretien a également eu lieu via Hangouts. Ils ont d’abord parlé de moi pendant environ 5 minutes, puis sont passés au problème. Le problème venait des graphiques. J'ai rapidement compris ce qu'il fallait faire, mais j'ai choisi le mauvais algorithme. Lorsque j'ai commencé à écrire du code, je m'en suis rendu compte et je suis passé à une autre option, que j'ai complétée. L'intervieweur a posé plusieurs questions sur la complexité de l'algorithme et a demandé si cela pouvait être fait plus rapidement. D’une manière ou d’une autre, je suis devenu ennuyeux et je n’y arrivais pas. À ce stade, le temps était écoulé et nous nous sommes dit au revoir. Puis, après environ 10 minutes, je me suis rendu compte qu'au lieu de l'algorithme de Dijkstra que j'avais utilisé, dans ce problème particulier, je pouvais utiliser la recherche en largeur d'abord, et ce serait plus rapide. Après un certain temps, le recruteur a appelé et a dit que l'entretien s'était globalement bien passé et qu'un autre devrait être organisé. Nous nous sommes mis d'accord sur une autre semaine.

Cette fois, les choses ont empiré. Si la première fois l’intervieweur s’est montré sympathique et sociable, cette fois il s’est montré quelque peu sombre. Je n’ai pas pu comprendre le problème tout de suite, même si les idées que j’ai avancées pourraient, en principe, conduire à sa solution. En fin de compte, après plusieurs suggestions de l’intervieweur, la solution m’est venue. Cette fois, il s’est avéré qu’il s’agissait à nouveau d’une recherche en profondeur, uniquement à partir de plusieurs points. J'ai écrit les solutions, je les ai rencontrées à temps, mais j'ai oublié les cas extrêmes. Après un certain temps, le recruteur a appelé et m'a dit que cette fois l'intervieweur n'était pas satisfait, car à son avis j'avais besoin de trop d'indices (3 ou 4 morceaux) et je changeais constamment le code pendant l'écriture. Sur la base des résultats de deux entretiens, il a été décidé de ne pas aller plus loin, mais de reporter d'un an le prochain entretien, si je le souhaitais. C'est pourquoi nous nous sommes dit au revoir.

Et de cette histoire, j'ai tiré plusieurs conclusions :

  • La théorie, c'est bien, mais il faut s'y retrouver rapidement
  • La théorie sans la pratique ne servira à rien. Nous devons résoudre les problèmes et rendre le codage automatique.
  • Cela dépend beaucoup de l'intervieweur. Et on ne peut rien y faire.

Préparation de la deuxième manche

Après avoir réfléchi à la situation, j'ai décidé de réessayer dans un an. Et légèrement modifié le but. Si auparavant l'objectif principal était d'étudier et qu'un entretien chez Google était comme une carotte lointaine, désormais réussir un entretien était l'objectif et étudier était le moyen.
Ainsi, un nouveau plan a été élaboré, qui comprenait les points suivants :
  • Continuez à étudier la théorie en lisant des livres et des articles.
  • Résolvez des problèmes algorithmiques d'un montant de 500 à 1 000 pièces.
  • Continuez à apprendre la théorie en regardant des vidéos.
  • Continuez à étudier la théorie à travers des cours.
  • Étudiez les expériences d'autres personnes lors d'entretiens chez Google.
J'ai terminé le plan en un an. Ensuite, je décrirai ce que j'ai fait exactement pour chacun des points.

Livres et articles

Je ne me souviens même pas du nombre d’articles que j’ai lus ; je les ai lus en russe et en anglais. Probablement le site le plus utile ce. Il existe une description d'un grand nombre d'algorithmes intéressants avec des exemples de code.

J'ai lu 5 livres : Algorithms, 4e édition (Sedgewick, Wayne), Introduction to Algorithms 3e édition (Cormen, Leiserson, Rivest, Stein), Cracking the Coding Interview 4e édition (Gayle Laakmann), Programming Interviews Exposed 2e édition (Mongan, Suojanen , Giguère), Éléments d'entretiens de programmation (Aziz, Lee, Prakash). Ils peuvent être divisés en 2 catégories. Le premier comprend des livres de Sedgwick et Corman. C'est une théorie. Le reste est la préparation de l'entretien. Sedgwick raconte la même chose dans le livre que dans ses cours. Juste par écrit. Cela ne sert à rien de le lire attentivement si vous avez suivi le cours, mais cela vaut quand même la peine de le parcourir. Si vous n'avez pas regardé le cours, il est logique de le lire. Cormen me paraissait trop ennuyeux. Pour être honnête, j'ai eu du mal à le maîtriser. Je viens de le sortir de là théorie du maître, et plusieurs structures de données rarement utilisées (tas de Fibonacci, arbre de van Emde Boas, tas de base).

Cela vaut la peine de lire au moins un livre pour se préparer à un entretien. Ils sont tous construits à peu près sur le même principe. Ils décrivent le processus d'entretien dans les grandes entreprises technologiques, donnent les éléments de base de l'informatique, les problèmes liés à ces éléments de base, les solutions aux problèmes et l'analyse des solutions. Parmi les trois ci-dessus, je recommanderais probablement Cracking the Coding Interview comme principal, et les autres sont facultatifs.

Problèmes algorithmiques

C’était probablement le point de préparation le plus intéressant. Vous pouvez bien sûr vous asseoir et résoudre des problèmes bêtement. Il existe de nombreux sites différents pour cela. J'en ai principalement utilisé trois : Hackerrang , CodeChef Et LeetCode. Sur CodeChef, les problèmes sont répartis par difficulté, mais pas par sujet. Sur Hackerrank à la fois par complexité et par sujet.

Mais comme je l'ai immédiatement découvert par moi-même, il existe un moyen plus intéressant. Et ce sont des concours (défis de programmation ou concours de programmation). Les trois sites les proposent. Certes, il y a un problème avec LeetCode - un fuseau horaire peu pratique. C'est pourquoi je n'ai pas participé sur ce site. Hackerrank et CodeChef proposent un assez grand nombre de compétitions différentes, d'une durée de 1 heure à 10 jours. Différents formats ont des règles différentes, mais oui, nous pouvons en parler longtemps. La principale raison pour laquelle les compétitions sont bonnes est l’introduction d’un élément compétitif (et encore une fois tautologique) dans le processus d’apprentissage.

Au total, j'ai participé à 37 compétitions sur Hackerrank. Parmi ceux-ci, 32 étaient des évaluations, et 5 étaient soit sponsorisés (j'ai même reçu 25 $ dans l'un d'eux), soit pour le plaisir. Dans le classement, j'ai été 10 fois dans le top 4%, 11 fois dans le top 12% et 5 fois dans le top 25%. Les meilleurs résultats étaient de 27/1459 en 3 heures et de 22/9721 en semaine.

Je suis passé à CodeChef lorsque Hackerrank a commencé à organiser des compétitions moins fréquemment. Au total, j'ai réussi à participer à 5 compétitions. Le meilleur score a été de 426/5019 lors des dix jours de compétition.

Au total, lors des compétitions et comme ça, j'ai résolu un peu plus de 1000 problèmes qui s'inscrivaient dans le plan. Aujourd'hui, malheureusement, il n'y a pas de temps libre pour poursuivre des activités compétitives, tout comme il n'y a aucun objectif pour lequel le temps non libre peut être déduit. Mais c'était amusant. Je recommande à ceux qui sont intéressés par cela de trouver des personnes partageant les mêmes idées. Ensemble ou en groupe, c'est beaucoup plus intéressant. Je me suis bien amusé avec un ami, alors peut-être que ça s'est bien passé.

Regarder la vidéo

Après avoir lu le livre de Skiena, je me suis intéressé à ce qu’il faisait. Comme Sedgwick, il est professeur d'université. À cet égard, des vidéos de ses cours sont disponibles en ligne. J'ai décidé de revoir le cours COMP300E - Défis de programmation - 2009 HKUST. Je ne peux pas dire que je l'ai beaucoup aimé. Tout d’abord, la qualité vidéo n’est pas très bonne. Deuxièmement, je n'ai pas essayé de résoudre moi-même les problèmes abordés dans le cours. L’engagement n’était donc pas très élevé.
Aussi, en résolvant des énigmes, en essayant de trouver le bon algorithme, je suis tombé sur la vidéo de Tushar Roy. Il a travaillé chez Amazon et travaille maintenant chez Apple. Comme je l'ai découvert par moi-même plus tard, il a Chaîne Youtube, où il publie une analyse de divers algorithmes. Au moment de la rédaction, la chaîne contient 103 vidéos. Et je dois dire que son analyse a été très bien faite. J’ai essayé de regarder d’autres auteurs, mais cela n’a pas fonctionné. Je peux donc certainement recommander cette chaîne à regarder.

Suivre des cours

Je n'ai rien fait de spécial ici. J'ai regardé une vidéo du développeur Android Nanodegree de Google et suivi un cours de l'ITMO Comment gagner des compétitions de codage : les secrets des champions. Nanodegree est plutôt bon, même si je n’en ai naturellement rien appris de nouveau. Le cours de l'ITMO est un peu étriqué en termes de théorie, mais les problèmes étaient intéressants. Je ne recommanderais pas de commencer par cela, mais en principe, c'était du temps bien dépensé.

Apprendre des expériences des autres

Bien sûr, beaucoup de gens ont essayé de se lancer dans Google. Certains l’ont compris, d’autres non. Certains ont écrit des articles à ce sujet. Parmi les choses intéressantes, je mentionnerai probablement celle-ci et celle-là. Dans le premier cas, la personne s'est préparée une liste de ce qu'elle doit apprendre pour devenir ingénieur logiciel et entrer chez Google. Il a finalement fini sur Amazon, mais ce n’est plus si important. Le deuxième manuel a été rédigé par l'ingénieure Google, Larisa Agarkova (). En plus de ce document, vous pouvez également lire son blog.

Deuxième manche

Et maintenant, un an s'est écoulé. Cela s’est avéré très intense en termes d’études. Mais j’ai abordé le nouvel automne avec des connaissances théoriques beaucoup plus approfondies et développé des compétences pratiques. Il me restait encore quelques semaines avant la fin de l'année pour me préparer, quand soudain une lettre d'un recruteur de Google est arrivée par courrier, dans laquelle il me demandait si j'avais toujours envie de travailler chez Google et si Cela me dérangerait de parler avec lui. Naturellement, cela ne me dérangeait pas. Nous avons convenu de rappeler dans une semaine. Ils m'ont également demandé un curriculum vitae mis à jour, auquel j'ai ajouté une brève description de ce que j'ai fait au cours de l'année au travail et en général.

Après avoir communiqué pour la vie, nous avons décidé que dans une semaine il y aurait une interview Hangout, comme l'année dernière. Une semaine s'est écoulée, c'était l'heure de l'entretien, mais l'intervieweur ne s'est pas présenté. 10 minutes se sont écoulées, je commençais déjà à devenir nerveux, quand soudain quelqu'un a fait irruption dans la conversation. Comme il s'est avéré un peu plus tard, mon interlocuteur, pour une raison quelconque, n'a pas pu se présenter et un remplaçant a été trouvé d'urgence pour lui. La personne n’était pas du tout préparée, tant pour configurer l’ordinateur que pour mener l’entretien. Mais ensuite tout s'est bien passé. J'ai résolu le problème rapidement, décrit où les pièges étaient possibles et comment ils pouvaient être contournés. Nous avons discuté de plusieurs versions différentes du problème et de la complexité de l'algorithme. Ensuite, nous avons discuté pendant encore 5 minutes, l'ingénieur nous a fait part de ses impressions sur son travail à Munich (ils n'ont apparemment pas trouvé de remplaçant urgent à Zurich), puis nous nous sommes séparés.

Le même jour, le recruteur m'a contacté et m'a dit que l'entretien s'était bien passé et qu'il était prêt à m'inviter à un entretien au bureau. Le lendemain, nous avons appelé via Hangouts et discuté des détails. Comme je devais demander un visa, nous avons décidé de fixer un entretien dans un mois.

Pendant que je préparais les documents, j'évoquais simultanément le prochain entretien avec le recruteur. Un entretien standard chez Google comprend 4 entretiens algorithmiques et un entretien de conception de système. Mais comme je postulais en tant que développeur Android, on m'a dit qu'une partie de l'entretien serait spécifique à Android. Je ne pouvais pas expliquer au recruteur exactement quels seraient les détails et quels seraient les détails. D'après ce que je comprends, cela a été introduit relativement récemment et lui-même n'en était pas très conscient. J'ai également été inscrit à deux sessions de formation : comment réussir un entretien algorithmique et comment réussir un entretien de conception de système. Les séances étaient d'une utilité moyenne. Là aussi, personne ne pouvait me dire ce qu'ils demandaient aux développeurs Android. Ma préparation pour ce mois-ci se résumait donc à ce qui suit :

  • Acheter un tableau de marqueurs et y écrire 2 à 3 douzaines d'algorithmes les plus populaires de mémoire. 3 à 5 pièces chaque jour. Au total, chacun a été écrit plusieurs fois.
  • Rafraîchissez votre mémoire de diverses informations sur Android que vous n'utilisez pas tous les jours
  • Regarder quelques vidéos sur Big Scale et des trucs comme ça
Comme je l'ai déjà dit, en même temps je préparais les documents pour le voyage. Pour commencer, ils m'ont demandé des informations pour faire une lettre d'invitation. Ensuite, j'ai longtemps essayé de savoir qui à Chypre délivre les visas pour la Suisse, car l'ambassade de Suisse ne s'en occupe pas. Il s’est avéré que c’est le consulat autrichien qui le fait. J'ai appelé et pris rendez-vous. Ils ont demandé un tas de documents, mais rien de particulièrement intéressant. Photo, passeport, permis de séjour, de nombreux certificats différents et, bien sûr, une lettre d'invitation. Entre-temps, la lettre n'est pas arrivée. Au final, j'ai opté pour une impression régulière et cela a plutôt bien fonctionné. La lettre elle-même est arrivée 3 jours plus tard, et FedEx de Chypre n'a pas pu trouver mon adresse et j'ai dû aller la chercher moi-même. Au même moment, j'ai reçu un colis du même FedEx, qu'ils n'ont pas non plus pu me livrer, car ils n'ont pas trouvé l'adresse, et qui traînait là depuis juin (5 mois, Karl). Je le savais, ce qui est naturel et je ne pensais pas qu'ils l'avaient. J'ai reçu le visa à temps, après quoi ils m'ont réservé un hôtel et m'ont proposé des options de vol pour que ce soit plus pratique. Il n'y avait pas de vols directs, alors j'ai fini. en volant là-bas via Athènes et retour via Vienne.

Une fois toutes les formalités du voyage réglées, quelques jours se sont écoulés et je me suis envolé pour Zurich. Je suis arrivé sans incident. De l'aéroport à la ville, j'ai pris le train - rapidement et facilement. Après avoir erré un peu dans la ville, j'ai trouvé un hôtel et je me suis enregistré. Comme l'hôtel était réservé sans nourriture, j'ai dîné à côté et je me suis couché, car le vol était le matin et je voulais déjà dormir. Le lendemain, j'ai pris le petit-déjeuner à l'hôtel (pour de l'argent supplémentaire) et je suis allé au bureau de Google. Google possède plusieurs bureaux à Zurich. Mon entretien n'était pas celui du centre. Et en général, le bureau avait l’air assez ordinaire, donc je n’ai pas eu l’occasion de regarder tous les avantages d’un bureau Google « normal ». Je me suis inscrit auprès de l'administrateur et je me suis assis pour attendre. Après un certain temps, le recruteur est sorti et m'a expliqué le programme de la journée, après quoi il m'a emmené dans la salle où devaient se dérouler les entretiens. En fait, le plan comprenait 3 entretiens, un déjeuner et 2 autres entretiens.

Entretien numéro un

La première interview était uniquement sur Android. Et cela n’avait rien à voir avec les algorithmes. Surprise cependant. Bon, d'accord, c'est encore plus courant de cette façon. On nous a demandé de créer un certain composant d'interface utilisateur. Nous avons d’abord discuté de quoi et comment. Il a proposé de créer une solution en utilisant RxJava, a décrit exactement ce qu'il ferait et pourquoi. Ils ont dit que c'était certainement une bonne chose, mais faisons-le en utilisant le framework Android. Et en même temps, nous écrirons le code au tableau. Et pas seulement un composant, mais toute l'activité qui utilise ce composant. C’est pour cela que je n’étais pas prêt. C'est une chose d'écrire un algorithme de 30 à 50 lignes sur le tableau, et une autre chose d'écrire des nouilles de code Android, même avec des abréviations et des commentaires dans l'esprit de « eh bien, je n'écrirai pas ça, car c'est déjà évident. » Le résultat était une sorte de vinaigrette pour 3 planches. Ceux. J'ai résolu le problème, mais ça avait l'air stupide.

Entretien numéro deux

Cette fois, l’interview portait sur les algorithmes. Et il y avait deux intervieweurs. L’un est le véritable intervieweur et le second est un jeune padawan (intervieweur fantôme). Il fallait proposer une structure de données avec certaines propriétés. Tout d’abord, nous avons discuté du problème comme d’habitude. J'ai posé différentes questions, l'intervieweur a répondu. Après un certain temps, il leur a été demandé d'écrire au tableau plusieurs méthodes de la structure inventée. Cette fois, j’ai plus ou moins réussi, même si j’ai commis quelques erreurs mineures, que j’ai corrigées à la demande de l’intervieweur.

Entretien numéro trois

Cette fois-ci, System Design, qui s'est soudainement révélé être également Android. Il était nécessaire de développer une application dotée de certaines fonctionnalités. Nous avons discuté des exigences relatives à l'application, au serveur et au protocole de communication. Ensuite, j'ai commencé à décrire les composants ou les bibliothèques que j'utiliserais lors de la création de l'application. Et puis, en mentionnant Job Scheduler, il y a eu une certaine confusion. Le fait est que je ne l'ai jamais utilisé dans la pratique, puisqu'au moment de sa sortie, je venais de passer au support d'applications où il n'y avait aucune tâche pour son utilisation. La même chose s’est produite lors du développement des suivants. Autrement dit, en théorie, je sais ce qu'est cette chose, quand et comment elle est utilisée, mais je n'ai aucune expérience dans son utilisation. Et l’intervieweur n’a pas semblé beaucoup apprécier. Ensuite, ils m'ont demandé d'écrire du code. Oui, lors du développement d’une application, vous devez immédiatement écrire du code. Encore une fois le code Android au tableau. Cela s'est avéré encore une fois effrayant.

Dîner

Une autre personne était censée venir, mais elle ne l’a pas fait. Et Google fait des erreurs. En conséquence, je suis allé déjeuner avec l'intervieweuse précédente, sa collègue, et un peu plus tard, l'intervieweuse suivante l'a rejoint. Le déjeuner était assez correct. Encore une fois, comme il ne s'agit pas du bureau principal à Zurich, la salle à manger avait l'air tout à fait ordinaire, bien que très agréable.

Entretien numéro quatre

Enfin, les algorithmes à l’état pur. J'ai résolu le premier problème assez rapidement et immédiatement efficacement, même si j'ai raté un cas extrême, mais à l'invite de l'intervieweur (il a donné ce cas très extrême), j'ai trouvé le problème et je l'ai corrigé. Bien sûr, j'ai dû écrire le code au tableau. Ensuite, une tâche similaire a été confiée, mais plus difficile. Pour cela, j'ai trouvé quelques solutions non optimales et j'ai presque trouvé la solution optimale, 5 à 10 minutes n'étaient pas suffisantes pour terminer la réflexion. Eh bien, je n’ai pas eu le temps d’écrire le code.

Entretien numéro cinq

Et encore une interview sur Android. Je me demande pourquoi j'ai étudié les algorithmes toute l'année ?
Au début, il y avait quelques questions simples. Ensuite, l'intervieweur a écrit du code au tableau et a demandé d'y trouver des problèmes. Je l'ai trouvé, expliqué, corrigé. Discuté. Et puis des questions inattendues ont commencé dans l'esprit de « que fait la méthode Y dans la classe X », « qu'est-ce qu'il y a à l'intérieur de la méthode Y », « que fait la classe Z ». Bien sûr, j’ai répondu à quelque chose, mais j’ai ensuite dit que je n’avais pas rencontré cela récemment dans mon travail et que, naturellement, je ne me souvenais pas en détail de qui fait quoi et comment. Après cela, l'intervieweur m'a demandé ce que je faisais maintenant. Et les questions portaient sur ce sujet. J'ai déjà répondu bien mieux ici.

Après la fin du dernier entretien, ils ont pris mon laissez-passer, m'ont souhaité bonne chance et m'ont renvoyé. J'ai marché un peu dans la ville, j'ai dîné et je suis allé à l'hôtel, où je me suis couché, car le vol était encore tôt le matin. Le lendemain, je suis arrivé sain et sauf à Chypre. À la demande du recruteur, j'ai rédigé un retour sur l'entretien et rempli un formulaire auprès d'un service spécial pour restituer l'argent dépensé. De toutes les dépenses, Google ne paie directement que les billets. L'hôtel, la nourriture et les déplacements sont à la charge du candidat. Ensuite, nous remplissons le formulaire, joignons les reçus et l'envoyons à un bureau spécial. Ils traitent cela et transfèrent l’argent sur le compte assez rapidement.

Il a fallu une semaine et demie pour traiter les résultats de l'entretien. Après quoi, on m’a informé que j’étais « un peu en dessous de la barre ». Autrement dit, je suis tombé un peu à court. Plus précisément, 2 entretiens se sont bien déroulés, 2 un peu moins bien et System Design pas très bien. Maintenant, si au moins 3 s’étaient bien passés, alors nous aurions pu concourir, sinon il n’y a aucune chance. Ils ont proposé de revenir dans un an.

Au début, bien sûr, j'étais bouleversé, car beaucoup d'efforts avaient été consacrés à la préparation, et au moment de l'entretien, je pensais déjà à quitter Chypre. Rejoindre Google et déménager en Suisse semblait être une excellente option.

Conclusion

Et nous arrivons ici à la dernière partie de l’article. Oui, j'ai échoué deux fois à l'entretien Google. C'est triste. Ce serait probablement intéressant d'y travailler. Mais vous pouvez voir la question de l’autre côté.
  • En un an et demi, j'ai appris énormément de choses liées au développement logiciel.
  • J'ai eu beaucoup de plaisir à participer à des concours de programmation.
  • Je suis allé à Zurich pendant quelques jours. Quand vais-je y retourner ?
  • J'ai eu une expérience d'entretien intéressante dans l'une des plus grandes sociétés informatiques au monde.
Ainsi, tout ce qui s'est passé au cours de ces un an et demi peut simplement être considéré comme une formation, ou une formation. Et les résultats de cette formation se sont fait sentir. Mon idée de quitter Chypre a mûri (en raison de certaines circonstances familiales), j'ai passé avec succès plusieurs entretiens avec une autre entreprise bien connue et j'ai déménagé au bout de 8 mois. Mais c'est une histoire complètement différente. Cependant, je pense que je devrais quand même remercier Google à la fois pour l'année et demie sur laquelle j'ai travaillé moi-même et pour 2 jours intéressants à Zurich.

Que puis-je dire finalement ? Si vous travaillez dans l'informatique, préparez-vous aux entretiens chez Google (Amazon, Microsoft, Apple, etc.). Peut-être qu'un jour vous irez là-bas pour y arriver. Même si vous ne le souhaitez pas, croyez-moi, une telle préparation ne vous aggravera pas. Dès que vous réaliserez que vous pouvez (même si ce n'est qu'avec de la chance) obtenir un entretien avec l'une de ces entreprises, beaucoup plus de voies s'ouvriront à vous qu'avant de commencer votre préparation. Et tout ce dont vous avez besoin en cours de route, c'est de détermination, de persévérance et de temps. Je te souhaite du succès:)

  • Traduction

"Le diagnostic n'est pas la fin, mais le début de l'affaire."
Martin H. Fisher.

J'ai récemment eu un entretien téléphonique avec un recruteur de Google. Étant donné que je remplissais les critères d'un tel entretien (volontaire), mais que je n'ai pas pu réussir le test, Cet article répertorie les questions et les réponses suggérées.. Cet article pourra être utile à ceux qui recevront un jour un appel de Google.

Pour être clair, j'ai commencé à programmer il y a 37 ans (j'avais 11 ans à l'époque) et je le fais tout le temps. De plus, il y a 24 ans (j'avais 24 ans) j'ai été nommé directeur de la recherche et du développement ; Depuis lors, parmi de nombreux autres travaux, j'ai effectué de la R&D sur les parties les plus critiques des projets TWD - tous sont fournis sous forme de produits commerciaux :

Mise à jour : Business Insider a publié cette histoire (25 000 lectures à ce jour).

Mise à jour : LinkedIn a censuré cette histoire (publiée par trois personnes différentes) et tous les commentaires de soutien ont été rédigés par des techniciens (je ne connais pas la plupart d'entre eux).

Mise à jour: Article de blog des employés de Google, publié avec succès sur LinkedIn et utilisant un vocabulaire "indésirable" incohérent (visant évidemment à associer des mots offensants à mon nom dans les moteurs de recherche), a été écrit par quelqu'un qui ressemble à un idiot (texte souligné en orange sur Google, langage en colère incohérent souligné en rouge) :

profil LinkedIn pour Marcia Pinheiro montre qu'elle travaille chez... Google. S'il s'agit d'une vraie personne (elle a aussi 3 comptes), alors je suis triste pour elle - elle doit jeter de la boue sur les gens pour gagner sa vie. Si Google l'a effectivement embauchée (ou "lui" caché derrière une fausse identité), alors c'est un excellent moyen d'avoir le dernier mot. Google s'en tient à ce qu'il prêche. "Ne fais pas de mal"?

Mise à jour : LinkedIn a finalement publié mon message, mais sans commentaires des lecteurs et avec un délai de 12 heures. Trois autres posts rédigés par des techniciens qui m'ont envoyé une confirmation de visionnage n'ont pas eu autant de succès.

Mise à jour : Business Insider a publié un (très bon) article sur les échecs spectaculaires en matière de recrutement de Google et fournissant des informations intéressantes sur les problèmes de la part de techniciens expérimentés. Je recommande fortement de le lire (même aux employés de Google).

Mots clés:

  • embauche
  • Google
  • entretien
  • questions d'entretien
Ajouter des balises

Voici cinq tâches réelles qui ont été confiées aux candidats lors d'entretiens dans les plus grandes entreprises du secteur technologique.

Avant de regarder les réponses et les solutions sous les images, essayez de tester votre force - peut-être vous surprendrez-vous ?

Poste 1 : Ingénieur logiciel chez Google

Tâche

Vous disposez de 8 balles : 7 pèsent le même poids et 1 est légèrement plus lourde que les autres. Comment pouvez-vous utiliser une balance pour déterminer quelle balle est la plus lourde si vous ne disposez que de 2 tentatives ?

Solution

Étape 1. Prenez 6 balles sur 8

Étape 2. Placez 3 boules sur deux balances (donc en utilisant le 1er essai) :

A) si les boules sont égales, alors la balle la plus lourde doit être recherchée parmi les deux restantes

B) si un bol l'emporte, alors la balle requise est parmi ces trois

Étape 3. Utilisez la 2ème et dernière tentative.

Avec option

A) c'est simple : il faut peser les deux boules restantes pour identifier la plus lourde. Avec option

B) pesez 2 balles parmi les 3 restantes, puis soit la balance affichera immédiatement la plus lourde, soit les bols seront égaux, ce qui signifie que la 3ème balle non pondérée est la plus lourde.

Poste 2 : Responsable Amazon

Tâche

5 623 participants étaient inscrits au tournoi sportif. Combien de concours faut-il pour déterminer le gagnant ?

Réponses les plus populaires

A) une compétition - elle déterminera le champion en finale

B) 5.622 concours : si parmi tous les participants il ne doit y avoir qu'un seul gagnant, alors de 5.623 il suffit de soustraire 1.

Solution alternative

Ce qui est important ici n'est pas la « bonne réponse » (si vous l'avez remarqué, l'état du problème est vague, il peut donc y avoir plusieurs solutions), mais une approche logique. Par conséquent, il serait d'abord bon de clarifier de quel type de participants il s'agit : des équipes ou des athlètes individuels ? Ensuite, en fonction de la réponse, posez la question logique suivante et ainsi de suite. De cette façon, vous démontrerez votre capacité à réfléchir, à raisonner et à prendre des décisions.

Poste 3 : Développeur de logiciels chez Webtrends

Tâche

Dans une pièce complètement sombre, il y a 20 chaussettes différentes de deux types sur la table de nuit. Quel est le nombre minimum de chaussettes que vous devez emporter pour qu'il y ait une paire adaptée parmi elles ?

Options de réponse

A) 3 chaussettes - soit 2 d'entre elles seront d'un type, 1 d'un autre, soit toutes les 3 seront du même type. Dans tous les cas, vous en aurez une paire.

B) aucune, puisque la condition dit : « 20 chaussettes différentes de deux types », c'est-à-dire qu'il n'y en a pas deux identiques.

Poste 4 : Ingénieur logiciel/développeur Web chez Microsoft

Tâche

Devant vous se trouvent 3 cartons : l’un contient des pommes, un autre contient des bananes et le troisième contient un mélange des deux. Toutes les cases sont mal étiquetées. Vous pouvez sortir un fruit à la fois d’une boîte sans regarder à l’intérieur. Combien de fois faut-il sortir les fruits au moins pour déterminer le contenu de tous les paniers ?

Répondre

Solution

Le problème est que les cases sont mal étiquetées, ce qui signifie que chacune contient autre chose que ce qui est écrit. Autrement dit, une boîte marquée C (mélange) peut contenir soit uniquement des pommes (I), soit uniquement des bananes (B). Nous en retirons les fruits - avez-vous eu une pomme ? C'est donc une boîte de pommes.

Il reste 2 cases - marquées Z et B, et vous savez que c'est incorrect, et la case B peut contenir soit des pommes, soit un mélange. Mais nous avons déjà identifié des pommes, il s'agit donc d'un mélange. Eh bien, dans la dernière case marquée I, il s'avère qu'il y a des bananes.

Poste 5 : Ingénieur logiciel chez Raytheon

Tâche

Il y a trois interrupteurs devant vous, mais un seul allume l'ampoule à l'étage inférieur. D'où vous êtes, vous ne pouvez ni voir ni entendre s'il est en feu. Comment déterminer quel interrupteur correspond à l'ampoule si vous ne pouvez descendre et vérifier qu'une seule fois ?

Solution

Allumez l'un des trois interrupteurs et attendez 5 à 10 minutes pour que l'ampoule (si elle s'allume) ait le temps de chauffer. Ensuite, éteignez le premier et allumez le deuxième interrupteur, et descendez pour vérifier. Si l'ampoule n'est pas allumée mais est chaude, le premier interrupteur en est responsable. Si c'est allumé maintenant, c'est le deuxième. Et s’il ne brûle pas et qu’il fait froid, alors le troisième.