
Entretien d'embauche en algorithmique Python
Description
Introduction au livre
Maîtrisez l'art de la résolution de problèmes algorithmiques pour les demandeurs d'emploi et ceux qui se préparent aux tests de codage et aux entretiens ! Solutions et analyses des questions d'examens antérieurs de LeetCode, le meilleur site de résolution de problèmes en ligne au monde ! « Python Algorithm Interview » est un ouvrage destiné aux développeurs débutants comme aux plus expérimentés. Grâce à plus de 200 illustrations, il permet d'appréhender rapidement les algorithmes et la théorie des structures de données. Il aborde également les techniques d'optimisation des performances, la syntaxe de base de Python et propose diverses solutions pratiques à travers des exemples de code implémentés en Python. Les entretiens techniques sont devenus la première étape du recrutement de développeurs dans le monde, notamment grâce à Microsoft et Google ! Analysez les questions des tests techniques des grandes entreprises et obtenez des solutions et des explications détaillées pour vous rapprocher d'un emploi ou d'une nouvelle carrière. Ce livre est un guide complet pour la programmation de tests d'embauche, offrant une compréhension approfondie des principales théories algorithmiques utiles sur le terrain et en pratique, ainsi qu'une compréhension détaillée des fonctions et de la grammaire de base de Python. Après avoir lu ce livre, vous aurez la réponse à la question : « Pourquoi étudier les algorithmes ? » |
- Vous pouvez consulter un aperçu du contenu du livre.
Aperçu
indice
[Partie 1 : Entretien de codage]
Chapitre 1 Entretien de codage
Plateforme de test en ligne pour les entretiens techniques
État actuel de l'utilisation des plateformes de tests de codage par les entreprises nationales
Préparation à un test de codage en ligne
Entretien de codage sur tableau blanc
Chapitre 2 : Choisir un langage de programmation
Préférences linguistiques à travers les statistiques de la concurrence
Fonctionnalités par langage de programmation
__boucle
Programmation générique
__Itération de tableau
__struct
__classe
Quel est le meilleur langage de programmation pour coder des tests ?
[Partie 2 Python]
Chapitre 3 Python
Comprendre Python
Grammaire Python
__Indent
Convention de dénomination
__type indice
compréhension de liste
__générateur
__gamme
__énumérer
__// opérateur de division
__imprimer
__passer
__locaux
Style de codage
__Noms et commentaires des variables
compréhension de liste
Guide de style Python de Google
Chapitre 4 : Notation Big O, types de données
Grand O
__Supérieur et pire
__Analyse du remboursement par versements échelonnés
__Parallélisation
Type de données
__Types de données Python
__type primitif
__objet
Chapitre 5 Listes et dictionnaires
Liste
Comment utiliser la liste __list
__Liste des fonctionnalités
Dictionnaire
Comment utiliser le __dictionnaire
module __dictionnaire
Chapitre 6 Manipulation des cordes
[Problème]_01 Palindrome valide
[Problème]_02 Inverser une chaîne
[Problème]_03 Réorganisation du fichier journal
[Problème]_04 Mots les plus courants
[Problème]_05 Anagramme de groupe
Plusieurs méthodes de tri
[Problème]_06 Plus longue sous-chaîne palindromique
Unicode et UTF-8
[Partie 3 : Structures de données linéaires]
Chapitre 7 Agencement
[Problème]_07 Somme de deux nombres
[Problème]_08 Piégeage des eaux pluviales
[Problème]_09 Somme de trois nombres
[Problème]_10 Partition de tableau I
[Problème]_11 Multiplication de tableaux s'excluant eux-mêmes
[Problème]_12 Meilleur moment pour acheter et vendre des actions
Chapitre 8 Listes chaînées
[Problème]_13 Liste chaînée palindromique
[Problème]_14 Fusion de deux listes triées
[Problème]_15 Liste chaînée inversée
[Problème]_16 Addition de deux nombres
[Problème]_17 Échange de nœuds de paires
[Problème]_18 Liste chaînée paire-impaire
[Problème]_19 Liste chaînée inversée II
Chapitre 9 Piles et files d'attente
empiler
__Implémentation d'un type abstrait de données de pile à l'aide d'une liste chaînée
[Problème]_20 Parenthèses valides
[Problème]_21 Suppression des caractères en double
[Problème]_22 Température quotidienne
signal
[Problème]_23 Implémentation d'une pile à l'aide d'une file d'attente
[Problème]_24 Implémentation d'une file d'attente à l'aide d'une pile
[Problème]_25 Conception de file d'attente circulaire
Jeu de 10 cartes, file d'attente prioritaire
pont
[Problème]_26 Conception de terrasse circulaire
file d'attente prioritaire
[Problème]_27 Fusion de k listes triées
Chapitre 11 Tables de hachage
Hacher
__problème d'anniversaire
Principe des tiroirs
facteur de charge
Fonction __hash
accident
__Chaînage individuel
__Adressage ouvert
Méthodes d'implémentation de tables de hachage spécifiques au langage
[Problème]_28 Conception de table de hachage
[Problème]_29 Pierres précieuses et gemmes
[Problème]_30 Plus longue sous-chaîne sans caractères dupliqués
[Problème]_31 Les K éléments les plus fréquents
[Partie 4 : Structures de données non linéaires]
Chapitre 12 Graphique
Chemin d'Euler
Chemin Hamilton
Parcours de graphe
__DFS (recherche en profondeur d'abord)
__BFS (Recherche en largeur)
Retour en arrière
Problème de satisfaction de contraintes
[Problème]_32 Nombre d'îles
[Problème]_33 Combinaison de caractères du numéro de téléphone
[Problème]_34 Permutations
[Problème]_35 Combinaison
[Problème]_36 Somme des combinaisons
[Problème]_37 Sous-ensemble
[Problème]_38 Restructuration du calendrier
[Problème]_39 Horaire du cours
Chapitre 13 : Le problème du chemin le plus court
[Problème]_40 Délai réseau
[Question]_41 Vol le moins cher à l'intérieur du point de transit K
Chapitre 14 Arbre
Chaque nom de l'arbre
Graphique vs. Arbre
arbre binaire
[Problème]_42 Profondeur maximale d'un arbre binaire
[Problème]_43 Diamètre d'un arbre binaire
[Problème]_44 Chemin le plus long avec des valeurs identiques
[Problème]_45 Inversion d'arbre binaire
[Problème]_46 Fusion de deux arbres binaires
[Problème]_47 Sérialisation et désérialisation d'arbres binaires
[Problème]_48 Arbre binaire équilibré
[Problème]_49 Hauteur minimale de l'arbre
Arbre binaire de recherche (BST)
Arbre de recherche binaire auto-équilibré
[Problème]_50 Conversion d'un tableau trié en arbre binaire de recherche
[Problème]_51 Conversion d'un arbre binaire de recherche (BST) en un arbre de sommes plus grand
[Problème]_52 Plage d'accord des arbres binaires de recherche (BST)
[Problème]_53 Distance minimale entre les nœuds d'un arbre binaire de recherche (BST)
Parcours d'arbre
[Problème]_54 Construction d'un arbre binaire à l'aide des parcours préfixe et infixe
Chapitre 15 Tas
Opérations sur le tas
__insertion
__extraction
[Problème]_55 K-ième plus grand élément du tableau
Chapitre 16 Essayez
[Problème]_56 Implémentation de l'arbre
[Problème]_57 Paire de palindromes
[Partie 5 Algorithme]
Chapitre 17 Tri
Tri à bulles
tri fusion
Tri rapide
Tri stable vs. tri instable
[Problème]_58 Tri de listes
[Problème]_59 Fusion de sections
[Problème]_60 Liste de tri par insertion
[Problème]_61 Plus grand nombre
[Problème]_62 Anagrammes valides
[Problème]_63 Tri par couleur
[Problème]_64 Kème point le plus proche de l'origine
Chapitre 18 : Recherche binaire
[Problème]_65 Recherche binaire
[Problème]_66 Recherche dans un tableau trié par rotation
[Problème]_67 Intersection de deux tableaux
[Problème]_68 Somme de deux nombres II
[Problème]_69 Recherche de matrice 2D II
Chapitre 19 Manipulation des bits
opérateurs booléens
opérateurs bit à bit
Quiz sur la manipulation du rythme
Opérations binaires limitées à __Chiffres
Complément à 2
format de nombre en complément à 2
Opération mathématique du complément à 2
__opérateur binaire NON
[Problème]_70 Numéro unique
[Problème]_71 Distance de Hamming
[Problème]_72 Somme de deux entiers
[Problème]_73 Vérification UTF-8
[Problème]_74 Nombre de bits de 1
Chapitre 20 Fenêtre coulissante
[Problème]_75 Fenêtre coulissante maximale
[Problème]_76 Fenêtre minimale contenant une sous-chaîne
[Problème]_77 Remplacer le caractère répétitif le plus long
Chapitre 21 : Algorithmes gloutons
Problème de sac à dos
Problème de change de monnaie
somme la plus élevée
[Problème]_78 Le meilleur moment pour acheter et vendre des actions II
[Problème]_79 Réorganisation de la file d'attente par clé
[Problème]_80 Planificateur de tâches
[Problème]_81 Station-service
[Problème]_82 Octroi de cookies
Chapitre 22 Diviser pour mieux régner
[Problème]_83 Élément majoritaire
[Problème]_84 Différentes façons d'insérer des parenthèses
Chapitre 23 : Programmation dynamique
Sous-structure optimale
Sous-problèmes qui se chevauchent
Méthodologie de programmation dynamique
[Problème]_85 Nombres de Fibonacci
Problème de sac à dos 0-1
[Problème]_86 Sous-tableau maximum
[Problème]_87 Monter les escaliers
[Problème]_88 Voleur de maison
Annexe A Guide de changement d'entreprise et de carrière
Guide de l'entreprise
Préparation à l'emploi
se préparer à un changement d'emploi
Guide de changement d'emploi
Annexe B : Solutions aux problèmes de recrutement public de Kakao
[Problème]_B1 Carte secrète
[Problème]_B2 Jeu de fléchettes
[Problème]_B3 Cache
[Problème]_B4 Navette
[Problème]_B5 Regroupement d'actualités
[Problème]_B6 Friends 4 Block
[Problème]_B7 Circulation de Chuseok
Chapitre 1 Entretien de codage
Plateforme de test en ligne pour les entretiens techniques
État actuel de l'utilisation des plateformes de tests de codage par les entreprises nationales
Préparation à un test de codage en ligne
Entretien de codage sur tableau blanc
Chapitre 2 : Choisir un langage de programmation
Préférences linguistiques à travers les statistiques de la concurrence
Fonctionnalités par langage de programmation
__boucle
Programmation générique
__Itération de tableau
__struct
__classe
Quel est le meilleur langage de programmation pour coder des tests ?
[Partie 2 Python]
Chapitre 3 Python
Comprendre Python
Grammaire Python
__Indent
Convention de dénomination
__type indice
compréhension de liste
__générateur
__gamme
__énumérer
__// opérateur de division
__imprimer
__passer
__locaux
Style de codage
__Noms et commentaires des variables
compréhension de liste
Guide de style Python de Google
Chapitre 4 : Notation Big O, types de données
Grand O
__Supérieur et pire
__Analyse du remboursement par versements échelonnés
__Parallélisation
Type de données
__Types de données Python
__type primitif
__objet
Chapitre 5 Listes et dictionnaires
Liste
Comment utiliser la liste __list
__Liste des fonctionnalités
Dictionnaire
Comment utiliser le __dictionnaire
module __dictionnaire
Chapitre 6 Manipulation des cordes
[Problème]_01 Palindrome valide
[Problème]_02 Inverser une chaîne
[Problème]_03 Réorganisation du fichier journal
[Problème]_04 Mots les plus courants
[Problème]_05 Anagramme de groupe
Plusieurs méthodes de tri
[Problème]_06 Plus longue sous-chaîne palindromique
Unicode et UTF-8
[Partie 3 : Structures de données linéaires]
Chapitre 7 Agencement
[Problème]_07 Somme de deux nombres
[Problème]_08 Piégeage des eaux pluviales
[Problème]_09 Somme de trois nombres
[Problème]_10 Partition de tableau I
[Problème]_11 Multiplication de tableaux s'excluant eux-mêmes
[Problème]_12 Meilleur moment pour acheter et vendre des actions
Chapitre 8 Listes chaînées
[Problème]_13 Liste chaînée palindromique
[Problème]_14 Fusion de deux listes triées
[Problème]_15 Liste chaînée inversée
[Problème]_16 Addition de deux nombres
[Problème]_17 Échange de nœuds de paires
[Problème]_18 Liste chaînée paire-impaire
[Problème]_19 Liste chaînée inversée II
Chapitre 9 Piles et files d'attente
empiler
__Implémentation d'un type abstrait de données de pile à l'aide d'une liste chaînée
[Problème]_20 Parenthèses valides
[Problème]_21 Suppression des caractères en double
[Problème]_22 Température quotidienne
signal
[Problème]_23 Implémentation d'une pile à l'aide d'une file d'attente
[Problème]_24 Implémentation d'une file d'attente à l'aide d'une pile
[Problème]_25 Conception de file d'attente circulaire
Jeu de 10 cartes, file d'attente prioritaire
pont
[Problème]_26 Conception de terrasse circulaire
file d'attente prioritaire
[Problème]_27 Fusion de k listes triées
Chapitre 11 Tables de hachage
Hacher
__problème d'anniversaire
Principe des tiroirs
facteur de charge
Fonction __hash
accident
__Chaînage individuel
__Adressage ouvert
Méthodes d'implémentation de tables de hachage spécifiques au langage
[Problème]_28 Conception de table de hachage
[Problème]_29 Pierres précieuses et gemmes
[Problème]_30 Plus longue sous-chaîne sans caractères dupliqués
[Problème]_31 Les K éléments les plus fréquents
[Partie 4 : Structures de données non linéaires]
Chapitre 12 Graphique
Chemin d'Euler
Chemin Hamilton
Parcours de graphe
__DFS (recherche en profondeur d'abord)
__BFS (Recherche en largeur)
Retour en arrière
Problème de satisfaction de contraintes
[Problème]_32 Nombre d'îles
[Problème]_33 Combinaison de caractères du numéro de téléphone
[Problème]_34 Permutations
[Problème]_35 Combinaison
[Problème]_36 Somme des combinaisons
[Problème]_37 Sous-ensemble
[Problème]_38 Restructuration du calendrier
[Problème]_39 Horaire du cours
Chapitre 13 : Le problème du chemin le plus court
[Problème]_40 Délai réseau
[Question]_41 Vol le moins cher à l'intérieur du point de transit K
Chapitre 14 Arbre
Chaque nom de l'arbre
Graphique vs. Arbre
arbre binaire
[Problème]_42 Profondeur maximale d'un arbre binaire
[Problème]_43 Diamètre d'un arbre binaire
[Problème]_44 Chemin le plus long avec des valeurs identiques
[Problème]_45 Inversion d'arbre binaire
[Problème]_46 Fusion de deux arbres binaires
[Problème]_47 Sérialisation et désérialisation d'arbres binaires
[Problème]_48 Arbre binaire équilibré
[Problème]_49 Hauteur minimale de l'arbre
Arbre binaire de recherche (BST)
Arbre de recherche binaire auto-équilibré
[Problème]_50 Conversion d'un tableau trié en arbre binaire de recherche
[Problème]_51 Conversion d'un arbre binaire de recherche (BST) en un arbre de sommes plus grand
[Problème]_52 Plage d'accord des arbres binaires de recherche (BST)
[Problème]_53 Distance minimale entre les nœuds d'un arbre binaire de recherche (BST)
Parcours d'arbre
[Problème]_54 Construction d'un arbre binaire à l'aide des parcours préfixe et infixe
Chapitre 15 Tas
Opérations sur le tas
__insertion
__extraction
[Problème]_55 K-ième plus grand élément du tableau
Chapitre 16 Essayez
[Problème]_56 Implémentation de l'arbre
[Problème]_57 Paire de palindromes
[Partie 5 Algorithme]
Chapitre 17 Tri
Tri à bulles
tri fusion
Tri rapide
Tri stable vs. tri instable
[Problème]_58 Tri de listes
[Problème]_59 Fusion de sections
[Problème]_60 Liste de tri par insertion
[Problème]_61 Plus grand nombre
[Problème]_62 Anagrammes valides
[Problème]_63 Tri par couleur
[Problème]_64 Kème point le plus proche de l'origine
Chapitre 18 : Recherche binaire
[Problème]_65 Recherche binaire
[Problème]_66 Recherche dans un tableau trié par rotation
[Problème]_67 Intersection de deux tableaux
[Problème]_68 Somme de deux nombres II
[Problème]_69 Recherche de matrice 2D II
Chapitre 19 Manipulation des bits
opérateurs booléens
opérateurs bit à bit
Quiz sur la manipulation du rythme
Opérations binaires limitées à __Chiffres
Complément à 2
format de nombre en complément à 2
Opération mathématique du complément à 2
__opérateur binaire NON
[Problème]_70 Numéro unique
[Problème]_71 Distance de Hamming
[Problème]_72 Somme de deux entiers
[Problème]_73 Vérification UTF-8
[Problème]_74 Nombre de bits de 1
Chapitre 20 Fenêtre coulissante
[Problème]_75 Fenêtre coulissante maximale
[Problème]_76 Fenêtre minimale contenant une sous-chaîne
[Problème]_77 Remplacer le caractère répétitif le plus long
Chapitre 21 : Algorithmes gloutons
Problème de sac à dos
Problème de change de monnaie
somme la plus élevée
[Problème]_78 Le meilleur moment pour acheter et vendre des actions II
[Problème]_79 Réorganisation de la file d'attente par clé
[Problème]_80 Planificateur de tâches
[Problème]_81 Station-service
[Problème]_82 Octroi de cookies
Chapitre 22 Diviser pour mieux régner
[Problème]_83 Élément majoritaire
[Problème]_84 Différentes façons d'insérer des parenthèses
Chapitre 23 : Programmation dynamique
Sous-structure optimale
Sous-problèmes qui se chevauchent
Méthodologie de programmation dynamique
[Problème]_85 Nombres de Fibonacci
Problème de sac à dos 0-1
[Problème]_86 Sous-tableau maximum
[Problème]_87 Monter les escaliers
[Problème]_88 Voleur de maison
Annexe A Guide de changement d'entreprise et de carrière
Guide de l'entreprise
Préparation à l'emploi
se préparer à un changement d'emploi
Guide de changement d'emploi
Annexe B : Solutions aux problèmes de recrutement public de Kakao
[Problème]_B1 Carte secrète
[Problème]_B2 Jeu de fléchettes
[Problème]_B3 Cache
[Problème]_B4 Navette
[Problème]_B5 Regroupement d'actualités
[Problème]_B6 Friends 4 Block
[Problème]_B7 Circulation de Chuseok
Avis de l'éditeur
[Structure de ce livre]
[Partie 1 : Entretien de codage]
Le chapitre 1, « Entretien technique », présente les tests de programmation et explique comment les réussir. Il propose également des conseils pour résoudre efficacement les problèmes et améliorer son score, notamment sur la gestion des délais d'attente et des exceptions.
Le chapitre 2, « Choisir un langage de programmation », examine les caractéristiques de chaque langage et détermine quel langage est le mieux adapté aux tests de codage.
[Partie 2 Python]
Dans le chapitre 3, « Python », nous choisissons Python comme langage pour coder les tests et examinons ses fonctionnalités en détail.
Le chapitre 4, « Big O, types de données », aborde brièvement la définition et les idées fausses concernant Big O, puis examine de plus près les caractéristiques des types de données Python.
Pour utiliser correctement Python, le langage que nous avons choisi, nous devons également avoir une compréhension détaillée de ses caractéristiques.
Le chapitre 5, « Listes et dictionnaires », examine en détail deux types de données représentatifs en Python qui continueront d'être utilisés dans les futurs tests de codage : les listes et les dictionnaires.
Le chapitre 6, « Manipulation des cordes », examine des sujets liés aux cordes et commence à résoudre sérieusement divers problèmes de ce chapitre.
[Partie 3 : Structures de données linéaires]
Du chapitre 7, « Tableaux », au chapitre 11, « Tables de hachage », nous explorerons divers sujets liés aux structures de données linéaires et résoudrons des problèmes pour nous préparer aux entretiens de codage.
[Partie 4 : Structures de données non linéaires]
Du chapitre 12, « Graphes », au chapitre 16, « Essais », nous explorerons des sujets liés aux structures de données non linéaires et résoudrons des problèmes pour nous préparer aux entretiens de codage.
[Partie 5 Algorithme]
Le chapitre 17, « Tri », examine un par un divers algorithmes de tri, appelés la fleur des algorithmes.
Plus précisément, les chapitres 21 (« Algorithme glouton »), 22 (« Diviser pour régner ») et 23 (« Programmation dynamique ») sont indépendants, mais traitent de sujets connexes. Le chapitre 23 résume donc leur contenu et examine en détail les caractéristiques et les différences de chacun.
[supplément]
L’annexe A, « Guide du changement d’entreprise et de carrière », offre un aperçu pratique et détaillé de la manière de choisir une entreprise pour laquelle travailler ou vers laquelle être muté, de la manière de naviguer dans le processus de recherche d’emploi et de changement de carrière, ainsi que des informations utiles pour les recruteurs.
Dans l'annexe B, « Solutions aux problèmes de recrutement de Kakao », nous mobiliserons toutes les capacités algorithmiques que nous avons explorées jusqu'à présent pour résoudre tous les problèmes qui ont été réellement testés lors du recrutement de nouveaux développeurs Kakao de 2017 en utilisant les meilleures méthodes possibles.
[Caractéristiques principales de ce livre]
- Syntaxe et techniques de programmation Python fondamentales, utiles pour le développement pratique et les tests de code.
- Définition et contexte des algorithmes et théories des structures de données essentiels que les développeurs doivent connaître
- 215 illustrations visuelles qui vous aident à comprendre la théorie des algorithmes en un coup d'œil.
- Solutions aux questions clés des examens précédents, issues de LeetCode, le meilleur site de résolution de problèmes au monde.
- Solutions et explications des problèmes issus des tests de codage réels des concours de recrutement de Kakao
- Amélioration progressive de la solution et analyse comparative à l'aide de diverses techniques d'optimisation
- Comparaison des performances et de la vitesse d'exécution de la solution selon l'implémentation de l'algorithme
- De la sélection des documents aux entretiens, un guide pour se préparer à l'emploi et aux changements de carrière dans le domaine du développement.
- Conseils variés pour construire un parcours professionnel de développeur réussi
[À qui ce livre est destiné]
Ce livre est une lecture incontournable pour les développeurs en quête d'un emploi ou d'une reconversion professionnelle au sein des plus grandes entreprises informatiques coréennes, ainsi que pour les demandeurs d'emploi et les étudiants qui débutent leur carrière et qui recherchent des supports d'apprentissage ou des ouvrages de référence abordant les points suivants :
● Comment puis-je réussir mes tests de codage ?
● Comment puis-je bien résoudre les problèmes d'algorithmes ?
● Comment réussir un entretien d'embauche ?
● Comment puis-je devenir bon en Python ?
Les lecteurs de ce livre doivent avoir une expérience en programmation dans un ou plusieurs langages et être prêts à apprendre les structures de données et les algorithmes de base.
Vous pouvez lire ce livre sans connaître Python, mais si possible, il sera beaucoup plus utile pour comprendre son contenu si vous le lisez avec des connaissances de base en Python.
[Note de l'auteur]
En août 2017, Kakao a mené une expérience intéressante.
Le recrutement des nouveaux développeurs s'est effectué par le biais d'un processus de recrutement ouvert et anonyme, auquel toute personne pouvait postuler en fournissant simplement son nom et ses coordonnées.
C'était une tentative audacieuse et un cas rare même dans le secteur informatique de l'époque.
Les efforts du comité de sélection pour choisir de bons promoteurs immobiliers se sont également intensifiés.
Pour rendre le test plus accessible aux candidats tout en intégrant les algorithmes clés, nous avons créé des dizaines de questions utilisant les caractères Kakao, et les examinateurs ont chacun résolu méticuleusement les problèmes à tour de rôle.
Nous avons eu des discussions suffisantes lors de l'évaluation par les pairs et avons décidé, par un vote majoritaire, de publier ou non la question.
Bien que le processus fût fastidieux et répétitif, il était nécessaire et raisonnable.
Après avoir suivi ces différentes étapes, nous avons finalement sélectionné un total de sept problèmes, qui ont été bien accueillis jusqu'à aujourd'hui et sont devenus des cas exemplaires de recrutement à l'aveugle (tous les problèmes de recrutement Kakao de cette année-là sont résolus dans l'annexe B de ce livre).
Fort de son succès à l'époque, le recrutement à l'aveugle s'est perpétué et a même influencé les pratiques d'embauche d'autres entreprises. Rétrospectivement, c'est un honneur d'avoir contribué à cette histoire remarquable.
Ce livre relate mon expérience en matière de tests de codage à l'époque, mon expérience en matière d'entretiens techniques avec d'innombrables candidats par la suite, et mon expérience en matière d'analyse approfondie des processus d'entretiens techniques de nombreuses entreprises afin d'améliorer mes propres entretiens.
Et c'est sur cette base que j'ai également synthétisé et intégré diverses expériences vécues lors de mes tentatives de changement d'emploi.
Mes différentes expériences, en tant qu'intervieweur ou candidat, m'ont permis de prendre conscience, du point de vue de l'intervieweur, de certaines erreurs que je n'avais pas remarquées depuis longtemps. Après avoir changé de poste, je suis devenu un intervieweur plus compétent et plus efficace. J'ai bien sûr rassemblé et organisé toutes ces expériences dans ce livre.
Il existe parfois une idée fausse selon laquelle les entretiens d'embauche en algorithmique ne sont que des entretiens formels que seuls les jeunes diplômés peuvent réussir.
Est-ce vraiment vrai ? Pourquoi pensez-vous résoudre des problèmes algorithmiques ? Pourquoi pensez-vous avoir étudié les mathématiques pendant tout ce temps ? La raison pour laquelle nous étudions les mathématiques et les algorithmes est de construire des bases solides (les mathématiques) et ensuite, grâce à la pensée logique (la pensée mathématique), de résoudre des problèmes (la programmation).
Les différentes méthodes de réflexion, structures de données et compétences de résolution de problèmes intégrées aux algorithmes développent des capacités de pensée systématique et, de plus, constituent une base intellectuelle solide, essentielle pour un bon développeur.
En apprenant systématiquement les algorithmes et en améliorant vos compétences, vous deviendrez un meilleur développeur.
À partir de maintenant, vous devrez résoudre assidûment les problèmes de ce livre en utilisant Python, ainsi que Leetcode.
Résoudre le problème sur un tableau blanc est également une bonne idée.
Avant tout, j'espère que ce livre vous sera un bon guide pour votre emploi, votre changement de travail, votre carrière et votre vie.
[Partie 1 : Entretien de codage]
Le chapitre 1, « Entretien technique », présente les tests de programmation et explique comment les réussir. Il propose également des conseils pour résoudre efficacement les problèmes et améliorer son score, notamment sur la gestion des délais d'attente et des exceptions.
Le chapitre 2, « Choisir un langage de programmation », examine les caractéristiques de chaque langage et détermine quel langage est le mieux adapté aux tests de codage.
[Partie 2 Python]
Dans le chapitre 3, « Python », nous choisissons Python comme langage pour coder les tests et examinons ses fonctionnalités en détail.
Le chapitre 4, « Big O, types de données », aborde brièvement la définition et les idées fausses concernant Big O, puis examine de plus près les caractéristiques des types de données Python.
Pour utiliser correctement Python, le langage que nous avons choisi, nous devons également avoir une compréhension détaillée de ses caractéristiques.
Le chapitre 5, « Listes et dictionnaires », examine en détail deux types de données représentatifs en Python qui continueront d'être utilisés dans les futurs tests de codage : les listes et les dictionnaires.
Le chapitre 6, « Manipulation des cordes », examine des sujets liés aux cordes et commence à résoudre sérieusement divers problèmes de ce chapitre.
[Partie 3 : Structures de données linéaires]
Du chapitre 7, « Tableaux », au chapitre 11, « Tables de hachage », nous explorerons divers sujets liés aux structures de données linéaires et résoudrons des problèmes pour nous préparer aux entretiens de codage.
[Partie 4 : Structures de données non linéaires]
Du chapitre 12, « Graphes », au chapitre 16, « Essais », nous explorerons des sujets liés aux structures de données non linéaires et résoudrons des problèmes pour nous préparer aux entretiens de codage.
[Partie 5 Algorithme]
Le chapitre 17, « Tri », examine un par un divers algorithmes de tri, appelés la fleur des algorithmes.
Plus précisément, les chapitres 21 (« Algorithme glouton »), 22 (« Diviser pour régner ») et 23 (« Programmation dynamique ») sont indépendants, mais traitent de sujets connexes. Le chapitre 23 résume donc leur contenu et examine en détail les caractéristiques et les différences de chacun.
[supplément]
L’annexe A, « Guide du changement d’entreprise et de carrière », offre un aperçu pratique et détaillé de la manière de choisir une entreprise pour laquelle travailler ou vers laquelle être muté, de la manière de naviguer dans le processus de recherche d’emploi et de changement de carrière, ainsi que des informations utiles pour les recruteurs.
Dans l'annexe B, « Solutions aux problèmes de recrutement de Kakao », nous mobiliserons toutes les capacités algorithmiques que nous avons explorées jusqu'à présent pour résoudre tous les problèmes qui ont été réellement testés lors du recrutement de nouveaux développeurs Kakao de 2017 en utilisant les meilleures méthodes possibles.
[Caractéristiques principales de ce livre]
- Syntaxe et techniques de programmation Python fondamentales, utiles pour le développement pratique et les tests de code.
- Définition et contexte des algorithmes et théories des structures de données essentiels que les développeurs doivent connaître
- 215 illustrations visuelles qui vous aident à comprendre la théorie des algorithmes en un coup d'œil.
- Solutions aux questions clés des examens précédents, issues de LeetCode, le meilleur site de résolution de problèmes au monde.
- Solutions et explications des problèmes issus des tests de codage réels des concours de recrutement de Kakao
- Amélioration progressive de la solution et analyse comparative à l'aide de diverses techniques d'optimisation
- Comparaison des performances et de la vitesse d'exécution de la solution selon l'implémentation de l'algorithme
- De la sélection des documents aux entretiens, un guide pour se préparer à l'emploi et aux changements de carrière dans le domaine du développement.
- Conseils variés pour construire un parcours professionnel de développeur réussi
[À qui ce livre est destiné]
Ce livre est une lecture incontournable pour les développeurs en quête d'un emploi ou d'une reconversion professionnelle au sein des plus grandes entreprises informatiques coréennes, ainsi que pour les demandeurs d'emploi et les étudiants qui débutent leur carrière et qui recherchent des supports d'apprentissage ou des ouvrages de référence abordant les points suivants :
● Comment puis-je réussir mes tests de codage ?
● Comment puis-je bien résoudre les problèmes d'algorithmes ?
● Comment réussir un entretien d'embauche ?
● Comment puis-je devenir bon en Python ?
Les lecteurs de ce livre doivent avoir une expérience en programmation dans un ou plusieurs langages et être prêts à apprendre les structures de données et les algorithmes de base.
Vous pouvez lire ce livre sans connaître Python, mais si possible, il sera beaucoup plus utile pour comprendre son contenu si vous le lisez avec des connaissances de base en Python.
[Note de l'auteur]
En août 2017, Kakao a mené une expérience intéressante.
Le recrutement des nouveaux développeurs s'est effectué par le biais d'un processus de recrutement ouvert et anonyme, auquel toute personne pouvait postuler en fournissant simplement son nom et ses coordonnées.
C'était une tentative audacieuse et un cas rare même dans le secteur informatique de l'époque.
Les efforts du comité de sélection pour choisir de bons promoteurs immobiliers se sont également intensifiés.
Pour rendre le test plus accessible aux candidats tout en intégrant les algorithmes clés, nous avons créé des dizaines de questions utilisant les caractères Kakao, et les examinateurs ont chacun résolu méticuleusement les problèmes à tour de rôle.
Nous avons eu des discussions suffisantes lors de l'évaluation par les pairs et avons décidé, par un vote majoritaire, de publier ou non la question.
Bien que le processus fût fastidieux et répétitif, il était nécessaire et raisonnable.
Après avoir suivi ces différentes étapes, nous avons finalement sélectionné un total de sept problèmes, qui ont été bien accueillis jusqu'à aujourd'hui et sont devenus des cas exemplaires de recrutement à l'aveugle (tous les problèmes de recrutement Kakao de cette année-là sont résolus dans l'annexe B de ce livre).
Fort de son succès à l'époque, le recrutement à l'aveugle s'est perpétué et a même influencé les pratiques d'embauche d'autres entreprises. Rétrospectivement, c'est un honneur d'avoir contribué à cette histoire remarquable.
Ce livre relate mon expérience en matière de tests de codage à l'époque, mon expérience en matière d'entretiens techniques avec d'innombrables candidats par la suite, et mon expérience en matière d'analyse approfondie des processus d'entretiens techniques de nombreuses entreprises afin d'améliorer mes propres entretiens.
Et c'est sur cette base que j'ai également synthétisé et intégré diverses expériences vécues lors de mes tentatives de changement d'emploi.
Mes différentes expériences, en tant qu'intervieweur ou candidat, m'ont permis de prendre conscience, du point de vue de l'intervieweur, de certaines erreurs que je n'avais pas remarquées depuis longtemps. Après avoir changé de poste, je suis devenu un intervieweur plus compétent et plus efficace. J'ai bien sûr rassemblé et organisé toutes ces expériences dans ce livre.
Il existe parfois une idée fausse selon laquelle les entretiens d'embauche en algorithmique ne sont que des entretiens formels que seuls les jeunes diplômés peuvent réussir.
Est-ce vraiment vrai ? Pourquoi pensez-vous résoudre des problèmes algorithmiques ? Pourquoi pensez-vous avoir étudié les mathématiques pendant tout ce temps ? La raison pour laquelle nous étudions les mathématiques et les algorithmes est de construire des bases solides (les mathématiques) et ensuite, grâce à la pensée logique (la pensée mathématique), de résoudre des problèmes (la programmation).
Les différentes méthodes de réflexion, structures de données et compétences de résolution de problèmes intégrées aux algorithmes développent des capacités de pensée systématique et, de plus, constituent une base intellectuelle solide, essentielle pour un bon développeur.
En apprenant systématiquement les algorithmes et en améliorant vos compétences, vous deviendrez un meilleur développeur.
À partir de maintenant, vous devrez résoudre assidûment les problèmes de ce livre en utilisant Python, ainsi que Leetcode.
Résoudre le problème sur un tableau blanc est également une bonne idée.
Avant tout, j'espère que ce livre vous sera un bon guide pour votre emploi, votre changement de travail, votre carrière et votre vie.
SPÉCIFICATIONS DES PRODUITS
- Date de publication : 15 juillet 2020
Nombre de pages, poids, dimensions : 724 pages | 1 300 g | 180 × 235 × 35 mm
- ISBN13 : 9791189909178
- ISBN10 : 1189909170
Vous aimerez peut-être aussi
카테고리
Langue coréenne
Langue coréenne