J'ai réfléchi à ce qui sépare les grands programmeurs des bons programmeurs, tout simplement. Voici quelques réflexions. Si vous avez d'autres idées, veuillez vous connecter et commenter ce billet,
1. Il ne s'agit pas de l'étape de codage.
Bien sûr, les grands programmeurs sont aussi de grands codeurs. Mais c'est plus que cela. Je pense que les grands programmeurs sont aussi de grands ingénieurs. Un ingénieur connaît ses outils. Un ingénieur sait comment décomposer un problème complexe en morceaux qu'il peut résoudre, et sait ensuite comment réassembler les morceaux pour former un tout. L'ingénieur connaît parfaitement le domaine du problème. Dans le contexte de la programmation, cela signifie que vous comprenez le problème que vous essayez de résoudre, vous comprenez comment il s'inscrit dans le cadre plus large et vous comprenez les limites de la technologie.
2. Il s'agit de l'étape de codage.
Lire un bon code, c'est comme lire un roman bien écrit. L'histoire s'écoule tout simplement de la page. Les structures de données sont exactement ce qu'il faut pour résoudre le problème. Le code est décomposé en procédures dont la fonction est claire d'après leur nom, leur utilisation et leur code. Les noms sont descriptifs. Le code est systématiquement en retrait. Les commentaires sont stratégiquement placés, utiles, sérieux et non redondants avec le code exécutable. Les commentaires ne remettent pas en question le comportement du code voisin (si jamais vous êtes tenté de le faire, arrêtez-vous et prenez plutôt le temps de comprendre ce qui se passe !) Le code n'est jamais inutilement dupliqué ; une action donnée n'est mise en œuvre qu'une seule fois. Les fonctions exécutent une tâche sans effets secondaires gratuits. Des améliorations futures évidentes ont été pensées et des dispositions raisonnables ont été prises pour les anticiper dans la conception actuelle.
3. Ils sont sans peur.
Un programmeur qui ne veut pas travailler sur un morceau de code parce qu'il pense qu'il est trop compliqué ou trop fragile a probablement raison. Mais ils ne se réfèrent pas au code. Ils se réfèrent à leurs propres capacités ! Les grands programmeurs, lorsqu'ils sont confrontés à un problème, savent quand et comment faire valoir auprès de la direction qu'il est temps de réimplanter le code en question. Les pires programmeurs se contentent de plonger et d'aggraver le gâchis.
4. Les grands programmeurs pensent toujours à la performance.
Ils savent que s'ils choisissent la bonne structure de données pour la tâche à accomplir, ils ont déjà évité la plupart des problèmes de performance. Mais ils ne font aucune hypothèse sur les performances. Lorsqu'ils font déboguer leur code, ils prennent le temps d'effectuer des tests de stress et de le secouer à fond. Ils comprennent que faire fonctionner du code à 1 TPS n'est pas la même chose que de le faire fonctionner à 1000 TPS. Ils comprennent également que faire fonctionner un code pendant 15 minutes n'est pas la même chose que de le faire fonctionner pendant des jours et des semaines.
5. Les grands programmeurs ne devinent pas.
Quand ils arrivent à quelque chose qu'ils ont besoin de savoir, et qu'ils ne savent pas, ils trouvent comment acquérir les connaissances nécessaires, sans deviner, et sans perdre beaucoup de temps.
J'espère que cette liste vous intéressera et vous sera utile.