Top 50 des questions et réponses d'entrevue de programmation incontournables
Les éditeurs de logiciels sont toujours à la recherche de bons talents en programmation, les entretiens téléphoniques et en ligne décidant souvent de votre sort en quelques minutes seulement.
Un bon programmeur doit être aussi polyvalent que possible - de la compréhension des systèmes à la programmation générale, en passant par différents concepts et technologies, tout en étant à jour.
Voici une liste des 50 principales questions d'entrevue de programmation et leur réponse. Ils mettent en lumière les concepts variés que tout débutant doit connaître pour exceller.
1. Qu'est-ce que la programmation informatique ?
La programmation informatique est le processus d'encodage des processus logiques à exécuter par un ordinateur. Ceci est accompli en utilisant un langage informatique qui contient les instructions nécessaires.
Le processus peut être divisé en conception, codage, débogage et mise à jour.
2. Qu'est-ce que le débogage ?
Le débogage est le processus de découverte et d'élimination des erreurs dans la source logicielle d'un programme informatique. Il existe de nombreuses méthodes pour y parvenir, mais la plupart des environnements de développement sont livrés avec un débogueur intégré pour faciliter les choses.
3. Qu'est-ce qu'un compilateur ?
Un compilateur est un programme logiciel qui prend le programme écrit et le transforme en code machine qu'un ordinateur peut comprendre.
Cependant, un package de compilateur typique est composé d'un préprocesseur, du compilateur principal qui transforme le langage informatique en code d'assemblage et d'un assembleur.
4. Qu'est-ce qu'un pré-processeur ?
Un pré-processeur est un programme qui analyse le code informatique écrit pour trouver et satisfaire ses dépendances, telles que les bibliothèques nécessaires.
Une fois que le préprocesseur s'est assuré que tout, y compris l'environnement d'exécution, est correct, un compilateur peut alors convertir le code en code assembleur.
5. Qu'est-ce qu'un assembleur ?
Un assembleur est un programme qui prend le niveau le plus bas de code informatique lisible par l'homme appelé langage d'assemblage et le transforme en code machine avec lequel un ordinateur peut fonctionner.
Le langage d'assemblage est généralement produit par un compilateur bien que l'on puisse également coder directement. Un programme d'assemblage peut inclure du code tel que :
MOUVEMENT AH, 02H
mais lorsque vous le compilez en code machine, vous n'obtenez que des zéros et des uns (par exemple, 0110011110101010).
6. Comment un programme s'exécute-t-il ?
Tout d'abord, le système d'exploitation charge le programme spécifié du stockage sur disque dur dans la mémoire système (RAM), puis lui permet de s'exécuter en demandant au processeur de poursuivre son exécution à partir de la première adresse mémoire du programme. Le processeur exécute toute commande qu'il voit, puis passe à la suivante, répétant souvent cette procédure des millions de fois par seconde.
Les processeurs 32 bits exécutent des instructions 32 bits (4 octets, double mot) à la fois, tandis que les processeurs 64 bits exécutent des instructions 64 bits (8 octets, quatre mots) à la fois. Ces instructions sont intégrées au CPU et c'est l'assembleur qui transforme le code de programmation en nombres binaires qui représentent les adresses de commande natives du CPU.
7. Définir un Sous-programme
Un sous-programme est une séquence d'instructions dans un programme qui peut être appelée et exécutée à tout moment. En d'autres termes, un sous-programme peut être une fonction, une méthode ou une procédure utilisée pour mettre en œuvre une tâche spécifique telle que l'envoi d'un message. email, ouvrir un fichier ou forcer brutalement une page de connexion.
8. Définir Langage machine
Le code machine est une séquence de nombres binaires qui contient les instructions d'exécution d'un microprocesseur spécifique et ses adresses mémoire associées.
Le code machine est traditionnellement produit par un assembleur conçu pour cette famille particulière de microprocesseurs.
9. Expliquez Langages compilés vs interprétés
Un langage informatique compilé doit être transformé en code machine avant d'être exécuté sur un ordinateur, tandis qu'un langage interprété n'a pas besoin d'être compilé au préalable.
Lorsque vous exécutez un programme interprété, il est d'abord traité par un interpréteur, qui le compile et l'exécute ensuite à la volée. Ces étapes supplémentaires rendent les langages interprétés tels que Python plus lents que les langages compilés tels que C.
10. Qu'est-ce qu'une boucle ?
Une boucle est une structure de code qui peut répéter des instructions spécifiques jusqu'à ce qu'un critère spécifié soit atteint. Ce critère peut inclure un nombre fixe de répétitions ou le changement d'une variable définie.
11. Liste des types de boucles populaires
Différents langages informatiques interpréteront les boucles de différentes manières. Les types de boucles populaires de la famille C incluent cependant :
- Boucle While() – il permet l'exécution de code spécifique, tant qu'un booléen while () la condition est remplie.
Par exemple tandis que(2>1){print("yahoo !")} ;. - Pour(;;) Boucle – contient trois expressions (initialisation ; évaluation; mettre à jour) qui définissent les conditions à tester, ainsi qu'une méthode flexible pour incrémenter le nombre. Il exécutera également du code au moins une fois.
- Boucle Do{} While() – ce type de boucle exécute la fais{} code au moins une fois avant de déterminer si le while () condition est toujours vraie.
12. Expliquez itération vs Récursivité
Une itération est l'utilisation d'une boucle pour exécuter les mêmes étapes de code, tandis que la récursivité est le processus d'une fonction qui s'appelle elle-même encore et encore. Le problème avec la récursivité, cependant, est que vous ne pouvez atteindre qu'une certaine profondeur jusqu'à ce que vous rencontriez des problèmes de mémoire.
13. Expliquez les emplois de Pause et continuer dans une boucle
A pause L'instruction termine l'exécution d'une boucle et continue l'exécution du reste du code informatique. UN continuer instruction, d'autre part, continue d'itérer la boucle depuis le début.
14. Qu'est-ce que la POO ?
OOP signifie Object Oriented Programming et c'est un paradigme de programmation qui implémente la conception de logiciels autour de données et d'objets, plutôt qu'autour de fonctions ou de procédures.
15. Qu'est-ce que la programmation procédurale ?
La programmation procédurale est un paradigme de programmation qui organise le code informatique autour des séquences ou étapes d'instructions à exécuter. Comme son nom l'indique, il s'agit d'une approche descendante qui commence le code à partir de la phase initiale des événements et se termine par la fin prévue des événements.
16. Expliquer la programmation fonctionnelle
La programmation fonctionnelle est un paradigme de programmation informatique qui s'approche développement de logiciels en appliquant des fonctions séquentielles qui ne modifient ni l'état ni les données des arguments fournis.
L'objectif est de créer des programmes plus robustes qui produisent les résultats attendus sans effets secondaires imprévus.
17. Expliquez Langage de haut niveau
Un langage de programmation de haut niveau est un langage informatique qui fait davantage appel à la compréhension humaine qu'aux spécificités ou à la nature de l'ordinateur.
Les langages de programmation de haut niveau tels que C et Python sont faciles à comprendre, tandis qu'un langage d'assemblage de bas niveau peut être très déroutant pour les débutants.
18. Liste populaire Langages de bas niveau
Il n'y a que deux langages de programmation de bas niveau : l'assembleur et le code machine.
19. Définir une attaque par injection SQL
Une attaque par injection SQL est un processus consistant à saisir des instructions SQL dans des champs d'entrée tels que des entrées de nom d'utilisateur ou d'adresse, dans l'espoir qu'un développeur n'a pas correctement nettoyé les entrées pendant la programmation. Et en cas de succès, une telle attaque permet à l'attaquant d'obtenir un accès administrateur au serveur.
20. Qu'est-ce qu'une table en SQL ?
Une table en SQL fait référence à une collection de données regroupées en colonnes et en lignes. Chaque colonne a un type de données distinct et vous pouvez avoir plusieurs tables dans une seule base de données. Vous pouvez également interroger plusieurs tables à la fois.
Vous créez une table avec :
CREATE TABLE nom_table(type de données colonne1, type de données colonne2, type de données colonne3, …) ;
21. Expliquez la différence entre un objet et une classe
Un objet est une instance d'une classe, tandis qu'une classe est un plan à partir duquel un objet est créé. Un objet peut avoir des états et des propriétés, comme la couleur, la hauteur, le poids, la vitesse, etc.
Ces propriétés doivent être définies ou initialisées avec des valeurs par défaut au minimum.
22. Combien de bits font un mégaoctet ?
Il y a 8,000,000 1 8 bits dans 10 mégaoctet car un octet équivaut à XNUMX bits et un méga à XNUMX6.
23. Définir un type de données flottant
Un flottant est un type de données qui représente un nombre avec des fractions décimales. Il est utilisé dans les situations où un niveau de précision plus élevé est nécessaire que ce que les entiers standard peuvent fournir. Un exemple de flotteur est :
0.013
or
25.932
24. Que signifie HexaDecimal 0xFF ?
0xFF signifie décimal 255 ou binaire 11111111. 0x signifie base16 ou notation hexadécimale, qui va de 1 à 9, puis continue avec A à F pour représenter 15. Ainsi, 0xF est décimal 15, tandis que 0xFF est décimal 255.
25. Nommer les types d'erreurs de programmation
Il existe 3 grands types d'erreurs dans un programme informatique, ce sont :
- Erreur de syntaxe
- Erreur logique
- Erreur d'exécution
26. Qu'est-ce qu'une erreur de syntaxe ?
Une erreur de syntaxe se produit lorsqu'il y a un écart par rapport à la syntaxe souvent stricte des langages de programmation. Cela peut résulter de la simple erreur de placement des lettres dans les mauvais paramètres transmis à une fonction. La plupart des compilateurs incluront le numéro de la ligne de code source où l'erreur s'est produite.
27. Qu'est-ce qu'une erreur logique ?
Une erreur de logique est une erreur qui résulte du fonctionnement d'un programme. Ainsi, bien que le programme puisse s'exécuter parfaitement, il n'atteint pas son objectif. Les erreurs logiques peuvent se produire de plusieurs façons et être causées par de nombreuses raisons.
28. Qu'est-ce qu'une erreur d'exécution ?
Une erreur d'exécution est une erreur de programme informatique qui se produit lors de l'exécution du programme et due à des circonstances imprévues. Ainsi, alors que le programme fonctionne parfaitement, par exemple, des problèmes de mémoire et de réseau peuvent entraîner un mauvais comportement du programme.
29. Expliquez Langages forts vs faiblement typés
Un langage fortement typé est strict sur ses différents types de données et sur la façon dont vous pouvez les convertir, tandis qu'un langage faiblement typé impose moins de restrictions sur les types de données et leurs définitions.
De nombreux langages faiblement typés convertissent automatiquement les types de données, tandis que les langages fortement typés nécessitent souvent des conversions explicites.
30. Qu'est-ce que l'architecture MVC ?
MVC fait référence à Model-View-Controller et est un modèle de développement logiciel pour les interfaces utilisateur. Il sépare la logique du programme en 3 parties.
La modèle partie gère la logique de données sous-jacente des objets en question, tandis que la partie vue gère l'affichage des informations à l'utilisateur, et le contrôleur gère le flux de données entre les vues et les modèles. La conception MVC est souvent utilisée avec la programmation orientée objet.
31. Définir un Algorithme
Un algorithme est une séquence de procédures conçues pour résoudre un problème spécifique. Ces procédures sont généralement décomposées en étapes plus petites et l'ordinateur les exécute exactement de cette façon à chaque fois.
Les exemples d'algorithmes incluent la reconnaissance faciale, la recherche Google, la façon dont vous attachez vos chaussures, l'encodage ou le cryptage des données, etc.
32. Ce qui est Apprentissage automatique?
L'apprentissage automatique ou ML est une section de intelligence artificielle qui vise à aider les systèmes à identifier des modèles et à prendre des décisions par eux-mêmes grâce à la consommation de données.
Cela améliore alors leurs performances ou leur efficacité. Les systèmes d'apprentissage automatique peuvent être supervisés, non supervisés et basés sur le renforcement.
33. Quels sont Expressions régulières?
Une expression régulière ou Regex est une chaîne utilisée pour définir des modèles de recherche dans des documents texte. Différents langages de programmation implémentent des expressions régulières ou utilisent des bibliothèques de regex populaires. Un exemple de regex pour faire correspondre tous les caractères d'un texte est :
(. *)
alors que ce qui suit ne correspond qu'aux fichiers mp3 :
.+\.(mp3)$
34. Que fait l'opérateur du module (%) ?
L'opérateur module % prend deux opérandes et divise le premier opérande par le second. Il renvoie ensuite le reste de l'opération en conséquence.
Il est souvent utilisé pour tester les nombres pairs et impairs en divisant n'importe quel nombre entier par 2, où un résultat 0 signifie un nombre pair et 1 signifie un nombre impair.
35. Expliquez Bifurcation de processus
Le fork vient du fourchette() fonction dans les systèmes Unix et Linux qui peut être utilisée par un processus en cours d'exécution pour créer une copie de lui-même. Ainsi, le forking de processus est la duplication d'un processus pour créer deux processus similaires et s'exécutant simultanément.
Un autre type de fork consiste à prendre le code source d'un open-source Projet et créer un programme entièrement nouveau à partir de celui-ci.
36. Expliquez Frai de fil
La génération de threads est le processus de création d'un nouveau thread CPU pour exécuter un processus. Le frai est souvent utilisé par les programmes gourmands en calcul pour tirer parti des capacités multi-threading d'un processeur et son succès dépend du processeur sur lequel il s'exécute, du nombre de cœurs dont il dispose et du nombre de threads par cœur qu'il offre.
37. Qu'est-ce que Mots réservés Signifier?
Les mots réservés sont des termes que vous n'êtes pas autorisé à utiliser comme identifiant dans un langage de programmation. Cela inclut les fonctions, les variables et les étiquettes. Ils sont réservés car ils ont déjà été définis et ont des significations spécifiques.
38. Lister les mots réservés populaires
Différentes langues ont différents mots réservés en fonction de leur syntaxe. Voici les mots réservés les plus populaires en programmation :
- IF
- VRAI
- FAUX
- INTERRUPTEUR
- AUTRE
- Adhésion
- Booléen
- RETOUR
- FONCTION
- BREAK
- GOTO
39. Qu'est-ce qu'une chaîne ?
Une chaîne est une séquence de caractères, souvent contenue dans un tableau et utilisée pour définir des données textuelles. La chaîne la plus populaire est "hello world".
40. Qu'est-ce qu'une variable ?
Une variable est une valeur qui peut changer pendant l'exécution d'un programme. Une variable peut être de n'importe quel type de données, y compris des chaînes et des entiers. Par exemple, un programme est initialisé comme ci-dessous :
int a = 0;
entier b = 1;
puis lors de l'exécution, des modifications sont apportées :
b = a+b ; //b a varié
41. Qu'est-ce qu'une constante ?
Une constante est une variable qui ne devrait pas changer pendant l'exécution du programme. Un bon exemple est la vitesse de la lumière ou du son. Différents langages de programmation vous permettent de définir des constantes de différentes manières. Par exemple, en C :
const float milieu_c = 261.62 ; // La clé du milieu c sur un piano est de 261.6255 Hz
42. Définir un tableau
Un tableau est un type de variable utilisé pour stocker plusieurs valeurs à la fois. De nombreux langages vous permettent de stocker uniquement des valeurs de types de données similaires, tandis que d'autres langages peuvent gérer des tableaux de types différents. Vous pouvez également avoir des tableaux multidimensionnels, qui sont des tableaux de tableaux et peuvent devenir désordonnés.
Définir un tableau en mql4 est simple avec :
chaîne TextArray[100] ; //un tableau de cent chaînes
43. Ce qui est Surcharge de fonction ?
La surcharge de fonctions est une méthode qui permet à un développeur de définir plusieurs fonctions qui partagent le même nom mais qui ont des fonctionnalités différentes. Ceci est réalisé en créant les différentes versions de fonction avec différents arguments. Le compilateur sait alors quelle fonction est nécessaire par le type et le nombre d'arguments fournis.
44. Définir un Appel par référence
Un appel par référence est une méthode de transmission de l'adresse mémoire des arguments à une fonction, par opposition à la méthode standard de transmission d'une copie de la valeur de l'argument. Le but des appels de référence est que l'argument soit directement modifié par la fonction.
45. Expliquez Opérateurs arithmétiques
Ce sont des caractères spéciaux qui fonctionnent pour effectuer des opérations arithmétiques dans un langage de programmation. Les opérateurs arithmétiques comprennent :
- L'addition ou plus unaire (+)
- Soustraction ou moins unaire (-)
- Multiplications (*)
- Section (/)
- Module (%).
46. Expliquez opérateurs logiques
Les opérateurs logiques sont des mots ou des symboles utilisés pour effectuer des opérations basées sur la logique conditionnelle. La plupart des langages n'ont que 3 opérateurs logiques :
- ET (&& en C, C++, JavaScript)
- OR (|| en C, C++, JavaScript)
- ne pas (! en C, C++, JavaScript)
47. Logique 1 ET 0 = ?
Une opération logique 1 ET 0 vous donnera non car le deuxième opérande est 0 et vous avez besoin que les deux opérandes de l'opération ET soient 1 ou TRUE pour obtenir une sortie positive.
48. NON logique 1 = ?
Une opération logique NOT 1 vous donnera non parce que l'opérateur NOT annule tout ce que vous lui donnez, ce qui signifie qu'il transforme 1 en 0 et 0 en 1. Ainsi, lui donner un opérande 1 ou TRUE donne 0 ou FALSE.
49. Logique 1 NAND 1 = ?
Une opération logique 1 NAND 1 produira non car les deux opérandes sont TRUE et l'opérateur NAND nie toujours deux entrées similaires pour produire une sortie opposée.
Ainsi, si l'opération était 0 NON ET 0, alors la sortie serait 1 ou TRUE.
50. Logique 1 XOR 1 = ?
Une opération logique 1 XOR 1 produira non car alors qu'une opération OU normale produira VRAI sur l'une ou les deux entrées étant VRAI, une opération XOR (OU exclusif) ne produit VRAI que lorsqu'une seule entrée et pas l'autre, est VRAI.
Conclusion
Nous avons atteint la fin de cette liste des 50 questions d'entrevue de programmation les plus importantes et leurs réponses. Et comme vous pouvez le voir, le monde de la programmation est vaste mais passionnant.
Il n'y a pas deux entretiens identiques. Ainsi, bien que cette liste vous indique les bonnes directions de sujet, vous devriez également essayer de mieux comprendre chaque problème.