Comment obtenir un stage chez Google

Il y a une semaine, nous avons parlé de nos programmes éducatifs , où dans les commentaires nous avons souligné l'importance des stages et de l'expérience pratique. Il est impossible de ne pas être d'accord avec cela, car les connaissances théoriques doivent être renforcées par la pratique. Dans cet article, nous ouvrons une série d'articles sur les stages d'été des étudiants: comment les gars y arrivent, ce qu'ils y font et pourquoi c'est bien.


Dans le premier article, je vais vous montrer comment réussir toutes les étapes des entretiens et obtenir un stage chez Google.



Quelques mots sur vous


Je suis un étudiant de première année d'un programme de maîtrise au campus de Saint-Pétersbourg de HSE, je suis diplômé du programme de baccalauréat à l'Academy of Machine Learning. Au cours de ses études de premier cycle, il a participé activement à la programmation sportive et a également participé à divers hackathons. Vous pouvez lire sur ce dernier ici , ici et ici .


À propos du stage


Pour commencer, je veux parler un peu de la façon dont les stages chez Google se présentent de l'intérieur.


Chaque stagiaire qui vient sur Google est lié à une équipe. Il peut s'agir d'une équipe développant une infrastructure interne au sujet de laquelle une personne extérieure à l'entreprise n'a rien entendu, ou d'un produit utilisé par des millions de personnes dans le monde. Ces produits peuvent inclure les célèbres YouTube, Google Docs et autres. Étant donné que des dizaines, voire des centaines de développeurs sont impliqués dans le développement de ces projets, vous vous retrouverez dans une équipe spécialisée dans une partie plus étroite de celui-ci. Par exemple, à l'été 2018, j'ai travaillé sur Google Docs, en ajoutant de nouvelles fonctionnalités pour travailler avec des tableaux.


Puisque vous êtes stagiaire dans l'entreprise, vous avez un manager qui s'appelle l'hôte. Il s'agit d'une minuterie complète régulière, elle-même engagée dans le développement de produits. Si vous ne savez pas quelque chose, ne pouvez pas le résoudre ou avez rencontré des problèmes, vous devez le contacter. Habituellement, des réunions hebdomadaires individuelles sont prévues, où vous pouvez discuter de la situation actuelle dans le travail sur le projet ou discuter de quelque chose de complètement hors de propos. De plus, l'hôte est l'une de ces personnes qui évaluera le travail que vous avez accompli pendant votre stage. Un autre sera évalué par un deuxième examinateur supplémentaire. Et bien sûr, ils sont intéressés à tout faire fonctionner pour vous.


Google va vous vacciner, mais ce n'est pas sûr, une bonne habitude d'écrire un document de conception avant de faire quelque chose. Pour ceux qui ne connaissent pas, un dzdok est un document qui expose l'essence du problème existant, ainsi qu'une description technique détaillée de sa solution. Vous pouvez écrire un disdoc à la fois pour l'ensemble du produit et pour toute nouvelle fonctionnalité. Après avoir lu une telle documentation, il est possible de comprendre dans quel but le produit a été conçu et comment il a été mis en œuvre. Également souvent dans les commentaires, vous pouvez voir des dialogues entre ingénieurs discuter des différentes manières de mettre en œuvre une partie du projet. Cela permet de bien comprendre pourquoi chaque décision a été prise.


Une caractéristique du stage est que vous devez utiliser de merveilleux outils de développement interne, dont il y a beaucoup de Google. Après avoir travaillé avec eux et discuté avec de nombreuses personnes qui ont précédemment travaillé chez Amazon, Nvidia et d'autres sociétés technologiques bien connues, je peux conclure que ces outils ont de bonnes chances d'être les meilleurs parmi tous ceux que vous rencontrerez jamais dans votre vie. Par exemple, un outil appelé Google Code Search vous permet non seulement d'afficher l'intégralité de la base de code, l'historique des modifications dans chaque ligne de code, mais vous permet également de parcourir le code auquel nous sommes habitués dans les environnements de développement modernes, tels qu'Intellij Idea. juste un navigateur! Un inconvénient associé à la même fonctionnalité est qu'en dehors de Google, vous manquerez ces mêmes outils.


Quant aux goodies, l'entreprise a des bureaux sympas, ils se nourrissent bien, proposent une salle de gym, de bonnes assurances et autres nishtyaki. Laissez simplement quelques photos du bureau de New York ici:






