Aquent Aquent

Alors un bon développeur Front-End, c’est quoi ?

Alors un bon développeur Front-End, c’est quoi ? image
Alors un bon développeur Front-End, c’est quoi ?

Nous avons récemment réunis 13 développeurs front-end - en particulier, ceux qui recrutent et managent d'autres développeurs front-end - dans un forum en ligne et leur avons posé une série de questions sur leurs expériences dans ce domaine, ce qu'ils recherchent lors du recrutement, et comment ils voient la profession évoluer (cette recherche faisait partie du processus de développement des cours de notre université en ligne Aquent Gymnasium.)

Une partie des réponses étaient surprenantes, mais elles ont renforcé notre compréhension de ce qui rend les développeurs front-end particulièrement précieux :

• Un don pour l'apprentissage
• Une pensée critique et axée sur la résolution de problèmes
• Un talent pour une communication claire et un goût pour la collaboration
• La capacité d’écrire du code bien construit de façon pure (surtout JavaScript)

Un don pour l'apprentissage

On nous a répété maintes fois que les développeurs front-end ont tendance à être autodidactes et cela a été confirmé par le groupe. Lorsque nous leur avons demandé comment ils étaient entrés dans ce domaine, nous avons reçu des réponses qui n’étaient pas atypiques :

« J’ai commencé à créer des sites web quand j’étais au collège et j’ai continué au lycée et à l’université. »

« Développeur Full-stack pendant environ 18 ans. Autodidacte. Je programme depuis l’âge de 12 ans (donc plus de 30 ans). »

« Autodidacte. Première expérience dans une petite agence. »

En conclusion, ces recruteurs ont tendance à chercher des gens qui savent apprendre.

« Par-dessus tout, la compétence la plus importante que je recherche est la capacité d'auto-apprentissage et la volonté d'essayer de nouvelles choses », telle est la façon de voir de Speed Buggy (un pseudonyme, les participants à l’enquête devant rester anonymes).

Pour Charlie Brown, « si deux candidats ont les mêmes capacités et expertises, je me concentre sur l'attitude et le potentiel de croissance. Un candidat qui suit activement les nouvelles technologies va se tenir au courant des évolutions alors que certains candidats ont tendance à stagner sur leurs propres connaissances. »

Toujours est-il qu’un autre participant a vu cette capacité non seulement comme une clé vers l’évolution de l’individu, mais aussi une clé pour la croissance de l'organisation.

« Les développeurs ont besoin d'être motivés et capables d'apprendre de leur propre chef, sinon ils seront relégués au second plan ou n’aideront pas à faire progresser la compétence de votre entreprise », a écrit Superman. Finalement, cette capacité à apprendre est liée à la capacité à « utiliser Internet pour trouver des choses rapidement et efficacement. »

Droopy s’exprime ainsi : « je ne compte plus le nombre de fois où quelqu'un m’a dit qu'il a passé des heures à chercher une solution qu’il a finalement trouvée en quelques minutes grâce à mes conseils, sur quelles ressources utiliser. »

Une pensée critique et axée sur la résolution de problèmes

En plus du fait de chercher des gens capables d'enseigner eux-mêmes de nouvelles technologies et techniques, les recruteurs interrogés ont également souligné l'importance de la pensée critique et la résolution de problèmes.

 « Il est important pour nous de trouver des gens qui sont des penseurs critiques », a écrit Droopy. « Je ne veux pas de quelqu'un dans mon équipe qui se contente de faire ce qui relève strictement de son travail. Au contraire, j’ai besoin de quelqu'un qui réfléchisse à ce qu'il fait, pose des questions et propose des idées. »

En plus d’avoir une réflexion critique sur des projets spécifiques, les recruteurs veulent aussi voir cette méthode appliquée à la gestion du temps. Ils veulent que les candidats aient une compréhension claire de ce qui exige davantage de temps. Par exemple, « concevoir une expérience responsive géniale, oui. Passer une journée à chercher le moyen d'obtenir un résultat qui ressemble exactement au PSD, non. »

En pratique bien sûr, la pensée critique se résume à la résolution et le dépannage des problèmes que les développeurs front-end vont inévitablement rencontrer.

Après y avoir réfléchi un peu, Grimm a écrit: « je dois dire que les capacités de résolution des problèmes constituent la caractéristique la plus importante d'un grand développeur. A mon avis, être en mesure de passer rapidement au-delà des points difficiles du projet (sur lesquels vous êtes coincés et ne pouvez faire aucun progrès visible) est le signe d'un grand développeur. »

