Développez vos compétences ET votre portefeuille
À mon avis, ce serait une très bonne expérience d'apprentissage car elle:
- vous obliger à regarder sous le capot ,
- vous guider pour apprendre comment les choses se font en interne ,
- vous encourage à regarder et comparer d'autres implémentations ,
- garder vos compétences algorithmiques à jour,
- vous faire coder (et, espérons-le, documenter ) beaucoup, ce qui n'est pas mal non plus,
- vous donner un projet et une base de code importants que vous pourriez partager en ligne pour que tous les voient, pour:
- plaisir et gratification personnels ,
- présenter vos compétences à des employeurs potentiels,
- communiquer et échanger avec des pairs intéressés par le même domaine,
- potentiellement laisser grandir en quelque chose de plus ...
Je vois donc cela comme un produit, utile et globalement "en vaut la peine".
Commencer
Maintenant, vous pouvez utiliser différentes approches, en fonction du temps que vous prévoyez de consacrer à cela ...:
- Si vous avez un délai limité, je dirais plonger et coder la chose.
- Si vous avez un calendrier plus large, vous pouvez en effet suivre le chemin de longue haleine et écrire des spécifications, des tutoriels, un manuel, etc.
Commencer petit
Je vous recommanderais plutôt de commencer petit . Personne n'a jamais, à ma connaissance, écrit directement une langue géniale comme ça. Vous trébuchez et tombez, échouez, échouez et échouez . Ensuite, vous réussissez, en ce sens que ça marche mais ça craint toujours, alors vous recommencez. Et vous ajoutez de nouvelles fonctionnalités et ça devient finalement cool, mais soudain vous vous rendez compte qu'il y a un concept fondamental que vous avez foiré au début. Alors vous recommencez encore une fois ...
Cela me semble très éducatif.
Allez-y (et partagez le lien avec nous).
Petit, comme "court"
Mais encore une fois, je vous recommande de commencer petit . N'ayez pas peur si les gens disent que cela va prendre beaucoup de code et de temps. Pas nécessairement, si vous ne visez pas une langue compliquée. Alan Kay et d'autres
ingénieurs de Xerox PARC auraient développé une première version de
Smalltalk qui tient sur une seule feuille de papier , comme un objectif de justesse (lire Xerox PARC: Dealers of Lightning pour plus de détails sur l'histoire du PARC ). Semble une bonne approche, suffisamment pédagogique et contrainte (tant qu'elle ne sacrifie pas la lisibilité).
Petit, comme dans "contraint"
Vous n'avez pas besoin de prendre en charge immédiatement un système de type avancé, des fonctions d'ordre supérieur et un mélange de 42 paradigmes différents. Il pourrait simplement s'agir d'un langage d'expression mathématique.
Réutilisez (et jetez un œil à) les connaissances des autres
Vous pouvez également consulter les outils utilisés pour écrire des langues à partir de zéro. Vous pouvez tout réimplémenter vous-même, mais il vaut peut-être aussi la peine de regarder les lexers et les générateurs d'analyseurs existants, par exemple.
Et évidemment, vous voudrez peut-être lire sur la construction du compilateur dans son ensemble.
Maintenant, si nous modifions votre question pour qu'elle soit "serait-ce l'utilisation la plus productive de votre temps?" cela devient un problème entièrement différent :)
Il y a des tonnes d'autres projets d'apprentissage que vous pourriez entreprendre, et qui formeraient et présenteraient vos compétences aussi bien, sinon mieux. Cela dépend de ce que vous voulez viser.