Recherche
Peut être aimerez-vous...
Sections du site
Sites Neamar
Lisez ces articles !
| Faire passer des entretiens d'embauche : le questionnaire |
|
| IRL - Réflexions |
| Écrit par Neamar |
| Vendredi, 10 Juin 2011 14:57 |
|
Deuxième partie d'une série d'articles sur mon expérience pour la réalisation d'entretien d'embauche.
Après l'entretien, on passait donc au questionnaire. Il faut d'abord que je le contextualise : je recherchais des développeurs PHP stagiaires pour une application Zend (donc en MVC) utilisant Doctrine. L'application fait déjà plus d'un million de lignes. Je l'avais fait faire à quelques collègues, qui avaient mis une dizaine de minutes à le réaliser et m'avaient conseillé quelques éclaircissements dans les questions. Soyons franc : pour moi, un score inférieur à 12 indiquait des lacunes critiques pour le poste et pour la programmation en général. J'allais être surpris : 12 est probablement la meilleure note que j'ai eu… les stagiaires ne sont plus ce qu'ils étaient, et trouver des passionés est difficile ! La deuxième question était : fallait-il corriger devant la personne ? C'était l'avantage d'avoir réalisé le formulaire moi-même : je pouvais expliquer aux gens leurs erreurs… oui, mais étaient-ils intéressés ? Mettez-vous à leur place : un entretien d'embauche pendant lequel le recruteur vous mettrait le nez dans vos erreurs… pas très agréable. Finalement, j'ai décidé de laisser le choix : « Voulez-vous faire la correction maintenant ? » De façon intéressante, la plupart des gens disent « oui », au point que je compris rapidement que « non » signifiait « je n'ai pas été capable de répondre à une seule question et je ne sais pas ce que je fous là, j'ai essayé de te gruger à l'oral mais ce questionnaire me démasque ». Enfin, assez parlé. Je vous mets uniquement les questions ici, et les réponses dans un prochain article. Si vous avez 15 minutes devant vous et un minimum d'expérience en Web, n'hésitez pas à le faire ; vous me direz ce que vous en pensez. QuestionnaireCes questions permettent de vous situer vis-à-vis de la programmation et de l'informatique en général. Il est normal de ne pas tout connaître ;). Écriture et lecture de codeQue fait la requête SQL suivante :SELECT Marque, AVG(Prix) FROM Produits GROUP BY Marque Réponse : En javascript (ou un framework JS que vous préciserez), comment peut-on récupérer un objet par son identifiant (attribut id en HTML) ?/** * Récupère un objet par son identifiant * * @param string id l'identifiant recherché * @return DOMElement l'élément d'identifiant correspondant */ function getById(id) { return } Que fait l'expression CSS suivante ? Pouvez-vous donner un fragment de code HTML sur lequel elle s'appliquerait ?#space .space_list a:hover{ background:#777777; } Réponse : Pouvez-vous rédiger en PHP (ou autre si inconnu) une fonction prenant un tableau en paramètre et renvoyant la somme des éléments de tableau ?<?php /** * Calcule la somme des valeurs du tableau. * * @param array $tableau le tableau sur lequel effectuer la somme * * @return int la somme */ function somme_tableau(array $tableau) { } Pouvez-vous rédiger en PHP (ou autre si inconnu) une classe modélisant un utilisateur (propriétés et fonctions à votre discrétion) ?
<?php
Pouvez-vous rédiger en PHP (ou autre si inconnu) un programme affichant tous les nombres de 1 à 50, en remplaçant les multiples de 3 par ping, les multiples de 5 par pong et les multiples de 3 et 5 par pingpong ?
<?php
Écrivez une expression régulière basique permettant de valider une date de naissance (au format JJ/MM/AAAA)Regexp : Que pensez-vous du code suivant ?<?php $v = $_GET["prenom"]; echo "Bonjour $v !"; include('sql_connect.php'); $reply = mysql_query("INSERT INTO Visiteurs VALUES('" . $v . "')"); include('../../pages/' . $v . '.html'); die(); Réponse : Écrivez en pseudo-algorithme un code calculant de façon récursive la factorielle d'un nombre n.Pour rappel, factorielle(5) = 5 * 4 * 3 * 2 * 1. fonction factorielle(n) Connaissances informatiquesEn programmation orientée objet, quelle est la particularité d'une classe abstraite ?Réponse : Rapidement, comment représenter des données hiérarchiques dans une base de données ?Par exemple, un arbre de catégories : une catégorie principale qui peut avoir un ou plusieurs enfants, qui peuvent eux-même avoir un ou plusieurs enfants, etc. Quand peut-on dire d'un graphe qu'il admet un parcours hamiltonien ?Réponse : Comment quitte-t-on l'éditeur de texte vi ?Réponse : Comment ouvrir une console sous Windows et afficher son adresse IP (sur Internet et/ou sur la box) ?Réponse : Quelle est la complexité (en notation grand O) d'un algorithme affichant tous les nombres de 1 à n, en remplaçant les multiples de 3 par ping, les multiples de 5 par pong et les multiples de 3 et 5 par pingpong ? (cf. questions code)Réponse : Quelle entreprise possède Youtube ?Réponse : En MVC, qui effectue les requêtes SQL permettant de récupérer un objet dont une des propriétés devra être affichée ?Réponse : Quel nombre suit F en hexadécimal ?Réponse : $\sum_{i=0}^{\infty} \frac{1}{i^2} = ?$Réponse : BonusYou're the captain of a pirate ship and your crew gets to vote on how the gold is divided up. If fewer than half of the pirates agree with you, you die. How do you recommend apportioning the gold in such a way that you get a good share of the booty, but still survive ? Code Et comme je suis sympa, je vous mets le code du formulaire sur ce gist. |
| Mise à jour le Mercredi, 15 Juin 2011 12:45 |

