Selama ini, programer selalu dianggap sebagai tukang ngoding oleh non-programer di depan komputernya yang penuh dengan deretan beribu-ribu baris sintaks.
“Lihat deh si anu, ngoding melulu kerjaannya.” Begitu ucap sebagian orang. Atau bahkan,
“Lihat deh si anu, depan komputer melulu kerjaannya.”
Padahal mengoding hanyalah bagian dari programing saja, bukan keseluruhan. Sebenarnya, agak kurang elok menganggap programer hanya sebagai tukang ngoding belaka, bahkan programer digambarkan oleh sebagian orang sebagai orang yang culun, antisosial, dan misterius karena keberadaan mereka yang melulu menzombie di balik layar mereka.
Seorang programer sebelumnya belum cukup dikatakan sebagai programer sungguhan jika ia hanya dapat merangkai kode, menambal beberapa baris sintaks dari berbagai sumber, kemudian tiba-tiba programnya berjalan tanpa testing lebih jauh.
Padahal, ada beberapa tahap yang harus dipahami seorang programer sebelum mereka membuat program.
Sejatinya, programer adalah pekerjaan untuk memecahkan sebuah masalah.
Jadi, programer bukan hanya membuat apa yang ia inginkan dengan sebatas melihat tutorial saja kemudian memamerkan apa yang menjadi hasilnya.
Setiap programer pasti mengetahui apa itu algoritma. Banyak yang memahami bahwa algoritma adalah langkah-langkah atau buku masak untuk membuat sebuah program komputer, baik sebuah aplikasi atau game digital. Well, hal itu tidak sepenuhnya salah.
Namun sebenarnya algoritma itu adalah kumpulan detail dari masalah yang akan kita pecahkan, yang kemudian siap diterjemahkan ke dalam bahasa pemrograman.
Saya pribadi sebelum memulai sebuah proyek koding, misalnya membuat aplikasi penyimpanan dokumen, maka yang pertama kali lakukan bukanlah melihat tutorial tentang bagaimana caranya membuat halaman login, melainkan beberapa hal.
Pertama, memastikan apakah aplikasinya akan aman karena segala sesuatu yang berhubungan dengan data haruslah bersifat pribadi dan rahasia.
Kedua, memperkirakan berapa ukuran penyimpanan database dan server yang diperlukan untuk menyimpan data tersebut. Apakah hanya di penyedia hosting web biasa dapat menghandle ini? Atau harus menyewa server sendiri (private server)?
Ketiga, memastikan jika aplikasinya tidak sering down atau programnya tidak sering ngebug. Juga memikirkan apakah aplikasinya sedang tersedia jika pengguna sedang ada kebutuhan mendesak untuk mengunduh dokumen tersebut.
Setelah semuanya terbayang, barulah saya melaju kepada teknis programnya.
Seorang programer haruslah mengetahui bahwa tugasnya bukan hanya menulis serangkaian baris kode lalu berbangga akannya, sebab itu hanya dilakukan oleh pemula.
Sebuah program bukan dibuat untuk mengadu kecanggihan teknologi, bukan dibuat untuk mengadu tampilannya yang modern.
Program dibuat untuk membuat pekerjaan pengguna menjadi lebih efisien, inilah mengapa muncul sebuah istilah User Experience atau UX.
Kecanggihan teknologi dibutuhkan oleh sebuah program jika dengan itu aktivitas pengguna menjadi lebih cepat akannya.
Namun nyatanya, banyak programer pemula yang ‘latah’ menyuntikkan teknologi mutakhir demi sebuah tren yang pada akhirnya itu hanya membuat aplikasinya lebih berat dan lebih cepat panas karena banyak plugin/library yang tidak perlu.
Seorang programer akan selalu membuat benchmark atas program-program yang mereka buat, memastikan seluruh modulnya dapat dimuat hanya dalam waktu satu detik atau kurang dari itu, atau setidaknya dalam waktu yang masih dimaklumi.
Seorang programer pun harus terbuka dengan komplain, jika ada sesuatu yang dapat dipermudah, maka itu adalah tugas programer.
Misalnya, seorang pengguna mengeluhkan warna sebuah tombol yang membuat matanya sakit karena kontrasnya yang buruk dengan warna latar belakang. Di sinilah sebuah UX diperlukan. Programer harus mencari tahu berapa ukuran kontras minimal agar saturasi warna tidak mengganggu mata.
Begitu pun dengan hal lainnya.
Bahkan, programer pun harus berbaikhati dengan dirinya sendiri. Artinya, programer harus mendokumentasi programnya agar ia tidak kebingungan sendiri di masa depan.
Bagaimana seorang programer dapat peka kepada orang lain namun tidak peka kepada dirinya sendiri? Maka buatlah komentar-komentar, rangkumlah perintah menjadi fungsi-fungsi, dan klasifikasikanlah mereka dalam file-file terpisah.
Benar bahwa programer harus ‘malas’ untuk dapat memikirkan hal termudah apa baginya untuk ia jadikan algoritma terbaik. Namun jangan sampai ‘malas’ ini justru mempersulit sang programer di kemudian hari.
Tukang Coding