Avez-vous déjà entendu cette expression ou quelque chose dans le genre ? Bien sûr que oui ! Chaque développeur et étudiant a déjà probablement entendu de tels commentaires.
Pourquoi ? Et pourquoi réinventer la roue est-il si mal vu ?
Parce que, le plus souvent, le code existant est un code fonctionnel. Il a déjà été soumis à une sorte de contrôle de la qualité et à des tests rigoureux, et est utilisé avec succès. De plus, le temps et les efforts investis dans la réinvention sont peu susceptibles de porter leurs fruits, de même que l’utilisation d’un produit ou d’une base de code existante. Si vous avez la peine de réinventer la roue ? Pourquoi ? Quand ?
Peut-être avez-vous déjà vu des publications sur les modèles de développement de logiciels ou des livres sur la conception de logiciels. Ces livres peuvent être endormant, quelle que soit la qualité de l’information qu’ils contiennent. De la même manière que regarder un film sur la voile est très différent de naviguer, utiliser le code existant, c’est aussi concevoir son propre logiciel à partir de zéro, le tester, le casser, le réparer et l’améliorer en cours de route.
Réinventer la roue n’est pas simplement un exercice pour placer des constructions de code: il s’agit de savoir acquérir une connaissance intime du fonctionnement interne de divers composants existants.
Savez-vous comment fonctionnent les gestionnaires de mémoire? Les pagination virtuelle ?
Pourriez-vous les mettre en œuvre vous-même ?
Qu’en est-il des listes à double liaison ? Les Classes de tableau dynamique ? Les clients ODBC ?
Pourriez-vous écrire une interface utilisateur graphique qui fonctionne comme une interface populaire que vous connaissez et aimez ? Pouvez-vous créer vos propres widgets de navigateur Web ?
Savez-vous quand écrire un système multiplexé par rapport à un système multi-thread ?
Comment choisir entre une base de données ou une base de données en mémoire ?
La plupart des développeurs n’ont simplement jamais créé ces types d’implémentations logicielles principales et ne possèdent donc pas une connaissance intime de leur fonctionnement. La conséquence est que tous ces types de logiciels sont considérés comme de mystérieuses boîtes noires qui fonctionnent.
Comprendre uniquement la surface de l’eau ne suffit pas pour révéler les dangers cachés. Ne pas en savoir plus sur le développement de logiciels limitera votre capacité à créer un travail stellaire.
Réinventer la roue et se tromper est plus utile que de la clouer du premier coup. Il y a des leçons tirées d’essais et d’erreurs qui ont une composante émotionnelle, ce que la lecture d’un livre technique ne peut à elle-seule livrer !
Il est essentiel d’apprendre des faits et de maîtriser les livres, mais pour devenir un bon programmeur, il faut autant acquérir de l’expérience que recueillir des faits. Réinventer la roue est aussi important pour l’éducation du développeur que pour l’haltérophilie, pour le body-builder.