- Nouveau
- Tendances
- Classement
-
Tagsbonnes-pratiquesBonnes pratiques42newsletternewsletter34devdev33phpPHP29programmationprogrammation22veilleVeille15teletravailTélétravail15tddTDD13architectureArchitecture13javascriptJavaScript12design-patternDesign Pattern12agiliteAgilité12codeCode11devopsDevOps10laravelLaravel9conferenceConférence8carriereCarrière8retour-d-experienceRetour d'experience7front-endfront-end7gitGit6formationFormation6entreprenariatEntreprenariat6clean-codeClean Code6youtubeYoutube5videoVidéo5refactoringrefactoring5podcastPodcast5organisationOrganisation5cultureCulture5craftCraft5testingTesting4tech-leadTech Lead4optimisationOptimisation4freelancingFreelancing4dddDDD4compagnonCompagnon4code-legacyCode Legacy4vue-jsvue.js3securiteSécurité3rustrust3retrospectiveRetrospective3remoteremote3reconversionReconversion3reactReact3pythonPython3programmation-fonctionnelleProgrammation fonctionnelle3productivteproductivté3performancesperformances3nodejsNodeJS3javaJava3iaIA3humourHumour3ethiqueEthique3emploiEmploi3ecologieEcologie3debutantDébutant3cqrsCQRS3covid-19Covid-193clean-architectureClean Architecture3ci-cdCI/CD3blogBlog3architecture-hexagonaleArchitecture Hexagonale3webWeb2vscodevscode2slackSlack2produitProduit2pooPOO2personal-brandingpersonal branding2pair-programmingPair programming2hexagonalehexagonale2green-itGreen IT2gestion-du-tempsGestion du temps2evenementÉvènement2ecosystemeEcosystème2donnees-personnellesDonnées personnelles2changelogChangelog2cercleCercle2vite-jsvite.js1visualstudiovisualstudio1vision-systemiqueVision systémique1vie-priveeVie privée1tinydbTinyDB1theorie-des-contraintesThéorie des contraintes1thematuredevTheMatureDev1testtest1systeme-de-queueSystème de queue1sqlSQL1springbootspringboot1slow-techSlow.tech1restREST1react-nativeReact-Native1queerQueer1prodprod1ports-and-adaptersPorts and Adapters1pedagogiePédagogie1originesOrigines1open-sourceOpen Source1onlineonline1net.NET1mvcmvc1mutation-testingMutation testing1minimalismeMinimalisme1microsoftmicrosoft1maisonMaison1lowtechLowTech1livelive1licorneLicorne1langagelangage1jobjob1ingenieurieIngénieurie1inclusionInclusion1ideide1hommageHommage1hibernatehibernate1graphqlGraphQL1goGo1flowconFlowcon1flowflow1extreme-programmingeXtreme Programming1event-sourcingEvent sourcing1entretien-d-embaucheEntretien d'embauche1entretienentretien1entrainementEntrainement1energieEnergie1dojoDojo1dockerdocker1diversiteDiversité1devtoolDevTool1dbDB1ctoCTO1csscss1coup-de-gueuleCoup de gueule1cloudCloud1chansonChanson1buildbuild1blazorblazor1bffBFF1bddbdd1avenirAvenir1autonomieAutonomie1audioAudio1atddatdd1apiAPI1androidAndroid1alignementAlignement1algorithmealgorithme1
- Mes favoris
- Recevoir par email
- Partager un lien
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.
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"
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.