Article original : How to Become a Better Developer – Tips to Grow Your Coding Skills

En tant que développeur, vous souhaitez probablement améliorer vos compétences en permanence. Devenez le meilleur développeur possible. Mais comment améliorer vos compétences est une question délicate à répondre.

L'industrie du logiciel est obsédée par l'idée des ingénieurs 10x. Ce sont des ingénieurs qui seraient 10 fois meilleurs dans leur travail que leurs pairs. Mais comment devient-on si talentueux ?

"Les meilleurs programmeurs ne sont pas marginalement meilleurs que les bons. Ils sont d'un ordre de grandeur supérieur, mesuré par n'importe quel standard : créativité conceptuelle, vitesse, ingéniosité de conception ou capacité à résoudre des problèmes." – Randall E. Stross

Voici quatre étapes concrètes que j'ai utilisées moi-même, ou que j'ai vues utilisées par d'autres pour réussir à améliorer leurs compétences.

Si vous êtes nouveau en programmation, je pense que ceci est une excellente chose à lire en premier.

Enseigner et écrire autant que possible

"Ce que beaucoup de gens sous-estiment, c'est qu'être un bon rédacteur, que ce soit par e-mail ou par des documents, vous permet d'avoir plus d'impact. Je vois beaucoup d'ingénieurs ignorer cette compétence.

Vous pouvez être fier de votre code. Vous devriez également être tout aussi fier de l'art de l'écriture… L'écriture est une compétence largement sous-estimée pour les ingénieurs." – Urs Hölzle (premier VP de l'ingénierie chez Google)

Vous êtes la personne la plus responsable de vos compétences et de votre développement. Devenir un meilleur développeur dépend largement de vous. C'est à vous d'améliorer vos faiblesses et de perfectionner votre art. Devenir un meilleur développeur est un processus continu qui ne s'arrête jamais, et écrire vous aide à apprendre davantage.

En écrivant, vous repoussez les limites de votre zone de confort. Vous apprenez de nouveaux sujets à discuter, et vous vous "mettez en avant". Vous commencez un discours où, lorsque vous avez tort, les gens sont très heureux de vous corriger et de vous offrir des retours.

La meilleure façon de devenir un meilleur ingénieur est d'enseigner à 10 personnes ce que vous savez, et de les aider dans leurs compétences en développement.

Mettez votre expertise en ligne et open sourcez ce que vous savez. Votre écriture technique agit comme un capital portable lorsque vous changez d'emploi, pour montrer la profondeur et l'étendue de vos connaissances. Écrire ne met pas seulement en valeur vos compétences, mais les développe également.

Lire beaucoup

Mark Twain a dit que la personne qui peut lire de bons livres mais choisit de ne pas le faire n'a aucun avantage sur la personne qui ne peut pas réellement lire un livre.

La lecture est un outil si puissant. Lisez un grand code source open source bien documenté, lisez des livres techniques, lisez le code de vos collègues et lisez la documentation technique.

Trouvez les esprits les plus brillants sur Twitter, des ingénieurs avec des décennies d'expérience et des personnes qui créent les spécifications que vous aimez. Soyez une mouche sur le mur de leurs conversations.

En tant que défi de départ, changez vos préférences de surveillance sur un code source que vous connaissez le mieux (un dépôt de travail ou un open source). Ensuite, passez en revue et lisez chaque changement (ou autant que vous êtes à l'aise) qui est intégré dans master/main.

Si vous ne comprenez pas une syntaxe/un code ou ne pouvez pas le comprendre, demandez à la personne qui l'a fait. Apprenez de tout le monde. Cela aidera le codeur à clarifier ce que fait le code (si vous ne pouvez pas le comprendre, il n'est probablement pas très clair !) et vous aidera à avoir plus de contexte sur les changements pour l'écosystème dans lequel vous travaillez.

Travailler sur des projets passionnants et/ou contribuer à l'OSS

"Nous sommes ce que nous faisons de manière répétée. L'excellence, alors, n'est pas un acte, mais une habitude." – Aristote

L'un des plus grands bonds en avant dans mes compétences et ma confiance est venu lorsque j'ai créé mon premier programme majeur qui visualisait des algorithmes de recherche de chemin. J'ai commencé avec Dijkstra et j'ai aussi fait A*.

Cela m'a forcé à :

  • planifier quelque chose du début à la fin
  • donner des estimations
  • me rendre responsable
  • travailler sur de nouvelles API que je ne connaissais pas
  • planifier ma propre architecture
  • considérer comment implémenter des modèles de conception propres

Si vous n'êtes pas sûr de par où commencer, ce n'est pas grave. Voici un lien vers de nombreuses API publiques contre lesquelles vous pouvez développer, ou quelques idées de projets que j'ai compilées ici.

