Réinventer la roue
L’un des conseils les plus néfastes est de ne pas réinventer la roue.
Cela vient généralement d'une bonne intention, mais est généralement donné par deux groupes de personnes :
ceux qui ont essayé d'inventer la roue eux-mêmes et savent à quel point c'est difficile
ceux qui n'ont jamais essayé d'inventer la roue et qui suivent aveuglément les conseils
Quoi qu'il en soit, ces deux positions créent un climat où la curiosité et l'exploration sont découragées. Je suis heureux que certains n'aient pas suivi ce conseil ; nous leur devons bien des commodités de la vie moderne.
Même en surface, ce conseil est mauvais : nous disposons aujourd’hui de roues bien meilleures qu’entre 4 500 et 3 300 av. J.-C., lorsque la première roue fut inventée. Il était également crucial que les roues soient réinventées à travers les civilisations et les cultures.
Remarque : lorsque je dis « roue » dans cet article, vous pouvez le remplacer par l'outil, le protocole, le service, la technologie ou toute autre invention qui vous intéresse personnellement.
Inventer la roue, c'est apprendre
« Ce que je ne peux pas créer, je ne le comprends pas »
– Richard Feynman , physicien et lauréat du prix Nobel
Pour vraiment comprendre quelque chose à un niveau fondamental, il faut d'abord être capable d'en implémenter une version préliminaire. Peu importe qu'elle soit bonne ou non, vous pourrez la jeter plus tard.
En informatique, par exemple, de nombreux concepts sont généralement considérés comme hors de portée du commun des mortels : les protocoles, la cryptographie et les serveurs Web viennent à l’esprit.
Il faudrait que davantage de gens sachent comment ces choses fonctionnent. Je pense donc qu'il ne faut pas avoir peur de les recréer.
Tout est un terrier de lapin
Trop souvent, les choses fondamentales sont tenues pour acquises. Par exemple, les chaînes de caractères ou les chemins sont des concepts extrêmement complexes en programmation. Implémenter soi-même une bibliothèque de chaînes de caractères ou de chemins est un excellent exercice si leur fonctionnement vous intéresse.
Même si personne n'utilise votre travail, je parie que vous en apprendrez beaucoup. Par exemple :
Il y a une complexité infinie dans les choses du quotidien.
Construire quelque chose qu’une seule autre personne trouve utile est une expérience humiliante.
Ce sont des humains comme vous qui ont créé ces abstractions. Elles ne sont pas parfaites et vous pouvez faire différents compromis dans votre propre conception.
Sur le dernier point, tout est une question de compromis et il existe des dizaines, parfois des centaines pour chaque problème.
En cours de route, vous devrez prendre des décisions concernant l’exactitude, la simplicité, la fonctionnalité, l’évolutivité, les performances, l’utilisation des ressources, la portabilité, etc.
Votre solution peut être excellente sur certains points, mais pas sur tous, et ne convient pas à tous les utilisateurs. Cela implique également que les solutions existantes présentent des défauts et ne sont peut-être pas conçues pour résoudre votre problème particulier, aussi éprouvée soit-elle.
S'aventurer dans des univers complexes est amusant en soi, mais il y a un autre avantage : c'est l'un des rares moyens de progresser… à condition de ne pas abandonner avant d'avoir une version fonctionnelle de ce que vous avez essayé d'explorer. Si vous passez trop souvent d'un projet à l'autre, vous n'apprendrez rien.
Raisons de réinventer la roue
Il y a de bonnes raisons de réinventer la roue :
Construisez une meilleure roue (pour une certaine définition de mieux)
Apprenez comment les roues sont fabriquées
Enseignez aux autres l'utilisation des roues
Découvrez les inventeurs des roues
Être capable de changer les roues ou de les réparer lorsqu'elles cassent
Apprenez les outils nécessaires pour fabriquer des roues en cours de route
Apprenez un petit aperçu de ce que signifie construire un système plus vaste (comme un véhicule)
Aidez quelqu'un qui a besoin d'une roue très spéciale. Peut-être pour un fauteuil roulant ?
Qui sait ? La roue que vous imaginez n'est peut-être pas la plus adaptée à une voiture, mais peut-être à un… skateboard ou un vélo ? Ou bien vous échouez à construire une roue plus esthétique, mais vous trouvez une meilleure façon de la tester en cours de route. Et puis, votre roue n'est peut-être même pas destinée au transport ! Ce pourrait être un tour de potier, « une machine utilisée pour façonner (ou tourner) l'argile en céramique ronde », selon Wikipédia . Vous pourriez finir par construire une roue totalement différente, comme un volant ou un volant d'inertie. Nous avons besoin de plus de personnes qui sortent des sentiers battus.
Réutiliser ou réinventer
Bien sûr, ne négligez pas les travaux des autres : étudiez-les et réutilisez-les quand bon vous semble. Ne réinventez pas la roue par méfiance ou par ignorance. D'un autre côté, si vous n'essayiez jamais de mettre vos connaissances à l'épreuve, comment pourriez-vous en apprendre suffisamment sur votre domaine pour le faire progresser ?
J'ai constaté qu'on peut progresser très rapidement en menant de petites expériences. En génie logiciel notamment, la création de petits prototypes est économique et rapide. Résolvez votre propre problème, commencez petit, restez simple et itérez.
Donc, avec tout ce qui précède, voici mon conseil :
Réinventer pour mieux comprendre. Réutiliser pour plus d'impact.
Merci de m’avoir lu!