IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Emploi Discussion :

Quels signes permettent de déceler un candidat talentueux ?


Sujet :

Emploi

  1. #201
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 044
    Points
    32 044
    Par défaut
    Citation Envoyé par pmithrandir Voir le message
    J'avoue que si on me demandait la suite de Fibonacci, déjà, il faudrait me l'expliquer... au bout de 30 secondes, comme ce qui vient de se passer sur wikipedia, j'en aurait plus rien a faire de l'entretien et j'aurai qu'une envie, me lever et partir.
    - Je pige plus rien aux suites après 10 ans sans faire de math.
    - je penserai que mon recruteur est un crétin de mathématicien.
    Mais parfois, les spécifications sont crétinement mathématiques. Ca n'est quand même pas si on te demandait de coder l'écoulement rhéologique d'un plastique fondu(pour les experts : d'un polymère plastifié) dans un moule. Mais on a clairement besoin, parfois, de petites opérations mathématiques pour gérer de grandes quantités.

    Citation Envoyé par pmithrandir Voir le message
    A coté de ca, si vraiment j'avais faim, je resterai peut être et je sortirai l'algo de base, je ne pense pas qu'on puisse demander plus a quelqu'un en entretien qui en connait pas déjà le problème, et donc sa solution(parce que c'est le risque, de finalement ne retenir que ceux qui ont appris par cœur la solution ou qui ont vu en cour qu'il y avait un piège).
    d'ou l'utilité de faire des variantes. Comme pour le fizzbuzz.

    Citation Envoyé par pmithrandir Voir le message
    Après, si on compare ça a fizzbuzz, c'est le jour et la nuit, on a un algo débile, digne d'un étudiant après 3 cours d’algorithmique, et que je sache, pas spécialement optimisable. J'en ai vu des dizaines de versions en entretien, et ca tourne toujours autour des même façon de faire, très proche de la solution intuitive. La seule chose que l'on teste la, c'est la capacité a comprendre que le cas fizzbuzz doit être traité avant fizz ou buzz si on veut qu'il soit pris en compte... et encore.
    Ben oui, et ça permet d'éliminer les gnous. Il en sort beaucoup avec un gros diplôme, des gnous. Ca n'a pas vocation à détecter le nouveau John Carmack. Ca a vocation à éliminer ceux qui ne sont même pas capables de comprendre qu'il faut d'abord éliminer fizzbuzz. Ceux-là ne justifieront JAMAIS leur salaire.

    Citation Envoyé par pmithrandir Voir le message
    De la même façon, la complexité d'un algorithme, je n'en ai jamais eu besoin encore. Parce que des algo j'en ai pas beaucoup écrit de bien complexe... $
    En général, ce qui rame le plus, c'est la BDD, puis la machine trop lente, et ensuite seulement on regarde l'algo, on vérifie si on ne calcule pas n fois la même valeur pour rien(extraire les "constantes" des boucles) et on arrive a un résultat suffisant d'un point de vue performance pour le besoin.
    Là, on est d'accord. Il est rarissime qu'un algo, même complexe, mette la machine à genoux(sauf si pour chaque division du fizzbuzz on invoque une dizaine de frameworks). Les entrées-sorties représentent 99% des soucis de performances auxquels j'ai été confronté.

    Citation Envoyé par pmithrandir Voir le message
    Après, vous travailler peu être a créer le cœur du moteur oracle, ou avec plusieurs milliards de valeur, etc... mais moi je n'ai pas encore eu cette chance.
    Je fais du décisionnel et du marketing dans une banque de taille moyenne. Pour le marketing, j'ai eu à faire un algorithme particulièrement complexe. de complexité n4, si je me souviens bien.

    Après, l'optimisation s'est faite par les bornes : (1) les appels référentiels ont déjà tous été faits, on travaille sur des données enrichies stockées en mémoire, et (2)on applique l'algorithme sur des ensembles petits, donc même avec 4 boucles imbriquées, ça dure 90 secondes sur 300 000 enregs.

    A noter que l'enrichissement préalable, lui, dure 5 heures. Il en durait 6 avant la bufferisation.

    "The First Rule of Program Optimization: Don't do it. The Second Rule of Program Optimization (for experts only!): Don't do it yet."(a priori, une formule de Michael A. Jackson).

    Mais il est parfois nécéssaire de faire des algos complexes, même si leur optimisation fine est rarement utile. Je VEUX que la personne qui bosse soit capable de pondre des algos complexes. Si il y a besoin de l'optimiser, on verra ensuite(et, on l'a vu, je préfère optimiser sur des trucs annexes et faciles. La bufferisation a pris une petite heure, avec un risque extrêmement faible, mémoriser la précédente clef d'appel au module d'enrichissement n'est pas une tache dantesque).

    Citation Envoyé par pmithrandir Voir le message
    En général, en informatique, ce que j'observe, c'est que si la solution requiert des compétence avancée en algorithmique, c'est souvent la plus mauvaise en terme de cout.
    Je ne comprends pas. J'ai une spécification précise, un algorithme (presque)précisément décrit par la MOA à mettre en place - parcequ'il correspond à un besoin métier précis. En quoi le fait que sa mise en oeuvre soit complexe(j'en ai chié, même sans optimiser) a-t-il un impact sur le cout? Soit on le met en place, soit on ne sait pas cibler correctement les clients.

    Après, l'utilité de l'optimisation est à voir, suivant les cas. J'ai d'abord cherché à faire un truc qui marche, puis à le rendre lisible, et quand ça a donné satisfaction, ça durait 90 secondes. Ce qui, pour un traitement mensuel, est négligeable(on est pas dans de l'embarqué). Mais, celà devait marcher, et il n'y avait pas de solution simple. Un programmeur qui n'est pas capable d'imbriquer des boucles finira toujours par être inutile.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  2. #202
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par gangsoleil Voir le message
    Tout ca, ce sont des questions de forme, qui permettent de savoir si la personne a bien revise son cours sur Fibonacci ou pas, mais qui ne vous dira absolument pas si la personne est competente dans son domaine. D'ailleurs, vous avez tous recrute de bons mathematiciens, c'est bien, je vous les laisse, moi je cherche des informaticiens.
    Je pense qu'il est plus facile de fabriquer un informaticien en utilisant le mathématicien comme matière première que le contraire.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  3. #203
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Points : 2 548
    Points
    2 548
    Par défaut
    Citation Envoyé par pmithrandir Voir le message
    J'avoue que si on me demandait la suite de Fibonacci, déjà, il faudrait me l'expliquer... au bout de 30 secondes, comme ce qui vient de se passer sur wikipedia, j'en aurait plus rien a faire de l'entretien et j'aurai qu'une envie, me lever et partir.
    - Je pige plus rien aux suites après 10 ans sans faire de math.
    - je penserai que mon recruteur est un crétin de mathématicien.
    Ce que tu racontes la m'inquiéterait en tant que recruteur. La suite de fibonacci est sans doute la suite la plus simple qui soit, pas besoin de compétences super élevées en math. Bien sur, nul besoin de connaitre la suite, la formule peut-être donnée.

    La solution naïve est un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    auto fib(uint n) {
        if(n < 2) return 1;
    
        return fib(n - 1) + fin(n - 2);
    }
    Ne va pas me dire que c'est du haut vol, faut pas déconner quand même. Si tu ne peux pas écrire ça, pose toi des questions.

    Ensuite viens le point intéressant. Si ton candidat maîtrise la base de la base de l'algoritmique, il constate que la solution postée ici à une complexité exponentielle. C'est vraiment moisis. On parle pas de code qui crash quand tu manipule des grand nombres, tu peux essayer, tu va voir.

    Heureusement, il existe une solution pas franchement plus complexe qui est en O(n) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    auto fib(uint n) {
        if(n < 2) return 1;
    
        uint n1 = 1;
        uint n2 = 1;
        for(uint i = 2; i < n; i++) {
            n2 = n1 + n2;
            n1 = n2 - n1;
        }
    
        return n1 + n2;
    }
    Ce qui est un poil plus complexe, mais franchement pas de quoi casser trois pattes à un canard.

    Il existe plein d'autres solutions. Et vu l'extrême complexité des deux bouts de code su-cités, je pense que l'on peut attendre d'un candidat qu'il s'en sorte.

    En bref, c'est le genre de trucs que tu peux demander pour filtrer les clowns.

    Citation Envoyé par pmithrandir Voir le message
    Après, si on compare ça a fizzbuzz, c'est le jour et la nuit, on a un algo débile, digne d'un étudiant après 3 cours d’algorithmique, et que je sache, pas spécialement optimisable. J'en ai vu des dizaines de versions en entretien, et ca tourne toujours autour des même façon de faire, très proche de la solution intuitive.
    Le fizzbuzz ne sert à rien sinon éliminer les incapables.

    Citation Envoyé par pmithrandir Voir le message
    De la même façon, la complexité d'un algorithme, je n'en ai jamais eu besoin encore. Parce que des algo j'en ai pas beaucoup écrit de bien complexe... $
    Tu confond la complexité algorithmique avec la difficulté d'implémenter ou de concevoir l'algorithme.

    Citation Envoyé par pmithrandir Voir le message
    Après, vous travailler peu être a créer le cœur du moteur oracle, ou avec plusieurs milliards de valeur, etc... mais moi je n'ai pas encore eu cette chance.
    Si tu te barres dès qu'on te demande un truc aussi simple que fibonacci, c'est pas franchement étonnant non plus.

    Citation Envoyé par pmithrandir Voir le message
    En général, en informatique, ce que j'observe, c'est que si la solution requiert des compétence avancée en algorithmique, c'est souvent la plus mauvaise en terme de cout.
    C'est comme tout. L'algo te fournis des solutions à des problèmes. Si tu n'as pas le problème . . .

  4. #204
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Points : 2 548
    Points
    2 548
    Par défaut
    Citation Envoyé par el_slapper Voir le message
    Là, on est d'accord. Il est rarissime qu'un algo, même complexe, mette la machine à genoux(sauf si pour chaque division du fizzbuzz on invoque une dizaine de frameworks). Les entrées-sorties représentent 99% des soucis de performances auxquels j'ai été confronté.
    Le fibonacci naïf te met ton core i7 sur les genoux avec des entrées à deux chiffres. On parle de complexité exponentielle la.

  5. #205
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 295
    Points
    7 295
    Par défaut
    Citation Envoyé par deadalnix Voir le message
    Ce que tu racontes la m'inquiéterait en tant que recruteur. La suite de fibonacci est sans doute la suite la plus simple qui soit, pas besoin de compétences super élevées en math. Bien sur, nul besoin de connaitre la suite, la formule peut-être donnée.
    C'est juste que les suites, je ne sais m^me plus lire leur écriture. je ne saurais pas te dire combien d’itération, ce qui change a chaque fois, etc...

    Bref, j'ai été incapable de lire l'article sur wikipedia. Donc, en sortir un algo, moi pas capable sans relire mes cours sur les suites, ce qui est un peu complexe en entretien.

    Après, je fuirai non pas parce que je n'en suis pas capable, parce qu'en général, c'est moi qui les fait les algo et qui les optimise(je ne sais pas, mais je trouve assez intuitivement comment bien le faire naturellement en général) mais plus parce que je trouverai que la question est cons, et que j'ai l'embarra du choix, donc moi aussi je sélectionne les gens avec qui je veux bosser.

    En gros, ma réponse serait, ouais, je ne sais pas de quoi vous parlez. Pas besoin de perdre 30 minutes pour comprendre le truc, sortir la solution de merde, vu que je n'arriverai pas de moi même sans comprendre bien le truc a la seconde, et etre juger sur quelque chose que je ne saurai pas bien faire. J'ai d'autres compétences ou je lui mettrai ses connaissances en carafe, comme en BDD par exemple, bien plus utile dans le travail.

  6. #206
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 148
    Points : 28 113
    Points
    28 113
    Par défaut
    Citation Envoyé par deadalnix Voir le message
    Heureusement, il existe une solution pas franchement plus complexe qui est en O(n) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    auto fib(uint n) {
        if(n < 2) return 1;
    
        uint n1 = 1;
        uint n2 = 1;
        for(uint i = 2; i < n; i++) {
            n2 = n1 + n2;
            n1 = n2 - n1;
        }
    
        return n1 + n2;
    }
    Ce qui est un poil plus complexe, mais franchement pas de quoi casser trois pattes à un canard.

    Il existe plein d'autres solutions. Et vu l'extrême complexité des deux bouts de code su-cités, je pense que l'on peut attendre d'un candidat qu'il s'en sorte.
    Je suppose que tu as trouve ce code tout seul, en 10 minutes ? Ou bien alors tu te souviens de cours qu'on t'a donne, auquel cas tu ne fais que donner une solution, et en aucun cas montrer a ton interlocuteur que tu sais faire de l'algorithmie.

    Comme pmithrandir, je suis totalement incapable de pondre ce code, que je n'ai pas vu en cours. Par contre, ayant reussi a travailler sur des algo avec des performances critiques (1 milliseconde de plus par calcul impliquait presque 4h de calcul un plus), je pense que je me debrouille en algo.

    Je pense qu'il est plus facile de fabriquer un informaticien en utilisant le mathématicien comme matière première que le contraire.
    Il est encore plus facile de fabriquer un informaticien competent a partir d'un informaticien qui a les bonnes bases.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  7. #207
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par gangsoleil Voir le message
    Je suppose que tu as trouve ce code tout seul, en 10 minutes ? .
    Sur ce point précis, suite de Fibonacci, je ne pense pas en effet qu'il faille plus de 20mn pour trouver cet algo. (10mn est peut être un peu juste).

    En revanche, on aurait sans doute le réflexe de partir sur du récursif.

    C'est quand même assez trivial.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  8. #208
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 328
    Points : 1 142
    Points
    1 142
    Par défaut
    Citation Envoyé par gangsoleil Voir le message
    Je suppose que tu as trouve ce code tout seul, en 10 minutes ? Ou bien alors tu te souviens de cours qu'on t'a donne, auquel cas tu ne fais que donner une solution, et en aucun cas montrer a ton interlocuteur que tu sais faire de l'algorithmie.

    Comme pmithrandir, je suis totalement incapable de pondre ce code, que je n'ai pas vu en cours. Par contre, ayant reussi a travailler sur des algo avec des performances critiques (1 milliseconde de plus par calcul impliquait presque 4h de calcul un plus), je pense que je me debrouille en algo.


    Il est encore plus facile de fabriquer un informaticien competent a partir d'un informaticien qui a les bonnes bases.
    J'aurai pas dit mieux

    Quand je vois les termes théoriques du type "sous forme récursive terminale", dans les discussions, je pense que certains devraient sortir de leur labo pour voir le travail des informaticiens sur le terrain.

  9. #209
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 601
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 601
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par pmithrandir Voir le message
    J'avoue que si on me demandait la suite de Fibonacci, déjà, il faudrait me l'expliquer... au bout de 30 secondes, comme ce qui vient de se passer sur wikipedia, j'en aurait plus rien a faire de l'entretien et j'aurai qu'une envie, me lever et partir.
    - Je pige plus rien aux suites après 10 ans sans faire de math.
    - je penserai que mon recruteur est un crétin de mathématicien.
    Je suis d'accord avec toi...


    Quand je lis :

    Citation Envoyé par gangsoleil Voir le message
    Tout ca, ce sont des questions de forme, qui permettent de savoir si la personne a bien revise son cours sur Fibonacci ou pas, mais qui ne vous dira absolument pas si la personne est competente dans son domaine.
    Citation Envoyé par el_slapper Voir le message
    Mais parfois, les spécifications sont crétinement mathématiques. Ca n'est quand même pas si on te demandait de coder l'écoulement rhéologique d'un plastique fondu(pour les experts : d'un polymère plastifié) dans un moule. Mais on a clairement besoin, parfois, de petites opérations mathématiques pour gérer de grandes quantités.
    Citation Envoyé par deadalnix Voir le message
    Ce que tu racontes la m'inquiéterait en tant que recruteur. La suite de fibonacci est sans doute la suite la plus simple qui soit, pas besoin de compétences super élevées en math. Bien sur, nul besoin de connaitre la suite, la formule peut-être donnée.
    ..
    Si tu te barres dès qu'on te demande un truc aussi simple que fibonacci, c'est pas franchement étonnant non plus.
    Je vois un biais extrêmement fort vers la formation universitaire....

    Je suis physicien à la base, j'ai passé 28 ans d'expérience en informatique à faire des programmes de maths principalement, et je n'ai jamais ni entendu parler ni utilisé Fibonacci..

    Et pourtant je n'ai quasiment fait que des maths dans mes programmes..... et toujours dans un milieu scientifique extrêmement poussé...

    Cette question (sans explications), et une conclusion comme la dernière phrase de deadalnix est/sont absurde(s)....


    Comme l'a dit gangsoleil :

    Citation Envoyé par gangsoleil Voir le message
    mais qui ne vous dira absolument pas si la personne est competente dans son domaine. D'ailleurs, vous avez tous recrute de bons mathematiciens, c'est bien, je vous les laisse, moi je cherche des informaticiens.
    Je précise d'ailleurs que même la dernière phrase laisse à désrer.. Ce ne sont pas des bons mathématiciens, simplement des gens qui ont bien appris leurs cours.. Entièrement différent...



    Citation Envoyé par deadalnix Voir le message
    Tu confond la complexité algorithmique avec la difficulté d'implémenter ou de concevoir l'algorithme.
    Déjà, la "complexité algorithmique" a des définitions multiples, et, mis à part quelques cas spéciaiux, la plupart du temps le problème de fond est de résoudre le problème qu'on a en face.... Si on a une solution, on peut tenter de l'améliorer...

    Mais même en recherche, on n'utilise pas toutes les optimatisations ou ficelles, car d'une part ça évolue régulièrement, d'autre part des contraintes peuvent apparaître (mémoire, temps de développement, temps de documentation, fiabilité, cas particuliers..)

    Et souvent, une optimisation "au pif", de réflexion, suffit très largement...

    (par exemple des approximations numériques dichotomoques)



    Le problème de fond est tout à fait bien résumé par :

    Citation Envoyé par gangsoleil Voir le message
    Poser des questions intelligentes est complexe, mais si au moins elles etaient adaptees au poste, ca serait deja beaucoup.
    La plupart des réponses indique tout simplement pourquoi vous n'arrivez pas souvent au résultat escompté...

    Quand, comme le signale el_slapper, les specs sont pas mal basées sur des maths, on ne demande pas quelqu'un qui connaisse,, mais quelqu'un qui peut comprendre...

    C'est entièrement différent...

    Et si vous ne voyez pas la différence, vous êtes mal barrés...
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  10. #210
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    Je suis physicien à la base, j'ai passé 28 ans d'expérience en informatique à faire des programmes de maths principalement, et je n'ai jamais ni entendu parler ni utilisé Fibonacci..
    Faut arrêter les conneries. C'est un truc que tu as du voir comme moi en première ou en terminale à la rigueur mais tu ne t'en souviens plus, c'est tout. (c'est l'âge ).

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  11. #211
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Citation Envoyé par deadalnix Voir le message
    En plus d'être impossible dans le cas de fibonacci (cette suite est doublement récursive), c'est inutile car ne change pas la complexité algoritmique.

    Cette technique permet simplement de ne pas faire de stack overflow et de gagner en performance sur les fonction récursives, rien de plus. Ce ne sont pas les problèmes posés par Fibonacci.
    Si c'est tout à fait possible d'implémenter fibonacci sous une forme récursive terminal (en utilisant une transformation assez proche de celle utilisée pour la passer sous forme itérative). voir par exemple : http://www.developpez.net/forums/d49...e/#post2965326

    Et, en plus de ne pas avoir de stack overflow (si l'environnement implémente le TCO), ça change bien la complexité puisqu'on ne recalcule pas plusieurs fois les termes de la suite (même gain que le memoize).

  12. #212
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 601
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 601
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Faut arrêter les conneries. C'est un truc que tu as du voir comme moi en première ou en terminale à la rigueur mais tu ne t'en souviens plus, c'est tout. (c'est l'âge ).
    non non, absolument jamais vu.. Sérieux... Et pourtant, Maths Sup, Maths, Spé (75 à 78), 1 an Ecole d'Ingénieur Chimie, et doctorat en Physique, spécialité astrophysique (84)...

    Et 28 ans de carrière en astro, en méical irm, en traitement d'images, en météo, en divers calculs physiques...
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  13. #213
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    non non, absolument jamais vu.. Sérieux... Et pourtant, Maths Sup, Maths, Spé (75 à 78), 1 an Ecole d'Ingénieur Chimie, et doctorat en Physique, spécialité astrophysique (84)...

    Et 28 ans de carrière en astro, en méical irm, en traitement d'images, en météo, en divers calculs physiques...
    Je ne pense pas que la suite de Fibonacci et, de manière générale, les suites de Lucas, aient des masses d'applications en physique, donc c'est pas étonnant. Mais que tu ne l'ais pas vu au lycée me semble plus bizarre.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  14. #214
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 295
    Points
    7 295
    Par défaut
    A titre d'exemple, voici ce que j'ai donné dernièrement :
    Un fizzbuzz pour faire le tri entre ceux qui savent faire une boucle et 3 if, et ceux qui en le savent pas.
    Pour les junior, je les laissent essayer autant qu'ils veulent jusqu’à arriver au résultat, pour les senior, j'essaye de voir avec eux pour du debuggage en aveugle sur leur code.

    Ensuite, je leur ai présenté le principe qu'on retrouve en BDD de représentation intervalaire. (pour les relations parent enfant, on encadre par des valeurs min et max pour optimiser les select). Je leur rpésente le concept pendant 5 minutes, et je leur donne un tableau contenant tous les pays du monde, et quelques province + ville, le tout avec les relations de parent, et je leur demande de trouver l'algo pour générer min et max.

    Qu'ils réussissent ou pas, je m'en fous un peu, par contre, je vais voir comment ils se comportent devant un problème simple et concret(j'ai eu besoin de le faire il y a 1 mois) de transformation de structure de données.
    Je vais regarder aussi leur réaction face à cette nouveauté... souvent, les bons sont enthousiastes parce qu'ils comprennent vite l'avantage, surtout si ils sont déjà exploré des arbres en requête SQL.

    Je ne demande aucune connaissance mathématique, aucun cours, le niveau de complexité fonctionnelle est simpliste. Par contre, ils doivent etre capable de manipuler des données en récursivité.(sachant que la récursivité a toujours été le point faible des informaticiens que j'ai vu en algo parce qu'elle n'est pas naturelle)

    Après, le gros du test reste surtout des discussions sur différents sujets d'informatiques, objet, javascript, php / java, frameworks, BDD, etc... Bref, on échange selon l'humeur sur différents sujets avec eux pour voir un peu leur niveau.

  15. #215
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par pmithrandir Voir le message
    Un fizzbuzz
    Alors, il y en a qui ne savent pas ce que c'est que la suite de Fibonacci; moi, c'est "Fizzbuzz" qui ne me parle pas.

    C'est quoi ?

    Une recherche rapide sur l'entrée "fizzbuzz definition" sur google ne donne pas de résultats univoques.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  16. #216
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 601
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 601
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Mais que tu ne l'ais pas vu au lycée me semble plus bizarre.
    Le Lycée d'avant 1976.....

    Pas de calculatrice, pas de maths dites "modernes"... pas de théories des ensembles.. J'ai été la génération test (on faisait les 2 en // en 4ième pendant 1 an, puis ça a été suspendu). Les maths "à l'ancienne".. le plus complexe était les cycloides et les dérivées...

    Les concours aux Grandes Ecoles avant 1980 : pas de calculatrices : règle à clacul.. J'ai encore mes cours de Maths Sup et Spé : tu pourrais y voir tout un tas de truc, mais rien sur quelque chose comme Fibonacci.. (uniquement des généralités sur les suites arithmétiques ou géométriques, peut-être avec un exemple, mais rien d'idientifié comme "Fibonacci")

    Et enfin en Chimie, Chimie-Physique, ou Physique, des calculs d'orbites et d'orbitales, des calculs de thermo, des calculs optiques, etc etc, mais rien de plus. Les seuls noms qu'on connaissait était Fermat, Lagrange, Descartes, Schrodinger, Einstein, Bohr, Carnot, De Broglie, Fourier, Curie, Képler, Newton, et quelques autres mathématiciens d'avant le XIX, plus quelques physiciens/astrophysiciens du XX..

    Enfin tout ceci pour dire que juger (sans fournir d'explications) sur un nom ou sur une notion (pour la complexité, c'est pareil : je n'ai appris une définition que depuis que je suis sur ce forum, soit il y a 5 ans), de même que les différents algos de tris (j'ai toujours utilisé le qsort du C sans me poser aucune question), est absurde... et purement lié à ce qui se fait dans l'apprentissage universitaire de l'info

    Et qu'on juge alors bien des "têtes bien pleines" plutôt que des "têtes bien faites"..

    Donc il ne faut pas trop s'étonner des résultats des jugements basés sur ce genre de critères.. Mais ça correspond à notre société.....
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  17. #217
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 295
    Points
    7 295
    Par défaut
    l'idée de fizzbuzz, (désolé, comme d'autre en parlait, je pensait être le seul ignare qui ne le savait pas il y a 3 mois )

    On compte de 1 a 100.

    Etape 1
    Quand le nombre est un multiple de 3, on écrit fizz
    Quand c'est un multiple de 5, on écrit Buzz
    Quand c'est un multiple de 3 et 5, on écrit Fizz Buzz

    Autrement, on écrit le nombre.

    Etape 2
    On ajoute les 2 conditions suivantes :
    Quand le nombre contient un 3, c'est un Fizz
    Quand le nombre contient un 5 c'est un Buzz

    Et oui, il y a un soucis dans mon énoncé, puisque l'on ne sait pas quelle définition prime sur l'autre. Par exemple, 45 peut être un fizz buzz ou un buzz, selon l'importance des règles. pareil pour 30, qui est un Fizz(un 3 dedans), mais aussi un FizzBuzz(multiple de 3 et de 5 dedans)

    De mémoire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    for(i=1; i<=100;i++){
      if(i%15==0){
        System.out.println("FizzBuzz")
      }
      else if ((i%3==0)||(new Integer(i).toString().contains("3")){
        System.out.println("Fizz")
      }
      else if ((i%5==0)||(new Integer(i).toString().contains("5")){
        System.out.println("Buzz")
      }
      else{
        System.out.println(i)
      }
    }
    On est vraiment sur un exo basique, juste la pour vérifier si la personne sait ce qu'est une boucle, une condition, et la différence entre Et et OU dans un algo.

  18. #218
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    Le Lycée d'avant 1976.....
    D'où ma surprise car le lycée d'avant 1979 que j'ai connu ne devait pas être très différent du lycée d'avant 1976 dont tu parles, sauf erreur de ma part.

    Enfin tout ceci pour dire que juger (sans fournir d'explications) sur un nom ou sur une notion (pour la complexité, c'est pareil : je n'ai appris une définition que depuis que je suis sur ce forum, soit il y a 5 ans),
    Idem pour moi sur ce point.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  19. #219
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par pmithrandir Voir le message
    On est vraiment sur un exo basique, juste la pour vérifier si la personne sait ce qu'est une boucle, une condition, et la différence entre Et et OU dans un algo.
    Oui, en effet, et je n'arrive pas vraiment à comprendre sa finalité. Il ne réclame ni algorithmique ni connaissance du langage (enfin, à peine plus que pour un "hello world").

    A priori n'importe quel gamin faisant un peu de prog à la maison est sur de ne pas le rater dans son langage préféré.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  20. #220
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 295
    Points
    7 295
    Par défaut
    en fait, ca permet malgré tout d'en filtrer certains. Sur les 50-60 candidats que j'ai vu cette année, environ 10-15 se sont vautré dessus, dont 5 qui nous avait entourloupé en entretien sur des notions de programmation.
    Le genre de personne qui connait toute la théorie, t'explique tous les design pattern, mais ne sait pas faire une boucle.

    Ca permet aussi souvent de voir le degré de complexité des gens dans leur réflexion. En général, les junior sont bien meilleur, parce que les senior veulent faire mieux que cette implémentation(en particulier pour générer le mot FizzBuzz depuis les deux autres conditions), ce qui rend l'algo moins efficace et moins lisible.

    On voit aussi celui qui prend 30 seconde pour lire, puis qui fait en une fois, ou celui qui se lance de suite dans l'algo, qui se plante, et qui enfin lit l’énoncé.

Discussions similaires

  1. Quels signes permettent de déceler un candidat talentueux ?
    Par Hinault Romaric dans le forum Débats sur le développement - Le Best Of
    Réponses: 127
    Dernier message: 08/08/2012, 12h03
  2. Réponses: 50
    Dernier message: 20/01/2012, 19h25
  3. Réponses: 5
    Dernier message: 07/07/2009, 12h00
  4. [FLASH 8] Quels sont les signes pour compris entre ?
    Par jbidou88 dans le forum Flash
    Réponses: 5
    Dernier message: 31/10/2006, 17h28
  5. Réponses: 1
    Dernier message: 15/07/2006, 15h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo