Formation Entretiens Maxime Arthaud 6 octobre 2015 Slides disponible sur http://net7.bde.enseeiht.fr/supportFormations/ entretiens/2015/slides.pdf 1/9 Les cibles 2/9 Déroulement d’un entretien Selon si c’est un entretien pour un stage de 2 mois, de 6 mois ou pour un CDI : 1 Entretien téléphonique non technique (explications) 2 Entretiens téléphoniques techniques 3 Entretiens sur place 3/9 Connaissances requises Anglais 4/9 Connaissances requises Anglais Connaissances générales (système, réseaux, multithreading, grid computing, machine learning, compilation, …) 4/9 Connaissances requises Anglais Connaissances générales (système, réseaux, multithreading, grid computing, machine learning, compilation, …) Langages de programmation (C++, Java, Python) 4/9 Connaissances requises Anglais Connaissances générales (système, réseaux, multithreading, grid computing, machine learning, compilation, …) Langages de programmation (C++, Java, Python) Algorithmique 4/9 Connaissances générales Types de questions : Comment fonctionne TCP/IP ? Comment fonctionne les DNS ? Qu’est-ce qu’un appel système ? Qu’est-ce que le map-reduce ? 5/9 Langages de programmation Types de questions pour C++ : Comment fonctionne les templates ? Comment est implémenté std::vector ? Comment utiliser les pointeurs intelligents ? Types de questions pour Python ou Java : Comment est géré la mémoire ? Quel est le problème du reference counting ? 6/9 Algorithmique Les sujets de base à connaitre : Complexité 7/9 Algorithmique Les sujets de base à connaitre : Complexité Structures de base : Tableau, Liste chainée, Pile, File, Arbre, Graphe, HashMap 7/9 Algorithmique Les sujets de base à connaitre : Complexité Structures de base : Tableau, Liste chainée, Pile, File, Arbre, Graphe, HashMap Tris : Sélection, Insertion, Quicksort, Mergesort 7/9 Algorithmique Les sujets de base à connaitre : Complexité Structures de base : Tableau, Liste chainée, Pile, File, Arbre, Graphe, HashMap Tris : Sélection, Insertion, Quicksort, Mergesort Graphe : Depth-first search, Breadth-first search, Plus court chemin, Minimum spanning tree 7/9 Algorithmique Les sujets de base à connaitre : Complexité Structures de base : Tableau, Liste chainée, Pile, File, Arbre, Graphe, HashMap Tris : Sélection, Insertion, Quicksort, Mergesort Graphe : Depth-first search, Breadth-first search, Plus court chemin, Minimum spanning tree Backtracking 7/9 Algorithmique Les sujets de base à connaitre : Complexité Structures de base : Tableau, Liste chainée, Pile, File, Arbre, Graphe, HashMap Tris : Sélection, Insertion, Quicksort, Mergesort Graphe : Depth-first search, Breadth-first search, Plus court chemin, Minimum spanning tree Backtracking Dichotomie 7/9 Algorithmique Les sujets de base à connaitre : Complexité Structures de base : Tableau, Liste chainée, Pile, File, Arbre, Graphe, HashMap Tris : Sélection, Insertion, Quicksort, Mergesort Graphe : Depth-first search, Breadth-first search, Plus court chemin, Minimum spanning tree Backtracking Dichotomie Programmation dynamique 7/9 Références Les livres de références : Introduction to Algorithms − Cormen, Leiserson, Rivest, Stein The Algorithm Design Manual − Skiena Cracking The Coding Interview Les sites où s’entrainer : LeetCode : https://leetcode.com Project Euler : https://projecteuler.net Top Coder : https://www.topcoder.com 8/9 Entrainement Choisissez un langage et c’est parti ! https://leetcode.com/problems/maximum-subarray/ 9/9 Entrainement Choisissez un langage et c’est parti ! https://leetcode.com/problems/maximum-subarray/ https: //leetcode.com/problems/search-insert-position/ 9/9 Entrainement Choisissez un langage et c’est parti ! https://leetcode.com/problems/maximum-subarray/ https: //leetcode.com/problems/search-insert-position/ https://leetcode.com/problems/minimum-path-sum/ 9/9 Entrainement Choisissez un langage et c’est parti ! https://leetcode.com/problems/maximum-subarray/ https: //leetcode.com/problems/search-insert-position/ https://leetcode.com/problems/minimum-path-sum/ https://leetcode.com/problems/ best-time-to-buy-and-sell-stock/ 9/9 Entrainement Choisissez un langage et c’est parti ! https://leetcode.com/problems/maximum-subarray/ https: //leetcode.com/problems/search-insert-position/ https://leetcode.com/problems/minimum-path-sum/ https://leetcode.com/problems/ best-time-to-buy-and-sell-stock/ https://leetcode.com/problems/ recover-binary-search-tree/ 9/9 Entrainement Choisissez un langage et c’est parti ! https://leetcode.com/problems/maximum-subarray/ https: //leetcode.com/problems/search-insert-position/ https://leetcode.com/problems/minimum-path-sum/ https://leetcode.com/problems/ best-time-to-buy-and-sell-stock/ https://leetcode.com/problems/ recover-binary-search-tree/ https: //leetcode.com/problems/first-missing-positive/ 9/9