07 Mei 2023

Memperluas skala kode

Sempit lebar kecil besar rendah tinggi

Huwaa mau bahas apa ini saya… 😶‍🌫️

Skala kode… ☝️🙄

Ya tau… 😖

Begini2, coba kita pakai analogi dari hidup kalian aja yak. Biar gak jauh2. Biar bisa kalian bayangkan. Bahwa hidup itu tak terbatas kemungkinannya. Bahwa keputusanmu pada suatu titik, akan mempengaruhi perjalanan hidupmu selanjutnya.

Hmmm paham2… 🤔

Yaudah kalo paham, gak jadi beranalogi di depan… 😶

Terbentuknya visi

Jika kamu punya pandangan tentang apa yang bisa kamu aktualisasikan dalam 25 tahun ke depan, maka seharusnya kamu bisa membuat potongan2 rencana pendek hingga 25 tahun ke depan untuk mempermudah proses aktualisasinya. Permasalahannya, kita sering tidak mampu untuk merumuskan potongan rencananya baiknya apa - kenapa - bagaimana. Kenapa demikian? Karena arah pandangnya terbalik.

Yang sebenarnya terjadi, baik disadari atau tidak, adalah semua potongan2 rencana tersebut sudah terrumuskan sebelumnya. Sehingga dapat membentuk visi yang masuk akal dalam 25 tahun ke depan. Bayangan2 kecil sudah terbentuk oleh pengalaman yang pernah dilalui, sehingga dapat membentuk komposisi untuk terbangunnya bayangan yang lebih besar.

Btw bukannya ada kasus bahwa visi bisa muncul tanpa disengaja yak? 🤔

Betul gaes. Banyak juga kasus yang begituan, apalagi para nabi. Tapi kita coba menelusurinya dengan kesadaran sebagai manusia yang pada dasarnya gak bisa apa2, sehingga benar2 butuh kita perjuangkan.

Oke lanjut…

Menguasai pemahaman dasar

Nah, ini yang akan menjadi bagian terpenting membentuk visi. Orang yang gak pernah ngapa2in gak mungkin mampu membentuk visi. Orang yang cuma melakukan sesuatu tanpa benar2 paham apa yang dilakukan, akan ter-seok2 saat dihadapkan dengan masalah baru.

Masalah baru belum tentu harus ditangani dengan alat baru. Terkadang cukup ditangani oleh alat yang sudah tersedia, hanya saja dilakukan dengan cara yang lebih baru. Inilah pentingnya pemahaman atas apa yang kita lakukan. Bisa dibilang, andai kita tak peduli dengan visi, kita sudah cukup punya modal dasar untuk masuk pada skala kode yang lebih luas. Yang otomatis mengantarkan diri kita ke level yang lebih tinggi. Ibarat anak tangga, otomatis kita sudah siap dengan anak tangga selanjutnya.

Pengaruh framework

Siapa yang demen banget pake framework?

Sayah… 🥳

Enak?

Wenak dongs… 😋

Kalian tahu masa hidup framework sepanjang apa?

Hmmm variatif sih. Ada yang 1 tahun, 4 tahun, dll… 🤔

Oke cukup. Dari situ sudah diketahui bahwa ada batasan masalah yang tidak mungkin ditanggalkan oleh framework apa pun, bahkan sampai kapan pun.

Kenapa demikian? Karena framework juga butuh bertahan hidup gaes. Bukan sekadar untuk memenuhi kebutuhan pengguna, tapi juga bertahan dari perubahan di luar diri framework. Semua hal memiliki ketergantungan, begitu juga dengan framework.

Semakin banyak kita menggantungkan sesuatu ke pihak lain, semakin terbatas juga akselerasi yang dapat kita lakukan. Sialnya, terkadang kita mempertahankan prinsip framework tanpa kita berdaulat untuk ikut atau tidak. Andai tidak ikut, kita gak akan dosa lo gaes. Kita sebaiknya paham, apa pengaruh framework, seberapa besar pengaruh framework, dan seberapa berdaya kita menghadapinya. Dengan begitu, kita akan tahu langkah apa yang dibutuhkan untuk mendobrak keterbatasannya.

Membentuk daya

Kita sedikit masuk ke wilayah teknis kode yak.

Sebelumnya kita sudah mengetahui bahwa ketergantungan menghasilkan keterbatasan. Bermodalkan pemahaman tersebut, langkah selanjutnya adalah mengubahnya menjadi daya.

Yang perlu diperhatikan adalah tidak semua keterbatasan bersifat membatasi akselerasi. Ada batasan yang sengaja dibuat, misalnya tipe data. Keterbatasan tersebut justru untuk mempermudah akselerasi. Tipe data integer dikhususkan untuk menampung data bilangan bulat, bukan untuk teks. Sama halnya dengan gelas yang ditujukan untuk menampung air, bukan untuk nasi. Semua itu tidak untuk membatasi akselerasi, tapi akselerasi dapat dioptimalkan dengan model pembatasan semacam itu.

Juga jangan dilupakan, bahwa batasan merupakan salah satu komponen penghasil solusi yang efektif. Jangan karena timba memiliki volume lebih dari gelas, lantas menggunakan timba untuk tujuan minum besar. Andaikan butuh minum banyak air, tetap jauh lebih baik menggunakan gelas. Ini tidak ada hubungannya dengan estetika. Minum menggunakan timba dengan volume air yang banyak juga membutuhkan energi lebih dibandingkan dengan mengulangi proses minum ber-kali2 menggunakan gelas. Kita paham batasan gelas, tapi kita berdaya mengoptimalkannya untuk tujuan yang tepat guna.

