Logo DevSkillerLogo TalentBoostLogo TalentScore

Comment dépister les compétences des développeurs autochtones

Publié : Dernière mise à jour :
Comment dépister les compétences des développeurs autochtones

Alors que React fait la une de la presse, React Native est devenu un élément essentiel de l'univers JavaScript. Il permet aux développeurs d'écrire des applications mobiles qui peuvent être portées à la fois sur iOS et Android. L'avantage est qu'au lieu de devoir développer des compétences distinctes pour iOS (Objective-C et Swift) et pour Android (Java et Kotlin), les développeurs d'applications mobiles peuvent s'appuyer sur JavaScript, le langage le plus utilisé actuellement. Mais comme pour toutes les piles technologiques, il ne suffit pas de connaître JavaScript. Vous devez avoir une connaissance approfondie de React Native. Comment les employeurs peuvent-ils donc savoir si un développeur React Native possède les compétences requises ?

Un guide pour le dépistage Réagir aux compétences des développeurs autochtones

Ce guide donnera aux recruteurs techniques toutes les informations dont ils ont besoin pour présélectionner les candidats développeurs natifs. A l'intérieur, vous trouverez :

Qu'est-ce qu'un développeur natif ?

1. Qu'est-ce que React Native ?

React Native est un cadre conçu et maintenu par Facebook dans le but de simplifier le processus de développement d'applications mobiles multiplateformes, principalement en ce qui concerne l'interface utilisateur. Il s'appuie sur une autre bibliothèque JavaScript, React, qui a rapidement atteint le statut d'outil le plus populaire et le plus reconnaissable parmi les développeurs de premier plan. Mais son essor a suscité une certaine controverse.

Lancé en 2015 en tant que projet open-source, React Native a rapidement divisé la communauté des développeurs mobiles. Avant l'arrivée de React Native, il existait un certain nombre d'outils affichant des pages web écrites en HTML, CSS et JavaScript dans un navigateur autonome qui imitait l'application native. Si cela vous paraît maladroit, vous avez raison. Ils se sont avérés difficiles à utiliser et n'ont pas été très populaires.

React Native, en revanche, évite de prendre les mêmes raccourcis que ses prédécesseurs. La hiérarchie des vues rendue par l'application est entièrement native du système sur lequel elle fonctionne. En d'autres termes, l'application semble être une application native plutôt qu'une page web. Cela rend les applications React Native indifférenciables des applications classiques écrites en Swift, Objective-C, Kotlin ou Java. Pour le voir fonctionner en pratique, consultez des applications populaires comme Facebook, Messenger, Instagram ou Discord. Même un expert aurait du mal à voir quelles parties de ces applications ont été écrites en React Native et lesquelles ont été écrites en utilisant une autre pile technologique.

1.1 La différence entre Réagir vs. Réagir Natif

React et React Native sont deux projets open source qui ont été créés par Facebook, mais ce n'est pas la même chose. Réagir est une bibliothèque JavaScript pour la création d'applications web frontales, tandis que React Native est un cadre qui fournit un ensemble d'outils unifiés pour la création d'applications mobiles sous iOS et Android. Cela conduit à des différences fondamentales comme le fait que React est rendu en HTML alors que React Native ne l'est pas. React Native donne également aux développeurs de React Native la possibilité de convertir ou de relier des vues natives écrites dans des langages spécifiques à la plate-forme comme Swift ou Kotlin en quelque chose d'utilisable par React Native.

Mais malgré leurs différences, React et React Native sont remarquablement similaires, React Native utilisant beaucoup des principes fondamentaux de React. Pour travailler avec React Native, il faut utiliser les composants et les pratiques de React 70-80%. De ce fait, la courbe d'apprentissage pour un développeur React n'est pas très raide. Néanmoins, il s'agit de deux technologies distinctes qu'il ne faut pas confondre l'une avec l'autre.

2. À quoi sert React Native ?

Le plus grand avantage de React Native est qu'il permet au développeur de créer des applications pour différentes plateformes sans avoir à apprendre et à utiliser plusieurs piles technologiques. Facebook appelle cette approche "apprendre une fois, écrire n'importe où". Leur objectif en développant React Native est d'unifier les connaissances requises pour créer des applications mobiles.

