Dies ist immer ein Kompromiss.
Als Anfänger sollten Sie sich zwei Fragen stellen, wenn Sie überlegen, Code wiederzuverwenden oder das Vierkantrad neu zu erfinden:
- Werde ich mehr über das Problem erfahren, das ich lösen möchte, indem ich alles von Grund auf neu schreibe oder mich auf die Problemdomäne konzentriere und die Komplexität beiseite lege, die für das Problem, das mich interessiert, nicht kritisch ist?
- Ist es mir wichtiger, das vorliegende Problem zu lösen, oder ist es mir wichtiger, einige grundlegende Konzepte zu verstehen?
Wenn Sie Ihr Projekt nicht beenden müssen, können Sie bei komplexen Problemen, die andere bereits gelöst haben, die Räder drehen, weil Sie etwas lernen. Aber Sie werden wahrscheinlich zu etwas anderem übergehen, bevor Sie "fertig" sind, was für Sie von Bedeutung sein kann oder auch nicht. Andere Projekte werden schnell glänzend aussehen, wenn Sie sich auf eine komplexe Domäne stürzen, die einfach aussieht, bis Sie versuchen, sie selbst zu lösen.
Seien Sie nicht besessen davon, die Kontrolle aufzugeben, weil Sie sich der Denkweise eines anderen widersetzen. Konzentrieren Sie sich mehr auf das, was Sie erreichen wollen.
Wenn Sie einen HTML-Parser schreiben möchten, um die Funktionsweise von Parsern zu verstehen, sollten Sie diesen verwenden. Wenn Sie einen HTML-Parser schreiben möchten, um Benutzereingaben zu bereinigen oder zufällige HTML-Elemente zu transformieren, konzentrieren Sie sich wahrscheinlich auf das Falsche, da Sie wahrscheinlich mehr an der Anwendung des Parsings als an dem Parsing selbst interessiert sind . Wenn Sie Lust haben, einen HTML-Parser zu schreiben, weil Sie sich nicht die Zeit nehmen möchten, die Bibliothek eines anderen zu verstehen, verschwenden Sie wahrscheinlich Ihre Zeit, da zumindest in diesem Fall garantiert jemand anderes mehr Zeit darauf verwendet hat, herauszufinden, wie um dieses Problem effektiv zu lösen, als Sie haben. In wirklich trivialen Fällen können Sie Zeit sparen, indem Sie Code nicht wiederverwenden, sondern in komplexen Fällen, es sei denn, die Bibliothek, die Sie verwenden, ist zum Kotzen oder Ihre Fähigkeit, Dokumentation und Codebeispiele zu lesen, ist zum Kotzen.
Andererseits würde ich sagen, dass es sich lohnt, eine eigene Grafikbibliothek zu schreiben, da Sie sich mehr auf übertragbare, grundlegende Algorithmen und Datenstrukturen konzentrieren, die Sie auf andere Domänen anwenden können, selbst wenn Sie diese letztendlich verwenden jemand anderes Bibliothek, wenn Sie an diesen Problemen arbeiten.