it-swarm-fr.com

Prochaine interview de Google, à la recherche d'un conseil de préparation

Eh bien, j'ai frappé les livres où que je puisse. J'ai une entrevue à venir, première via téléphone, pour une position d'ingénieur logiciel. J'ai lu tous les messages de blog, j'ai lu tous les comptes d'entretiens (une assez ancienne) et Google lui-même a même suggéré une liste de lecture de livres, dont aucun ne surprendrait personne ici. Néanmoins, après un certain temps, je ne peux pas secouer que sentir qu'il y a un grand terrain à couvrir, et je ne suis jamais sûr de pouvoir aller avec la profondeur ou la largeur. Je me suis retrouvé à réapprendre une superficie de CompciCI, uniquement pour oublier la plupart des détails Nitty lorsque je passe à un autre.

Donc, je ne sais pas qu'il y a une bonne réponse à cette question, mais je suis à la recherche de conseils pratiques sur la manière de faire face aux semaines restantes à l'avance de l'entretien. Une partie de mon cerveau est fatiguée de grammer et, bien sûr, le reste doit être utilisé pour des problèmes difficiles à mon lieu d'emploi actuel.

29
Fast Fish

choses que vous devriez savoir

  • Google veut vous embaucher!

    Le sang de la vie de toute société de logiciels est ses employés et Google n'est pas différent. Il cherche à embaucher les meilleurs et les plus brillants et les gens qui dirigent l'entretien (s) veulent que vous soyez autant que vous le faites.

  • Google fera mieux de vous évaluer aussi précisément que possible. C'est leur travail.

    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 de nombreuses notes lors de l'entretien qui se combine dans un paquet. Ce paquet sera ensuite examiné par un comité distinct , qui prendra finalement la décision. Donc, si vous n'avez que "gélifier" avec l'un de vos intervieweurs, ne vous inquiétez pas! Ce qui compte, c'est que vous jouez bien sur l'entretien.

compétences que vous devriez avoir

Assurez-vous de brosser les compétences/techniques suivantes avant votre entretien. Même si vous ne vous demandez pas directement une question à ce sujet, les examiner peut certainement obtenir votre tête dans le bon état d'esprit.

  • 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 un sur l'autre? Comment cela aurait-il répercuté la vitesse/les compromis de mémoire?

    Une question d'entrevue ne se termine pas lors d'une solution de travail. Être capable d'expliquer le temps d'exécution de votre approche et de quelles sorte de commerce que vous pourriez faire. Par exemple, "Si j'ai déjà mis en cache tout ce qu'il faudrait prendre des concerts de RAM mais effectuerait plus vite parce que ..." ou, "si je gardais l'arbre binaire trié pendant que j'avais effectué les opérations x serait plus lent, tu serais plus rapide, etc. "

  • Algorithmes

    Algorithmes Traverses de base, algorithmes de trershasse des arbres et deux bonnes approches pour le tri des nombres.

    Assurez-vous de faire la résolution d'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'entretien difficiles!

  • Tables de hachage

    C'est énorme. Tout savoir tout ce qu'il y a à savoir sur les tables de hachage, de pouvoir en mettre en œuvre une vous-même, de connaître les fonctions de hachage, pour la raison pour laquelle le nombre de godets devrait être un nombre premier. Les concepts impliqués dans des tables de hachage sont pertinents pour presque tous les domaines de la science informatique.

  • Points de discussion sur vous-même

    Les premières minutes de discussion en chit avec l'intervieweur constituent 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 dirige l'entretien a interviewé des dizaines si non des centaines de personnes intelligentes comme vous. Alors, que pouvez-vous dire que cela les surprendrait?

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

Ne tortez pas trop, c'est juste une interview comme tout autre. Soyez assuré que personne ne vous posera des questions stupides sur les couvertures de Manhole ou le mont. Fuji.

30
Chris Smith

Relaxer

si votre entretien est quelque chose comme le mien était, l'intervieweur n'est pas là pour vous griller dans la soumission, il est là à voir comment vous pensez.