React Native donne aux développeurs une manière déclarative de construire des interfaces utilisateurs. En termes simples, cela offre une courbe d'apprentissage beaucoup plus douce que le kit d'interface utilisateur natif pour iOS ou le SDK Android. Cela signifie que de nombreux développeurs d'applications l'utilisent comme un moyen de se lancer dans le développement d'applications mobiles. Cela a également conduit à la création d'un certain nombre d'outils concurrents, comme le Flutter de Google ou le SwiftUI d'Apple, récemment annoncé, qui ont été développés selon des principes similaires.

Mais même s'il représente un moyen facile de se lancer dans le développement d'applications, React Native est à la base de certaines applications puissantes. Bloomberg, Airbnb, et UberEats sont tous de bons exemples d'applications construites avec React Native.

Que doit savoir un recruteur informatique sur un développeur React Native

3. Qu'est-ce qui est important pour un recruteur en TI de savoir sur React Native ?

React Native étant encore un cadre assez jeune, il est sujet à de multiples changements ayant un impact mineur ou majeur sur le travail du développeur. La plupart du temps, ces changements sont volontaires et il n'y a que peu ou pas de déprédations qui peuvent amener un développeur de React Native à migrer son code de base.

En raison de son caractère ouvert, la feuille de route de tous les changements et améliorations prévus est à la disposition de la communauté. Avec l'ajout récent de crochets et d'autres changements encore plus faciles à réaliser prévus dans un avenir proche, le processus de création d'une application mobile deviendra encore plus rapide et plus pratique que jamais.

Un avantage indéniable de React Native est sa communauté large et utile. De nombreuses questions à tous les niveaux ont déjà trouvé une réponse dans un article de blog, une entrée sur Stack Overflow, ou une micro-bibliothèque publiée sous forme de package NPM. Il existe de nombreuses ressources pour les débutants et pour les développeurs avancés afin d'étendre leurs connaissances.

Il est cependant important de ne pas confondre l'approche "apprendre une fois, écrire n'importe où" de Facebook avec "écrire une fois, écrire n'importe où". Il est encore difficile dans React Native d'écrire une application qui fonctionnerait sous iOS et Android. Cela est dû au fait qu'il existe encore de nombreuses fonctionnalités dépendantes du système qui nécessitent de diviser des parties de votre code en versions séparées pour iOS et Android. Néanmoins, l'objectif de React Native est d'unifier les compétences pour créer des applications, et non pas de créer une seule application qui fonctionne sur les deux plateformes.

3.1 Quelle expérience doit avoir un développeur natif de React

Lorsqu'on évalue le CV d'un développeur React Native, tout dépend du type de poste pour lequel le candidat est recruté. Il est indispensable de participer à des projets commerciaux lorsqu'on parle de postes de direction ou de niveau supérieur, car on attend de ces postes un savoir-faire commercial. Pour les autres niveaux, cela n'a pas beaucoup d'importance. L'un des avantages des contributions open source est qu'elles peuvent donner au recruteur un aperçu supplémentaire du style de code ou de la manière dont le candidat interagit avec la communauté. En résumé, il est vraiment important de comprendre les besoins de l'équipe et les responsabilités du poste avant de commencer le processus de sélection.

Comment vérifier les compétences de React Native lors de la phase de dépistage ?

4. Examen technique des compétences d'un développeur React Native sur la base d'un curriculum vitae

React Native est assez unique en ce qui concerne la façon dont les gens s'y retrouvent et les origines dont ils sont issus. Certains développeurs web familiers avec JavaScript et peut-être aussi avec React lui-même pourraient vouloir élargir leurs compétences pour inclure le développement mobile. À l'inverse, certains développeurs mobiles natifs peuvent reconnaître les points forts de l'approche et de l'outillage de React Native et souhaiter les exploiter dans leur travail quotidien. Les deux peuvent apporter une contribution significative à l'équipe, le premier apportant des modèles et des meilleures pratiques spécifiques à JS ou React Native, le second fournissant les connaissances sur certaines caractéristiques et limites d'un environnement spécifique au mobile. Il serait bon pour le recruteur de savoir quel serait exactement le rôle du candidat et quelles sont les compétences recherchées par l'équipe.

Glossaire de React Native Developer