Comment obtenir une offre?


Revue


Il est maintenant temps de parler de quelque chose de plus sérieux: comment obtenir un stage?


Il ne s'agit pas de Google, mais de la façon dont cela se produit dans le cas général. À propos des caractéristiques du processus de sélection des stagiaires chez Google, je vais écrire ci-dessous.


Le processus d'interview d'une entreprise devrait ressembler à ceci:


  1. Demande de stage
  2. Concours de quiz Hackerrank / TripleByte
  3. Entretien de dépistage
  4. Premier entretien technique
  5. Deuxième entretien technique
  6. Entretien sur place

Demande de stage


Évidemment, tout commence par votre désir d'obtenir un stage. Pour ce faire, vous devez l'exprimer en remplissant un formulaire sur le site Internet de l'entreprise. Si vous (ou vos amis) avez des amis qui y travaillent, vous pouvez essayer de les surmonter. Cette option est préférée car elle vous aide à vous démarquer de l'énorme flux d'autres étudiants. Si ce n'est pas possible, alors nourrissez-vous.


Essayez de ne pas être très contrarié lorsque vous recevez des lettres par la poste avec le contenu du formulaire «vous êtes tellement cool, mais nous avons choisi d'autres candidats». Et ici, j'ai un conseil pour vous:




Concours de quiz Hackerrank / TripleByte


Si votre recruteur a aimé votre CV, vous recevrez en 1-2 semaines une lettre avec la tâche suivante. Très probablement, il vous sera demandé de participer à un concours à Hackerrank, où vous devrez résoudre des problèmes algorithmiques dans le temps imparti, ou TripleByte Quiz, où vous devrez répondre à diverses questions concernant les algorithmes, le développement de logiciels et la conception de systèmes de bas niveau. Cette étape sert de filtre initial dans le processus de sélection.


Entretien de dépistage


Si le test réussit, un entretien de sélection vous attend, dans lequel vous discuterez avec le recruteur de vos intérêts et des projets que l'entreprise propose aux stagiaires. Si vous êtes intéressé et que votre expérience antérieure répondra aux attentes de l'entreprise, vous recevrez un feu vert. D'après mon expérience, c'est l'endroit le plus imprévisible de tout le processus, qui dépend beaucoup du recruteur.


Si vous avez réussi ces trois tests, la principale chance est déjà derrière. Ensuite, il y a eu des entretiens techniques qui dépendent davantage de vous, ce qui signifie que vous pouvez influencer davantage leur résultat. Et c'est bien!


Entrevues techniques


Viennent ensuite les entretiens techniques qui sont généralement menés via Skype ou Hangouts. Mais parfois, il existe des services plus exotiques qui nécessitent l'installation de logiciels supplémentaires. Par conséquent, assurez-vous que tout fonctionne sur votre ordinateur.


Le format des entretiens techniques dépend fortement du poste que vous interviewez. Si nous parlons du poste de stagiaire en génie logiciel, il vous sera probablement proposé quelques problèmes algorithmiques, dont la solution devra être codée dans un éditeur de code en ligne, par exemple coderpad.io . Ils peuvent également poser une question sur la conception orientée objet pour voir si vous êtes bon en conception de logiciels. Par exemple, on peut leur demander de concevoir une simple boutique en ligne. Certes, je n'ai jamais rencontré une telle tâche, par la solution de laquelle il serait vraiment possible de juger cette compétence. À la fin de l'entretien, vous aurez certainement la possibilité de poser des questions. Je recommande fortement de prendre cela au sérieux, car grâce aux questions, vous pouvez montrer votre intérêt pour le projet, démontrer votre compétence dans le sujet. Je prépare habituellement une liste de questions potentielles à l'avance:


  • Comment est organisé le travail sur le projet?
  • Quelle tâche difficile avez-vous eu à résoudre récemment?
  • Quelle est la contribution du développeur au produit final?
  • Pourquoi avez-vous décidé d'aller travailler dans cette entreprise?

Vous n'êtes pas toujours interviewé par une personne avec qui vous travaillerez à l'avenir. Par conséquent, les dernières questions peuvent donner une idée de ce qui se passe dans l'entreprise dans son ensemble. Pour moi, par exemple, il est important d'avoir une influence sur le produit final.