Mencapai skala yang diharapkan

Kalau saya bilang mudah, kenyataannya belum tentu. Kalau saya bilang susah, lalu fungsinya kita tetap hidup untuk apa? Kesusahan jangan dipertahankan gaes, minimal dikonversi menjadi pengalaman.

Tepuk tangan untuk motivator kita… 🥳

Dancuk… 😤

Daripada ber-belit2, coba saya susunkan poin2 penting untuk mencapai skala seluas mungkin dalam berkode yak. Kalau di awal saya mengacu ke 25 tahun ke depan, maka poin2 di bawah ini tidak selalu untuk jangka waktu sepanjang itu atau mungkin sependek itu. Relatifitas ini tetap kita jadikan pedoman.

Pahami konsep dasarnya

Sebenarnya saya sudah siapkan materi belajar yang menyinggung poin ini, tapi belum sempat melanjutkan. 🫠

Intinya begini. Misalnya pengkondisian, cukup pahami konsep dasarnya saja. Konsep ini levelnya sebelum struktur dan pola, fundamental.

Hmmmm… 🤔

Gini2, saya contohkan.

#region beda struktur

// pengkondisian umum
if ($anu === 1) {
    echo 'Anuku satu';
}

// pengkondisian ala yoda
if (1 === $anu) {
    echo 'Anuku satu';
}

#endregion

#region beda pola

// tanpa pembanding
if ($anukuSatu) {
    echo 'Normal';
}

// dengan pembanding
if (true === $anukuSatu) {
    echo 'Normal';
}

#endregion

Sangat tidak penting bagaimana implementasimu dalam pengkondisian, karena itu level selanjutnya setelah kamu paham konsepnya. Bagaimana penggunaannya nanti juga tergantung pada detail kebutuhannya. Variasi di atas lahir karena kebutuhan, bukan sekadar supaya tampak beda. 🤢

Nah, bagaimana mungkin variasi tersebut tepat guna jika kita tidak paham konsepnya?

Hmmm… Lalu konsep pengkondisian itu gimana yak? 🤔

Diminta memahami malah tanya… 🫠

Latihan kasus

Semakin banyak kasus yang telah kita tangani, semakin banyak pula variasi struktur dan pola yang kita hasilkan. Inilah kunci pengembangan diri. Tanpa ada latihan ini, daya dobrak untuk berakselerasi sangat kecil kemungkinannya berkembang. Daya ini yang nantinya mendorong kita untuk dapat memperpanjang visi dalam berkode ke depan.

Kurangi menghafal

Memang iya, ada yang butuh kita hafalkan. Tapi setelah menghafal, hafalan tersebut akan menjadi ingatan. Sehingga proses menghafal tidak harus selalu dilalui. Karena ingatan tersebut yang nanti otomatis terpicu keluar, bahkan tanpa upaya sebesar saat menghafal.

Nah, menghafal yang saya maksud di sini adalah menghafal sesuatu yang tidak butuh dihafalkan. Kalau sudah paham konsepnya, terlatih dalam mengkomposisikan struktur dan pola, maka kita bisa menaikkan skalanya berdasarkan kekuatan fondasi yang telah dibentuk. Perumusannya nanti bersamaan dengan proses kerjanya. Jadi bukan menghafalkannya, lalu mengambil dari ingatan yang pernah terbentuk. Karena ingatan yang sudah lama terpendam dan tidak sering digunakan, akan membutuhkan upaya yang tidak mudah untuk memunculkannya lagi.

Nah, cara agar ingatan lama mudah untuk digunakan kembali adalah dengan menyimpannya di luar diri. Di dunia kode kita mengenal istilah library. Dengan begitu apa yang pernah dibuat bisa digunakan kembali tanpa membuatnya lagi. Dengan begini tidak akan ada hafalan berlebih nan sia2.

Kurangi ketergantungan

Bagi kalian yang demen menggantungkan diri ke suatu framework, silakan kurangi ketergantungannya hingga titik terendah. Prakteknya sederhana kok, bukan hal yang sulit juga. Yang sulit adalah keluar dari zona nyamannya. Nyaman dengan kemudahannya. Nyaman dengan fiturnya. Nyaman dengan penghasilan yang didapat. 🤐

Boleh dibilang, sebenarnya semuanya itu takhayul. Di luar masalah yang sedang membuatmu nyaman, sebenarnya ada masalah yang bisa membuatmu jauh lebih nyaman. Di luar zona nyaman itu masih ada zona nyaman lain gaes, silakan segera sadar.

Langkah konkret

Jangan berharap saya tunjukkan langkah konkret untuk merealisasikan kode yang skalanya bisa diperlebar dengan mudah yak. Strukturnya bagaimana, polanya bagaimana, menganut prinsip apa, dsb. Karena yang ada nanti adalah saya menunjukkan takhayul juga, alias lucu. 🥱

Itulah sebabnya kalian sendiri lah yang nanti membentuk semuanya itu. Yang tepat untuk masalah kalian, dan yang sesuai dengan apa yang kalian butuhkan. Yang saya uraikan di atas adalah pedoman, bukan petunjuk teknis. ☕️