« Le dépannage est le plus gros problème que je continue à rencontrer », souligne Droopy. « Quand quelqu'un ne sait pas comment faire, il a besoin qu’on l’aide beaucoup dans la résolution de son problème et peut se perdre dans de nombreuses voies improductives. »

« De façon connexe, il y a la capacité à diviser les grands problèmes en plusieurs morceaux et penser en algorithmes », ajoute Droopy. « Je connais beaucoup de bons développeurs incapables de faire cela efficacement. »

Communication et collaboration

La capacité à communiquer clairement est universellement prisée, mais elle est particulièrement utile lorsque vous avez besoin de parler à la fois le langage de la technologie et le langage des affaires.

« La communication verbale et écrite sont essentielles dans le développement », écrit Superman. « Pouvez-vous communiquer des concepts techniques à des personnes qui ne le sont pas ? », poursuit-il. « Vos e-mails sont-ils propres, professionnels et sans fautes d’orthographe ni grammaticales ? Écrivez-vous des commentaires clairs et concis dans votre code ? Votre code lui-même est-il propre et concis ? Résolvez-vous les bons problèmes ? »

Cette capacité à communiquer efficacement avec de nombreuses personnes est étroitement liée au fait que le développement se déroule dans un environnement hautement collaboratif.

« Nous travaillons si étroitement avec les autres membres de l'équipe et d'autres groupes au sein de l'entreprise (création, stratégie, etc.) », explique Droopy « que disposer d’excellentes capacités de communication se révèle un must. Les gens doivent être en mesure de lire un mail, comprendre ce qui est demandé et bien communiquer dans une discussion de groupe. Vous seriez surpris de voir à quel point c’est difficile à trouver parfois. »

Le besoin de compétences solides en communication et collaboration s’exprime le plus fortement quand il s’agit de coder de façon effective.

Comme l'écrit Grimm, « être capable de coder dans le cadre d’une équipe est aussi vraiment utile. Le fait de commenter et structurer le code de manière à ce qu’il soit lisible par d'autres (et par eux-mêmes, plus loin dans le process) est une compétence dont peu de gens comprennent l'importance. »

Superman associe collaboration et communication ainsi que capacité à apprendre de la façon suivante : « je préfère recruter un développeur capable d’apprendre rapidement et travailler correctement avec une équipe, qu’un développeur top-niveau qui connaît déjà un framework mais ne travaille pas bien avec les autres. »

Il poursuit : « nous nous attaquons à des problèmes importants et difficiles dans le monde du développement web et ceux-ci ne pourront être résolus que par des gens intelligents, motivés, désireux d'apprendre, et capables de travailler avec d'autres personnes. »

Ecrire un code bien construit

S’agissant du code, il était largement répandu que les développeurs front-end devaient être en mesure d'écrire du code qui soit solide, pouvant se maintenir, surtout avec Javascript.

Captain America écrit : « la maintenabilité est un gros problème pour moi. Je vois beaucoup de développeurs qui écrivent juste leur soupe et continuent jusqu'à ce que ça marche, mais je serais heureux de voir les gens passer un peu plus de temps à produire un code vraiment propre, bien commenté et lisible.»

« Le code est pensé et codifié », ajoute-t-il. « Lire un code bâclé, c’est comme avoir une conversation avec quelqu'un que cela ne gêne pas de parler en faisant des phrases complètes. »

Une telle clarté et maintenabilité est critique parce que vous ne savez pas qui aura besoin d'accéder et modifier votre code à l'avenir.

Sachant cela, Aquaman écrit : « ma plus grande exigence pour mon équipe est d'écrire du code sur lequel tout développeur de niveau intermédiaire peut intervenir, peut comprendre facilement, et travailler. Le turnover est important dans ce secteur et l'importance d'un code facilement maintenable est cruciale. »

Captain America partage ainsi ses sentiments : « le code inspire peu de dévotion en tant que métier, et il arrive que le code produit par certains individus ait tendance à se révéler un gâchis épouvantable. A Dieu ne plaise que nous nous retrouvions désavantagés en nombre, il est assez difficile de maintenir un code bien écrit, mais je ne veux plus jamais être responsable du charabia que certains produisent. »

Pour illustrer l'idéal de clarté souhaité, Droopy écrit, « j’ai récemment entendu un développeur de Google dire que l’on reconnaît un grand codeur à son code : vous ne pouvez pas dire qui l'a écrit. »

Étant donné le rôle central que joue JavaScript dans le développement front-end aujourd'hui, quand nos participants parlaient du code, ils faisaient souvent spécifiquement référence au code avec JavaScript. Et, malheureusement, ils voient cela comme une grave lacune chez les développeurs front-end aujourd'hui.

