Pas un imposteur : lutter contre la fatigue frontale

Publié: 2022-03-10
Résumé rapide ↬ Dans cet article, David Berner partage des conseils pour éviter la fatigue. Une fois que vous êtes complètement épuisé, il est très difficile de retrouver cette passion que vous aviez pour ce que vous faites et pourquoi vous avez commencé à le faire en premier lieu.

J'ai récemment parlé avec un ami développeur back-end du nombre d'heures que je passe à coder ou à apprendre le code en dehors du travail. Il m'a montré un passage d'un livre d'Oncle Bob, "Clean Code", qui compare les heures que les musiciens passent avec leurs instruments en préparation d'un concert aux développeurs répétant le code à jouer au travail.

J'aime l'analogie mais je ne suis pas sûr d'y souscrire complètement; c'est ce type de pensée qui peut causer l'épuisement professionnel en premier lieu. Je pense que c'est formidable si vous voulez approfondir votre métier et élargir vos compétences, mais le faire à chaque heure de la journée n'est pas durable.

La fatigue frontale est bien réelle. J'ai vu un certain nombre d'articles sur la fatigue de JavaScript, mais je pense que le problème va plus loin que ce langage spécifique.

Pour être clair, ce n'est pas une autre diatribe sur le fait que tout va mal et que tout va trop vite - j'aime que la technologie évolue si rapidement. De même, je peux comprendre à quel point cela peut être écrasant et je me suis certainement senti débusqué à certains moments.

Lectures complémentaires sur SmashingMag :

  • Trucs sales des coins sombres du front-end
  • Ode d'un développeur frontal aux spécifications
  • Comment se préparer à un entretien d'embauche
Plus après saut! Continuez à lire ci-dessous ↓

Autant que je sache, il s'agit d'un problème à deux volets .

