Interview Google à venir, à la recherche de conseils de préparation [clôturé]

29

Eh bien, je frappe les livres partout où je peux. J'ai une interview à venir, la première par téléphone, pour un poste d'ingénieur logiciel. J'ai lu tous les articles de blog, j'ai lu tous les comptes rendus d'entrevues (certains assez anciens), et Google lui-même a même suggéré une liste de lecture de livres, dont aucun ne surprendrait personne ici. Pourtant, après un certain temps de préparation, je ne peux pas me débarrasser de ce sentiment qu'il y a un si grand terrain à couvrir, et je ne sais jamais s'il faut aller avec la profondeur ou la largeur. Je me suis retrouvé à réapprendre tout un domaine de compsci, seulement pour oublier la plupart des petits détails alors que je passe à un autre.

Donc, je ne sais pas s'il y a une bonne réponse à cette question, mais je cherche des conseils pratiques sur la façon d'aborder les semaines restantes avant l'entrevue. Une partie de mon cerveau est fatiguée par le bourrage, et bien sûr le reste doit être utilisé pour certains problèmes difficiles sur mon lieu de travail actuel.

Poisson rapide
la source
3
Cela pourrait être plus adapté à carrièreoverflow.com à mon humble avis. De plus, vous ne dites pas le niveau du poste, tel que débutant, senior, etc., et vos antécédents, ce qui laisse beaucoup à penser.
vpit3833
3
@Fast Fish: Dites-vous quoi, détendez-vous. Faites un test de QI, et si vous marquez 135+ Google ou aucun Google, vous savez que vous l'avez.
Fanatic23
9
C'est génial ici, car il s'agit de programmeurs ??? Pourquoi les gens avec des représentants supérieurs aiment-ils classer et organiser les choses jusqu'au quark?
Jonathan.
3
Il y a déjà beaucoup de questions d'entrevue d'emploi. En quoi votre question est-elle différente? Si votre réponse est "Google", c'est pourquoi ce n'est pas ici. Il existe d'innombrables sites traitant des interviews Google, beaucoup d'entre eux vous obtiendront de meilleures informations que celle-ci.
Nicole
2
Et vous supposez que votre futur intervieweur ne se cache pas sur P.SE? :)
haylem

Réponses:

30

Ce que vous devez savoir

  • Google veut vous embaucher!

    La force vitale de toute entreprise de logiciels est ses employés et Google n'est pas différent. Il cherche à embaucher les meilleurs et les plus brillants et les personnes qui mènent les entretiens veulent que vous réussissiez autant que vous.

  • Google fera de son mieux pour vous évaluer le plus précisément possible. C'est leur boulot.

    Google est une entreprise axée sur les données. Les décisions d'embauche ne sont pas décidées par le gestionnaire fiat. Au lieu de cela, chaque intervieweur prend des notes détaillées au cours de l'entretien qui sont combinées en un paquet. Ce paquet sera ensuite examiné par un comité distinct , qui prendra finalement la décision. Donc, si vous ne gélifiiez pas avec l'un de vos enquêteurs, ne vous inquiétez pas! Ce qui compte, c'est votre performance lors de l'entretien.

Compétences que vous devriez avoir

Assurez-vous de mettre à jour les compétences / techniques suivantes avant votre entretien. Même si on ne vous pose pas directement une question à ce sujet, les examiner peut certainement vous mettre dans la bonne mentalité.

  • Structures de données

    Quelle est la différence entre un tableau et une liste liée? Un arbre et un graphique? Quand utiliseriez-vous l'un sur l'autre? Quel serait l'impact sur les compromis vitesse / mémoire?

    Une question d'entrevue ne se termine pas par une solution de travail. Soyez en mesure d'expliquer le temps d'exécution de votre approche et les types de compromis que vous pourriez faire. Par exemple, "si je mettais tout en cache, cela prendrait X Go de RAM mais fonctionnerait plus vite parce que ...". Ou, "si je gardais l'arbre binaire trié pendant que j'effectuais les opérations, X serait plus lent, Y serait plus rapide, etc."

  • Des algorithmes

    Algorithmes de base de traversée de graphe, algorithmes de traversée d'arbre et deux bonnes approches pour trier les nombres.

    Assurez-vous de vous entraîner à résoudre un problème non trivial à l'aide de la programmation dynamique. C'est votre as dans le trou quand il s'agit de questions d'entrevue difficiles!

  • Tables de hachage

    C'est énorme. Sachez tout ce qu'il y a à savoir sur les tables de hachage, de pouvoir en implémenter une vous-même, à connaître les fonctions de hachage, à savoir pourquoi le nombre de compartiments doit être un nombre premier. Les concepts impliqués dans les tables de hachage s'appliquent à presque tous les domaines de l'informatique.

  • Points de discussion sur vous

    Ces premières minutes de bavardage avec l'intervieweur sont un moment important pour expliquer toute sorte d'expérience qui vous distingue. Projets pertinents, réalisations techniques importantes, etc. N'oubliez pas que la personne qui mène l'entretien a interviewé des dizaines, voire des centaines de personnes intelligentes comme vous. Alors, que pouvez-vous dire qui les surprendrait?

    Par exemple, dans une interview, j'ai parlé à l'intervieweur d'un programme que j'ai écrit pour jouer au jeu de Go au collège. Il est très difficile d'écrire une IA pour le jeu de Go, et j'ai un horrible Go-bot pour le prouver! L'essentiel est d'être vous-même, et pas seulement une personne intelligente qui sait programmer.