5. Réagir Glossaire natif pour les recruteurs techniques

Normes JavaScript actuelles ECMAScript2015 (alias ES6), ECMAScript2019 (alias ES10)
Un sur-ensemble de JavaScript qui ajoute une frappe forte TypeScript
Réagir aux bibliothèques autochtones React-Router, Redux, Redux-Thunk, Redux-Saga, GraphQL

Gestionnaires de paquets

NMP, Fil
Extensions JavaScript JSX
Des outils qui aident à maintenir le style du code ESLint, TSLint, Prettier
Test de course Jest, Mocha

5.1 Quelles technologies rechercher sur un CV de développeur React Native

Un élément important à rechercher est la norme JavaScript que le candidat connaît bien. À partir de 2015, avec l'ECMAScript2015 (alias ES6), une nouvelle norme JavaScript est publiée chaque année. L'itération actuelle, à partir de 2019, est appelée ECMAScript2019 (ES10). Ces différentes normes peuvent avoir un impact sur l'API React Native que le candidat a utilisé jusqu'à présent.

Le changement le plus important est intervenu entre les normes ES5 (2009) et ES6 (2015). Mais le code écrit dans les nouvelles normes peut toujours être transposé dans les anciennes à l'aide d'outils comme Babel.

5.2 Autres points à surveiller sur un CV de développeur React Native

Une compétence qui peut également être utile pour un développeur natif React Native Developer est le TypeScript. Il s'agit d'un sur-ensemble de JavaScript qui utilise un typage statique. Le typage statique, en général, permet d'identifier beaucoup plus rapidement certaines erreurs de code (mais ne remplace pas les tests unitaires) et permet aux développeurs d'exprimer leurs intentions concernant les API publiques qu'ils exposent au public de manière plus claire et mieux structurée.

Il existe également de nombreuses bibliothèques ad hoc React Native qui se concentrent sur la résolution de problèmes particuliers comme la navigation ou la gestion de l'État. La connaissance de ces bibliothèques est fortement liée aux types de projets sur lesquels le candidat a travaillé. Si un candidat énumère une bibliothèque comme React-Router, Redux, Redux-Thunk, Redux-Saga, GraphQL, ou bien d'autres, cela pourrait être un point d'entrée intéressant dans la discussion sur l'expérience antérieure du candidat.

Réagir aux questions de l'entretien avec les développeurs autochtones

6. Réagir aux questions d'entrevue des autochtones

Un CV vous permet de savoir comment un candidat présente ses connaissances. Mais cela ne suffit pas pour vous dire s'il possède les compétences dont vous avez besoin. Après tout, tout le monde peut écrire n'importe quoi sur un CV. Il faut ensuite l'interroger sur ses compétences sur un écran de téléphone ou l'interviewer après avoir passé l'étape de l'évaluation des compétences de codage.

6.1 Questions sur l'expérience d'un développeur autochtone React

Question 1 : Pourriez-vous décrire les applications sur lesquelles vous avez travaillé dans le passé ? Comment avez-vous utilisé React Native dans ces applications ?

Raison : Cette question doit surtout servir d'échauffement pour que le candidat s'ouvre et prenne l'initiative de parler de son expérience générale. Il est important de demander comment React Native a été utilisé par leur équipe comme suivi. Cela permet au recruteur d'évaluer les domaines de React Native que le candidat peut connaître - par exemple, si RN a été utilisé dans toute l'application, ou seulement dans certains écrans, s'il a été relié à des parties natives écrites en Objective-C/Java, etc.

Q2 : Pourquoi vous et votre équipe avez-vous choisi d'utiliser React Native ? Quel a été pour vous le principal argument de vente ? En quoi cela vous a-t-il aidé dans les applications sur lesquelles vous avez travaillé ?

R : La réponse à cette question peut dire plusieurs choses au recruteur. Elle montre en partie la position ou les responsabilités que le candidat avait dans son équipe - a-t-il été impliqué dans le processus de décision ? Et même si ce n'est pas le cas, connaît-il les principaux objectifs de React Native qui auraient pu faire vendre l'idée à ses pairs ? Cela montre également si le candidat est capable de prendre une décision technique basée sur les exigences commerciales des applications avec lesquelles il a travaillé ou s'il suit simplement la tendance.