La première est qu'en tant que développeur front-end, vous pensez que vous êtes censé avoir tous les éléments suivants dans votre arsenal :

  • HTML (écriture propre, balisage sémantique)
  • CSS (modulaire, évolutif)
  • Méthodologies CSS (BEM, SMACSS, OOCSS)
  • Préprocesseurs CSS (quelque chose comme LESS, SCSS, PostCSS)
  • CSS moderne (Flexbox, Grille)
  • JS
  • JS moderne (ES6, Tapuscrit)
  • Frameworks JS (Angular, React, Vue [insérer la dernière ici]
  • Méthodologies JS (Programmation fonctionnelle, POO)
  • Librairies JS (Immutable, Ramda, Lodash)
  • Les principes du Responsive Design
  • Essais (TDD)
  • Cadres de test (Jasmine, Karma)
  • SVG
  • WebGL
  • Techniques d'animation
  • Accessibilité
  • Convivialité
  • Performance
  • Outils de construction (Grunt, Gulp, scripts NPM)
  • Assembleurs d'actifs (WebPack, Browserify)
  • Écosystème NMP
  • Connaissance des différentes bizarreries du navigateur
  • Méthodologies Agiles
  • Contrôle de version (généralement Git)
  • Fondamentaux de la conception visuelle
  • Soft skills, gestion du temps
  • Une compréhension de base de tout langage back-end utilisé

Et en plus de cela, vous essayez ou cherchez des choses comme :

  • Travailleurs des services
  • Applications Web progressives (PWA)
  • Composants Web

La seconde est que votre travail quotidien ne couvre probablement pas tout ou ne vous laisse pas le temps de tout apprendre, alors comment allez-vous vous assurer d'avoir tous les outils à votre disposition ?

Entendre des termes tels que "Progressive Web Apps" peut être assez intimidant pour les développeurs. Les nouvelles techniques et technologies entraînent une sensation de fatigue — la fatigue frontale.
Entendre des termes tels que "Progressive Web Apps" peut être assez intimidant pour les développeurs. Les nouvelles techniques et technologies entraînent une sensation de fatigue — la fatigue frontale. (Crédit image)

Maintenant, en tant que consommateur, vous pourriez :

  • Abonnez-vous à un tas de différentes newsletters de développement hebdomadaires
  • Parcourez votre fil Twitter
  • Assistez à un rattrapage hebdomadaire de votre équipe Front-end au travail
  • Avoir un canal Slack en dehors du travail avec une poignée de développeurs avec qui vous parlez également boutique
  • Suivez les tutoriels en ligne (qui, espérons-le, ne sont pas obsolètes)
  • Utilisez un site de formation de cours vidéo comme Frontend Masters
  • Achetez des livres de développement Web (qui, espérons-le, ne sont pas obsolètes)
  • Participez à des rencontres
  • Assister à des conférences
  • Assister à des cours de formation

En tant que contributeur, vous pourriez :

  • Rédiger des blogs/articles de magazines
  • Essayer de parler
  • Lancer un podcast
  • Contribuer à des projets open source
  • Avoir vos propres projets parallèles

Récemment, j'ai découvert que mon attention était divisée en trois, je me concentrais sur l'écriture de code, avec des écouteurs pour écouter à moitié les discussions sur le code tout en discutant sur Slack à propos du code. J'ai décidé que c'en était assez - chaque orifice était obstrué par du code et j'étais épuisé mentalement.

Bien que ce soit certainement à l'extrême, je suis sûr que d'autres d'entre vous ont vécu quelque chose de similaire. En plus de tout cela, vous avez probablement un travail à temps plein, une famille, des amis, des passe-temps. Il n'est pas étonnant que nous soyons si nombreux à nous sentir épuisés et à nous demander si nous avons fait le bon choix de carrière .

Certains de mes collègues front-ends ont exprimé leur intérêt à tout emballer et à changer de travail pour un travail où ils peuvent s'éteindre à cinq heures. Mais une partie de moi pense que ce travail attire un certain type de personne et si nous devions tout jeter et devenir agent immobilier à la place, vous voudriez toujours être le meilleur agent immobilier possible. Assister à des rencontres d'agences immobilières et suivre les tendances des prix des maisons pendant votre temps libre. Il y a de nombreuses lunes, j'ai travaillé dans la finance et j'étudiais encore le soir et je lisais autour pour devenir le plus compétent possible dans le domaine que j'ai choisi.

Nous ne sommes pas seuls dans cette discipline, de nombreuses professions nécessitent une bonne dose de dévouement et d'apprentissage en dehors du travail. Peut-être que le problème avec le développement frontal est que la technologie évolue si rapidement qu'on a l'impression que quelqu'un continue de déplacer les poteaux de but. Il semble que tous les deux jours, je reçois un e-mail disant que la technologie "XYZ" est morte. Ce qui, j'en suis sûr, ne peut pas être vrai, car sinon nous n'aurions plus de technologie.

L'écosystème est dans un état de changement constant et je pense que cela peut être une bonne chose. Personnellement, j'aime être dans un rôle où je peux constamment apprendre, me développer et me surpasser, mais cela ne veut pas dire que je ne me laisse pas parfois submerger.

Dans cet esprit, voici certaines choses que j'essaie de retenir afin d'arrêter ma tête qui explose ainsi que des conseils généraux sur la façon d'éviter la fatigue.

Nous sommes tous dedans ensemble

Les développeurs que je connais, au travail et en dehors, sont parmi les personnes les plus intelligentes que je connaisse. Mais ils se sentent tous dépassés. La plupart ont une sorte de liste de souhaits des technologies qu'ils essaient d'apprendre. Il y a peut-être une poignée de personnes qui savent tout et sont au courant de tout, mais la majorité d'entre nous sont exactement dans la même position.

Nous dépendons toujours de Google et de Stack Overflow pour passer la journée et avons beaucoup trop d'onglets ouverts remplis de réponses aux questions liées au Web. Tu n'es pas seul!

Soyez heureux de savoir que vous n'êtes pas un mauvais développeur simplement parce que vous n'avez pas encore essayé ce que les enfants cool utilisent.

Oui, même les "web celebs" sont au même endroit...

Il n'y a aucun moyen de tout savoir et les développeurs rock star que vous suivez sur Twitter ont tendance à être vraiment très bons dans quelques domaines chacun. Vous remarquerez que ce sont les mêmes domaines qu'ils sont connus pour connaître. Encore une fois, il y aura des exceptions, mais ce ne sont que des humains comme nous. :)

