Ini selalu merupakan trade-off.
Sebagai programmer pemula, Anda harus bertanya pada diri sendiri dua pertanyaan ketika mempertimbangkan menggunakan kembali kode vs menciptakan kembali roda persegi:
- Akankah saya mempelajari lebih lanjut tentang masalah yang ingin saya selesaikan dengan menulis semuanya dari awal, atau dengan berfokus pada domain masalah dan mengesampingkan kerumitan yang tidak penting untuk masalah yang saya minati?
- Apakah lebih penting bagi saya untuk menyelesaikan masalah yang dihadapi atau lebih penting bagi saya untuk memahami beberapa konsep mendasar?
Jika Anda tidak harus menyelesaikan proyek Anda, tidak apa-apa memutar roda Anda pada masalah kompleks yang sudah diselesaikan orang lain, karena Anda akan belajar sesuatu. Tetapi Anda mungkin akan pindah ke hal lain sebelum Anda "selesai," yang mungkin atau mungkin tidak penting bagi Anda. Proyek-proyek lain akan mulai terlihat berkilau cepat ketika Anda berada di atas kepala Anda pada domain kompleks yang terlihat sederhana sampai Anda mulai mencoba menyelesaikannya sendiri.
Jangan terobsesi melepaskan kendali karena Anda tunduk pada cara berpikir orang lain; lebih fokus pada apa yang ingin Anda capai.
Jika tujuan Anda adalah untuk menulis parser HTML karena Anda ingin memahami cara kerja parser, lakukanlah. Jika tujuan Anda adalah untuk menulis parser HTML karena Anda ingin membersihkan input pengguna atau mengubah beberapa bit HTML acak, Anda mungkin berfokus pada hal yang salah, karena Anda mungkin lebih tertarik pada aplikasi parsing daripada parsing itu sendiri . Jika Anda merasa ingin menulis parser HTML karena Anda tidak ingin meluangkan waktu untuk memahami perpustakaan orang lain, Anda mungkin membuang-buang waktu, karena, setidaknya dalam kasus ini, saya jamin orang lain telah menghabiskan lebih banyak waktu mencari tahu bagaimana untuk menyelesaikan masalah ini secara efektif daripada yang Anda miliki. Dalam kasus yang benar-benar sepele, Anda dapat menghemat waktu dengan tidak menggunakan kembali kode, tetapi dalam kasus yang rumit, kecuali perpustakaan yang Anda gunakan menyebalkan atau kemampuan Anda untuk membaca dokumentasi dan sampel kode menyebalkan,
Di sisi lain, saya akan mengatakan bahwa itu layak untuk menulis perpustakaan grafik Anda sendiri, karena Anda akan lebih fokus pada transfer, algoritma mendasar dan struktur data yang Anda akan dapat terapkan ke domain lain, bahkan jika Anda akhirnya menggunakan perpustakaan orang lain saat Anda mengatasi masalah itu.