Voir le flux RSS

Le Blog d'un Ninja codeur

Comment surmonter le blocage du programmeur

Noter ce billet
par , 18/07/2017 à 15h35 (844 Affichages)
Un article publié sur le site HackerNoon fait un parallèle intéressant entre l'activité d'écrire un roman et celle d'écrire un programme. Parallèle assez saugrenu avec la vision très segmentée de notre système scolaire, les littéraires d'un côté et les scientifiques de l'autre, mais en balayant les différents points mentionnés, il apparaît que pas mal d'entre eux sont tout à fait pertinents.

La liste commence par 0, on parle d'informatique quand même

0. La programmation d'abord
Commencer votre journée par la programmation avant toute autre activité (sauf le café peut-être) car nous sommes les plus créatifs le matin.
Je suis assez d'accord avec elle. La programmation est un exercice cérébral qui demande beaucoup de ressources et même si le mythe du programmeur qui passe ses nuits à programmer peut s'avérer exact chez certaines personnes, il n'en reste pas moins qu'après une dure journée de travail, on est quand même moins apte à résoudre des problèmes.


1. Ne pas hésitez à utiliser du papier
Schématisez vos pensées sur papier avant de vous jeter sur l'écran.
Sur ce point, j'aurai tendance à dire, chacun ses préférences. Même si dans le fond, je suis d'accord qu'il est préférable de bien réfléchir au problème avant de coder. Cependant, le papier n'est pas l'unique possibilité. Il existe tout un tas d'outils (Mind Map, Power Point, ou même un simple éditeur de texte) qui peuvent permette de virtuellement griffonner ses idées, de se laisser à l'écriture libre, avant de mettre de l'ordre et les coder.


2. La programmation doit devenir une habitude
Planifiez des séances régulières de programmation
Aucun doute là dessus. C'est en forgeant qu'on devient forgeron. Et c'est en forgeant davantage qu'on devient meilleur forgeron. Plus mes séances de programmation sont espacées et irrégulières, et plus il m'est difficile de me replonger sur un problème ou sur une technologie donnée. Je suis donc parfaitement d'accord sur ce point avec l'auteur.


3. Notez vos idées tout comme vos bugs
Ayez sur vous en permanence de quoi noter
La mémoire humaine est relativement volatile et notre attention est sans cesse sollicitée pour de bonnes ou de mauvaises raisons. Quand une idée sur un projet que nous menons survient dans notre esprit, il est souhaitable d'avoir quelque chose pour noter et fixer cette idée. Après, je pense que de nos jours, avec les smartphones prêts à être dégainés à n'importe quelle occasion, ce n'est plus vraiment un problème, mais cela n'enlève en rien la réalité du propos.


4. Faites vous des amis
Exposer son code à la pression sociale et aux jugements des autres.
Pour beaucoup d'entre nous il peut être plus motivant de savoir que ce qu'on fait sera jugé, apprécié ou pas, par d'autres. Bon après, votre entourage proche peut ne pas être réceptif du tout à la programmation et à l'informatique en général, mais il y a toujours les collègues ou encore les forums (dont developpez.com ^^). Cela peut être une puissante source de motivation de savoir que son projet peut susciter la curiosité et puisse éventuellement être suivi dans son évolution. Je ne peux que confirmer. Après, il est tout à fait possible que cette "pression" sociale puisse être intimidante et inhibitrice. Donc je me garderais bien de généraliser ce conseil à n'importe qui.


5. Apprenez des autres
Ne pas réinventer la roue
Il est assez rare qu'on soit le seul et le premier à être confronté à un certain problème. D'autres sont certainement passés avant nous. Tout comme dans la littérature où il est très conseillé de lire pour écrire, cela est à mon sens encore plus vrai dans le domaine de la programmation. Mener à terme un projet d'envergure en partant de zéro est voué à l'échec. La connaissance des bibliothèques et des frameworks est devenue incontournable dans l'activité de développeur.


