Se préparer pour un entretien avec une entreprise des Big Five

Selon mes impressions, beaucoup de gens sont intéressés par le sujet de la préparation des entretiens dans les meilleures entreprises technologiques, j'ai donc décidé d'écrire un article au lieu de réponses personnelles auxquelles je ferai référence à l'avenir. Tous ceux qui sont intéressés par le processus d'entrevue, les choses auxquelles vous devez faire attention, comment vous préparer et à quoi vous préparer - bienvenue au chat.

Que contient cet article


  • Programme de formation
  • Liste de ressources et d'articles
  • Conseils pour l'entretien d'embauche

Avant de commencer ma formation, j'ai décidé de développer un système par lequel je vais me préparer, ainsi qu'une liste de ressources que j'utiliserai dans le processus de préparation.

La première étape a été de déterminer ce qui est nécessaire pour l'entretien, et pour cela, en conséquence, il est nécessaire d'avoir une bonne idée des questions rencontrées lors des entretiens. Après une recherche assez rapide sur les résultats de recherche Google, je suis tombé sur ce livre , qui est une collection assez complète de conseils utiles et d'exemples de devoirs sur des sujets d'interview.

À ce stade, il convient de mentionner que le code du livre est principalement écrit en Java / C ++, ce qui le rend assez lisible. En conséquence, pour un entretien plus confortable, je vous recommande de résoudre tous les problèmes dans la langue que vous prévoyez d'utiliser lors de l'entretien.

Après avoir lu ce livre, j'ai pu identifier une liste de sujets clés à préparer.

Ma liste ressemblait à ceci:

  • Gros o
  • Puzzles
  • Architecture d'application
  • Algorithmes et structures de données

Gros o


En fait, il n'y a vraiment rien à dire sur Big-O, il vous suffit de connaître et de comprendre la différence dans la complexité de calcul des différents algorithmes, de comprendre comment déterminer le temps d'exécution et la consommation de mémoire des algorithmes, connaître les étapes de base pour optimiser les algorithmes, etc.
D'innombrables articles et livres ont été écrits sur Big-O, dans presque tous les cours d'entrée sur les algorithmes, il y a des conférences sur ce sujet. Sur un habr il y a aussi une série d'articles consacrés à ce sujet habr.com/post/196560

Puzzles


Avis de non-responsabilité - Personnellement, je n'ai pas rencontré d'énigmes lors de l'entrevue, mais j'ai entendu dire qu'elles pourraient tomber.

La façon dont j'ai vu les énigmes en termes de préparation sont en fait les mêmes algorithmes, mais sans référence à une structure de données spécifique ou à un paradigme algorithmique. Pour cette raison, l'organisation de la préparation des puzzles est assez difficile. La meilleure solution que j'ai pu trouver était simplement de «mettre la main sur», de résoudre 40 à 60 puzzles et, dans une certaine mesure, de comprendre comment aborder la solution des puzzles. Au fil du temps, le cerveau commence à comprendre à quoi prêter attention et quelle est simplement la conception de la tâche: par exemple, tous les nombres indiqués dans le puzzle ne sont généralement pas comme ça. Ce n'est pas «seulement 2 cordes» et pas seulement «griller en 25 minutes». En règle générale, les puzzles ne contiennent pas d'informations quantitatives inutiles.

Architecture d'application


La compréhension de l'architecture des applications de construction s'accompagne d'une expérience basée sur les connaissances. Il est assez difficile de devenir un bon architecte en matière d'architecture et il est plutôt inefficace d'étudier l'architecture uniquement par essais et erreurs. Pour ces raisons, il est assez difficile de «se préparer» à la partie architecturale de l'entretien. Dans une certaine mesure, la préparation de cette partie est toute votre carrière. Mais c'est quand même une bonne idée de rafraîchir certains aspects. Par exemple: architecture de représentation. Même ceux qui maîtrisent UML à un moment critique peuvent simplement oublier certains détails de la vue ou les vues spécifiques des liens. Un autre exemple serait les modèles de conception populaires. Malgré le fait qu'ils sont utilisés assez souvent, en règle générale, tous ne sont pas utilisés immédiatement et non à la demande pour fournir des connaissances à leur sujet ici et maintenant. Essayez de terminer plusieurs séries de tests par vous-même et d'identifier les problèmes.

Algorithmes et structures de données


