“Build from Scratch” terdengar menggoda tetapi juga bisa menyesatkan.

“Build from Scratch” terdengar menggoda tetapi juga bisa menyesatkan.
Hmmm… Menurut saya ini menarik.
So, ide membuat tulisan ini muncul saat saya terjerumus terlalu dalam dengan istilah “build from scratch”.

Ya, memang kalimat build from scratch ini terdengar menarik dan menantang khususnya bagi seorang coder pemula.
Ketika belajar sebuah bahasa pemrograman apapun pertama kali seperti terpaku dengan harus dimulai dengan syntax apa ditutup dengan apa.
Hello world, hello world.
Oke, hello world kita gak bakalan asing deh dengan kalimat yang satu ini.

Tulisan ini murni dari pengalaman saya saat antusias-antusiasnya membangun framework saya sendiri.

Yang menggangu saya belakangan ini adalah ketika saya search digoogle dengan kalimat yang selalu saya ketikkan ketika mencari sebuah informasi.

Semuanya selalu saya tambahi dengan prefix from scratch atau make your own.

Waktu itu saya lagi nambahin fitur kirim email lewat smtp(secure messaging transfer protocol) buat repositoriey framework(belum dipublish sabar ya).
Yes, exactly. Lucu banget ketika saya inget lagi.
Sebenarnya tidak ada yang salah sih dengan keingin tahuan kita buat membangun sebuah aplikasi/sofware from scratch.
Bagus banget malahan.
Tidak ada yang salah juga dengan kalimat build from scratch dan pasti suatu saat kita pasti juga butuh membangun sebuah architecture kita sendiri.

Toh, kemarin saya juga dapat ilmu yang menurut saya rumit banget tentang konsep mailer ini.
Yang kemudian menggiring saya untuk membuka faqs.org yang jika anda buka anda hanya akan menjumpai tulisan-tulisan yang membuat sakit kepala.(setidaknya menurut saya :) )
Kemudian jadi tau juga apa saja response code yang terjadi saat kita mengirim sebuah email lewat jalur smtp, gagal atau sukses ketika kita ngirim email, mengirim perintah EHLO, HELO ke server smtp dan lain sebagainya.
Yang sedangkan kita tau sudah ada library mailer open source diluar sana seperti PHPMailer, SwiftMailer dan lain sebagainya.
Atau minimal kita bisa pakai sendmail atau built-in php function seperti imap lalu kita buat container/wrapper class buat sendmail atau imap kita sendiri.
Kenapa kita tidak memilih mengkostumisasikan library-library yang sudah ada saja?,Apa salahnya?, ini pertanyaan yang bener-benar harus ditanam dan dijawab.
Sedangkan kita tau seperti halnya laravel sebagai framework favorit saya dan mungkin juga anda yang sedang saya pelajari juga system mailernya juga di-derived atau di-implementasikan dari SwiftMailer.(tolong koreksi saya jika ini salah)

Nah, Tetapi ketika anda masih pemula.
Yang anda perlukan sebenarnya hanya belajar sampai tahap paham alur dari sebagian fungsi dari sebuah bahasa pemrogrmanan.
Seperti PHP setelah anda rasa cukup menguasai materi dasar dari PHP itu sendiri seperti memahami konsep OOP, MVC dan lain sebagianya.
Yang perlu anda lakukan sebenarnya langsung mengambil inisiatif buat belajar sebuah framework.
Nah, dimasa inilah biasanya menjadi dilema besar buat para pemula.
Bakalan ada seperti mental block yang pengennya semuanya dibangun sendiri dari nol dengan component-component PHP Native.
Sekali lagi memang tidak ada yang salah dari itu malah justru itu bagus.
Tapi, satu hal yang perlu digaris bawahi adalah jangan lama-lama tergoda buat membangun semuanya dari nol.
Merasa kalau pakai milik orang lain itu gak cool gak keren.
Jika anda lama-lama dan terlalu terobsesi dengan semua hal pengennya dibangun dari nol.
Saya percaya anda akan tertinggal karna setiap hari teknologi terus berkembang.
Framework-framework yang robust dan teruji disetiap bahasa menjamur.
Jika anda pernah baca berapa banyak pilihan framework yang ada buat PHP yang siap digunakan?,
Banyak. yang jadi masalahnya adalah mental block kita yang selalu menggiring kita untuk membuat milik kita sendiri atau build from scratch.
Tidak ada penyesalan juga sih ketika saya berusaha membangun dan berfikir bahwa semuanya harus dibangun dari nol.
Saya dapat skill diluar expektasi saya sendiri malah.
Yang saya sesalkan hanya waktu yang saya habiskan untuk itu yang membuat saya tidak bisa melihat hal yang lain yang lebih powerful.
Kenapa saya menyesal?, karna saya tidak bisa disiplin disitu.
Saya tidak bisa menyeimbangkan diri saya antara belajar yang satu dengan yang lain.
Dan berbicara soal buang-buang waktu yang perlu ditekankan disini adalah anda tidak akan tau sejauh mana kemampuan anda untuk untuk mendevelop milik anda sendiri, Anda tidak akan tau berapa lama anda akan membangunnya dan jikapun itu anda release sebagai open source pertanyaan pentingya adalah ada gak yang mau ikut berkontribusi pada framework ini?, ada dokumentasi yang terstruktur tidak?, code dalam framework tersebut tersetandarisasi belum?,
Menurut saya membuat sebuah program itu tidak hanya program tersebut yang penting bisa jalan tetapi harus memperhatikan juga alur yang terjadi didalamnya.

Jadi, sah-sah saja anda ingin belajar membangun semuanya dari nol tapi anda harus menghilangkan mental block anda dan anda harus tau dan bisa membagi waktu antara ngoprek dari bawah dengan ngoprek yang sudah ada.
Beda ya?,
Jadi disini kuncinya jika anda ingin keduanya seimbang adalah disiplin pada diri anda sendiri.
Saya mengalaminya dan saya harap anda tidak mengalami hal ini.
So, ini hanya opini berdasarkan pengalaman saya.
Saya suka berdiskusi dengan hal yang menarik bagi saya.
Anda bebas berkomentar atas pemikiran ini.

Pembahasan yang masih relevant dengan topic ini bisa dilihat: