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 presque 4 ans
4

Jason Maréchal il y a presque 4 ans - modifié il y a presque 4 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 presque 4 ans - modifié il y a presque 4 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 presque 4 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 presque 4 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 presque 4 ans - modifié il y a presque 4 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 presque 4 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.
Lancer un Saas d'édition avec Lucas Geitner
Accéder à l'épisode
Compte rendu d'une première expérience de pair-programming
Afficher la ressource
Live - Comment augmenter sa rémunération de 50%
Accéder à la vidéo
A nouveau Développeur Freelance
Accéder à la vidéo
Template Method : exploitez l’héritage à son plein potentiel.
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