J'essaie de déterminer quelques bonnes questions d'entrevue pour évaluer l'aptitude des personnes à postuler à un emploi en HTML / CSS, mais ce sujet est extrêmement vaste et je ne suis pas sûr du type de questions que je peux poser pour évaluer correctement le code HTML / de quelqu'un. Connaissances CSS.
Quel type de questions puis-je poser pour évaluer les capacités HTML / CSS d'un candidat lors d'un entretien?
Idéalement, j'aimerais poser quelques questions et leur donner ensuite un scénario de la vie réelle à combattre.
web-development
html
css
webnoob
la source
la source
Réponses:
HTML et CSS sont difficiles à interviewer pour plusieurs raisons:
Ils sont trop basiques, comparés, par exemple, à un langage de programmation,
Ils dépendent beaucoup du contexte du travail. Exemples:
Si vous créez des sites Web extrêmement rapides et optimisés sur Google, les personnes que vous interviewez pour le poste ne peuvent ignorer les sprites CSS.
Si vous créez des sites Web valides XHTML W3C, vous devez vous assurer que les candidats connaissent la différence entre XHTML 1.0 et XHTML 1.1, ou quels sont les attributs obligatoires
<img/>
, etc.Si vous créez des sites Web épouvantables remplis de hacks, vous devriez demander aux personnes que vous interviewez comment elles vont faire tel ou tel hack, comment elles servent différents CSS pour différents navigateurs, etc.
etc.
S'il s'agit d'un travail HTML et CSS pur, la personne devra travailler avec les concepteurs, d'une part, et les développeurs, d'autre part. Ils doivent connaître le HTML et le CSS, mais leur capacité à interagir avec ces personnes et à comprendre à la fois les besoins des concepteurs, les exigences des développeurs et les contraintes du HTML et du CSS a beaucoup plus de valeur .
Par exemple, ils doivent savoir comment structurer leur code HTML de manière à ce qu'un développeur JavaScript puisse facilement ajouter de l'interactivité ultérieurement.
Vous voudrez peut-être commencer par quelques questions de base:
Si la personne répond "Internet Explorer", arrêtez l'interview immédiatement: vous n'avez pas besoin de quelqu'un comme ça.
Non, je plaisante. La réponse est hors de propos. Au lieu de cela, vous pouvez demander ce qui suit:
Principalement en utilisant Chrome, je travaille quotidiennement avec les outils de développement. Ces outils me permettent de:
Voir les demandes faites à partir d'une page,
Étudiez le temps nécessaire pour charger une page et les ressources associées, en particulier les temps de consultation, d'attente et de réception DNS,
Etudiez les en-têtes des éléments envoyés, ainsi que l'indicateur de cache,
Voir le DOM et étudier comment les sélecteurs CSS sont appliqués,
J'utilise également YSlow, qui me sert de liste de contrôle pour l'optimisation d'un site Web qui nécessite une évolutivité élevée. YSlow est également un bon outil pour déterminer si le serveur est configuré correctement (envoi d'en-têtes corrects, etc.).
Dans Firefox, j'utilise Firebug, l'outil très similaire aux outils de développement de Chrome. Les outils de développement sont également disponibles dans les nouvelles versions d'Internet Explorer et me permettent également de passer aux vues compatibles IE7 à IE10. Cette dernière fonctionnalité est très utile, car sans elle, je serais obligé d’installer plusieurs machines virtuelles uniquement pour des tests hérités, ou d’utiliser beaucoup plus souvent les services payants comme Litmus .
Ici, vous voulez que la personne soit en mesure d'expliquer
<dl/>
est pour les dictionnaires, associant une clé,<dt/>
avec une ou plusieurs valeurs,<dd/>
. Bien que l'utilisation principale de cette balise soit purement liée à la sémantique, elle a été largement utilisée pour remplacer des tableaux, un bon exemple étant PHPBB3. C’est une bonne chose lorsque les tableaux ralentissent le rendu de la page, mais vous devez l’utiliser avec prudence: non seulement les tableaux sont toujours appropriés dans de nombreux cas pour mieux décrire les données, mais il peut également y avoir d’autres moyens, tels que des outils ordinaires. listes, pour décrire le contenu sans utiliser<dl/>
.La disposition fixe a des largeurs prédéfinies des éléments. Les éléments d'une mise en page fluide dépendent de la largeur de la page.
La disposition fixe facilite la conception de la page, en particulier lorsque les graphiques pleine largeur sont nombreux. Même sans graphiques, c'est toujours plus facile, car vous ne vous occupez que d'un cas précis. Par exemple, Programmers.SE étant un site Web à disposition fixe, la colonne qui affiche les questions et les réponses a toujours la même taille. Si une disposition fluide était utilisée pour cette colonne, cela créerait un problème: sur les petits écrans, le texte serait illisible, car les lignes seraient trop courtes, alors que sur les grands écrans, les lignes seraient extrêmement grandes. serait illisible aussi.
Le problème avec la mise en page fixe est que cela fonctionne bien pour quelques résolutions parmi les plus utilisées, mais échoue plus ou moins pour tout le reste. Cela devient particulièrement important depuis l'adoption de très grands moniteurs larges et l'utilisation croissante d'Internet sur de petits appareils mobiles.
La mise en page fluide aide à cela, mais la conception est plus difficile à faire pour un tel site Web. Dans certains scénarios sur des projets mal gérés, cela peut entraîner des piratages HTML et CSS, des pages volumineuses, une maintenance faible et, au cours du développement, des coûts plus élevés et des délais non respectés.
Vous pouvez limiter la largeur d'une zone de texte à l'aide de la
max-width
propriété.Le morceau de code a un défaut pour mélanger la logique de présentation dans HTML. La logique de présentation doit être mise en CSS pour plusieurs raisons:
Après quelques questions de base comme celle-ci, vous pouvez en poser d’autres plus difficiles:
Vous faites cela en utilisant des pré-processeurs CSS, comme Sass ou LESS. Ils permettent de définir des couleurs, des polices et d’autres éléments du style à l’intérieur de variables que vous pourrez utiliser ultérieurement dans vos styles.
Les inconvénients des préprocesseurs CSS sont les suivants:
Ils doivent parfois modifier le flux de travail de développement et de déploiement afin de disposer du code CSS à jour dans le navigateur.
Ils ne sont connus que de quelques développeurs, ce qui empêche une nouvelle personne de rejoindre ou de gérer le projet ultérieurement,
Il n'y a pas à la fois de bons et de rapides IDE pour Sass ou LESS, et l'intégration au sein des IDE les plus populaires est plutôt décevante.
Etant donné que HTTPS nécessite que chaque ressource appelée soit également sur HTTPS (sinon, un avertissement de sécurité sera affiché à l'utilisateur dans de nombreux cas), il n'est pas possible de spécifier le lien sous la forme
http://cdn.example.com/image.png
. Pour lier correctement à l'image,//cdn.example.com/image.png
doit être utilisé; le navigateur sera alors ajoutéhttp:
ouhttps:
dépendant du contexte.Si HTTP 1.1 est utilisé, la page peut être tronquée . Cela signifie que les premières parties apparaissent plus rapidement, ce qui donne l'impression que le site Web est plus rapide que ce qu'il est en réalité. Le codage de transfert en bloc est impossible dans HTTP 1.0, ce qui signifie qu'il n'y a rien à faire dans ce cas.
Pour pouvoir servir le contenu fragmenté, il faut, du point de vue HTML, réorganiser les éléments, en plaçant les plus critiques en haut du fichier (ce qui ne veut pas dire qu’ils doivent apparaître en haut de la page). Par exemple, sur un site Web de commerce électronique, lorsque l'utilisateur souhaite voir les détails du produit, le premier morceau peut contenir les
<head/>
détails du produit. Le bloc suivant peut contenir les éléments principaux tels que le logo du site Web, le menu principal, les droits d'auteur, etc. Enfin, le dernier bloc peut contenir la section "Les personnes ayant acheté cet article ont également acheté", les commentaires et les évaluations du produit, le "Partager sur Facebook", etc.Enfin, vous pouvez demander au candidat de travailler sur un scénario du monde réel. Cela peut être n'importe quoi, comme le plus facile ci-dessous, dans les scénarios complexes où la personne doit faire face à des sprites CSS ou à d'autres techniques d'optimisation avancées, avec des incohérences de navigateur, etc.
En fait, c'est assez simple mais cela montre si la personne a le réflexe de penser aux hauteurs. Un candidat inexpérimenté créera la
float:left
zone et laborder-left:solid 1px #ccc;
zone, mais oubliez d’ajouter la bordure dans la zone de gauche et de l’étendre de sorte que deux frontières se trouvent au même endroit.la source
Voici quelques questions que je voudrais poser à propos de CSS:
inline-block
et d'autres valeurs d'affichage. Différence entredisplay: none;
etvisibility: hidden;
(c'est une bonne question pour les débutants en CSS)inline-block
vsfloat
pour les mises en page.Et quelques questions sur HTML:
em
vsi
par exemple)?En général, je mets davantage l’accent sur les CSS car c’est le domaine que beaucoup de gens ont du mal à saisir et à utiliser efficacement. Je rencontre beaucoup de candidats qui ont mis "CSS" dans leur CV mais ne sont pas en mesure de répondre à leurs questions. La plupart des gens se contentaient de dire "Non-non, je connais assez bien CSS pour le gérer mais pas assez pour en parler."
Parfois, il est judicieux de confier une tâche simple à une personne interrogée. Dites, concevez une page simple avec une mise en page et un style de bloc prenant en charge plusieurs tailles d'écran et s'adaptant en conséquence. Cela devrait prendre environ une heure ou deux et le candidat devrait expliquer ce qu’il fait et pourquoi.
Bonne chance pour interviewer!
la source
Si vous menez une interview en direct, le meilleur moyen est de demander au développeur d’écrire du code html / css.
Exemple (très commun dans le développement réel). Demandez au développeur d’écrire le code html / css de la page avec:
UPD: Bien sûr, demandez au développeur d’écrire le code en utilisant seulement divs (sans tables).
Cela devrait ressembler à:
Mais avant d’interviewer en direct, je vous suggère de tester les candidats en ligne. Parce qu’il est plus facile de tester les candidats en ligne et d’inviter à un entretien uniquement des développeurs de talent, plutôt que de consacrer du temps à chaque candidat.
la source
position:absolute
est autorisée, etc.J'ai participé à quelques entretiens avec des concepteurs de sites Web. Nous avons donc imprimé sur papier une mise en page de blog très simple , puis demandé au candidat de noter du code HTML et / ou CSS sur la page pendant 10 minutes environ, pour donner nous une idée de base de la façon dont ils le coder. Cela nous a permis de savoir si quelqu'un connaissait réellement CSS ou non. Nous recherchions simplement des éléments de base tels que floats vs tables, ou autre chose, et nous avons expliqué que cela n’était pas obligatoirement parfait.
Des tonnes de gens ont réclamé des années d'expérience avec CSS, mais quand ils ont été pressés de l'écrire, ils ont écrit de façon approximative, comme "
layout: floating; direction: up;
" ou autre. Plus de 1 "CSS Ninja" n'avait même pas la syntaxe correcte, à la "div(margin=5)
". C'était très révélateur pour moi de voir combien de personnes restaient immobiles dans les interviews. Et il est apparemment plus facile de mentir à propos du CSS que du codage direct. Vous ne savez peut-être rien sur CSS, mais faites des recherches sur Google pour pouvoir utiliser la terminologie appropriée assez rapidement. Vous ne pouvez pas vraiment faire cela efficacement avec des concepts de niveau supérieur tels que la POO, par exemple.la source
Il existe un test en ligne dans lequel vous devez répertorier les balises HTML ou les propriétés CSS en 5 minutes.
Bien qu'il ne s'agisse pas d'un test complet, cela peut vous permettre de savoir si le candidat est suffisamment familiarisé avec HTML / CSS.
À propos de la question, vous pouvez faire un test avec un exemple de code et lui demander de détecter les erreurs de syntaxe / structure.
En ce qui concerne le scénario réel, tout dépend de ce sur quoi le candidat travaillera dans votre entreprise. Si vous voulez juste un développeur front-end, vous pouvez demander une conception de site Web sur un sujet aléatoire.
la source
La révision de code est un type de test applicable aux langages de programmation et aux langages de balisage. Créez un petit échantillon (20 ou 30 lignes) avec un mélange d'erreurs de syntaxe, d'erreurs de logique, de casse aux angles, de mauvais style, etc. Demandez ensuite au candidat d'identifier tout ce qui lui paraît suspect.
Il est important d'utiliser ce type de test correctement: comme pour toute question d'entretien, la manière dont le candidat aborde la tâche est importante et pas seulement les résultats.
Je ne vais pas poster mon test, mais quelques astuces pour l’appliquer au CSS:
em
etpx
, etc. Quelqu'un qui a étudié la syntaxe de l'entrevue ne sera probablement pas attraper beaucoup d' entre eux.la source
De mon expérience personnelle, en travaillant avec d’autres développeurs, je pense que les questions sur HTML et CSS ne sépareront pas les personnes qui savent de quoi elles parlent de celles qui savent ce qu’elles font réellement.
Je recommanderais un prototype / test de simulation basé sur l'expérience réaliste des besoins de votre entreprise.
la source