투잡뛰는 개발 노동자

[Hors informatique, survivre en tant que développeur] 14. Résumé des questions techniques fréquemment posées lors d'un entretien d'embauche pour développeur débutant

Création: 2024-04-03

Création: 2024-04-03 20:38

Non-spécialisé, survivre en tant que développeur


#14. Contenu fréquemment posé lors des entretiens techniques pour les développeurs débutants


[Zones de la mémoire principale]

  • Zone de code : zone où le code source du programme est stocké. Le CPU récupère les instructions (source, fonction, instruction de contrôle) stockées dans la zone de code pour les traiter. Par exemple, lorsqu’un programme écrit en langage C est exécuté, la zone de code stocke le code source de ce programme.
  • Zone de données : zone où les variables globales et les variables statiques sont stockées. Elle est allouée au démarrage du programme et ne disparaît pas tant que le programme n’est pas terminé. Par exemple, lorsqu’un programme écrit en langage C est exécuté, la zone de données stocke les variables globales ou statiques déclarées dans ce programme.
  • Zone de pile : zone de mémoire temporaire utilisée par le programme. Les variables locales et les paramètres liés à l’appel de fonction y sont stockés. Elle est allouée lors de l’appel d’une fonction et disparaît à la fin de celle-ci. Par exemple, lorsqu’une fonction écrite en langage C est appelée, les variables locales ou les paramètres utilisés dans cette fonction sont alloués dans la zone de pile.
  • Zone de tas : zone où l’utilisateur alloue et libère dynamiquement l’espace mémoire. Par exemple, lorsqu’un programme alloue dynamiquement de la mémoire à l’aide de la fonction malloc() en langage C, la zone de mémoire allouée est stockée dans la zone de tas.

[Structure de données]

  • Pile : structure de données fonctionnant selon le principe LIFO (Last In, First Out, dernier arrivé, premier sorti). Par exemple, le bouton « Retour » dans un ordinateur est similaire à une pile. Les pages visitées précédemment sont stockées dans la pile et, lorsque vous cliquez sur le bouton « Retour », la page la plus récemment stockée est récupérée et affichée.
  • File d’attente : structure de données fonctionnant selon le principe FIFO (First In, First Out, premier arrivé, premier sorti). Par exemple, dans une banque, lorsque vous prenez un ticket d’attente et que vous vous placez dans la file d’attente, c’est similaire à une file d’attente. La personne qui est arrivée en premier est servie en premier, et la personne qui est arrivée en dernier est servie en dernier.
  • Arbre : structure de données qui représente des données sous forme hiérarchique. Par exemple, l’arbre DOM (Document Object Model) du langage HTML est similaire à un arbre. La structure d’une page HTML est représentée sous forme d’arbre, en commençant par le nœud racine, la balise html, puis en représentant les nœuds enfants de manière séquentielle.
  • Tas : l’un des types de structures d’arbre binaire, divisé en tas maximal et tas minimal. Par exemple, dans une file d’attente prioritaire, les données ayant la priorité la plus élevée sont placées dans le nœud racine du tas, et les données ayant la priorité suivante sont placées dans les nœuds enfants. Ceci est un exemple de tas maximal.

[RDBMS et NoSQL]

  • RDBMS : base de données qui définit et gère les données de manière structurée avec un schéma strict. Les données peuvent être stockées de manière distribuée et sont faciles à modifier. Par exemple, MySQL, Oracle et MS-SQL sont des exemples typiques de RDBMS.
  • NoSQL : base de données qui stocke et gère les données avec un schéma flexible. Elle convient au traitement et au stockage de données volumineuses et offre une grande évolutivité. Par exemple, MongoDB, Cassandra et HBase sont des exemples typiques de NoSQL.