L'un des moments les plus importants et les plus problématiques de l'entretien. Un certain accent est mis sur la résolution de ces problèmes et la capacité de résoudre ces problèmes rapidement et efficacement est très importante.
Pour la préparation, j'ai compilé une liste des structures de données et des algorithmes les plus courants et il s'est avéré quelque chose comme:

  • Tableaux
  • Cordes
  • Arbre binaire
  • Arbre de recherche binaire (BST)
  • Graphiques
  • Des tas
  • Liste liée
  • Matrix
  • Pile
  • File d'attente
  • Trie
  • Retour en arrière
  • Diviser et conquérir
  • Programmation dynamique
  • Tri
  • Gourmand

Dans chacune des sections, vous devez maîtriser plusieurs astuces. Un exemple classique de ceci est le curseur «lent» et «rapide» sur la liste liée. Sans connaître ou ne pas comprendre ce concept, il est pratiquement impossible de résoudre efficacement de nombreux problèmes sur les listes chaînées. Ou des algorithmes de recherche de graphes BFS / DFS. En règle générale, de nombreuses tâches pour les entretiens seront soit des modifications de concepts bien connus, soit une combinaison de plusieurs. Par conséquent, il est très important d'apprendre à résoudre et à reconnaître les tâches de base dans chaque structure / algorithme de données.

Personnellement, j'ai regardé quelques conférences de l'Université de Stanford et après m'être écrit ~ 5-10 devoirs de chaque catégorie et j'ai simplement rempli ma main de cette façon. Cela prend beaucoup de temps et d'efforts, mais cela en vaut la peine.

Voici quelques ressources que j'ai utilisées pour préparer et rechercher des affectations:

https://www.quora.com - juste une liste de ~ 500 tâches sur divers sujets, ainsi que des solutions C ++. Assez pratique, il existe parfois plusieurs solutions où l'une est plus optimale que l'autre.

https://www.hackerrank.com est une ressource pratique avec des catégories et des sujets et avec un compilateur intégré pour plus de 20 langues. Aide à remplir rapidement et efficacement votre main.

https://www.glassdoor.com - contient directement des questions d'entrevues et parfois des réponses de la communauté.

Pour moi, ces deux étaient suffisants, mais si vous ne l'êtes pas, alors ces 3 vous donneront une bonne idée de l'endroit où aller plus loin.

N'oubliez pas qu'il est très important d'essayer de trouver une réponse et une décision vous-même avant de consulter les conseils. Ainsi, vous vous forcez à réfléchir et à chercher une solution, c'est-à-dire simuler directement l'atmosphère de l'entretien.

Ne péchez pas d'utiliser uniquement un ordinateur pour résoudre des problèmes. Essayez de vous entraîner sur un tableau ou un papier, de nombreuses entreprises mènent des entretiens de cette manière.

Il peut vous sembler que c'est une seule et même chose, mais dans la pratique, la pratique sur papier ouvrira de nombreuses surprises, à commencer par le fait que vous devez d'abord trouver la solution entière avant d'écrire (suppression et retour arrière ne sont pas ici, la suppression et le déplacement de lignes sont très coûteux), et se terminant par que l'espace sur la feuille / le tableau doit être correctement enregistré, car c'est limité.

Ce à quoi vous faites attention pendant l'entretien est la confiance et le rythme avec lesquels vous résolvez les problèmes, en réfléchissant à toutes les options d'entrée possibles, en gérant les erreurs et diverses conditions. Il ne suffit donc pas d'écrire simplement une solution «fonctionnelle».

Un bon conseil serait d'écrire du code compilé. Oui, sans aucun doute, l'essentiel est la capacité de résoudre le problème et ses variations et personne ne fera trop attention à 1 virgule manquante, mais cela ne devrait pas être inclus dans la règle. Vous écrivez du code et de vraies solutions, pas du pseudo code et des croquis.

Pendant l'entretien lui-même - essayez de ne pas fermer votre créativité, de nombreuses décisions nécessitent une approche sous un angle non standard. Si vous êtes fermé - n'hésitez pas à demander de l'aide - cela n'améliorera pas considérablement vos chances, mais vous ne devriez pas non plus rester 45 minutes en silence.

Cet article n'est peut-être pas un guide complet et complet, mais il vous aidera à comprendre dans quelle direction aller.

Bonne chance à tous en préparation.

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


All Articles