Table des matières
Ouvrir table des matières
Mon astuce pour écrire facilement un algorithme en tant que débutant
Je remarque que beaucoup de débutants disent avoir du mal à produire un algorithme pour résoudre un problème donné. Et si l’on creuse un peu ce problème, on se rend compte que la cause du problème n’est pas souvent celle que l’on pense réellement.
Lorsqu’un débutant commence à apprendre la programmation, il apprend énormément de choses dès le début comme l’algorithmique, son 1er langage de programmation, divers outils pour produire, suivre, versionner ou encore débugger son code. Une vraie boulimie de l’information.
Et généralement, l’apprentissage de chacune des parties se fait individuellement, c’est-à-dire que l’on apprendre la théorie et on met en pratique ce qu’on apprend individuellement sans tenir compte du reste comme dans la plupart des formations.
Et c’est la tout le problème, parce qu’un débutant maîtrise à peine ce qu’il vient d’apprendre et lorsqu’il doit faire travailler tout ce qu’il a appris individuellement en parfaite harmonie, c’est la panique et la déstabilisation assurée. Comment demander à un débutant d’être opérationnelle dans la maîtrise de tout son écosystème pour le faire fonctionner en parfaite harmonie. C’est impossible !
En tant que débutant, le réflexe que vous allez avoir c’est de mettre en pratique ce que vous avez appris : algorithme sur papier que vous allez relire plusieurs fois pour tenter de l’optimiser. Une fois qu’il est finalisé et que vous pensez qu’il est bon (personne pour vous corriger et comme on dit sur papier ça marche toujours), vous allez traduire votre algorithme papier dans votre langage de programmation.
Vous vous apercevez que votre traduction du papier vers votre langage est assez fastidieuse parce que cela ne marche pas comme voulez et vous êtes obligé de le revoir encore une fois pour le faire fonctionner. Bref, c’est très long à faire, c’est une perte de temps et vous allez connaître une belle baisse de motivation et d’engouement, c’est garanti. D’autant que vous allez tenter de mettre en application tout ce que vous avez appris comme on vous le demande.
Mais alors, comment faire pour produire un algorithme facilement et rapidement lorsque l’on débute sans maîtriser parfaitement son environnement de travail ?
Laissez-moi vous partager la méthode que j’utilisais lorsque j’ai commencé à programmer. Elle est simple et étonnante, mais tellement efficace pour ma part, car elle consiste à se concentrer sur une chose à la fois.
Faites un 1er jet de votre algorithme
Comme je l’ai décrit plus haut, le problème lorsqu’on est un débutant c’est que l’on n’a pas l’expérience et la maîtrise de son environnement de travail et de ce que vous avez appris de manière générale. Vous êtes donc trop préoccupé pour mettre en pratique tout ce que vous appris plutôt que sur le problème à résoudre de façon totalement inconsciente.
Préoccupez-vous d’abord du fond puis de la forme du problème. Concentrez-vous uniquement sur le problème donné et ne pas vous préoccupez de ce que vous ne maîtrisez pas encore très bien.
Rédigez directement votre algorithme dans votre langage de programmation comme vous le penser et au feeling. Laissez cours à votre imagination et oubliez les bonnes pratiques ainsi que de vouloir exploiter au mieux votre environnement de travail !
L’avantage de faire cette étape c’est que vous allez rester focus sur la résolution de votre problème, vous ne penserez qu’à cela pour rester concentrer et mettre à profit toute votre matière grise pour parvenir à écrire un algorithme fonctionnel rapidement.
Si vous ne vous sentez pas à l’aise pour produire votre algorithme directement, vous pouvez l’écrire dans ses grandes lignes sur papier pour vous en servir de guide, mais je suis sûr que vous saurez directement le faire dans votre langage de programmation. Dîtes-vous bien qu’une fois que vous avez fait cela, le plus dur sera derrière vous.
Tout devient plus clair
Avez-vous remarqué que nous avons tendance à critiquer et juger très facilement le travail de quelqu’un lorsqu’on l’a sous les yeux ? Qu’il est plus facile de le faire sur quelque chose qui existe plutôt que quelque chose qui n’existe pas ?
On se dit, mais « pourquoi a-t-il réalisé les choses comme cela » ou « je l’aurais plutôt fait de cette façon ». Certaines choses nous sautent littéralement aux yeux pour mettre le doigt sur certaines parties qui ne nous conviennent pas comme de vraies révélations.
C’est là qu’entre en jeu votre 1er jet puisqu’il va vous constituer une base de travail. Une base sur laquelle vous allez pouvoir vous autocritiquer et dont pas mal de choses vous paraîtront plus évidentes vous vos yeux. L’exercice sera d’autant plus facile pour vous puisque vous serez déjà imprégné de votre problème, car n’oubliez pas que vous venez de rédiger votre algorithme une première fois.
Relisez votre algorithme et je suis sûr et certain que vous allez mettre le doigt sur pas mal de choses à améliorer ou pas mal d’anomalies qui peuvent être résolues.
Vous entrez dans la phase qu’on appelle refactoring. Dans cette étape, vous mettrez tout à profit ce que vous avez appris et vous allez refactoriser toutes les parties de votre code qui en ont besoin. Appliquez tout ce que vous connaissez en matière de bonnes pratiques et mettez à profit votre environnement de travail pour vous y aider.
Pour résumé
Pour résumé, le but de la méthode c’est de faire les choses en 2 étapes lorsque l’on ne maîtrise pas tout son environnement de travail. La 1er étape est de se concentrer sur le fond du problème et uniquement cela. La 2ème étape est de se concentrer sur la forme du problème, en mettant toutes les connaissances que vous avez acquises en pratique en ayant une base de codes sous les yeux.
Cette méthode est pour moi l’une des méthodes les plus efficaces lorsqu’on est débutant, car elle m’a beaucoup aidé à mes débuts. Elle ne vous conviendra peut-être pas, mais cela vaut le coup de l’essayer surtout si vous rencontrez des difficultés dans la conception d’un algorithme en langage de programmation.
Il est évident que quand vous deviendrez plus à l’aise tôt ou tard avec votre environnement de travail, et que cette méthode ne vous sera plus très utile. Mais gardez en tête que de toute manière que l’on soit débutant ou non, aucun développeur ne peut produire une solution algorithmique optimisée du premier coup sans devoir passer par la case refactoring.
Si vous avez une autre méthode que vous utilisez pour ce genre de problème ou si vous rencontrez d’autres difficultés dans la mise en application de ce que vous avez appris, n’hésitez pas à me la partager.