Q3 : Comment avez-vous traité l'état dans ces demandes ? Comment cela a-t-il fonctionné ?

R : Il s'agit d'une question un peu plus technique. Comme React Native n'est en fait que la couche d'interface utilisateur, il est important de savoir ce que le candidat a utilisé pour remplir les blancs restants, dont l'un est la gestion des états. Cela pourrait ouvrir la discussion sur les flux de données unidirectionnels (redux, flux) ou la gestion des états provenant de services externes (REST, GraphQL). Cela donne également une idée de la capacité du candidat à évaluer les avantages et les inconvénients de l'approche adoptée, ce qui est une compétence cruciale pour son développement personnel.

6.2 Questions sur les connaissances et les opinions d'un développeur autochtone

Q1 : Quels types de composants peut-on utiliser dans React Native ? En quoi diffèrent-ils ? Quand utiliser lesquels ?

R : Cette question peut être interprétée par le candidat de différentes manières. Les éléments peuvent être divisés soit en conteneur/présentation, soit en état/pur/fonctionnel. Peu importe la façon dont le candidat pense ici, cette question vise plutôt à ce qu'il puisse parler de l'objectif ou des limites de chacun, de préférence dans le contexte de sa propre expérience.

Q2 : Comment réutiliser le code dans votre demande ? Quelles techniques connaissez-vous pour partager une logique commune et quelle est votre opinion à leur sujet ?

R : Il existe plusieurs moyens de réutiliser le code, dont les plus populaires sont les composants d'ordre supérieur, les accessoires de rendu, les crochets et le contexte. Leur utilisation est généralement basée sur la préférence de l'équipe, le point principal ici est que le candidat explique pourquoi il utiliserait l'un plutôt que l'autre. Cela devrait donner au recruteur une idée de l'étendue des connaissances du candidat, de sa compréhension de React Native internals et de son souci d'avoir un code propre et facile à entretenir.

Q3 : Comment déboguer l'application ? Quels sont les outils que vous utilisez et dans quelle mesure sont-ils utiles ?

R : La majeure partie du temps d'un développeur React Native est consacrée à la lecture, l'analyse et le débogage de la base de code existante. C'est pourquoi les compétences et les connaissances requises pour déboguer l'application de manière correcte et efficace sont cruciales. Le candidat pourrait mentionner différentes approches allant de l'utilisation de simples journaux à l'attachement d'un débogueur pour utiliser des points d'arrêt ou à l'inspection de la hiérarchie des vues via les outils React Dev. Chacune de ces approches a des cas spécifiques dans lesquels elle est la plus efficace, le candidat doit donc également mentionner un exemple de situation dans laquelle elle a été utilisée. Points bonus pour la mention d'un test unitaire qui reproduit le bogue et le fait passer comme moyen de déterminer que le bogue a été corrigé et le restera à l'avenir.

Q4 : Avez-vous déjà rencontré des problèmes de performance avec votre application ? Qu'avez-vous utilisé pour les diagnostiquer ? Comment les avez-vous résolus ?

R : La performance de React Native est souvent mise en avant par les sceptiques quant à son utilité. S'il est vrai qu'il est facile de tomber dans certains pièges entraînant une baisse de la cadence dans le processus, il suffit de comprendre les internes de React et React Native pour atténuer ces problèmes. Les candidats peuvent mentionner des techniques comme la mémorisation, des améliorations comme les composants purs ou des pièges comme les fonctions en ligne. Ces éléments couvrent une grande partie des raisons qui font que l'interface est moins réactive. Lorsque les candidats parlent d'outils comme le profileur et de concepts comme le mélange et le rendu hors écran, il devient évident qu'ils ont été confrontés à des problèmes vraiment complexes (probablement avec les animations). La réponse idéale devrait également mentionner que pour améliorer les performances, il faut disposer d'un ensemble de paramètres à minimiser ou à maximiser (comme le FPS, la consommation de mémoire ou de CPU, etc.) car sans eux, il est difficile d'évaluer si le développeur React Native va dans la bonne direction.

Q5 : Qu'en est-il des tests ? Les avez-vous utilisés ? Comment ont-ils aidé votre équipe ? Quels types de tests avez-vous utilisés ?

