Menjadi seorang programmer bukan hal mudah. Di tengah dunia teknologi yang terus berkembang pesat, programmer dituntut untuk selalu belajar dan bereksperimen dengan hal baru. Teknologi yang optimal hari ini mungkin sudah ketinggalan zaman sebulan kemudian, dan tingginya persaingan membuat developer harus berlomba-lomba menciptakan produk yang lebih canggih, cepat, dan aman setiap harinya.
Seorang programmer dengan jam terbang tinggi bisa jatuh ke perangkap yang membuatnya berhenti berkembang. Semakin banyak pengalaman, semakin ia akan merasa bahwa ilmunya sudah cukup. Alhasil, ketika berhadapan dengan masalah baru, ia menjadi sulit beradaptasi. Belum tentu solusi yang selama ini ia gunakan optimal juga di kasus lain.
Bukan berarti programmer tersebut tidak jago di bidangnya. Mungkin ia malah sangat ahli. Tapi ketika seseorang berhenti belajar, ia akan terjebak pada pandangan sempit dan tidak bisa mengikuti perkembangan zaman. Alasannya bisa bermacam-macam. Mungkin tidak punya waktu karena sibuk, mungkin merasa sudah menguasai segala framework dan library populer di pasaran. Tapi apa pun alasannya, yang jelas ia tidak berkembang.
Belajar adalah sebuah siklus
Imam Muhammad Al Ghazali, seorang filsuf termasyhur dari Mesir, pernah mengatakan bahwa manusia terbagi menjadi empat golongan pembelajaran, yaitu:
- Orang yang tidak tahu (tidak berilmu) dan tidak sadar dirinya tidak tahu.
- Orang yang tidak tahu (tidak berilmu) tapi sadar bahwa dirinya tidak tahu.
- Orang yang tahu (berilmu) dan sadar bahwa dirinya tahu.
- Orang yang tahu (berilmu) tapi tidak sadar bahwa dirinya tahu.
Konsep ini diadaptasi juga oleh Andrias Harefa dalam bukunya yang berjudul Mindset Teraphy. Menurut Andrias, proses pembelajaran adalah sebuah siklus, dan seorang manusia akan terus bergerak dari satu golongan menuju golongan lainnya. Andrias menuangkan siklus ini dalam diagram bernama Harefa Learning Mindset.
Seorang programmer yang masih pemula memulai kariernya sebagai anggota golongan nomor dua. Ketika ia sudah memiliki pengalaman dan lebih kompeten, ia akan bergeser menjadi golongan nomor tiga. Nantinya ketika sudah sangat ahli, ia menjadi programmer yang bisa melakukan hal-hal luar biasa di luar kepala, sehingga ia pun masuk menjadi golongan nomor empat.
Semakin tinggi pengalaman, si programmer bisa terlempar kembali ke golongan nomor satu, sebab ilmu pengetahuan terus berkembang sementara ia terjebak dalam wawasannya yang stagnan. Inilah posisi yang ingin kita hindari agar tidak menjadi developer yang berpikiran sempit.
Untuk lepas dari golongan ini dan kembali ke golongan nomor dua, developer harus melalui proses penyadaran, yaitu menyadari bahwa ilmu yang ia miliki masih kurang dan masih perlu belajar. Proses penyadaran bukan hal yang mudah, karena membutuhkan sikap rendah hati. Sulit sekali untuk tetap rendah hati apabila kita telah menjadi seorang ahli, tapi kita bisa mendorongnya lewat beberapa kebiasaan.
Lima kebiasaan yang bisa kamu terapkan
Kualitas tidak dihasilkan dari aksi sesaat saja, tapi merupakan hasil dari proses pembiasaan yang panjang. Dalam memilih kebiasaan, terdapat hal yang disebut sebagai keystone habit, yaitu kebiasaan-kebiasaan yang pada akhirnya akan menumbuhkan kebiasaan lain secara berantai.
Dor Tzur, seorang programmer JavaScript senior di Full Stack, menjelaskan bahwa ada beberapa keystone habit yang bisa kamu adopsi untuk menjadi seorang programmer yang efektif dan terus berkembang. Simak kebiasaan-kebiasaan tersebut di bawah.
Rajin membaca berita
Untuk selalu menjadi yang terdepan di dunia teknologi, salah satu hal penting untuk dilakukan adalah terus mengikuti perkembangan terkini. Biasakan diri meluangkan waktu membaca berita, dan daftarkan dirimu pada berbagai newsletter seputar dunia pemrograman yang kamu geluti.
Dengan mengikuti berita atau newsletter, mungkin kamu bisa menemukan tutorial atau info menarik untuk didalami. Tidak perlu terlalu lama, kamu cukup meluangkan waktu satu hingga dua jam untuk membaca-baca sampai selesai. Yang penting kamu tidak ketinggalan berita, tapi juga tidak terlalu lelah mengikutinya.
Mengerjakan proyek sampingan
Mengembangkan dan memelihara proyek sampingan adalah kebiasaan yang mendatangkan banyak keuntungan. Dibandingkan pekerjaan utamamu, proyek sampingan menawarkan kebebasan yang jauh lebih besar. Kamu tidak terikat deadline, tidak terbatas pada framework tertentu, dan tidak perlu memikirkan instruksi atasan.
Tidak peduli apakah proyek sampinganmu sangat sederhana atau sangat kompleks, kamu tetap bisa memanfaatkannya untuk mengembangkan diri. Kamu bisa menggunakan library yang familier agar keahlianmu meningkat, atau mencoba library yang sama sekali baru untuk memperluas wawasan. Semuanya terserah kamu.
Meski hanya proyek sampingan yang santai, ingatlah untuk tetap merilis produk jadinya. Dengan merilisnya, kamu sekaligus juga berlatih membiasakan diri dengan siklus pengembangan produk secara lengkap.
Belajar dari proyek open source
Dunia open source patuh pada prinsip seleksi alam. Di dunia ini, hanya produk-produk terbaiklah yang akan populer dan banyak digunakan orang. Baik yang dimaksud tidak semata-mata baik secara fungsi, tapi juga mudah digunakan oleh developer lain.
Produk-produk open source yang populer ini menyediakan kesempatan belajar. Kamu bisa meneliti cara kerjanya secara langsung berkat ketersediaan source code, dan bisa meniru teknik yang digunakan dalam source code buatanmu sendiri.
Menulis kode sambil memikirkan orang lain
Ada sebuah anekdot di dunia pemrograman, bunyinya, “Tulislah kode seolah-olah pemelihara produkmu adalah seorang psikopat yang tahu alamat rumahmu.” Sebagai programmer, terkadang kita tidak peduli apakah kode buatan kita enak dibaca atau tidak. Asalkan kodenya jalan, kerapian urusan belakangan. Salah satu dosen senior saya ketika kuliah dulu menyebut kode semacam ini sebagai “kode yang jorok”.
Martin Fowler, seorang developer software veteran dari Inggris yang telah menulis beragam buku tentang pemrograman, pernah berkata, “Siapa pun bisa menulis kode yang dimengerti oleh komputer. Tapi programmer yang baik bisa menulis kode yang dimengerti oleh manusia.”
Bila kode tersebut ada di proyek pribadi yang kita kerjakan sendiri selamanya, hal ini memang tidak menjadi masalah. Tapi pada kenyataannya, sebagian besar produk adalah hasil kolaborasi, dan kode buatanmu pasti akan digunakan bersama-sama. Bayangkan bila kamu membuka kode orang lain dan ternyata sangat berantakan. Menyebalkan, bukan?
Siapa pun bisa menulis kode yang dimengerti oleh komputer. Tapi programmer yang baik bisa menulis kode yang dimengerti oleh manusia.
Rancanglah kode yang bekerja dengan baik, juga mudah dipelihara dan mudah digunakan oleh orang lain. Bekerja dengan pola pikir seperti ini akan membuatmu jadi programmer yang lebih baik, sekaligus membuatmu disukai para kolega.
Layaknya prajurit yang pergi ke medan perang, untuk meraih kemenangan optimal kita butuh strategi. Hal yang sama berlaku dalam pengembangan produk. Sebelum mulai menulis kode, biasakanlah untuk merancang lebih dahulu bagaimana solusi ideal yang mungkin diimplementasikan. Tidak perlu memikirkan batasan waktu atau arsitektur.
Hal ini perlu supaya ketika pengembangan sudah dimulai, kita memiliki patokan tentang bagaimana wujud produk yang kita tuju. Memang kondisi ideal tidak akan bisa dipenuhi seratus persen karena ada berbagai batasan, tapi kita bisa berusaha untuk membuat produk sedekat mungkin dengan solusi ideal yang sudah kita rancang.
Seiring tingginya pengalaman, mudah sekali bagi seorang developer untuk terjebak pada perasaan bahwa ilmu miliknya sudah cukup, seolah-olah di dunia ini tidak ada hal baru lagi untuk dipelajari. Tapi pada kenyataannya teknologi terus berkembang, mungkin lebih pesat dari yang kita sadari.
Penting bagi seorang developer untuk bereksperimen, menantang diri sendiri, dan membiasakan diri untuk terus belajar. Dengan demikian barulah kita bisa menjadi developer yang efektif dan tidak ketinggalan zaman. [tia/ap]