algorithme
entretien

Je ne suis pas forcément fan des entretiens techniques dans lesquels on pose des questions d'algorithmiques surtout lorsque celles-ci n'ont aucun rapport avec le poste en question. Malheureusement, c'est une réalité, de plus en plus d'entreprises font passer ce genre d'entretiens aux candidats et ce n'est plus exclusivement réservé aux FAANG. J'ai donc décidé pour cette année de commencer une série d'articles concernant les questions d'algorithmiques les plus fréquemment posées en entretien. C'est également une bonne occasion de (re)découvrir les bases de notre métier qu'est l'algorithmique et la résolution de problème. Pour ce premier article, j'ai décidé de commencer avec les listes chaînées qui sont l’une des structures de données linéaires les moins maîtrisées par les candidats contrairement aux tableaux.

Et vous, avez-vous déjà eu des entretiens dans lesquels des questions d'algorithmiques ont été posées ?


Partagé par Axel Shaïta
il y a plus de 3 ans
4

Jason Maréchal il y a plus de 3 ans - modifié il y a plus de 3 ans
Liste chainée, arbre binaire de recherche, big O. Finalement le poste c'est corriger des bug de prod et bidouiller de la feature au milieu d'un legacy et on utilise jamais cela.
Je ne dis pas que ces connaissances ne sont pas intéressantes, mais il vaudrait mieux faire gagner du temps à tout le monde et poser des questions pertinentes pour le poste, voir avec des mises en situation.
Anonyme il y a plus de 3 ans - modifié il y a plus de 3 ans
J'apporte ma pierre à l'édifice avec quelques articles sur d'autres cas potentiellement demandés en entretiens :

- www.jesuisundev.com/...
- www.jesuisundev.com/...
- www.jesuisundev.com/...

Ayant été en recherche active en fin d'année 2020, je planchais à fond sur ce genre d'article, bien qu'au final cela ne m'ait pas vraiment servi (si ce n'est au plan personnel bien évidemment).
Anonyme il y a plus de 3 ans
Et pour répondre à la question posée par @Axiel Shaita, j'ai récemment eu à réinventer la multiplication (ne pas utiliser le signe *). Sinon la plupart du temps ce fut soit :
- du CodinGame
- une mini app front, une api rest, ou un combo des deux

En tout cas, pas de cas pratique "à la GAFAM".
Benoit GANTAUME il y a plus de 3 ans
"il vaudrait mieux faire gagner du temps à tout le monde et poser des questions pertinentes pour le poste"
Oui et non...
L'approche par l'algorithme permet de tester la capacité de réflexion du développeur et voir comment il s'adapte.
C'est plus pour moi un prétexte à l'échange. D'ailleurs c'est plus souvent l'attitude qui est évaluée que le résultat.
Anh-Vu Tran il y a plus de 3 ans - modifié il y a plus de 3 ans
Pas tout à fait d'accord, le but n'est pas de réimplémenter mais de comprendre pour savoir quand utiliser les bonnes structures de données.
De là en découle une complexité en temps et ou mémoire.
Cela permet de prévoir et prendre les bonnes décisions quand la volumétrie et/ou le nombre d'utilisateurs augmente.
Et quand ca déborde sur une architecture simple malgré les bonnes optimisations, on repense une archi plus complexe qui puisse répondre aux nouvelles contraintes.
C'est donc la base à maitriser pour aller plus loin.

EDIT: le temps que j'écrive, d'autres réponses ont popé ^^ Je répondais exactement à la même phrase que Benoît "il vaudrait mieux faire gagner du temps à tout le monde et poser des questions pertinentes pour le poste"
Jason Maréchal il y a plus de 3 ans
@Benoit @Anh-Vu
Je partage votre point de vue. Je n'ai rien contre poser une question d'algorithmie, de complexité... si la question sert à un échange. Ce qui me gène plus c'est refuser des candidats sur le seul principe d'échouer à répondre à ces questions.
Bon pour la liste chaînée ayant été formé sur le C je suis biaisé et considère que ça fait parti du minimum culturel pour un dev. Mais mettons que ce ne soit pas le cas. Refuser un candidat parce qu’il ne réussi pas à implémenté une liste chaînée parce qu’il ne sait pas ce que c'est et n'en a jamais vu de telle implémentation c'est dommage. Discuter avec lui, l'aiguiller sur une piste et ce rendre compte qu'en reformulant le problème il arrive à implémenter une solution par liste chaînée, c'est mieux.
Après ça dépend de l'objectif de l'entretien aussi. Si on veut des gens très pointus sur tout ça fait un bon filtre.
Pour ajouter un commentaire, tu dois te connecter ou créer un compte.
Refactoring de code : le guide pour bien débuter - Artisan Développeur
Afficher la ressource
Comment trouver un mentor ?
Accéder à la vidéo
Le métier change, ou pas avec Lisa Faci
Accéder à l'épisode
Extraire des méthodes de son code pour apporter plus de sens tout en facilitant sa lecture
Afficher la ressource
Quoi de neuf les devs ? Numéro 34
Afficher la ressource
Artisan Développeur utilise des cookies afin de t'offrir les meilleurs services. En poursuivant ta navigation, tu acceptes l’utilisation de cookies. En savoir plus