Qu’est-ce qui fait un bon programmeur ?
Qu'est-ce qui fait un bon programmeur ?

Qu’est-ce qui fait un bon programmeur ?

Qu’est-ce qui fait un bon programmeur ? C’est une question intéressante à se poser. Elle vous fait réfléchir sur le métier d’un ingénieur en génie de logiciels. C’est aussi une bonne question à poser à vos collègues. Elle peut déclencher des discussions intéressantes sur la façon dont vous travaillez ensemble. 

Voici quatre compétences que nous pensons qu’il est crucial d’avoir pour être un bon programmeur.

Compétences d’un bon programmeur

Un ingénieur en génie logiciels doit décomposer les problèmes

La programmation consiste à résoudre des problèmes et décrypter les chaînes et les programmes. Toutefois, avant d’écrire un code, vous devez savoir comment résoudre n’importe quel scénario. Une des compétences des bons programmeurs est la capacité à décomposer le problème en parties de plus en plus petites, jusqu’à ce que chaque partie puisse être facilement résolue. 

Généralement, un bon ingénieur en génie de logiciels trouve un moyen de modéliser le problème de manière à ce que le programme qui en résulte soit facile à raisonner, facile à mettre en œuvre et facile à tester.

Il y a très peu de programmes intrinsèquement difficiles. Si vous regardez un morceau de code et qu’il semble très dur, si vous ne pouvez pas comprendre ce que cette chose est censée faire, c’est presque toujours une indication qu’il a été mal pensé. À ce moment-là, vous ne retroussez pas vos manches et n’essayez pas de réparer le code, vous prenez du recul et vous y réfléchissez à nouveau. Quand vous aurez suffisamment réfléchi, vous découvrirez que c’est simple.

Analyse de scénarios

Les bons développeurs ont la capacité d’envisager de nombreux scénarios différents pour le programme. Cela s’applique à la fois à la logique du programme et aux événements internes et externes qui peuvent se produire. Pour considérer les différentes voies de la logique, ils posent des questions comme : 

Que se passe-t-il si cet argument est nul et si aucune de ces conditions n’est vraie ? 

Cette méthode est-elle durable et sans danger ? 

Pour découvrir les types d’événements que le logiciel doit traiter, ils posent également des questions du type : 

Que se passe-t-il si cette file d’attente devient pleine et s’il n’y a pas de réponse à cette demande ? 

Que se passe-t-il si l’autre serveur redémarre alors que le serveur en question est en train de redémarrer ?

Les bons programmeurs se posent la question : Comment cela peut-il se casser ? En d’autres termes, ils ont la capacité de penser comme des testeurs. En revanche, les programmeurs inexpérimentés ne considèrent généralement que le “happy path”, le flux normal de contrôle lorsque tout se passe comme prévu. Cependant, il est tout à fait certain que l’inattendu se produit inévitablement, et que le programme doit être capable d’y faire face.

L’esprit technique

Le principal outil de travail des développeurs est leur ordinateur, il est donc logique qu’ils sachent comment naviguer sur leurs appareils d’un point de vue technique. N’est-ce pas ? Toutefois, ce qui distingue les bons développeurs de logiciels des autres, c’est qu’ils ne se contentent pas de comprendre les ordinateurs, mais qu’ils aiment aussi comprendre la logique qui se cache derrière eux.

C’est simple, un développeur de logiciels doit posséder de grandes compétences techniques et, plus important encore, il doit être capable d’expliquer les parties techniques à des personnes non techniques.

Apprentissage

En tant qu’ingénieur en génie de logiciels, vous apprenez constamment. Avant d’ajouter une nouvelle fonctionnalité, vous devez comprendre ce qu’elle est censée faire. Avant d’ajouter du code à un programme existant, vous devez généralement apprendre ce que fait le code existant, afin d’intégrer correctement la nouvelle fonctionnalité.

Vous devez également vous familiariser avec les systèmes environnants afin de pouvoir vous interfacer correctement avec eux. La capacité d’apprendre rapidement fait donc de vous un développeur beaucoup plus efficace.

En outre, le rythme de développement dans le domaine du génie logiciel étant très rapide, il existe un flux constant de nouveaux langages, outils, techniques et cadres de travail à découvrir. 

Conclusion

Toutes les compétences mentionnées ci-dessus sont génériques, aucune d’entre elles n’est spécifique à une langue, un cadre ou une technologie en particulier. Si vous les possédez, vous pouvez rapidement apprendre une nouvelle langue ou un nouvel outil, et écrire de bons logiciels dans cet environnement. En outre, comme elles sont de nature générale, elles ne deviendront pas obsolètes en quelques années.

Leave a Reply