Si vous n'avez pas de site web personnel, commencez par là !

Même simplement publier mon projet personnel a été une expérience éducative incroyable en soi. Vous finissez par apprendre tout le cycle de vie du développement logiciel du début à la fin, et comblez les lacunes dans vos connaissances.

Pour moi, c'était les déploiements et les builds CI que je ne connaissais pas beaucoup (j'utilise Netlify). Travailler sur des choses comme :

  • Comment voulez-vous tester votre projet ?
  • Comment allez-vous le publier ?
  • Voulez-vous des builds automatisés ?
  • Voulez-vous acheter un domaine pour cela ?

Vous commencez à vous auto-éduquer de manière intensément pratique, car vous avez un objectif final en vue – mettre la chose en ligne !

Les projets passionnants de chacun sont différents. Travaillez sur un projet open source pendant quelques mois, et voyez combien vous grandissez. Lorsque vous commencez à interagir avec des personnes de différents pays, qui ont leurs propres opinions formées et qui ne vous connaissent pas, vous ne pouvez pas vous empêcher d'apprendre de vos erreurs.

Vous obtenez l'avantage supplémentaire d'identifier une personne intelligente avec qui vous vous entendez bien, et de qui vous pouvez glaner des informations précieuses basées sur leurs années de codage et d'expertise.

Si cela fonctionne bien pour vous – c'est-à-dire, avoir quelqu'un avec qui discuter de vos progrès techniques – vous pouvez postuler pour un mentor (gratuitement) ici.

Vous n'avez même pas besoin de coder un programme ou une application entière, mais travaillez simplement sur quelque chose que vous aimez. Résolvez des problèmes Leetcode ou des kata Codewars. Écrivez un compilateur et un langage. Ou parcourez près de 400 idées ici.

Les plus grands bonds en avant dans ma croissance sont venus lorsque j'avais quelques petits projets que j'essayais de mettre en œuvre. Avoir beaucoup à faire (que j'aimais !) m'a forcé à m'adapter pour devenir plus efficace dans ma gestion du temps et m'a fait coder plus rapidement.

Assurez-vous de faire de l'exercice et de bien dormir

"C'est une honte pour une [personne] de vieillir sans voir la beauté et la force dont [son] corps est capable." – Socrates

L'exercice aide votre mémoire et votre réflexion, directement et indirectement. Les avantages directs de l'exercice sont nombreux, mais parmi d'autres choses, il :

  • permet à votre corps de réduire la résistance à l'insuline et l'inflammation
  • stimule des produits chimiques dans votre cerveau pour affecter la santé des cellules cérébrales
  • encourage la croissance de nouveaux vaisseaux sanguins dans le cerveau, et
  • augmente même la quantité et le taux de survie de nouvelles cellules cérébrales.

Indirectement, il peut vous aider à améliorer votre humeur et votre sommeil et à réduire le stress et l'anxiété (ce qui, selon les recherches, peut altérer les fonctions cognitives).

Des études ont également suggéré que le cortex préfrontal (clarté de la pensée) et le cortex temporal médian (mémoire) ont un volume plus important chez les personnes qui font de l'exercice par rapport à celles qui n'en font pas.

Tout comme il est important de prendre soin de votre santé mentale, vous devez également prendre soin de votre santé physique. Le QI diminue avec l'âge, et une théorie est que la quantité d'oxygène que notre cerveau reçoit diminue lentement si nous vieillissons sans rester en bonne santé cardiovasculaire.

Conclusion

Mon dernier conseil qui résume tout cela est d'essayer de vous challenger constamment.

Il existe un juste milieu pendant que vous travaillez normalement, appelé flow. Cela se produit lorsque vous vous sentez pleinement énergisé et "dans la zone".

Si vous commencez quelque chose de trop difficile vous ne le terminerez pas à cause d'un sentiment de surcharge. Si vous commencez quelque chose de trop facile, vous ne le terminerez pas à cause de l'ennui.

Vous devez faire de votre mieux pour équilibrer quelque chose étant suffisamment difficile pour vous challenger à apprendre de nouvelles choses et vous faire grandir vos compétences versus vous ennuyer à mourir en faisant quelque chose bien en dessous de votre niveau de compétence.

C'est difficile à accomplir lorsque vous commencez, car tout semble trop difficile. Si vous vous trouvez ici, je vous recommande de commencer le curriculum freeCodeCamp dès le début et de travailler votre chemin à travers les certifications.

Tenez un carnet des moyens de grandir et de ce que vous auriez fait différemment lorsque vous faites des erreurs. Soyez gentil avec vous-même, et continuez à avancer en apprenant tout au long du chemin.

Je tweete mes articles ici si vous souhaitez lire plus de mes écrits.