Une chose que vous devez garder à l'esprit est que tous les entretiens techniques prennent en compte deux aspects : l'aspect comportemental, et l'aspect technique.
L'aspect comportemental implique souvent des questions qui ne sont pas techniques par nature et qui sont là pour voir si vous correspondez à la culture de l'entreprise, tandis que l'aspect technique nécessite une base solide de connaissances à la fois en DS&A et en conception de systèmes.
Certaines questions auxquelles vous pouvez vous attendre de l'aspect comportemental sont :
#1 QUESTIONS COMPORTEMENTALES D'APPLE
- Décrivez une fois où vous n'étiez pas d'accord avec un membre de l'équipe. Comment avez-vous résolu le problème ?
- Qui vous a inspiré dans votre vie, et pourquoi ?
- Dites-moi une fois où vous avez dû travailler avec une personne difficile ou perturbatrice.
- Avez-vous déjà fait une erreur ?
- Comment testeriez-vous votre application préférée ?
- Quel rôle assumez-vous lorsque vous travaillez au sein d'une équipe ?
- Qu'est-ce qui est le plus important, résoudre le problème du client ou créer une bonne expérience client ?
- Dites-moi une fois où vous avez échoué.
- Dites-moi une fois où vous n'avez pas atteint vos objectifs.
- Dites-moi une grosse erreur que vous avez commise au travail et comment vous l'avez gérée.
- Expliquez une fois où vous avez pris l'initiative d'un projet.
- Si nous vous embauchions, sur quoi voudriez-vous travailler ?
- Etes-vous quelqu'un qui apprend de ses échecs ?
- Avez-vous déjà travaillé en équipe ?
- Lorsque vous entrez dans un Apple Store en tant que client, que remarquez-vous à propos du magasin/comment vous sentez-vous la première fois que vous entrez ?
- Dites-moi une fois où vous avez utilisé la créativité pour surmonter un dilemme.
- Comment abordez-vous les problèmes ? Quel est votre processus ?
- Dites-moi une fois où vous avez résolu un problème pour un client frustré.
- Décrivez comment vous avez utilisé vos compétences en résolution de problèmes au profit d'une équipe ou d'une entreprise.
- Quel est votre plus grand regret au travail ?
- Qu'est-ce qui vous amène ici aujourd'hui ?
- Etes-vous créatif ? Quelle est la chose créative à laquelle vous pouvez penser ?
- Quel a été votre meilleur jour au cours des 4 dernières années ? Quel a été votre pire ?
- Dites-moi une décision que vous avez regrettée et comment vous l'avez surmontée.
- Que voudriez-vous faire dans 5 ans ?
Pour en savoir plus sur les soft skills et l'aspect comportemental, vous pouvez utiliser Pramp, un site qui vous permet de passer des entretiens fictifs avec d'autres ingénieurs logiciels (dont certains ont déjà travaillé chez Google et Facebook) tout en recevant un retour immédiat et objectif sur votre performance.
Après, il y a't les questions qu'Apple pourrait vous poser sur l'aspect technique. Par exemple, vous pouvez vous attendre à ce qu'on vous demande :
#2 QUESTIONS TECHNIQUES D'APPLE
- Compter le nombre d'entiers positifs inférieurs à N qui ne contiennent pas le chiffre 4.
- Expliquer les arbres binaires et leurs applications.
- Donné un tableau d'entiers, écrire une fonction qui ajuste chaque entier de sorte que la différence de chaque entier adjacent afin qu'ils ne soient pas supérieurs à K.
- Donné un tableau d'entiers et un intervalle (bas, haut), écrivez une fonction qui trouve toutes les sous-séquences continues dans le tableau qui ont une somme dans l'intervalle.
- Comment répartiriez-vous une requête de recherche sur plusieurs machines ?
- Au niveau du noyau, comment écririez-vous un analyseur de fuites de mémoire et comment l'implémenteriez-vous ?
- Écrire un algorithme qui trouve le prochain nœud (successeur post-ordre) d'un nœud donné dans un arbre binaire et BST, où chaque nœud a un lien vers son parent et sans pointeur de parent.
- Écrire un programme pour mettre en œuvre une liste doublement liée à partir d'une pile avec une complexité minimale.
- Concevoir un système de parking où vous devez fournir un jeton avec le numéro de la place de parking à chaque nouvelle entrée de la place la plus proche de l'entrée.
- Mettre en œuvre une structure de données de type vecteur à partir de zéro.
- Donné une liste de chaînes de caractères, écrire une fonction qui produit une liste des suffixes communs les plus longs.
- Écrire une fonction qui supprime tous les espaces d'une chaîne de caractères. (EXplorer l'efficacité en espace et en temps de votre solution)
- Écrire une fonction qui stocke un ensemble de résultats de tournois à mort subite et un ensemble de résultats de matchs prédits dans un format compact. Ensuite, notez les prédictions, en donnant un point par match correctement deviné.
- Ayant deux très grands tableaux ordonnés distincts de valeurs, écrivez une fonction qui trouve la valeur moyenne des deux tableaux.
- Donné un tableau trié contenant l'âge de chaque personne sur Terre, écrivez une fonction qui détermine combien de personnes ont chaque âge.
- Quand utiliseriez-vous une liste chaînée et quand utiliseriez-vous une liste de tableaux
- Concevoir une partie d'échecs.
- Quelle est la complexité algorithmique big-O des insertions, des suppressions et des opérations de recherche dans un tableau de hachage ?
- Donnée une liste d'entiers, écrivez une fonction qui trouve toutes les paires de nombres dont la somme est inférieure ou égale à K.
- Écrire une fonction qui insère un élément dans une liste chaînée circulaire triée.
- Donné une matrice booléenne, écrivez un algorithme qui détermine si une île de 0 est complètement entourée de 1.
- Donné deux arbres, écrivez une fonction qui détermine si l'arbre #2 est l'image miroir de l'arbre #1.
- Donné un arbre de recherche binaire d'entiers, écrivez une fonction qui renvoie le nombre de nœuds qui ont des valeurs entre N et M.
- Quelle est la complexité algorithmique big-O des insertions, des suppressions et des opérations de recherche dans un arbre binaire ?
- Donné un ensemble d'intervalles, écrivez une fonction qui trouve l'ensemble des intervalles qui se chevauchent.
Certaines de ces questions peuvent être plutôt difficiles, comme vous pouvez probablement le dire, donc vous auriez avantage à étudier la théorie DS&A avant de passer votre entretien. Deux ressources qui peuvent vous aider avec cela sont Introduction aux algorithmes (CLRS), un livre extrêmement détaillé et bien connu sur les structures de données et les algorithmes qui devrait être traité comme une encyclopédie des algorithmes, et Cracking The Coding Interview, un livre classique de préparation à l'entretien qui a des questions de codage spécifiques à l'entreprise à résoudre.
Il'y aura également des questions liées à la conception dans votre entretien, donc je'recommanderais d'étudier la théorie de la conception de systèmes afin que vous puissiez y répondre. Une façon de le faire est d'utiliser Tech Interview Pro, un programme de préparation à l'entretien conçu par un ancien ETS de Google et de Facebook qui a deux modules approfondis sur la conception de systèmes, et Sphere Online Judge (SPOJ), une plateforme de juge en ligne avec des dizaines de milliers de problèmes liés à la conception à résoudre.
Bonne chance pour votre entretien avec Apple.