paint-brush
Ce qui sépare les meilleurs développeurs de la masse : 10 traits critiquespar@zawistowski
12,047 lectures
12,047 lectures

Ce qui sépare les meilleurs développeurs de la masse : 10 traits critiques

par Wojciech Zawistowski10m2023/05/01
Read on Terminal Reader

Trop long; Pour lire

Nous travaillons dur pour améliorer nos compétences techniques et générales. Mais nous tenons nos traits de caractère pour acquis - une partie fixe de qui nous sommes. Cette façon de penser est nocive. Vos traits sont encore plus critiques pour une carrière réussie dans le développement de logiciels que vos compétences. Et ils sont sous votre contrôle. Les vrais développeurs seniors le reconnaissent et développent délibérément leurs traits. C'est la superpuissance qui les distingue de la foule et accélère leur carrière.
featured image - Ce qui sépare les meilleurs développeurs de la masse : 10 traits critiques
Wojciech Zawistowski HackerNoon profile picture
  • Nous travaillons dur pour améliorer nos compétences techniques et générales. Mais nos traits de caractère, notre état d'esprit - nous tenons cela pour acquis. Une partie innée et fixe de qui nous sommes. Et ainsi, nous l'avons laissé fonctionner en pilote automatique.


  • Cette façon de penser est nocive. Non seulement votre état d'esprit est essentiel pour une carrière réussie dans le développement de logiciels (peut-être même plus que vos compétences), mais il est également sous votre contrôle.


  • Les vrais développeurs seniors reconnaissent que les traits de caractère sont malléables, sont conscients de leur état d'esprit et y travaillent délibérément. C'est la superpuissance qui les distingue de la foule et accélère leur carrière.


  • Dans cet article, je discuterai des 10 traits les plus critiques d'un développeur qui réussit, pourquoi ils sont importants, et partagerai quelques conseils sur la façon dont vous pouvez les façonner.

3 choses dont vous avez besoin pour réussir en tant que développeur de logiciels

Le développement de logiciels professionnels est une discipline complexe qui nécessite un ensemble diversifié de capacités pour réussir. Nous pouvons les regrouper en trois catégories principales :

Compétences techniques

C'est le groupe le plus évident. Pour réussir en tant que développeur, vous devez être bon dans votre métier : langages et frameworks de programmation, principes de code propre, architecture, tests, débogage, etc. Vous devez également être habile avec vos outils : contrôle de version, ligne de commande et IDE.


Cependant, les compétences techniques seules ne vous mèneront pas loin dans une configuration professionnelle en équipe. C'est pourquoi vous avez également besoin de compétences générales.

Compétences non techniques

Pour pouvoir travailler sur de grands projets commerciaux, vous avez besoin d'un solide ensemble de compétences non techniques : travail d'équipe, communication, gestion et planification de projet, travail à distance, auto-organisation, apprentissage, productivité personnelle, etc.


Beaucoup d'entre nous trouvent ces compétences moins amusantes que les compétences techniques, et donc, nous les négligeons souvent - afin qu'elles puissent déjà séparer les développeurs solides et professionnels de la foule. Mais au moins, nous les reconnaissons.


Il y a aussi une troisième catégorie, qui est tout aussi importante mais qui passe sous le radar de presque tous, même les bons développeurs.

Mentalité

L'état d'esprit est un peu similaire aux compétences non techniques, mais les "compétences" qui le composent sont des traits de base plus fondamentaux : curiosité, patience, empathie, courage, adaptabilité, etc.


À un certain niveau, nous savons que ces caractéristiques sont importantes pour une carrière réussie dans le développement de logiciels. Mais parce qu'ils semblent faire partie intégrante de notre personnalité, nous n'essayons pas de les apprendre délibérément de la même manière que nous apprenons la gestion de projet ou les techniques de productivité personnelle.


Cela nous rend aveugles à une partie énorme et importante de nos compétences et peut gravement nuire à notre progression.


