Article original : To self-doubting developers: are you good enough?

Par Sihui Huang

Cela vous semble-t-il familier ?

Vous vous inquiétez constamment de ne pas être à la hauteur.

Regardez les développeurs autour de vous. Ils semblent avoir tout sous contrôle. Leur code est plus propre que le vôtre. Ils déboguent beaucoup plus vite que vous. Ils jettent à peine un coup d'œil à la documentation avant de savoir ce dont ils ont besoin. Ils sont confiants. Ils aiment coder.

Mais vous, vous êtes inquiet. Vous craignez de ne pas en savoir assez sur le framework et le langage que vous utilisez. Vous vous inquiétez d'introduire des bugs. Vous vous inquiétez de suivre les technologies les plus en vogue. Vous craignez de ne pas être assez talentueux. Les choses ne vous viennent pas naturellement. Vous vous dites : « Peut-être que je ne suis pas fait pour être développeur. »

Si l'une de ces pensées de doute vous semble familière, vous n'êtes pas seul. Recherchez « self-doubt developers » sur Google, et vous trouverez plus de 2 millions de résultats en moins d'une seconde.

J'étais comme vous.

Pendant un certain temps, j'ai également connu un doute intense, me demandant si je pourrais un jour « y arriver ». C'est arrivé à l'université, lorsque je m'entraînais et me préparais pour des entretiens d'embauche. Chaque jour, ces problèmes d'algorithmes me faisaient sentir comme un échec total. J'étais stressé et inquiet, tout comme vous pourriez l'être maintenant.

Finalement, ma pratique a porté ses fruits et j'ai reçu plusieurs offres d'emploi de prestigieuses entreprises technologiques. En cours de route, j'ai appris deux leçons importantes qui ont changé ma vision de la programmation et éliminé mes doutes. Je les partage avec vous maintenant. Espérons qu'elles vous aideront.

Leçon n°1 : Apprendre la programmation est exactement comme construire des muscles

Pour apprendre à jouer au football, vous devez aller sur le terrain et jouer. Pour renforcer vos muscles, vous devez aller à la salle de sport et soulever des haltères. Pour apprendre la programmation, vous devez vous asseoir et coder.

Après avoir soulevé des haltères, vous vous sentirez endolori et fatigué le lendemain. Lorsque vous êtes bloqué sur un problème de programmation, votre cerveau (littéralement) vous fera mal et vous serez frustré.

Vous n'abandonnerez pas l'entraînement simplement parce que vous vous sentez endolori. Vous savez que cela fait partie du processus. Mais lorsque vous êtes bloqué en programmation, vous pourriez commencer à douter de vous-même, vous demandant si vous êtes assez talentueux. Parce que : (1) vous pensez que le fait d'être bloqué est de votre faute, (2) les autres donnent l'impression que c'est sans effort.

1. Être bloqué fait partie du processus.

Peut-être que personne ne vous l'a dit, mais il est absolument normal d'être bloqué pendant la programmation. Cela arrive même aux développeurs seniors. Une grande partie de la programmation consiste à comprendre pourquoi ce que vous attendiez ne s'est pas produit. Si vous êtes d'accord pour dire qu'attendre d'un enfant qu'il sache marcher la première fois qu'il se lève est absurde, pourquoi attendriez-vous que la première version de votre code s'exécute parfaitement sans aucun bug ?

Je me souviens de moments où j'étais bloqué si longtemps que j'avais envie de me cogner la tête contre un mur. Je sais que c'est difficile et frustrant (surtout lorsque l'on traite des problèmes liés aux environnements de développement). Mais accrochez-vous. Creusez le problème. Demandez à Google. Demandez à un ami. Faites une promenade. Vous finirez par le résoudre et passer à autre chose. Et à mesure que vous gagnerez en expérience, vous serez progressivement moins bloqué.

La prochaine fois que vous serez bloqué, ne vous en voulez pas. Rappelez-vous que ce n'est pas de votre faute. C'est normal. Cela fait partie du processus.

PS — Configurer un environnement de développement peut être la partie la plus difficile de la programmation.

Il est très courant d'être bloqué et de passer des jours à configurer un environnement de développement. Ce sont des moments qui peuvent écraser votre moral. Vous essayez de suivre les instructions étape par étape. Mais des erreurs aléatoires continuent de s'afficher à chaque étape. Les instructions donnent l'impression que c'est facile, mais ce n'est pas le cas. Ce n'est pas de votre faute si vous êtes bloqué. 99,99 % des personnes qui lisent ce tutoriel sont bloquées. Les 0,01 % restants sont les chanceux qui ont exactement la même configuration de système d'exploitation que l'instructeur.