6. Favorisez votre inspiration
L'environnement et les activités annexes ont leur importance
Plutôt d'accord, même si la créativité dans la programmation, même si elle est indéniable, n'est pas tout à fait comparable à celle nécessaire dans l'écriture d'un roman. Donc, il faut être attentif à son cadre de travail, afin d'être dans des conditions propices à la créativité, ainsi qu'à s'ouvrir l'esprit à des activités tout à fait différentes. Restez curieux d'autant que c'est utile pour la vie en générale. Difficile donc d'être en désaccord sur ce point.


7. Soyez sans pitié
Retirer le superflu de votre code et remplacer du code obsolète par un autre meilleur
Dans la programmation, disons que cela va de soi. Autant cela peut être difficile dans un roman où l'auteur peut avoir mis beaucoup de lui-même dans un chapitre ou dans une scène, autant l'affect moyen du programmeur envers un morceau de code est tout de même tout à fait relatif. Donc si jamais on trouve une meilleure solution (plus performante, moins gourmande en mémoire, plus fiable), il est naturel pour tout programmeur avec un minimum de conscience professionnelle de choisir cette solution au détriment du code existant, même si c'est le sien.


8. Méfiez-vous de votre propre expertise
Il est nécessaire que ceux qui liront votre code le comprenne
Il est en effet indispensable autant pour les autres que pour soi-même de faire l'effort (car ça prend du temps) d'écrire du code propre, commenté, d'utiliser des noms de variables adéquats et expressifs. C'est à mon sens cette partie qui se rapprocherait le plus de la littérature. Car il est "facile" de coder, mais c'est plus difficile de faire comprendre le code à quelqu'un d'autre. Et pour qu'une application soit maintenable dans la durée et puisse évoluer avec l'intervention d'autres personnes, il faut rendre le code lisible, comme un roman doit être accessible à ses lecteurs.


9. Finissez en haut d'un tobogan
A chaque fin de journée, préparer la journée suivante
C'est en effet une bonne manière de se mettre dans de bonnes prédispositions mentales pour attaquer une nouvelle journée. Si on a déjà prévue la veille de ce qu'il faut faire, la reprise le lendemain n'en sera que plus simple et rapide. Les To Do List, les commentaires (temporaires) dans le code, les post-its sur le bord de l'écran, ou mieux encore, un planning (à jour bien sûr...) sont des aides précieuses pour se fixer les objectifs du lendemain et garder la dynamique. La programmation, parce que ce n'est pas si simple exige un minimum d'organisation et de discipline. Mais ça, je suppose que vous le saviez


Conclusion

Globalement, je suis donc d'accord avec l'auteur de l'article, sur de nombreux points. Écrivant des nouvelles en parallèle, il est vrai qu'il existe de nombreuses similitudes entre l'activité d'écrivain et de programmeur et que les techniques pour surmonter les blocages peuvent être transposables d'un domaine à l'autre. Cependant, il faut quand même résister à la tentation d'y voir deux activités totalement semblables. Il y a quand même des différences, et pas des moindres. Par exemple, l'originalité est souvent une qualité recherchée dans un roman, alors que ce n'est pas vraiment ce qui est demandé en premier à un programme où l'efficacité prime ("It just works"). D'où mes réserves quand à certains points mentionnés par l'auteur. Mais sinon, cette liste peut être une bonne aide lorsqu'on tombe en panne, non pas d'inspiration, mais au moins de motivation.

Bon développement !

Envoyer le billet « Comment surmonter le blocage du programmeur » dans le blog Viadeo Envoyer le billet « Comment surmonter le blocage du programmeur » dans le blog Twitter Envoyer le billet « Comment surmonter le blocage du programmeur » dans le blog Google Envoyer le billet « Comment surmonter le blocage du programmeur » dans le blog Facebook Envoyer le billet « Comment surmonter le blocage du programmeur » dans le blog Digg Envoyer le billet « Comment surmonter le blocage du programmeur » dans le blog Delicious Envoyer le billet « Comment surmonter le blocage du programmeur » dans le blog MySpace Envoyer le billet « Comment surmonter le blocage du programmeur » dans le blog Yahoo

Mis à jour 18/07/2017 à 15h57 par yahiko

Catégories
Développement , Programmation

Commentaires