[Pour une perspective encore plus complète sur l'avancement de votre carrière en tant que développeur professionnel, consultez mon "Guide définitif pour devenir un vrai développeur senior" sur GitHub]

Pourquoi être aveugle à votre état d'esprit peut compromettre votre carrière

Le développement de logiciels est un domaine complexe, parfois frustrant et incroyablement rapide. Apprendre, grandir et rester pertinent en tant que développeur (et ne pas s'épuiser dans le processus) nécessite un mélange spécifique de traits de caractère.


En même temps, c'est un jeu d'équipe à 100%. Les hackers solitaires n'ont pas leur place dans le développement de logiciels professionnels, aussi bons soient-ils techniquement. Et bien fonctionner dans une équipe nécessite un autre ensemble de traits apparemment opposés.


L'état d'esprit est quelque chose de différent des compétences. Comprendre les principes de développement Agile n'est pas la même chose qu'être adaptable et ouvert aux changements fréquents.


Et connaître les techniques de débogage n'est pas la même chose que d'avoir la curiosité et la persévérance nécessaires pour prendre plaisir à poursuivre le problème pendant plusieurs heures sans s'épuiser ni se décourager.


Mais bien que ces traits puissent sembler fixes et innés à notre personnalité, ils peuvent également être appris en tant que compétences.


Sans comprendre quels traits sont essentiels pour un programmeur et sans les affiner délibérément au fil du temps, vous n'atteindrez jamais votre plein potentiel. Les vrais développeurs seniors le savent, sont conscients de leur état d'esprit et travaillent continuellement à l'améliorer.


C'est le différenciateur, la superpuissance qui sépare les meilleurs développeurs de la foule.


D'accord, mais quels traits sont les plus importants ? Plongeons un peu plus dans les détails.

10 traits d'un véritable développeur senior

1. Curiosité

Si je devais résumer en une phrase ce qu'est le développement logiciel, je dirais qu'il s'agit d'apprentissage. Vous devez vous tenir au courant des évolutions constantes des technologies et des processus de développement de logiciels.


Vous devez apprendre les détails profonds de domaines commerciaux complexes (plusieurs tout au long de votre carrière). Analyser et clarifier les exigences, c'est apprendre. La recherche apprend.


L'optimisation des performances et le débogage - en d'autres termes, approfondir le fonctionnement interne du code - est également une sorte d'apprentissage.


Le développement de logiciels consiste également à travailler avec des personnes (et pour des personnes).


Vous travaillerez au sein d'équipes interfonctionnelles avec un ensemble diversifié de personnes de différentes spécialisations et origines (de nos jours, à l'ère de la télécommande, très probablement de plusieurs pays et cultures).


Vous devrez comprendre "affaires". Vous devrez comprendre et résoudre les points douloureux et les problèmes des utilisateurs.


Sans une bonne dose de curiosité, vous serez non seulement moins efficace dans toutes ces choses, mais vous vous épuiserez aussi assez rapidement.

2. Affinité pour la résolution de problèmes

Le développement logiciel est un puzzle géant - un flot infini de problèmes à résoudre. La raison pour laquelle vous êtes embauché en tant que développeur est de résoudre les problèmes de votre entreprise et de vos clients.


Pour ce faire, vous devez résoudre des problèmes organisationnels (comment fonctionner en équipe, comment organiser votre travail, quels processus utiliser) et des problèmes techniques (logique, architecture, performance, etc.).


Ces problèmes consistent en des problèmes imbriqués encore plus petits, jusqu'à des problèmes atomiques comme la façon de concevoir et de nommer une fonction particulière ou un test unitaire.


Si vous n'aimez pas résoudre de telles énigmes, si vous n'avez pas le don de décomposer et de démêler les problèmes, votre carrière de développeur de logiciels sera difficile.

3. Patience

Devenir un véritable développeur senior nécessite des années de pratique délibérée. Vous rencontrerez également de nombreux revers en cours de route. Développer votre carrière est gratifiant mais aussi un processus lent et parfois douloureux.


Pour atteindre l'excellence et atteindre le sommet, vous devez être prêt à vous consacrer toute votre vie. Et cela demande beaucoup de patience.


La patience est également essentielle pour de nombreuses choses adjacentes à notre travail : gérer le support technique, travailler avec des utilisateurs peu avertis en matière de technologie et faire face à la bureaucratie organisationnelle. De plus, c'est une excellente aide à la résolution de problèmes.


Et vous ne continuerez pas à travailler dans une industrie aussi rapide et en constante évolution que la technologie sans patience.

4. Grit (en juste la bonne quantité)

Le développement de logiciels nécessite beaucoup de persévérance. Bogues de chasse. Déchiffrer les API et bibliothèques mal documentées. Démêler le code hérité. Traquer les goulots d'étranglement des performances. Même en maintenant simplement une concentration profonde pendant de longues périodes.


Vous aurez du mal, échouerez, resterez coincé et serez souvent frustré, peu importe votre niveau d'ancienneté. Et vous aurez besoin de beaucoup de courage pour labourer et ne pas vous épuiser.


Mais vous devez également comprendre quelle est la bonne quantité de grain. Quel est le juste milieu entre se cogner improductivement la tête contre le mur pendant des heures et des jours et perturber constamment votre équipe en demandant de l'aide immédiatement lorsque vous rencontrez la moindre bosse sur la route ?

5. Intelligence émotionnelle

Le développement de logiciels tourne autour des personnes et des équipes. Vous travaillerez en étroite collaboration avec vos collègues au niveau individuel : associez des programmes, déboguez ensemble et révisez leur code.


Vous travaillerez également avec eux dans une configuration d'équipe : faites un remue-méninges, planifiez et prenez des décisions en groupe. Et cette collaboration est désordonnée : votre travail se chevauchera ou sera en conflit, et vous aurez des opinions différentes.


Vous négocierez votre feuille de route avec la direction. Enfin, pour créer un excellent produit, vous devrez vous mettre à la place de vos utilisateurs.


En plus de cela, toutes ces personnes viennent d'horizons divers, à la fois techniques et non techniques. Ils sont passionnés. Ils ont des opinions bien arrêtées. Ils peuvent parfois avoir des caractères difficiles.


Et votre succès en tant que développeur dépend de votre capacité à établir des relations avec eux. Sans intelligence émotionnelle élevée, ce sera tout simplement impossible.

6. Capacité à garder votre ego sous contrôle

Le développement de logiciels (et le travail en équipe en général) est un exercice d'équilibre. D'une part, vous êtes embauché pour votre expertise. On attend de vous que vous ayez des opinions bien arrêtées et que vous guidiez des personnes moins férues de technologie ou plus juniors.


D'autre part, vous travaillerez avec des coéquipiers tout aussi expérimentés et opiniâtres qui contesteront votre point de vue et avec qui vous devrez prendre des décisions en groupe.


Votre ego sera souvent blessé dans le processus. Vous devez être capable de le contrôler - mais sans vous retirer et vous désengager.


Vous devez être opiniâtre mais pas fanatique. Ayez un point de vue fort mais tenez-le faiblement; être ouvert à se convaincre autrement. Il faut être prêt à défendre son opinion mais aussi savoir lâcher prise pour ne pas être un con condescendant et brillant.


Vous devez respecter l'équipe, l'entreprise et les clients. Être capable d'être en désaccord mais de s'engager. Et acceptez gracieusement les commentaires constructifs (et même purement négatifs). Sinon, vous ne pourrez pas travailler efficacement en équipe.

7. Adaptabilité

Tout dans le développement de logiciels évolue si vite. Les technologies évoluent constamment. Les nouvelles méthodologies deviennent populaires. Les entreprises pivotent.


Tout au long de votre carrière, vous changerez également de projets, d'équipes, d'entreprises et de domaines d'activité. Même un seul projet est un acte constant d'inspection et d'adaptation (en particulier dans les approches agiles). Et votre équipe s'auto-réorganisera constamment.


La plupart des gens sont allergiques au changement. Le changement est difficile. C'est inconfortable. C'est stressant. Être adaptable et ouvert au changement vous démarquera instantanément. Il vous permettra non seulement de grimper au sommet de l'échelle d'ancienneté, mais il vous permettra également d'y rester longtemps.

8. Fiabilité

Je le répète jusqu'à la nausée, mais le développement logiciel est un jeu d'équipe. Vos collègues, votre responsable et votre entreprise - ils comptent tous sur vous pour faire votre part.


Personne ne vous considérera jamais comme un véritable développeur senior - quelle que soit votre expertise technologique - s'il ne peut pas compter sur vous pour prendre soin de votre travail et tenir vos promesses sans avoir à être microgéré.


Cela ne signifie pas que vous ne pouvez jamais faire d'erreurs. Les échecs arrivent. Et les meilleures entreprises les considèrent comme de précieuses opportunités d'apprentissage.


Mais pour activer cela, vous devez être capable de récupérer une balle tombée, de récupérer avec élégance et de faire confiance pour apprendre de votre échec et ne pas le répéter à l'avenir.

9. Pragmatisme

Le développement de logiciels professionnels est un art de compromis. Vous devez constamment faire des compromis entre vitesse de développement et qualité. Équilibre nouveau et prometteur avec éprouvé et stable.


Marchez sur une fine ligne entre la sous-ingénierie et la sur-ingénierie.


Pour réussir dans le développement de logiciels professionnels, vous devez être très pragmatique. Vous devez comprendre que rien n'est noir ou blanc et qu'aucun principe ou schéma ne vaut dans toutes les situations.


Vous devez avoir une grande intuition pour faire des compromis entre différentes approches, technologies et solutions ; se sentir à l'aise de couper les coins ronds, mais avoir une bonne idée de combien.

10. Perspectives positives

Votre vie de programmeur n'est pas que du soleil et des arcs-en-ciel. Vous rencontrerez des clients ennuyeux. Faire face à des délais serrés. Votre projet peut être annulé. Vous pouvez être en désaccord avec votre équipe ou votre direction, mais vous devez quand même vous engager et exécuter.


Vous travaillerez également avec du code laid. (Oui, chaque base de code a de bonnes et de mauvaises parties, même dans les meilleures entreprises comme Google.)


Vous serez fatigué, frustré et contrarié.


Si vous laissez la négativité prendre le dessus, si vous commencez à critiquer et à vous plaindre, non seulement vous vous démotiverez, mais vous tuerez également le moral de votre équipe - ce qui ne fera pas avancer votre carrière très loin.


Vous devez être biaisé vers le positif. Soyez optimiste et joyeux. Cherchez toujours une doublure argentée. Soyez la personne qui rallie son équipe, tue la mauvaise humeur et redonne le moral. Cela vous permettra non seulement de vous faire remarquer et d'être promu, mais cela rendra également votre carrière plus agréable et plus durable.

Bonus : quelques conseils pour façonner délibérément votre état d'esprit

Les compétences, évidemment, peuvent être formées - à la fois techniques et techniques. Vous pouvez vous améliorer en débogage ainsi qu'en communication. Mais qu'en est-il de ces traits apparemment innés comme la curiosité ou une attitude positive ? Pouvez-vous vraiment vous entraîner à être plus optimiste ou curieux ?


Oui, vous pouvez! C'est un vaste sujet, qui vaut plusieurs livres ("Mindset" de Carol S. Dweck est un excellent point de départ). Mais permettez-moi de partager rapidement quelques conseils :


  • Reconnaissez que votre état d'esprit n'est pas figé et que vos traits sont malléables.


  • Développer la conscience de soi. Observez comment vous réagissez dans différentes situations. Essayez de comprendre ce qui vous fait vous sentir d'une manière particulière (curieux vs ennuyé, positif vs grincheux, impatient vs défensif).


  • Rétrospectez votre comportement dans une perspective d'un jour ou deux. Votre opinion était-elle vraiment pragmatique, ou était-ce votre ego qui parlait ? Comment auriez-vous pu agir différemment ?


  • Préparez-vous à l'avance. Prévoyez à l'avance comment vous vous comporterez la prochaine fois dans une situation similaire et identifiez le bon déclencheur qui vous rappellera votre plan le moment venu.


  • Exposez-vous à des situations qui vous permettront d'exercer et de renforcer les traits souhaités. Recherchez activement de telles opportunités.


  • Concentrez-vous sur un seul trait pendant un certain temps. Il vous sera plus facile de trouver des occasions de l'exercer et d'augmenter votre conscience de vous-même de ce trait.


  • Recadrer. Soyez conscient et délibéré de la façon dont vous vous parlez. L'idée n'est pas stupide, elle est surprenante. Ce frisson n'est pas de l'anxiété, c'est de l'excitation. Le problème n'est pas frustrant, il est intéressant.


  • Demandez de l'aide. N'hésitez pas à demander à votre collègue ou à votre responsable des commentaires - ou même à devenir votre "partenaire de responsabilité" qui détectera et signalera votre comportement indésirable.


Je vous encourage également à en apprendre un peu plus sur les biais cognitifs et la formation d'habitudes. C'est une discipline bien développée, avec un énorme corpus de connaissances et assez amusante à explorer.

En bout de ligne

Si vous voulez être un vrai développeur senior , vous devez être un développeur complet. Vous devez avoir le bon mélange de compétences techniques, de compétences générales et de traits de caractère, et vous ne pouvez ignorer aucune partie de ce trio.


Les traits de caractère sont la partie la plus délicate. La plupart des développeurs les négligent parce qu'ils n'en ont pas conscience, ne savent pas lesquels sont importants ou ne croient pas qu'ils sont malléables.


Mais si vous pouvez surmonter cette façon de penser erronée - si vous pouvez changer votre état d'esprit - vous pouvez en faire une superpuissance qui élèvera votre carrière et vous permettra de vous démarquer vraiment.