Captain America écrit : « en dehors de moi, personne dans mon équipe ne peut écrire sur JavaScript de façon originale. Je connais très peu de développeurs qui le font, mais il n'y a certainement pas pénurie de gens prêts à couper-coller des bouts de jQuery ou plugger dans une bibliothèque différente chaque petite chose qu'ils veulent effectuer. »

Cette sur-dépendance aux bibliothèques comme jQuery, et un abandon concomitant de JavaScript, sont revenus à plusieurs reprises.

« La plupart des candidats viennent avec jQuery dans leurs bagages, mais pas de pur JS », écrit Charlie Brown.

« Je trouve aussi que les personnes ayant une bonne connaissance de base de JavaScript sont difficiles à trouver », dit Droopy. « La plupart des gens sont tellement habitués à travailler avec jQuery et autres librairies JS qu'ils ne connaissent pas les bases. »

Finalement, comme l’a souligné Superman, aussi puissants que soient les nouvelles bibliothèques et les frameworks, il est beaucoup plus facile de passer de l'un à l'autre si on commence avec une base solide en JavaScript.

« Trouver des développeurs qui ont cassé le gap de la programmation linéaire jQuery est difficile. [Il y a] beaucoup de développeurs JavaScript "couper-coller" », note-t-il.

« Je ne me soucie pas vraiment de savoir si vous avez travaillé avec angularjs ou Backbone », ajoute-t-il. « Si vous comprenez ce que Javascript fait et que vous apprenez pendant que vous travaillez, alors habituellement cela fonctionne. »

A retenir

Pendant que nous menions cette étude afin d'identifier les sujets pour les nouveaux cours d’Aquent Gymnasium - et il y avait de nombreuses technologies et techniques émergentes mentionnées par les participants que nous étudions à cet égard - comme vous pouvez le voir, nous avons découvert beaucoup de choses qui devraient être utiles à la fois pour ceux qui poursuivent une carrière dans le développement front end et ceux qui les recrutent.

Leçon 1 pour les développeurs front-end

Il est essentiel que vous ne cessiez jamais d'apprendre, mais il est aussi très important que vous preniez le temps de maîtriser les bases. Le développement front-end, c’est du développement de logiciels. Si vous êtes à l'aise avec les fondamentaux du développement de logiciels, la pensée algorithmique, ou le travail avec « JavaScript original », alors c’est ce sur quoi vous devez vous concentrer dans votre éducation.

Au-delà de cela, il vous servira tout au long de votre carrière de perfectionner vos compétences en communication et d'apprendre à aider les chefs d'entreprise à résoudre les problèmes.

Leçon 2 pour les manageurs front-end

Lors de votre recherche de développeurs front-end, portez une attention particulière aux compétences non techniques. Demandez aux candidats d'expliquer quelque chose de technique à un collègue « non technique ». Demandez-leur de vous dire ce qu'ils font pour produire un code qui puisse être maintenable par d'autres. Demandez-leur de décrire comment ils ont appris des technologies particulières.

Sur ce dernier point, pensez à la façon dont vous pourriez concevoir l'apprentissage dans votre équipe.

Puisque de très nombreux développeurs front-end finissent par apprendre sur le tas, il va y avoir des lacunes dans leurs connaissances. Mettez en place régulièrement des sessions « Teach-in » qui permettent aux membres de l'équipe de s’enseigner les uns les autres. Ou faites venir des experts extérieurs qui puissent combler les lacunes et leur enseigner les fondamentaux qui serviront de base pour l'apprentissage futur.

Avec l'avènement de dispositifs portables et de l'Internet des objets, le développement front-end va devenir plus compliqué et fragmenté. Les clés de l'adaptation dans ce paysage en constante évolution seront : une bonne compréhension des principes de base et la flexibilité nécessaire pour expérimenter la nouveauté.

Si vous recrutez des développeurs front-end, c'est ce que vous devez rechercher.

Si vous êtes un développeur front-end, c'est comme cela que vous devez être.

Les commentaires

comments powered by Disqus

Derniers posts

Retrouvez prochainement les résultats de l’édition 2017 de l’enquête sur l’emploi et les salaires du design interactif ! image

Retrouvez prochainement les résultats de l’édition 2017 de l’enquête sur l’emploi et les salaires du design interactif !

Le 28 Juin prochain, retrouvez les résultats complets de l’enquête sur l’emploi et les salaires du design interactif • édition 2017.