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

Langage PHP Discussion :

[Projet] Création d'un bon test de recrutement PHP


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut [Projet] Création d'un bon test de recrutement PHP
    à tous,

    Je ne sais pas pour vous, mais je trouve que les tests techniques qu'on passe lors d'un recrutement sont souvent un peu bidons (la moitié du test est trop simple alors que les mecs recherchent un développeur de 1 à 3 ans d'expérience ; la plupart des questions trouvent leur réponse dans la doc et donc ne nécessitent pas une connaissance par cœur ; etc.). En l'absence de bons tests sur le net, je propose de lister via ce topic des questions concernant PHP, dont les réponses sont basées sur l'expérience et l'intelligence du candidat.

    Voici ce que j'ai déjà :
    Un exit() est nécessaire après une redirection en header('Location:...') :
    a. Vrai
    b. Faux

    Quel est le meilleur moyen de stocker des chemins d’accès (vers une bibliothèque, un dossier d'upload, etc.) ?
    a. Des variables super-globales ($GLOBALS)
    b. Des constantes
    c. Des variables simples, passées uniquement aux fonctions qui en ont besoin

    Quelle est la meilleure fonction PHP à appliquer aux paramètres reçus (en GET ou POST) pour protéger une application contre les attaques XSS ?
    a. strip_tags
    b. addslashes
    c. htmlspecialchars
    d. htmlentites
    J'en profite pour vous mettre à contribution, car j'ai moi-même besoin de rédiger un test en ce moment, et je suis un peu en panne d'inspiration. Alors, vos propositions ?

    d'avance, et j'espère que ça servira à d'autres

    ps aux modérateurs : je ne suis pas sûr d'être au bon endroit pour parler de ça, n'hésitez pas à bouger ce topic

  2. #2
    Membre éprouvé Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Points : 1 275
    Points
    1 275
    Par défaut
    Citation Envoyé par torvalds17 Voir le message
    Quel est le meilleur moyen de stocker des chemins d’accès (vers une bibliothèque, un dossier d'upload, etc.) ?
    a. Des variables super-globales ($GLOBALS)
    b. Des constantes
    c. Des variables simples, passées uniquement aux fonctions qui en ont besoin
    Je ne suis pas sûr que "le meilleur moyen" puisse être identifié aussi facilement. Là on pourrait utiliser une classe statique....

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci pour la suggestion, je vais ajouter cette réponse possible, même si selon mon expérience, pour le cas particulier de chemins, je préfèrerai toujours de bonnes vieilles constantes (dans des namespaces éventuellement).

  4. #4
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    Il me semble que pour tester le niveau des gens en programmation, le quiz n'est pas le meilleur outil : Le mieux est de proposer des scripts lisibles qui ne fonctionnent pas, et demander (sur le papier) aux candidats de "débugger".

    Là, tu vois s'ils comprennent l'algo, s'ils connaissent la syntaxe, s'ils s'imprègnent rapidement d'une problématique, s'ils ont une bonne capacité de raisonnement... Et tu élimines les frimeurs creux.

  5. #5
    Membre éprouvé Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Points : 1 275
    Points
    1 275
    Par défaut
    Citation Envoyé par Dendrite Voir le message
    Il me semble que pour tester le niveau des gens en programmation, le quiz n'est pas le meilleur outil : Le mieux est de proposer des scripts lisibles qui ne fonctionnent pas, et demander (sur le papier) aux candidats de "débugger".

    Là, tu vois s'ils comprennent l'algo, s'ils connaissent la syntaxe, s'ils s'imprègnent rapidement d'une problématique, s'ils ont une bonne capacité de raisonnement... Et tu élimines les frimeurs creux.
    Super bonne idée ça

  6. #6
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    Tu as aujourd'hui des gens qui disent programmer parce qu'ils savent copier coller des scripts, mais tu leur mets une boucle puis une instruction hors boucle alors qu'elle devait être dedans, et ils ne voient pas le problème ! Les mêmes peuvent être incollables à toute une batterie de tests parce qu'ils ont lu des forums.
    Ceci dit, on a le même phénomène dans tous les domaines avec le web.
    Il m'arrive de me prendre pour Gordon Ramsay parce que j'ai trouvé une recette sur Marmiton, mais au moins, je ne l'ai pas seulement copié/collé ma recette, elle est en dur dans l'assiette de mes invités, et quand elle est ratée, qu'est ce que je me prends.

    Comme disait Shakespeare, "Pesez un serment avec un serment, et vous péserez le néant".
    "Weigh oath with oath, and you will nothing weigh."

    Lol ta signature, Marc.

  7. #7
    ovh
    ovh est déconnecté
    Rédacteur
    Avatar de ovh
    Homme Profil pro
    Architecte devops web full stack
    Inscrit en
    Mai 2002
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte devops web full stack

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 841
    Points : 6 514
    Points
    6 514
    Par défaut
    Tu pourrais t'inspirer de la certif PHP.

  8. #8
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Citation Envoyé par ovh
    Tu pourrais t'inspirer de la certif PHP.
    tu peux trouver quelques questions du genre sur les sites :

    - http://www.certificationphp.com/tests/archives
    - http://shiflett.org/blog/2005/apr/ze...tion-self-test

  9. #9
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    tu peux lui demander de te montrer ce qu'il a déjà implementé et quel probleme il a résolu lors de l’implémentation et surtout comment il a résolu. Quelle est la derniere fonctionnalité d'un site web qu'il a implementé récemment pour la première fois. Et expliquer comment ça marche.

    sinon tu peux lui demander quel est son pseudo sur le forum developpez.com

    bon sinon j'espère ne jamais plus faire du développement du coup je me permet de demander la réponse à la question suivante, je vois des cas valables pour les deux:
    Un exit() est nécessaire après une redirection en header('Location:...') :
    a. Vrai
    b. Faux
    J'ai fait passer des entretiens pour des tuteurs en informatique (rémunéré) je sais que l'habilité à répondre aux questions ne fait pas tout Si t'a un champion qui sait pas travailler en équipe, tu viens d'ajouter un boulet dans ton équipe.

    Moi j'aime beaucoup l'idée de faire commenter du code avec évidement des morceaux qui se basent sur un CMS.

  10. #10
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 230
    Points
    20 230
    Par défaut
    Citation Envoyé par ovh Voir le message
    Tu pourrais t'inspirer de la certif PHP.
    Une bonne majorité des questions de certif sont quand même souvent du bachotage de doc.

    Savoir si le premier argument est le haystack ou le needle n'est pour moi pas un signe de maîtrise du langage.

    Je pense également que proposer des extraits de code à débugger ou améliorer est la meilleure solution.

    Par exemple :

    Ce code peut il être améliorer , si oui comment ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $id     = $_POST['id'];
    $name  = $_POST['nom'];
    $sql = 'INSERT INTO table VALUES('.$id.',\''.$name.'\')';
    echo $name;
    Tu vas avoir le mec qui te dit que c'est très bien , celui qui va te mettre des mysql_real_escape string partout, celui qui va filtrer et tester les données en fonction de leur type et celui qui va te modifier tout le code pour te proposer une requête préparée.
    C'est ultra basique mais ça va te permettre de faire le tri entre celui qui n'a aucune notion de sécurité et celui qui veux tout réécrire alors que tu cherche plutôt celui qui aura été le plus efficace

    Mais il faut avant tout arriver à proposer des tests mettant en avant la capacité de réflexion du candidat ainsi que ses connaissances des grands principe du langage. Les mecs qui on une mémoire d'éléphant mais le cerveau qui coule dès qu'il y'a un algo à pondre ça sert pas à grand chose

  11. #11
    ovh
    ovh est déconnecté
    Rédacteur
    Avatar de ovh
    Homme Profil pro
    Architecte devops web full stack
    Inscrit en
    Mai 2002
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte devops web full stack

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 841
    Points : 6 514
    Points
    6 514
    Par défaut
    Citation Envoyé par grunk Voir le message
    Une bonne majorité des questions de certif sont quand même souvent du bachotage de doc.

    Savoir si le premier argument est le haystack ou le needle n'est pour moi pas un signe de maîtrise du langage.
    Je n'ai jamais passé la certif donc je ne sais pas, mais il paraît qu'elle est d'un bon niveau d'après ce que j'ai lu.
    Maintenant je suis entièrement d'accord avec toi, si c'est pour réciter par coeur les en-têtes de fonctions, ça ne vaut pas la peine.

  12. #12
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par grunk Voir le message
    Une bonne majorité des questions de certif sont quand même souvent du bachotage de doc.

    Mais il faut avant tout arriver à proposer des tests mettant en avant la capacité de réflexion du candidat ainsi que ses connaissances des grands principe du langage. Les mecs qui on une mémoire d'éléphant mais le cerveau qui coule dès qu'il y'a un algo à pondre ça sert pas à grand chose
    Comment dire, c'est tout à fait ça.
    Pour avoir travaillé avec des types qui avaient une "mémoire encyclopédique" je peux certifier que c'est pas ce qu'il y a de mieux. Sans s'attarder sur l'aspect bachotage, ils résolvaient les problèmes par analogie en fonction de ce qu'ils avaient déjà lu ou rencontré !
    Globalement, ils ne raisonnaient pas beaucoup, voire pas du tout mais copiaient la soluce d'un autre problème qui se rapprochait de leur problème du moment. Je te dis pas le stress quand on leur demandait d'expliquer un peu leur raisonnement...
    Ah ça côté syntaxe, pas d'erreur mais côté innovation c'est zéro. Au moins t'es certain de n'avoir rien d'original. Et si tu leur soumettais un problème auquel ils n'avaient pas déjà été confrontés de près ou de loin, tu pouvais toujours attendre un début du commencement de solution.
    Quand même, la diversité humaine, ça claque !
    Le plus dur du travail reste au chef d'équipe qui doit savoir utiliser à bon escient ce genre de profil.

  13. #13
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Citation Envoyé par grunk Voir le message
    Une bonne majorité des questions de certif sont quand même souvent du bachotage de doc.

    Savoir si le premier argument est le haystack ou le needle n'est pour moi pas un signe de maîtrise du langage.
    Euh tu l'as passer quand déjà ?

  14. #14
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 230
    Points
    20 230
    Par défaut
    Citation Envoyé par Thes32 Voir le message
    Euh tu l'as passer quand déjà ?
    Jamais passée , mais tous les "test" que j'ai pu faire et les retours que j'ai eu de personne qui l'ont passée pointait vers ça.
    En gros si tu bosses pas la doc c'est assez dur à avoir alors que ces personnes était plus que compétente.
    Après je remet pas en cause la certification dont le but est de prouver que tu connais le langage. Mais être certifié n'est pas un gage d'être bon développeur.
    Tu peux être certifié cisco et être une bille en architecture réseau

  15. #15
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 386
    Points
    9 386
    Par défaut
    Citation Envoyé par Thes32 Voir le message
    Euh tu l'as passer quand déjà ?
    J'ai un ami qui l'a passé en février de cette année et il a tenu le même discours.
    Il n'y a certes pas que cela, mais la certification s'obtient très facilement si on connaît par coeur le manuel PHP.

  16. #16
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Je pense aussi que les méthodes de Dendrite et grunk sont de loin les plus efficaces pour cerner un peu la personne.

    A noter quand même que débugger l'algo complexe de quelqu'un d'autre n'est pas forcément révélateur. Le postulant peut avoir du mal à le faire, alors qu'à côté de ça, il pourra te pondre des algos 10 fois plus efficaces que celui proposé et ça ne veut pas dire non plus qu'il n'est pas capable de debugger ses propres algos. Enfin ça peut-être utile si tu recrutes quelqu'un pour debugger.

    Pour ce qui est du qcm, si tu pars là-dessus, il faudrait au moins demander de développer le choix de chaque réponse car dans ce genre de tests il y a toujours des réponses multiples et/ou qui peuvent dépendre de l'environnement, et s'il n'y en a pas c'est que le qcm est mal fait à mon avis

    Je trouve ça assez étrange que la certif contienne beaucoup de questions sur l'ordre des paramètres des fonctions car il me semble que la standardisation fait quand même partie des points faibles de PHP. On pourra notamment citer l'incohérence de l'ordre des paramètres entre diverses fonctions sur les string et les array.

    Si je passe un jour la certif, je répondrai "complétion" à toutes les questions

    (Pour ce qui est du test lié aux algos, une idée intéressante serait peut-être de laisser le choix : soit débugger l'algo, soit en faire un nouveau)

  17. #17
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 467
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 467
    Points : 4 656
    Points
    4 656
    Par défaut
    En l'absence de bons tests sur le net, je propose de lister via ce topic des questions concernant PHP, dont les réponses sont basées sur l'expérience et l'intelligence du candidat.
    pour revenir la dessus, engager un probleme : tu pose un probleme, tu dis comment t'aurai fait (tu choisi ta pire solution), puis tu demande comment lui aurait fait, et pourquoi.

    je ne suis pas trop pour du code sur papier (meme si c'est revelateur), avec le stress, on peut passer a cote d'une grosse boulette...
    alors qu'en conversation, tu vois bien si le mec a la logique qui t'interesse.

    'fin, perso, je serai plus pour un dialogue... avec le feeling, tu verras bien si le gars a du vecu ou pas.

  18. #18
    Invité
    Invité(e)
    Par défaut
    Merci pour vos réponses !

    @gene69 : la réponse est Vrai, car header ne fait qu'envoyer un entête HTTP, en aucun cas il n'empêche la suite du script de s'exécuter (surtout en cas de temporisation de la transmission du header par un buffer ou autre).

    @Dendrite : merci pour cette bonne idée du "debuggage", c'est effectivement un très bon moyen de voir ce que le candidat a dans la tête

    @ovh : comme l'ont dit certains, je ne veux justement pas m'inspirer des tests classiques qui consistent à recracher la doc par cœur. Je cherche de l'expérience et de l'adaptabilité.

    @Doksuri : le test que je veux faire passer au candidat est bien entendu doublé d'un entretien pour tester sa maturité et son caractère. Par contre je ne compte pas trop sur l'oral pour savoir s'il fera du bon boulot une fois plongé dans mon appli PHP/Zend.

    Je laisse le sujet ouvert au cas où certains auraient d'autres suggestions

  19. #19
    Membre éprouvé Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Points : 1 275
    Points
    1 275
    Par défaut
    Citation Envoyé par David Guillot Voir le message
    Un exit() est nécessaire après une redirection en header('Location:...') :
    a. Vrai
    b. Faux
    Citation Envoyé par David Guillot Voir le message
    @gene69 : la réponse est Vrai, car header ne fait qu'envoyer un entête HTTP, en aucun cas il n'empêche la suite du script de s'exécuter (surtout en cas de temporisation de la transmission du header par un buffer ou autre).
    Pas d'accord. Si tu n'as plus de code après l'appel à header(..) un exit() n'est plus nécessaire.

  20. #20
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Marc3001 Voir le message
    Pas d'accord. Si tu n'as plus de code après l'appel à header(..) un exit() n'est plus nécessaire.
    Pas d'accord. Comment peux-tu être sûr qu'un autre développeur ne va pas rajouter du code sans vérifier ou en ne pouvant que difficilement vérifier que toi tu as fait une redirection avant ? Toujours blinder son code en prévision des conneries des autres

Discussions similaires

  1. [Débutant] Projet [Création site internet] besoin d'AIDE (Modérateur : a deplacer si je suis pas au bon endroit)
    Par adrenaline75 dans le forum Développement Web avec .NET
    Réponses: 0
    Dernier message: 09/01/2014, 11h51
  2. Réponses: 1
    Dernier message: 17/05/2006, 15h27
  3. [Projet] Création d'un cms
    Par Legenyes dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 28/02/2006, 16h42
  4. [Projet] création d'un cms
    Par Legenyes dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/02/2006, 16h16

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