Si vous réussissez le premier entretien, un deuxième vous sera proposé. Dès le premier, il sera distingué par l'intervieweur et, par conséquent, les tâches. Le format est susceptible de rester le même. Après avoir passé le deuxième entretien, ils peuvent en proposer un troisième.


Entretien sur place


Si jusqu'à présent vous n'avez pas été refusé, un entretien sur place vous attend, lorsque le candidat est invité à un entretien au bureau de l'entreprise. Il se compose généralement de plusieurs entretiens techniques et d'un entretien comportemental. Lors d'un entretien comportemental, vous discutez avec le manager de vos projets, des décisions que vous avez prises dans différentes situations, etc. Autrement dit, l'intervieweur essaie de mieux comprendre votre personnalité et de comprendre votre expérience plus en détail. Certaines entreprises réalisant 3 à 4 entretiens techniques, au lieu des entretiens sur site, proposent de n'effectuer à distance qu'un seul comportement.


Maintenant, il ne reste plus qu'à attendre la réponse du recruteur. Si tout s'est bien passé, alors une lettre avec l'offre tant attendue vous sera certainement envoyée. S'il n'y a pas d'offre, ne vous découragez pas. Les entreprises refusent systématiquement les bons candidats. Essayez de postuler à nouveau pour un stage l'année prochaine.


Codage des entretiens


Alors, hé ... Nous n'avons pas encore fait d'interview. Nous venons de découvrir à quoi ressemble tout le processus et maintenant nous devons bien nous préparer pour les entretiens afin de ne pas manquer la chance de passer l'été agréablement et utilement.


Il existe des ressources comme Codeforces , Topcoder et Hackerrank , que j'ai déjà mentionnées. Sur ces sites, vous pouvez trouver un grand nombre de problèmes algorithmiques et envoyer leurs solutions à la vérification automatique. C'est très bien, mais ça ressemble plus à des coups de feu sur des moineaux. De nombreuses tâches sur ces ressources sont conçues pour une longue durée de solution, nécessitent la connaissance d'algorithmes avancés et de structures de données, tandis que les tâches lors des entretiens ne sont généralement pas si compliquées et sont conçues pour 5 à 20 minutes. Par conséquent, dans notre cas, une ressource telle que LeetCode , qui a été créée comme un outil pour préparer les entretiens techniques, est beaucoup plus appropriée. Si vous résolvez 100 à 200 problèmes de complexité variable, alors avec une forte probabilité, vous n'aurez pas de problèmes pendant l'entretien. Parmi les plus décents, il y a aussi Facebook Code Lab , sur lequel vous pouvez choisir la durée de la session, par exemple, 60 minutes, et le système ramassera un ensemble de tâches pour vous, ce qui prend environ une heure à résoudre en moyenne.


Il est conseillé à bien d'autres personnes de lire l'entrevue de codage . Je n'ai moi-même lu sélectivement que certaines de ses parties. Mais il convient de noter que j'ai résolu beaucoup de problèmes algorithmiques au cours de mes années scolaires. Celui qui n'a pas eu une telle expérience vaut encore au moins la peine de feuilleter ce livre.


De plus, si dans votre vie il y a eu peu d'entretiens techniques avec des entreprises étrangères, il est recommandé de passer par quelques essais. Mais plus c'est mieux. Cela vous aidera à vous sentir plus en confiance pendant l'entretien et moins nerveux. Des entretiens d'essai peuvent être organisés à Pramp .


Entrevues comportementales


Comme je l'ai déjà mentionné, lors d'un entretien comportemental, l'enquêteur essaie d'en savoir plus sur votre expérience et de comprendre votre personnage. Et si vous êtes un grand développeur, mais pas capable de travailler en équipe? J'ai peur que beaucoup ne soient pas satisfaits. Par exemple, on peut vous poser la question suivante: "Quelle est votre faiblesse?" Outre des questions de ce type, il vous sera demandé de parler de projets dans lesquels vous avez joué un rôle clé, des problèmes que vous avez dû rencontrer, ainsi que de leurs solutions. Il convient de noter que dans les premières minutes des entretiens techniques, vous pouvez également être interrogé à ce sujet. Comment se préparer à de telles entrevues est bien écrit dans un chapitre de Cracking the Coding Interview.


Google


Maintenant qu'il est clair à quoi ressemble le processus de sélection des stagiaires dans le cas général et comment se préparer aux entretiens, il est temps de parler de la façon dont cela fonctionne dans le cas de Google.


Une liste des stages disponibles est disponible ici . Si vous prévoyez de faire un stage d'été, vous devriez commencer à postuler en septembre.


Entretiens d'embauche


Ici, le processus semble un peu inhabituel. Vous aurez une entrevue de projection et deux techniques. Si vous vous y montrez bien, vous passerez à l'étape de recherche de projet. Vous devrez remplir un questionnaire assez long dans lequel vous indiquerez toutes vos compétences actuelles, ainsi que d'exprimer vos préférences sur le sujet du projet et le lieu dans lequel vous souhaitez effectuer un stage.


Il est très important de bien remplir ce formulaire et avec diligence! Les hôtes potentiels qui recherchent des personnes dans le projet, regardent les stagiaires disponibles et organisent des conversations avec les candidats qu'ils ont aimés. Ils peuvent filtrer les étudiants par emplacement, mots clés, coches dans le questionnaire, trier par points pour les entretiens.


Au cours de la conversation, l'intervieweur parle du projet à travailler et apprend également l'expérience du candidat. Il existe une excellente occasion de découvrir à quoi ressemblera le processus de travail, car vous communiquez avec la personne qui sera votre hôte. Après l'entretien, vous écrivez une lettre au recruteur avec vos impressions sur le projet. Si vous avez aimé le projet et que l'intervieweur vous a aimé, alors une offre vous attend. Sinon, vous vous attendez à des appels ultérieurs, qui peuvent être de 2-3 à 4 pièces, et peut-être pas plus. Il vaut la peine de préciser que même si vous avez bien passé les entretiens, mais pas une seule équipe ne vous a choisi au stade de la recherche de projet (ou peut-être que personne ne vous a même parlé), alors, hélas, vous vous retrouverez sans offre.


Amérique ou Europe?


Vous devrez entre autres déterminer où se déroulera votre stage. J'avais le choix entre les États-Unis et la région EMEA . Et ici, il est important de connaître certaines fonctionnalités. Par exemple, on a le sentiment qu'il est plus difficile d'entrer aux États-Unis. Tout d'abord, vous devez passer par un concours supplémentaire d'une durée de 90 minutes, où vous devrez résoudre des problèmes algorithmiques, ainsi qu'une autre enquête de 15 minutes, essayant de révéler votre personnage. Deuxièmement, d'après mon expérience et celle de mes amis, vous êtes moins susceptible d'être intéressé par l'étape de recherche d'équipe. Par exemple, en 2017, je n'ai eu qu'une seule conversation, après quoi l'équipe a choisi un autre candidat, et je n'ai pas reçu d'offre. Alors que les gars nourris en Europe avaient 4-5 projets. En 2018, ils m'ont trouvé une équipe en janvier, ce qui est assez tard. Les gars travaillaient à New York, j'ai aimé leur projet et j'ai accepté.


Comme vous pouvez le voir, les choses sont un peu plus compliquées avec les USA. Mais je voulais y aller plus qu'en Europe. De plus, aux États-Unis, ils paient plus.



Que faire après?


À la fin du stage, vous avez deux possibilités:


  • Obtenez un stage pour l'année prochaine.
  • Prenez deux entretiens techniques pour obtenir un poste à temps plein.

Ces deux options sont disponibles à condition que vous ayez terminé avec succès votre projet actuel. Si ce n'est pas votre premier stage, ils peuvent même vous proposer un poste à temps plein sans entretien.


Par conséquent, la situation suivante se présente, qui peut être décrite dans une image:



Comme c'était mon premier stage, j'ai décidé de passer deux entretiens techniques afin d'obtenir un poste à temps plein. Selon leurs résultats, ils ont accepté de me faire une offre et ont commencé à chercher une équipe, mais j'ai refusé cette option car j'ai décidé de terminer mon programme de master. Il est peu probable que Google disparaisse dans 2-3 ans.


Conclusion


Mes amis, j'espère avoir parlé facilement et clairement de la façon dont le chemin entre l'étudiant et le stagiaire (et ensuite revenir ...) , et ce matériel trouvera son lecteur qui le trouvera utile. Comme vous pouvez le voir, ce n'est pas aussi difficile que cela puisse paraître, il vous suffit de mettre de côté votre paresse, vos peurs et de commencer à essayer!


PS J'ai aussi un petit canal dans le chariot, où vous pouvez regarder.

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


All Articles