Il est dommage que la première étape de l'apprentissage de la programmation soit également la partie la plus frustrante et écrasante. Lorsque vous voyez des erreurs que vous ne comprenez pas, copiez simplement le message d'erreur exact et recherchez-le sur Google. (Mettre des guillemets autour du message d'erreur ou ne rechercher que la première moitié du message peut aider.) Essayez différentes solutions jusqu'à ce que vous trouviez celle qui fonctionne. Et passez à autre chose.

Pardonnez-moi de me répéter : être bloqué à ce stade n'est pas de votre faute. Nous le sommes tous. Et je vous promets que la programmation deviendra beaucoup plus amusante une fois que vous aurez passé cette étape.

2. Nous confondons « génétiquement intelligent » avec « semble intelligent parce que la personne a passé beaucoup de temps sur des sujets connexes »

Lors de mon dernier semestre à l'université, mes amis étaient émerveillés par mes performances dans le cours de Structures de Données et Algorithmes Avancés. J'avais l'air de réussir sans effort alors qu'ils luttaient.

Ce qu'ils ne savaient pas, c'est que des mois avant le cours, pour me préparer aux entretiens, j'avais passé d'innombrables heures à pratiquer des défis de codage, qui couvraient exactement les mêmes sujets que le cours : programmation dynamique, recherche en profondeur, recherche en largeur, etc. Cela semblait sans effort seulement parce que j'avais déjà traversé ces luttes.

Lorsque j'ai appris ces concepts par moi-même pour la première fois, je passais des heures à fixer un problème sans pouvoir le résoudre. Lorsque j'abandonnais et que je cherchais des solutions en ligne, j'avais du mal à les comprendre. Lorsque je finissais par comprendre, je me sentais encore plus frustré parce que je doutais de pouvoir un jour être assez intelligent pour trouver une telle solution moi-même.

Parfois, même lorsque je rencontrais exactement le même problème à nouveau, je n'avais peut-être toujours aucune idée de la façon de l'aborder. Je devenais si stressé que je devais prendre de longues douches chaudes pour me calmer.

Alors croyez-moi lorsque je dis que je sais ce que cela fait de douter de soi et de s'inquiéter de ne pas y arriver. J'ai été là avant. Et je peux vous assurer que vous n'êtes pas seul. De nombreux grands développeurs sont passés par la même chose. (Voici un podcast sur ce sujet.)

La prochaine fois que vous luttez alors que les gens autour de vous excellent, ne pensez pas que c'est parce que vous n'êtes pas assez talentueux. Très probablement, ils ont simplement plus d'expérience sur le sujet, ou des sujets similaires, que vous. Leurs cerveaux ont construit les « muscles » pour gérer ce type de sujet. Après avoir surmonté vos luttes actuelles, vous aurez également l'air intelligent et sans effort.

Tout est une question de répétitions et de séries.

Vous construisez des muscles en les exerçant. Plus vous mettez d'efforts, plus vous vous entraînez longtemps, plus vous devenez fort. Apprendre la programmation suit exactement le même processus. Plus vous passez de temps à coder, plus vous deviendrez compétent. Vous récoltez ce que vous semez.

Leçon n°2 : Concentrez-vous sur votre art, pas sur vous-même

Arrêtez de penser à quel point vous êtes un bon ou un mauvais programmeur. Si vous êtes dans les 5 % les moins bons de votre équipe, vous voulez vous améliorer. Si vous êtes dans les 5 % les meilleurs, vous voulez toujours vous améliorer. Peu importe à quel point vous êtes bon ou mauvais, il y a toujours des gens devant vous et des gens derrière vous. Alors pourquoi perdre du temps à y penser ?

Au lieu de cela, concentrez-vous sur votre art. Arrêtez de vous demander à quel point vous êtes bon. Demandez-vous à quel point votre code est bon. Comment pouvez-vous l'améliorer, le rendre plus rapide, plus lisible ? Entourez-vous d'ingénieurs que vous admirez. Lisez leur code. En quoi est-il différent du vôtre ? Quels sont les compromis qu'ils font ?

Si vous travaillez déjà en tant qu'ingénieur logiciel, quelqu'un vous paie pour écrire du code. Vous devriez vous arrêter et réfléchir à cela, car cela signifie beaucoup : quelqu'un croit en vos compétences en codage ou voit votre potentiel. La seule façon de répondre à ce potentiel est de vous concentrer sur votre art et de l'améliorer sans relâche.

Action à entreprendre : Commencez à suivre vos petites victoires

Quand était la dernière fois que vous étiez bloqué et n'étiez pas sûr de pouvoir résoudre le problème ? Comment l'avez-vous finalement résolu ?

Ouvrez un nouveau document Google et écrivez-le.

La prochaine fois que vous doutez de vous-même, jetez un coup d'œil au document et rappelez-vous : si vous avez pu résoudre ce dernier problème, vous résoudrez également celui-ci.

Utilisez le document pour suivre les problèmes difficiles que vous avez surmontés et ce que vous en avez appris. Célébrez toujours ces petites victoires !

Laissez un commentaire et partagez la dernière fois où vous étiez bloqué pour rappeler à ceux qui luttent actuellement qu'ils ne sont pas seuls. ?

Vous voulez en savoir plus sur ma carrière dans la technologie ? Consultez mes autres articles.

Vous avez d'autres questions liées à la programmation ?

N'hésitez pas à m'envoyer un e-mail : sihui@sihui.io