EDIT: C'était juste l'entretien initial du téléphone, je ne sais rien de plus que ça ... et si je le faisais, je ne pouvais probablement pas te dire de toute façon!

7
Steven A. Lowe

Emprunté l'article suivant de http://get-that-job-at-google.blogspot.in/

Connaissances de codage C/C++ et Java sont les langages de programmation préférés pour les intervieweurs Google. Vous devez connaître au moins l'un des C'est vraiment bien. Vous serez attendu à écrire du code dans les entretiens avec écran téléphonique et dans les interviews sur site.

Books recommandés pour les entretiens CS : Introduction aux algorithmes - par Cormen

Entretiens de programmation exposés

Craquer les entretiens codants

Algorithmes pour des entretiens

Sites Web recommandés pour la pratique de codage : interviewstreet, TopCoder

Big-O Cela devrait être le point de départ de la préparation d'une interview algorithmique. Vous ne devez pas lutter avec l'analyse de la complexité de base, car il ne garantira pas d'embauche. Vous devriez être familier et comprendre les notations O, θ et Ω. Je recommande une section de lecture sur l'analyse de la complexité des structures de données et du livre d'algorithmes.

Tri Vous devriez pouvoir écrire des algorithmes O (N * LGN) comme QuickSort et Mergesort avec facilité. Comparer et comprendre les meilleures complexités de cas les plus pires et moyennes. J'ai trouvé cette table sur wiki très pratique; Il énumère des propriétés importantes de tous les algorithmes de tri. Ne négligez pas les algorithmes de base O (N ^ 2) tels que le tri des bulles ou l'insertion, car d'autres algorithmes s'améliorent sur ceux-ci. Les entretiens sont davantage sur l'amélioration d'une idée de base, le tri des algorithmes aidera à 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 Passez à travers les algorithmes de base de la construction d'arbres de base, des algorithmes de trershasse et de manipulation. Vous devriez être capable de mettre en œuvre des algorithmes basés sur des arbres de recherche binaires. Vous devriez connaître des arbres équilibrés, bien que vous ne deviez pas écrire de code pour eux dans l'entretien: AVL Trees, arbres noirs rouges, Trie, N-Ary Arbres, etc. Des connaissances approfondies sur l'inadorder, le postender et les traverser en pré-commande sont nécessaires, car Nous pouvons résoudre de nombreux problèmes d'arbres en modifiant de simples modifications à l'un de ces travers.

graphiques Les graphiques sont un concept très important en informatique. Pratiquez les trois représentations de base des graphiques (objets et pointes, matrice et liste de adjacence) et familiarisez-vous avec leurs avantages et leurs inconvénients. Il n'y a pas beaucoup de temps pendant l'entretien, vous ne devriez donc pas vous attendre à quelque chose de très complexe. Cependant, les algorithmes de trershases graphiques de base (DFS et BFS) sont indispensables, vous devez les implémenter dans toutes les représentations de base. Vous devriez être capable de mettre en œuvre les algorithmes Dijkstra ou Floyd-Warshall, ainsi que des algorithmes d'arbres minimum étendus (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 que les implémentations sont petites. Vous devriez être capable de mettre en œuvre 2-3 algorithmes dynamiques pendant une période de 35 à 40 minutes. Comme vous vérifierez les ressources sur ce blog ou sur le Web, vous constaterez que vous devriez vous attendre à au moins une question de programmation dynamique par interview.

Systèmes d'exploitation En savoir plus sur les processus, les threads et les problèmes de concurrence. Connaître les mutiles, les sémaphores, les moniteurs et la façon dont ils travaillent. Comprenez quelle impasse et quels livelock sont et comment les éviter. En savoir plus sur la commutation de contexte, la planification, etc.

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

Publications de Google Lisez la liste des publications de Google Busin-Breaking répertoriées ci-dessous si vous avez le temps. Système de fichiers Google

Google bigtable

Google Mapreduce

2
chinmay

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

1
Geek