French translation update

This commit is contained in:
Mathieu Hays 2015-04-18 01:41:16 +01:00
parent 18529905de
commit 5ebf0cc5fc
1 changed files with 94 additions and 103 deletions

View File

@ -2,97 +2,79 @@
Cette liste contient un certain nombre de questions que vous pouvez poser lors d'un entretien d'embauche pour un développeur Front-End. Il n'est en aucun cas recommandé de poser toutes ces questions à un candidat (ça prendrait des heures). Choisissez en quelques-unes liées au profil que vous rechercher afin de vérifier les compétences dont vous avez besoin.
L'article [Bases pour les développeurs front-end](http://rmurphey.com/blog/2012/04/12/a-baseline-for-front-end-developers/) (en) de [Rebecca Murphey](http://rmurphey.com/) est aussi une bonne ressource à lire avant de se lancer dans un entretien.
**Note:** Gardez en tête que la plupart de ces questions sont ouvertes et qu'elles peuvent mener à des discussions intéressantes, qui vous en apprendront plus sur les capacités de la personne.
## <a name='toc'>Table des matières</a>
1. [Contributeurs originaux](#contributors)
1. [Questions générales](#general)
1. [Questions sur HTML](#html)
1. [Questions sur CSS](#css)
1. [Questions sur JS](#js)
1. [Questions sur jQuery](#jquery)
1. [Questions sur la programmation](#jscode)
1. [Questions pour le plaisir](#fun)
1. [Questions générales](#general-questions)
1. [Questions sur HTML](#html-questions)
1. [Questions sur CSS](#css-questions)
1. [Questions sur JS](#js-questions)
1. [Questions sur réseau](#network-questions)
1. [Questions sur la programmation](#code-questions)
1. [Questions pour le plaisir](#fun-questions)
####<a name='contributors'>Contributeurs originaux:</a>
####S'impliquer :
La majorité des questions sont tirées d'un sujet sur [oksoclap](http://oksoclap.com/) créé à l'origine par [Paul Irish](http://paulirish.com) ([@paul_irish](http://twitter.com/paul_irish)) et les personnes suivantes y ont contribué:
* [@bentruyman](http://twitter.com/bentruyman) - http://bentruyman.com
* [@cowboy](http://twitter.com/cowboy) - http://benalman.com
* [@ajpiano](http://ajpiano) - http://ajpiano.com
* [@SlexAxton](http://twitter.com/slexaxton) - http://alexsexton.com
* [@boazsender](http://twitter.com/boazsender) - http://boazsender.com
* [@miketaylr](http://twitter.com/miketaylr) - http://miketaylr.com
* [@vladikoff](http://twitter.com/vladikoff) - http://vladfilippov.com
* [@gf3](http://twitter.com/gf3) - http://gf3.ca
* [@jon_neal](http://twitter.com/jon_neal) - http://twitter.com/jon_neal
* [@wookiehangover](http://twitter.com/wookiehangover) - http://wookiehangover.com
* [@iansym](http://twitter.com/iansym) - http://twitter.com/iansym
1. [Contributeurs](#contributors)
1. [Comment contribuer (en)](https://github.com/h5bp/Front-end-Developer-Interview-Questions/blob/master/CONTRIBUTING.md)
1. [Licence](https://github.com/h5bp/Front-end-Developer-Interview-Questions/blob/master/LICENSE.md)
**[[⬆]](#toc)**
####<a name='general'>Questions générales:</a>
####<a name='general-questions'>Questions générales:</a>
* Qu'avez-vous appris cette semaine ?
* Qu'est ce qui vous motive ou vous intéresse dans le développement ?
* Parlez-moi de votre environnement de travail préféré. (OS, éditeur, navigateur, outils, etc.)
* Quel a été le dernier défi technique que vous avez expérimenté et comment l'avez-vous résolu ?
* Quelles considérations en terme d'UI, Sécurité, Performance, SEO, Maintenabilité ou Technologie faites-vous lorsque vous concevez une application web ou site ?
* Parlez-moi de votre environnement de travail préféré.
* Avec quels logiciels de gestion de versions êtes vous familier?
* Pouvez-vous décrire comment vous travaillez (votre workflow) lorsque vous créez une page web ?
* Avec quels logiciels de gestion de versions êtes vous familier?
* Si vous aviez 5 feuilles de style différentes, de quel façon les intgreriez-vous le mieux dans un site ?
* Pouvez-vous décrire la différence entre amélioration progressive et dégradation gracieuse ?
* Point bonus si description des méthodes de détection.
Expliquez ce que le terme «HTML sémantique» signifie.
* Comment optimisez-vous les performances de vos pages web (assets/resources) ?
* Parmi les solutions possibles :
* La concaténation des fichiers
* La minification des fichiers
* L'utilisation d'un Content Delivery Network (CDN)
* La mise en cache
* etc.
* Pourquoi est-il préférable de disposer ses assets sur des domaines différents ?
* Combien de ressources différentes à la fois un navigateur peut-il télécharger à partir d'un même domaine ?
* Combien de ressources différentes à la fois un navigateur peut-il télécharger à partir d'un même domaine ?
* Quelles sont les exceptions ?
* Donnez 3 façons qui permettent de réduire le temps de chargement d'une page (perçu ou réel).
* Si vous commencer à travailler sur un projet existant, où votre prédécesseur a utilisé des tabulations pour indenter son code et que vous utilisez des espaces, que faites-vous ?
* Vous proposez d'utiliser quelque chose comme EditorConfig (http://editorconfig.org)
* Vous restez fidèle aux conventions
* `issue :retab! command`
* Développez un simple diaporama
* Un point bonus si vous le faites sans JS
* Décrivez comment vous développeriez un simple diaporama
* Quels outils utilisez-vous pour tester la performance de votre code ?
* JSPerf (http://jsperf.com/)
* Dromaeo (http://dromaeo.com/)
* etc.
* Si vous pouviez maîtriser parfaitement une technologie cette année, laquelle serait t'elle ?
* Expliquez l'importance des standards et des organisations les édictant.
* Qu'est-ce que le FOUC, comment l'évitez-vous ?
* Expliquez qu'est-ce que sont ARIA et les lecteurs d'écrans, et comment rendre votre site internet accessible
* Expliquez quelques-uns des pour et contre des animations CSS par rapport aux animations JavaScript
**[[⬆]](#toc)**
####<a name='html'>Questions sur HTML :</a>
####<a name='html-questions'>Questions sur HTML :</a>
* Que fait un `doctype` ?
* Quelle est la différence entre les modes `standard` et `quirks` ?
* Quelles sont les limitations des pages XHTML ?
* Y a t'il des problèmes à envoyer des pages avec le content-type `application/xhtml+xml` ?
* Quelles sont les différences entre HTML et XHTML ?
* Y a t'il des problèmes à envoyer des pages avec le content-type `application/xhtml+xml` ?
* Comment servez-vous une page avec du contenu multilingue ?
* À quoi devez-vous faire attention quand vous désignez ou développez des pages pour des sites multilingues ?
* À quoi devez-vous faire attention quand vous désignez ou développez des pages pour des sites multilingues ?
* À quoi les `data-` "attributes" servent-ils ?
* Si l'on considère que HTML5 est une plateforme web ouverte, quelles sont les briques de base de HTML5 ?
* Décrivez la différence entre cookies, sessionStorage, et localStorage.
* Décrivez la différence entre `cookie`, `sessionStorage`, et `localStorage`.
* Décrivez la différence entre `<script>`, `<script async>` et `<script defer>`.
* Pourquoi est-ce-t'il généralement une bonne idée de positionner `<link>`s à l'intérieur de `<head></head>` et `<script>`s just avant `</body>`? Connaissez-vous des exceptions?
* Qu'est-ce que le rendu progressif ?
**[[⬆]](#toc)**
####<a name='css'>Questions sur CSS :</a>
####<a name='css-questions'>Questions sur CSS :</a>
* Décrivez ce que fait un "reset" CSS et en quoi il est utile.
* Quelle est la différence entre les classes et les IDs en CSS ?
* Quelle est la différence entre un "reset" et une "normalisation" en CSS ? Lequel choisiriez-vous et pourquoi ?
* Décrivez le positionnement flottant et son fonctionnement.
* Décrivez le `z-index` et comment le contexte d'empilement se forme ?
* Quelles sont les différentes méthodes de "clearing" des éléments flottant, et laquelle est appropriée pour chaque contexte ?
* Expliquez ce que sont les "sprites" CSS et comment vous les implémenteriez sur une page ou un site.
* Quelles sont vos techniques favorites de remplacement d'images, et comment les utilisez-vous ?
* Parmi les solutions suivantes, laquelle préférez-vous ? Hacks CSS, appel de fichier CSS par commentaire conditionnel ou autre ?
* Quelle approche choisiriez-vous pour réparer des bugs au niveau du CSS spécifique à certains navigateurs ?
* Comment servez-vous vos pages pour les navigateurs aux fonctionnalités réduites ?
* Quelles techniques/procédés utilisez-vous ?
* Quelles sont les différentes manières de masquer du contenu (en le laissant disponible pour les lecteurs d'écran) ?
@ -104,27 +86,34 @@ Expliquez ce que le terme «HTML sémantique» signifie.
* Quels sont les avantages/désavantages de l'utilisation des préprocesseurs CSS ? (SASS, Compass, Stylus, LESS)
* Si vous avez un avis, décrivez ce que vous aimez et n'aimez pas des préprocesseurs que vous avez utilisé.
* Comment implémenteriez-vous un design qui utilise des polices de caractères non standards ?
* Webfonts (des services : Google Webfonts, Typekit, etc.)
* Expliquez comment un navigateur détermine quels éléments correspondent à un sélecteur CSS.
* Expliquez ce que vous avez compris du modèle de boite (box model) et comment implémenteriez vous une mise en page avec des modèles de boite différents.
* Qu'est-ce que ```* { box-sizing: border-box; }``` fait ? Quels sont ses désavantages ?
* Listez autant de valeurs que vous pouvez pour la propriété `display`.
* Quelle est la différence entre `inline` et `inline-block` ?
* Quelle est la différence entre les éléments ayant `relative`, `fixed`, `absolute` et `static` comme `position` ?
* Le 'C' dans CSS veut dire Cascade (Cascading). Comment la priorité est-elle définie lors de l'assignement de styles (exemples) ? Comment pouvez-vous utiliser ce système à votre avantage ?
* Quels systèmes CSS (framework) avez-vous utilisé localement, ou en production ? Comment feriez-vous pour les changer/améliorer ?
* Avez-vous expérimenté le récent `flexbox` ?
* En quoi le "responsive design" est différent du "adaptive design" ?
* Avez-vous déjà travaillé avec des images "retina" ? Si oui, à quel moment et quelles techniques avez-vous utilisé ?
* Il y a t'il des raisons particulières pour lesquelles vous voudriez utilser `translate()` plutôt que `position: absolute` ou vice-versa ? Et pourquoi ?
**[[⬆]](#toc)**
####<a name='js'>Questions sur JS :</a>
####<a name='js-questions'>Questions sur JS :</a>
* Expliquez la délégation d'évènement.
* Expliquez comment fonctionne `this` en Javascript.
* Expliquez comment fonctionne l'héritage de prototype.
* Comment testez-vous votre code Javascript ?
* AMD ou CommonJS ?
* Qu'est-ce qu'une table de hachage (hashtable) ?
* Que pensez-vous d'AMD par rapport à CommonJS ?
* Expliquez pourquoi ce qui suit n'est pas une IIFE (Immediately Invoked Function Expression) : `function foo(){ }();`.
* Qu'est-ce qu'il faut changer pour faire une IIFE correcte ?
* Quelle est la différence entre une variable `null`, `undefined` et `undeclared` ?
* Comment feriez-vous pour vérifier chacun de ces états ?
* Qu'est-ce qu'une "closure" et comment/pourquoi en utiliser une ?
* Point bonus pour avoir mentionné le nettoyage de l'espace de nom (namespace).
* Et si vos modules n'avaient pas d'espace de nom ?
* Quelle est l'utilisation typique d'une fonction anonyme ?
* Comment organisez-vous votre code ? (pattern modulaire, héritage classique ?)
* Quelle est la différence entre des objets hôtes et des objets natifs ?
* Différence entre :
@ -136,12 +125,11 @@ function Person(){} var person = Person() var person = new Person()
* Comment optimisez-vous votre code ?
* Pouvez-vous expliquer comment fonctionne l'héritage en Javascript ?
* Quand utiliseriez-vous `document.write()` ?
* La plupart des pubs utilisent encore `document.write()` même si son utilisation est découragée.
* Quelle est la différence entre détection de "feature", inférence de "feature" et l'utilisation du "User-Agent" ?
* Expliquez ce qu'est AJAX avec autant de détails que possible.
* Expliquez comment fonctionne JSONP (et pourquoi ce n'est pas réellement de l'AJAX).
* Avez-vous déjà utilisé des "templates" en Javascript ?
* Si oui, quelles librairies avez-vous utilisées ? (Mustache.js, Handlebars, etc.)
* Si oui, quelles librairies avez-vous utilisées ?
* Expliquez le phénomène de "hoisting".
* Décrivez le "event bubbling".
* Quelle est la différence entre un "attribut" et une "propriété" ?
@ -149,90 +137,93 @@ function Person(){} var person = Person() var person = new Person()
* Pourquoi étendre les objets natifs est-il une bonne idée ?
* Quelle est la différence entre les évènements "document load" et "document ready" ?
* Quelle la différence entre `==` et `===` ?
* Expliquez comment vous récupéreriez le paramètre d'une requête issu de l'URL de la fenêtre du navigateur ?
* Expliquez la politique d'origine commune (same-origin policy) et ses implications en JavaScript.
* Expliquez les patterns d'héritage en JavaScript.
* Faites fonctionner ceci :
```javascript
[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]
```
* Décrivez une stratégie de "memoization" (éviter la répétition de calculs) en Javascript.
* Qu'est ce que l'opérateur ternaire ? Qu'est-ce que ce mot indique ?
* Qu'est-ce que l'arité d'une fonction ?
* Qu'est-ce que `"use strict";`? Quels sont les avantages et désavantages de son utilisation ?
* Créez une boucle `for` qui se répète `100` fois et affichez **"fizz"** aux multiples de `3`, `"buzz"` aux multiples de `5` et **"fizzbuzz"** aux multiples de `3` et `5`.
* Pourquoi il est en général préférable de laissez le 'scope' global d'un site tel quel et ne jamais y toucher ?
* Pourquoi utiliseriez-vous quelque chose comme l'événement `load` ? Est-ce que cette événement a des avantages ? Connaissez-vous des alternatives, et pourquoi les utiliseriez-vous ?
* Expliquez ce qu'est une application à 1 page et comment feriez pour qu'elle soit optimisé pour le SEO.
* Quelle est l'étendu de votre expérience avec les "Promises" et/ou leurs "polyfills" ?
* Quels sont les pour et contre de l'utilisation des "Promises" à la place des "callbacks" ?
**[[⬆]](#toc)**
####<a name='jquery'>Questions sur jQuery :</a>
####<a name="network-questions">Questions sur le réseau</a>
* Expliquez le chaînage (chaining).
* Expliquez "deferred".
* Décrivez quelques optimisations spécifiques à jQuery que vous pouvez implémenter.
* Que fait `.end()` ?
* Pourquoi et comment restreindriez-vous un évènement à un espace de nom (namespace) ?
* Nommez 4 valeurs différentes que vous pouvez passer à une méthode jQuery.
* Sélecteur (string), HTML (string), Callback (function), HTMLElement, objet, tableau, tableau d'éléments, objet jQuery, etc.
* Qu'est-ce que la queue d'effets (fx queue) ?
* Quelle est la différence entre `.get()`, `[]`, et `.eq()` ?
* Quelle est la différence entre `.bind()`, `.live()`, et `.delegate()`?
* Quelle est la différence entre `$` et `$.fn`? Ou bien seulement : qu'est-ce que `$.fn`.
* Optimisez ce sélecteur :
```javascript
$(".foo div#bar:eq(0)")
```
* Quelle est la différence entre `delegate()` and `live()` ?
* Pourquoi est-il préférable de disposer ses assets sur des domaines différents ?
* Faites de votre mieux pour décrire le processus à partir du moment où vous tapez l'URL d'un site internet jusqu'au moment où la page a finit de charger.
* Quelle est la différence entre "Long-Polling", "Websockets" et les événements "Server-Sent" ?
* Expliquez les entêtes de requêtes et réponses suivant :
* Diff. between Expires, Date, Age and If-Modified-...
* Do Not Track
* Cache-Control
* Transfer-Encoding
* ETag
* X-Frame-Options
* Quelles sont les différentes actions HTTP ? Listez toutes celles que vous connaissez et expliquez les.
**[[⬆]](#toc)**
####<a name='jscode'>Questions sur la programmation :</a>
####<a name='code-questions'>Questions sur la programmation :</a>
*Question: Quelle est la valeur de `foo` ?*
```javascript
~~3.14
var foo = 10 + '20';
```
Question: Que retourne ce code ?
**Réponse: 3**
*Question: Comment feriez-vous marcher ceci?*
```javascript
add(2, 5); // 7
add(2)(5); // 7
```
*Question: Que retourne ce code ?*
```javascript
"je suis un bouffeur de lasagne".split("").reverse().join("");
```
Question: Que retourne ce code ?
**Réponse: "engasal ed rueffuob nu sius ej"**
*Question: Que retourne window.foo?*
```javascript
( window.foo || ( window.foo = "bar" ) );
```
Question: Que retourne window.foo?
**Réponse: "bar"**
seulement si window.foo n'était pas défini ou faux, autrement il garde sa valeur
*Question: Qu'est ce qu'affiche les deux alertes ci-dessous ?*
```javascript
var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);
var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);
```
Question: Que se passe-t-il à l'exécution de ce code ?
**Réponse: "Hello World" & ReferenceError: bar is not defined**
*Question: Quelle est la valeur de `foo.length` ?*
```javascript
var foo = [];
foo.push(1);
foo.push(2);
```
Question: Quelle est la valeur de foo.length ?
**Réponse: `2`**
```javascript
var foo = {};
foo.bar = 'hello';
```
Question: Quelle est la valeur de foo.length ?
**Réponse: `undefined`**
**[[⬆]](#toc)**
####<a name='fun'>Questions pour le fun :</a>
####<a name='fun-questions'>Questions pour le fun :</a>
* Quel est le truc le plus cool que vous ayez programmé, de quoi êtes-vous le plus fier ?
* Quelles sont les parties favorites des outils de développement que vous utilisez ?
* Avez-vous des projets chouchous ? Quel genre ?
* Quelle est votre fonctionnalité favorite dans IE ?
* Comment voulez-vous votre café ?
**[[⬆]](#toc)**
####<a name="contributors">Contributeurs :</a>
Ce document a démarré avec la collaboration de [@paul_irish](https://twitter.com/paul_irish) [@bentruyman](https://twitter.com/bentruyman) [@cowboy](https://twitter.com/cowboy) [@ajpiano](https://twitter.com/ajpiano) [@SlexAxton](https://twitter.com/slexaxton) [@boazsender](https://twitter.com/boazsender) [@miketaylr](https://twitter.com/miketaylr) [@vladikoff](https://twitter.com/vladikoff) [@gf3](https://twitter.com/gf3) [@jon_neal](https://twitter.com/jon_neal) [@sambreed](https://twitter.com/sambreed) et [@iansym](https://twitter.com/iansym).
Il a depuis reçu des contributions de plus de [100 développeurs](https://github.com/h5bp/Front-end-Developer-Interview-Questions/graphs/contributors).