N'insistez pas trop, c'est juste une interview comme les autres. Soyez assuré que personne ne vous posera de questions stupides sur les plaques d'égout ou le mont. Fuji.

Chris Smith
la source
7

Se détendre

si votre interview ressemble à la mienne, l'intervieweur n'est pas là pour vous soumettre à la soumission, il est là pour voir comment vous pensez .

EDIT: ce n'était que la première interview téléphonique, je ne sais rien de plus que cela ... et si je l'ai fait, je ne pourrais probablement pas vous le dire de toute façon!

Steven A. Lowe
la source
2
Tu as eu le boulot?
Manoj R
1
@Manoj: lol - non, mais ce n'est pas le but. Je ne voulais pas vraiment le poste pour lequel ils interviewaient, mais j'étais curieux de connaître le processus et les opportunités. je n'avais / n'ai aucune intention de déménager en Californie!
Steven A. Lowe
2

A emprunté l'article suivant à http://get-that-job-at-google.blogspot.in/

Connaissances de codage C / C ++ et Java sont les langages de programmation préférés des intervieweurs de Google. Vous devez bien connaître au moins l'un d'entre eux. Vous devrez écrire du code dans les entrevues sur écran téléphonique et dans les entrevues sur place également.

Livres recommandés pour les interviews CS : Introduction aux algorithmes - par Cormen

Entrevues de programmation exposées

Cracking the Coding Interviews

Algorithmes pour les entretiens

Sites Web recommandés pour la pratique du codage : InterviewStreet, Topcoder

Big-O Cela devrait être le point de départ dans la préparation d'un entretien algorithmique. Vous ne devez pas lutter avec l'analyse de complexité de base, car elle garantira de ne pas être embauché. Vous devez être familier et comprendre les notations O, Θ et Ω. Je recommande de lire la section sur l'analyse de la complexité du livre Structures de données et algorithmes.

Tri Vous devriez pouvoir écrire facilement des algorithmes O (n * lgn) comme QuickSort et MergeSort. Comparez et comprenez les meilleures, les pires et les complexités moyennes des cas. J'ai trouvé ce tableau sur wiki très pratique; il répertorie les propriétés importantes de tous les algorithmes de tri. Ne négligez pas les algorithmes de base O (n ^ 2) comme le tri par bulles ou le tri par insertion, car d'autres algorithmes s'améliorent par rapport à ceux-ci. Les entretiens portent davantage sur l'amélioration d'une idée de base, les algorithmes de tri aideront à ce processus.

Tables de hachage En cas de doute, pensez aux tables de hachage. Ils sont utiles dans la plupart des problèmes et nous aident fréquemment à améliorer la complexité temporelle de certains problèmes en mettant en cache les résultats.

Arbres Parcourez les algorithmes élémentaires de construction d'arbres, de traversée et de manipulation. Vous devriez pouvoir implémenter des algorithmes basés sur des arbres de recherche binaires. Vous devez être familier avec les arbres équilibrés, bien que vous ne soyez pas censé écrire du code pour eux dans l'interview: arbres AVL, arbres rouge-noir, Trie, arbres n-ary, etc. nous pouvons résoudre de nombreux problèmes d'arbre en modifiant simplement l'un de ces parcours.

Graphs Les graphes sont un concept très important en informatique. Pratiquez les trois représentations de base des graphiques (objets et pointeurs, matrice et liste d'adjacence) et familiarisez-vous avec leurs avantages et inconvénients. Il n'y a pas beaucoup de temps pendant l'entretien, vous ne devez donc pas vous attendre à quelque chose de très complexe. Cependant, les algorithmes de base de traversée de graphe (DFS et BFS) sont indispensables, vous devez les implémenter dans toutes les représentations de base. Vous devriez être en mesure d'implémenter les algorithmes Dijkstra ou Floyd-Warshall ainsi que des algorithmes de spanning tree minimum (Kruskal et Prim). En savoir plus sur le tri topologique, car il est étonnamment très utile dans de nombreux problèmes de commande.

Programmation dynamique C'est probablement le sujet le plus important car les implémentations sont petites. Vous devriez être capable d'implémenter 2 à 3 algorithmes dynamiques pendant 35 à 40 minutes. En vérifiant les ressources sur ce blog ou sur le Web, vous constaterez que vous devez vous attendre à au moins une question de programmation dynamique par entretien.

Systèmes d'exploitation Découvrez les processus, les threads et les problèmes de concurrence. Connaître les mutex, les sémaphores, les moniteurs et leur fonctionnement. Comprenez ce que sont les impasses et les livelocks et comment les éviter. En savoir plus sur le changement de contexte, la planification, etc.

Mathématiques Vous devez vous familiariser avec le comptage, la combinatoire et la probabilité.

Publications de Google Lisez les publications révolutionnaires de Google répertoriées ci-dessous si vous en avez le temps. Système de fichiers Google

Google Bigtable

Google MapRéduire

chinmay
la source
Vous devez publier le texte pertinent ici et éviter la pourriture de liens.
mortel
Désolé, je suis nouveau sur ce forum. J'ai amélioré ma réponse
chinmay
1
"... Java ... les langages de programmation préférés pour Google" Je ne le savais pas. Explique pourquoi Chrome utilise 3 fois plus de ressources que les autres navigateurs. (Knock knock. Qui est là? ... longue pause ... Java!)
Josh Campbell
1

Si vous avez passé les deux derniers mois à Careercup, vous pouvez vous permettre de vous détendre. Ce qui se passe à ce moment de l'entrevue ne peut pas être planifié, mais il vaut mieux être détendu et avoir l'énergie pour durer les tours.

Geek
la source