R : Les tests sont toujours un sujet étonnamment controversé. Qu'on le veuille ou non, une application doit être testée au moins d'une certaine manière avant d'être envoyée en production afin de s'assurer que les nouvelles fonctionnalités fonctionnent comme prévu et, plus important encore, que l'ancienne ne s'est pas cassée. Le fait de disposer d'une équipe d'assurance qualité forte et dévouée aide certainement à cet égard, mais le fait de disposer de tests unitaires ou de tests instantanés donne au développeur de React Native un retour d'information immédiat qu'il peut utiliser pour corriger le code. Les tests sont un outil pour les développeurs qui augmentent considérablement leur confiance dans les changements apportés au code. Un test permet de saisir le moment où l'application fonctionne correctement et de maintenir cette exactitude à partir de ce moment. Il existe plusieurs exécuteurs de tests JavaScript, Jest étant le plus recommandé dans le cadre de React Native, d'autant plus qu'il provient des auteurs de React Native. En outre, on peut utiliser un générateur de test de réaction pour tester le comportement d'un composant particulier ou pour prendre un instantané de toute une hiérarchie de vues afin de la protéger contre les changements inattendus.

Q6 : Comment maintenir le style de code au sein de votre équipe ? Comment gérez-vous la base de code ensemble ?

R : Il s'agit d'une question plus légère pour révéler les connaissances du candidat sur les différents outils utilisés dans le processus de développement. Les réponses à cette question peuvent être très larges. Elles peuvent aller de Prettier et ESLint, qui automatise en conséquence le formatage du code et vérifie si le code écrit correspond aux règles fixées par l'équipe, à des concepts comme l'intégration continue ou même des systèmes de contrôle de version comme Git. Le candidat peut même mentionner des pratiques comme la révision du code. L'objectif principal de la question est de montrer comment et de quelle manière les candidats ont collaboré avec leurs équipes, et quelle part du travail reproductible ils ont pu automatiser.

6.3 Questions comportementales à poser à un développeur natif React Native

Q1 : Quelle a été la plus grande réussite de votre carrière ? Quelle a été la plus grande erreur ? Quelles mesures prendriez-vous pour répéter le succès ou éviter de répéter l'échec ?

R : Une question assez générique, mais qui montre les capacités d'auto-reconnaissance et d'autocritique du candidat. Les deux sont nécessaires dans le processus d'apprentissage qui fait partie intégrante de la vie d'un grand développeur de logiciels.

Q2 : Comment géreriez-vous une situation dans laquelle votre projet a une date limite fixée à demain, mais qu'il y a encore quelques fonctionnalités à mettre en œuvre ?

R : Ce n'est pas du tout difficile à imaginer et il y a de fortes chances que le candidat ait déjà été confronté à une telle situation dans le passé. Peut-être le candidat a-t-il essayé de négocier et de gagner du temps pour terminer le travail. Il s'est peut-être assis avec le propriétaire ou le responsable du produit pour hiérarchiser les caractéristiques et s'en tenir à une sorte de MVP. Il a peut-être mis en œuvre certaines fonctionnalités d'une manière rapide mais pas très facile à maintenir pour gagner du temps et mettre en place un rappel pour faire un nettoyage plus tard. Il existe différentes approches et le but de cette question est de montrer au recruteur si les candidats comprennent l'importance des objectifs commerciaux et s'ils sont capables de faire certains compromis sur le plan technique pour les atteindre.

Q3 : Quelles ressources recommanderiez-vous au développeur junior/régulier pour lui permettre de renforcer ses compétences ? Souhaitez-vous encadrer un tel développeur ? L'avez-vous déjà fait par le passé ?

R : La réponse à cette question est un moyen indirect de vérifier quelles ressources le candidat a utilisées auparavant et pourquoi. Cela permet au recruteur d'obtenir des informations supplémentaires sur les antécédents du candidat. La partie sur le mentorat peut indiquer si le développeur React Native aime partager ses connaissances, ce qui peut également avoir un impact positif sur l'équipe.

Q4 : Quels sont les domaines du développement mobile ou du développement de logiciels que vous aimeriez explorer ou mieux connaître ? Pourquoi ?

R : Cette question donne au recruteur un ou deux indices sur les sujets qui pourraient intéresser le candidat et sur la direction dans laquelle les candidats souhaitent développer leur carrière. Elle permet au recruteur d'évaluer si le projet pour lequel le candidat est recruté lui convient.