Le syndrome de l'imposteur est réel et nous l'avons tous

Je connais plusieurs grands développeurs front-end qui ne postuleront pas pour des rôles parce qu'ils auraient l'impression d'être fraudés sans connaître toutes les exigences de la description de poste. Pour en citer une :

"90 % des JD que je vois me font penser "Argh, je suis tellement en retard !" En fait, cela me dérange tellement que je pense à rester dans mon rôle actuel et à essayer d'obtenir plus d'argent simplement parce que j'ai l'impression de m'être "enfui" ici."

Le fait est que la plupart de ces spécifications d'emploi sont une farce. Mon ami Bard a créé cette superbe image qui montre la différence entre ce que disent les spécifications d'emploi frontales et ce qu'elles signifient.

Les annonces d'emploi expliquées
Annonces d'emploi expliquées ( Grand aperçu ) ( Crédit d'image )

N'oubliez pas, ça ira . Chaque travail que j'ai eu, je me suis senti dépassé au départ, mais finalement vous vous habituez à leurs outils et à leur flux de travail, vous apprenez et devenez un meilleur développeur pour cela.

N'ayez pas peur d'apprendre sur le tas, la meilleure façon d'acquérir de nouvelles compétences est de les utiliser tous les jours.

Si vous avez le syndrome de l'imposteur, il y a de fortes chances que vous soyez en fait un développeur décent, car sinon vous ne seriez pas suffisamment conscient de vous-même pour le réaliser.

Verrouillez vos fondamentaux

Il est facile de se laisser distraire par le brillant et le nouveau, mais si vos fondations ne sont pas solides, il y a de fortes chances que ce que vous construisez ne résistera pas à l'épreuve du temps.

Comme me l'a dit un jour un bon ami :

"Se concentrer sur les fondamentaux a toujours été mon mantra. Si vous pouvez construire de bonnes conneries et résoudre des problèmes, c'est tout ce qui compte, la façon dont vous les résolvez (les outils) change et changera toujours."

Par exemple, lorsque React est devenu célèbre, il semblait toujours être associé à ES6, et je me suis concentré sur ces changements ou ajouts au langage plutôt que sur les nuances du framework lui-même. Une fois que React est mort et parti, les connaissances que j'ai acquises en me tenant au courant du dernier Javascript vanille perdureront. De nombreuses fonctionnalités avec lesquelles vous pouvez jouer en natif dans Chrome vous n'avez pas besoin d'utiliser Babel et de vous enliser dans l'enfer des dépendances pour jouer avec.

Vous n'avez pas besoin de tout apprendre

C'est vraiment la clé. Je ne pense pas que ce soient les nouveaux frameworks, bibliothèques et modules qui nous tuent, c'est notre propre conviction que nous devons tous les apprendre.

Avec l'apprentissage, je trouve que le mieux est de rester concentré - pour le moment, je me plonge dans la programmation JavaScript fonctionnelle dans ES6.

Il y a des tonnes d'autres choses sur ma liste que j'aimerais apprendre, mais j'essaie de ne pas me laisser distraire. Par exemple, j'aimerais approfondir mes connaissances en matière d'accessibilité, jouer avec Polymer et plonger dans certaines des dernières techniques CSS comme Grid, mais si je commence à lire sur trop de domaines différents à la fois, je ne conserverai pas toutes les informations. Ces autres choses ne vont nulle part, j'y arriverai quand j'y arriverai.

Évitez de vous précipiter pour essayer de tout consommer sur un sujet donné. Prenez votre temps et assurez-vous de bien le comprendre.

Si vous êtes comme moi, vous aurez une liste sans cesse croissante, mais n'ayez pas peur d'en retirer des éléments. Tout ne vaut pas la peine d'investir du temps et vous devriez essayer de reconnaître ce qui vaut la peine d'être appris et ce qui risque d'être perdu dans quelques années. Prendre le temps d'apprendre les modèles de conception de programmation et les techniques architecturales sera toujours plus bénéfique à long terme plutôt que de sauter à la chaleur actuelle dans le domaine du cadre. Vous ne finirez par vous précipiter pour rejouer au bingo des mots à la mode que peu de temps après.