la complexité d'un algorithme affichant tous les nombres de 1 à 50 : De 1 a 50 ou de 1 à n ?
Pour les maths, c'est du LaTeX. Et j'attendais la réponse "division par zéro" :) (ou pi²/6 pour ceux qui shuntaient le terme initial)
Tu devrais clarifier la question "Pouvez-vous rédiger en PHP (ou autre si inconnu) une classe de type utilisateur (propriétés et fonctions à votre discrétion) ? " car je vois pas ce que tu veux exactement.
Je note que l'INSA t'as clairement influencé dans l'élaboration de ce questionnaire, comme quoi :)
Pareil, la question "Comment quitte-t-on l'éditeur de texte vi ?" => Aucune idée, et c'est pas pour autant que je sais pas coder ni me servir de linux.
Pareil pour $\sum_{i=0}^{\infty} \frac{1}{i^2} = ?$ c'est du latex ? J'en sais rien et ça m'est pas utile pour développer. Si tu veux juste la réponse, dis-le explicitement (vers quelle valeur tend la somme de 0 à l'infini de 1/i²).
En tout cas, dans l'ensemble, ça sent carrément le genre de question "est-ce que t'es assez geek pour travailler avec moi ?" (ce qui n'est pas forcément une critique hein).
C'est mes réactions à chaud, sans avoir lu les réponses.
Pour la classe Utilisateur, effectivement, "modéliser" irait mieux.
Pour l'INSA... ah bon ? En quoi ?
Concernant vi, si tu ne sais pas quitter, c'est quand même la preuve que tu n'as jamais fait de dev sur un serveur. Après si tu me parlais d'emacs ou de nano... pourquoi pas, mais savoir faire le minimum en console est critique pour du web.
Pour le LaTeX, je veux voir si le gars sera capable de rédiger un compte rendu de R&D ou un dossier de documentation proprement ; la question mathématique n'est qu'une excuse car là je suis d'accord que savoir résoudre une série est inutile pour du dev.