[Programmation procédurale et orientée objet]

  • Programmation procédurale : technique de programmation où le traitement séquentiel est privilégié. Les langages tels que C et Pascal sont des langages procéduraux.
  • Programmation orientée objet : méthode de traitement qui regroupe logiquement les données et les procédures en se basant sur le concept d’objet (Object). Les langages tels que Java, C++ et Python sont des langages orientés objet. Par exemple, dans un programme de simulation automobile, une voiture est représentée comme un objet, ses attributs (couleur, accélération, etc.) sont représentés sous forme de données et ses fonctions (rouler, s’arrêter, etc.) sont représentées sous forme de méthodes.

[Substitution et surcharge]

  • Substitution : consiste à redéfinir une méthode d’une classe parente dans une classe enfant pour la réutiliser. Lorsque la méthode de la classe parente est appelée dans la classe enfant, la méthode redéfinie dans la classe enfant est exécutée plutôt que la méthode de la classe parente. Par exemple, la méthode toString() en Java est un exemple de substitution.
  • Surcharge : consiste à définir plusieurs méthodes portant le même nom, mais avec des types et des nombres de paramètres différents, afin de répondre à différents types d’appels. Plusieurs méthodes ayant le même nom mais des paramètres différents sont exécutées. Par exemple, la méthode print() en Java est un exemple de surcharge.

[Algorithme de remplacement de page]

  • FIFO : remplace la page qui a été chargée dans la mémoire physique depuis le plus longtemps. Dans un ordinateur, la fonction « Fermer » dans la barre des tâches est similaire à l’algorithme FIFO. Le programme lancé en premier est affiché en dernier et fermé en dernier.
  • LRU : remplace la page qui n’a pas été utilisée depuis le plus longtemps. L’application qui ferme les applications anciennes parmi les applications peu utilisées, comme une « application de fermeture d’application », est également similaire à l’algorithme LRU.
  • LFU : remplace la page ayant le moins de références. Par exemple, la fonction « Fermer l’onglet » qui ferme l’onglet le moins utilisé parmi les onglets nouvellement ouverts dans un navigateur est également similaire à l’algorithme LFU.
  • MFU : remplace la page ayant le plus de références. L’algorithme MFU est rarement utilisé.

[Processus et thread]

  • Processus : unité de travail d’exécution allouée par le système d’exploitation, qui représente un programme. Lorsque plusieurs processus sont exécutés simultanément, chaque processus se voit attribuer une zone de mémoire et un CPU indépendants.
  • Thread : unité d’exécution qui fonctionne au sein d’un processus. Les threads partagent les ressources allouées au processus et s’exécutent. Par exemple, dans un navigateur Web, chaque onglet fonctionne comme un thread plutôt qu’un processus.

[OSI 7 couches]

  • Couche application : couche qui relie l’utilisateur au réseau. Elle comprend des protocoles tels que HTTP, FTP et SMTP.
  • Couche présentation : couche qui définit le format des données. Elle comprend des protocoles tels que JPEG, MPEG et SSL.
  • Couche session : couche qui gère la session entre deux systèmes qui communiquent.
  • Couche transport : couche qui gère le transfert des données. Elle comprend des protocoles tels que TCP et UDP.
  • Couche réseau : couche qui définit le chemin pour le transfert des données. Elle comprend des protocoles tels que IP et ICMP.
  • Couche liaison de données : couche qui transfère les données via l’adresse physique (adresse MAC). Elle comprend des protocoles tels qu’Ethernet et Token Ring.
  • Couche physique : couche qui gère la connexion physique et le support de transmission.

[TCP et UDP]

  • TCP : service orienté connexion qui transfère les données de manière fiable. Il établit ou rompt la connexion via un échange de 3 signaux (3-way handshaking) ou 4 signaux (4-way handshaking). Par exemple, lorsque vous vous connectez à un site Web ou que vous transférez des fichiers, le protocole TCP est utilisé.
  • UDP : service non orienté connexion qui ne suit pas de procédure de signal pour le transfert de données. Il est moins fiable, mais offre une vitesse de traitement plus rapide. Par exemple, la diffusion de vidéos en continu ou les jeux en ligne, où la rapidité de transfert est importante, utilisent le protocole UDP.

Commentaires0