Réagir aux tests de codage des développeurs natifs

7. Examen technique des compétences des développeurs natifs React Native à l'aide d'un test de codage en ligne

Un CV de développeur React Native contient les compétences que vos candidats disent avoir et l'écran du téléphone vous permet de vérifier s'ils ont des connaissances théoriques des concepts liés au développement React Native. Mais ce n'est pas parce qu'un candidat possède des connaissances théoriques qu'il est certain de pouvoir les appliquer aux aspects pratiques du développement de logiciels. Un test de codage en ligne peut vous donner un aperçu de la manière dont un candidat peut développer une application à l'aide de React Native.

7.1 Quel test de programmation React Native devriez-vous choisir ?

Il existe quelques options, mais il est important de choisir un test qui utilise spécifiquement React Native, et non JavaScript, ou React. Voici quelques lignes directrices :

  • Le test reflète le travail de votre entreprise
  • C'est une durée raisonnable, une à deux heures (voire moins)
  • L'envoi est automatisé
  • Le test peut être passé au domicile du candidat
  • Il vérifie la qualité du code et les cas de contournement ainsi que les solutions
  • Le candidat a accès à toutes les ressources normales qu'il utilise pour développer des logiciels
  • Il s'agit d'un projet in stack qui donne non seulement au candidat l'accès au framework React Native mais aussi aux différentes bibliothèques qui sont utilisées avec React Native
  • Il est calibré pour correspondre au niveau du poste

7.2 DevSkiller prêt à l'emploi en ligne Réagir aux tests d'évaluation du codage des développeurs natifs

Les tests de Devskiller's react Native sont basés sur notre méthodologie RealLifeTesting™ afin de garantir un aperçu parfaitement précis des compétences du candidat. Le test peut être effectué à l'endroit et au moment où le candidat est le plus à l'aise et le plus prêt. Il a accès à toutes les ressources dont il a besoin, comme GitHub, Stack Overflow, Google et d'autres bibliothèques React Native. Il s'agit d'une fonctionnalité, et non d'un bogue, car elle montre les décisions que le candidat prend dans un environnement de programmation naturel. Vous pouvez voir à quel point le candidat accomplit la tâche mais aussi, les décisions qu'il prend, la logique commerciale qu'il applique, l'efficacité et la propreté de son code, et à quel point il connaît la pile technique.

Vous pouvez construire votre propre test ou utiliser un des tests de DevSkiller, construit par des experts seniors de React Native.

Réagir aux autochtones
SENIOR
Des compétences éprouvées
Durée
108 minutes max.
Évaluation
Automatique
Aperçu des tests

Questions sur le choix

l'évaluation de la connaissance des ES6, JavaScript

Tâche de programmation - Niveau : Difficile

React Native | Movie Store - Mettre en place une application qui permet aux utilisateurs d'acheter tous les films qu'ils peuvent imaginer.

Réagir aux autochtones
MIDDLE
Des compétences éprouvées
Durée
101 minutes max.
Évaluation
Automatique
Aperçu des tests

Questions sur le choix

l'évaluation de la connaissance des ES6, JavaScript

Tâche de programmation - Niveau : Moyen :

React Native | HR Companion App - Mettre en place une application pour aider le département des RH à tenir à jour la liste des candidats à évaluer.

Réagir aux autochtones
JUNIOR
Des compétences éprouvées
Durée
70 minutes max.
Évaluation
Automatique
Aperçu des tests

Questions sur le choix

l'évaluation de la connaissance des ES6, JavaScript

Tâche de programmation - Niveau : Facile

React Native | Ultimate BugTracker - Implémente les fonctionnalités manquantes et corrige les bogues dans l'application utilisée en tant que traqueur de bogues interne d'un éditeur de logiciels.

Partager le poste

C'est plus qu'un simple bulletin d'information

Recevez des informations utiles directement dans votre boîte de réception et apprenez-en davantage sur l'embauche des techniciens.

Vérifier et développer les compétences de codage de manière transparente.

Voir les produits DevSkiller en action.

Certifications de sécurité et conformité. Nous veillons à ce que vos données soient sûres et sécurisées.