Isso é sempre uma troca.
Como programador iniciante, você deve fazer duas perguntas a si próprio ao considerar reutilizar código e reinventar a roda quadrada:
- Vou aprender mais sobre o problema que quero resolver escrevendo tudo do zero ou concentrando-me no domínio do problema e deixando de lado a complexidade não crítica para o problema no qual estou interessado?
- É mais importante para mim resolver o problema em questão ou é mais importante que eu compreenda alguns conceitos fundamentais?
Se você não precisa terminar seu projeto, não há problema em girar suas rodas sobre problemas complexos que outras pessoas já resolveram, porque você aprenderá alguma coisa. Mas você provavelmente passará para outra coisa antes de "terminar", o que pode ou não ser importante para você. Outros projetos começarão a parecer brilhantes rapidamente quando você entrar em um domínio complexo que parece simples até você começar a tentar resolvê-lo.
Não fique obcecado em abrir mão do controle, porque está adiando a maneira de pensar de outra pessoa; concentre-se mais no que você está tentando realizar.
Se seu objetivo é escrever um analisador de HTML porque você deseja entender como os analisadores funcionam, faça-o. Se seu objetivo é escrever um analisador de HTML porque você deseja higienizar a entrada do usuário ou transformar alguns bits aleatórios de HTML, provavelmente está focado na coisa errada, porque provavelmente está mais interessado no aplicativo de análise do que na própria análise. . Se você deseja escrever um analisador de HTML porque não quer gastar tempo para entender a biblioteca de outra pessoa, provavelmente está perdendo tempo, porque, pelo menos nesse caso, garanto que outra pessoa passou mais tempo tentando descobrir como para resolver esse problema efetivamente do que você terá. Em casos realmente triviais, você pode economizar tempo não reutilizando código, mas em casos complexos, a menos que a biblioteca que você usa seja uma porcaria ou sua capacidade de ler a documentação e as amostras de código seja uma porcaria,
Por outro lado, eu diria que vale a pena escrever sua própria biblioteca de gráficos, já que você estará mais focado em algoritmos fundamentais e estruturas de dados transferíveis que poderá aplicar a outros domínios, mesmo se acabar usando biblioteca de outra pessoa quando você trabalha nesses problemas.