La plupart des entreprises n'utilisent pas Bleeding Edge Tech

Il y a beaucoup de nouveautés qui sortent, le Web progresse à un rythme effarant, mais il faudra généralement beaucoup de temps avant que les entreprises commencent à adopter ces nouvelles technologies. La majorité des entreprises attendront qu'une technologie mûrisse pendant un certain temps et la voit éprouvée sur le terrain.

Angular a été créé il y a six ans et j'ai commencé à travailler dans une startup qui a décidé que c'était le cadre pour eux il y a trois ans. Reactjs existe depuis un peu plus de trois ans et mon entreprise actuelle a commencé à l'utiliser juste avant Noël. Je suis sûr que beaucoup d'autres cadres sont venus et sont partis à cette époque. Si j'avais sauté dessus, je deviendrais fou.

Au pays des CSS, Flexbox est disponible depuis 2010, il y a six ans ! La prise en charge du navigateur est encore limitée. Nous avons commencé à l'utiliser en production plus tôt cette année, mais je ne vois pas qu'il soit beaucoup utilisé dans la nature ailleurs.

Ce que je veux dire, c'est qu'il n'y a pas d'urgence à tout apprendre, alors que la technologie peut évoluer rapidement, vos employeurs potentiels évoluent à un rythme beaucoup plus lent. Vous n'avez pas besoin d'être en avance sur la courbe, assurez-vous simplement de garder un œil sur sa trajectoire.

Plus vous apprenez, plus vous découvrez que vous ne savez pas, et ce n'est pas grave

C'est tout à fait normal. Lorsque vous commencez, vous ne savez pas ce que vous ne savez pas. Ensuite, vous apprenez des trucs et décidez que vous êtes un génie. Puis, petit à petit, ce fantasme se déroule et vous commencez à comprendre réellement combien il y a là-bas que vous ne savez pas.

Essentiellement, plus vous obtenez d'expérience, plus vous vous enfoncez dans le vide. Vous devez faire la paix avec cela, sinon cela vous consumera. Au contraire, ce sentiment devrait vous donner l'assurance que vous vous dirigez dans la bonne direction. Les chances sont dans notre profession choisie que vous ne pourrez jamais vous asseoir confortablement sur un trône construit à partir de toutes les connaissances frontales.

Ne passez pas tout votre temps libre à apprendre

Il est facile de sentir que vous êtes tellement en retard que vous devez coder et apprendre chaque minute. C'est un aller simple pour burnout-ville. Réservez du temps pour développer vos compétences, voyez si vous pouvez négocier du temps avec votre patron pour que ce soit prévu et passez le reste du temps à faire ce que vous aimez.

J'ai eu certaines de mes épiphanies de codage au gymnase. L'exercice est extrêmement important pour votre esprit ainsi que votre corps. Essayez de faire au moins 20 à 30 minutes par jour pour garder votre esprit vif et aider à prévenir l'épuisement professionnel.

Prenez du temps pour votre famille et vos amis — essayez de ne pas parler boutique avec eux !

C'est un marché de développeurs

Ne vous inquiétez pas de trouver un emploi en ce moment. Pour le moment, nous sommes dans une position très chanceuse où il y a plus de rôles que de développeurs pour les remplir. Je ne sais pas combien de temps cela va durer, mais profitez-en maintenant !

Vous pouvez obtenir un emploi sans tout connaître. J'ai constaté que dans les entretiens que j'ai menés, 99 % des gens le blaguaient totalement.

Dans le pire des cas, rappelez-vous qu'il y a de l'or dans le code hérité. Si vous êtes un développeur qui aime les anciennes méthodes, il y aura toujours des entreprises bloquées sur des technologies héritées qui ont besoin de développeurs pour travailler sur leur logiciel.

Conclusion

J'espère que certains de ces conseils ont aidé à atténuer certaines des frustrations que vous pourriez ressentir. La pire chose que vous puissiez faire est d'atteindre le bord et de vous épuiser complètement, car une fois que vous l'êtes, il est très difficile de retrouver cette passion que vous aviez pour ce que vous faites et pourquoi vous avez commencé à le faire en premier lieu.

Bon codage !