Scientist is Not A Programmer 👨‍💻

Zaman industri 4.0 ini kita sangat dimanjakan dengan berbagai teknologi cerdas yang mampu mengerjakan berbagai hal yang berat dilakukan oleh manusia. Mesin-mesin cerdas tersebut diciptakan melalui inovasi dan pemikiran dari banyak orang yang berkutat pada bidang ilmu komputer dan rumpunnya.

Para saintis inilah yang menciptakan berbagai algoritma cerdas yang sering kita gunakan pada aplikasi-aplikasi seperti Facebook, Twitter, dan Instagram yang kita bahkan tidak tahu.

The Uncredited Scientist

Kapan terakhir kali kamu mendengar nama seperti Andrew Ng atau Ian Goodfellow? Kamu mungkin belum pernah mendengar nama-nama tersebut. Mereka adalah beberapa orang yang telah banyak membuat kontribusi ke dunia deep learning. Selain mereka berdua, masih banyak lagi peneliti lain yang memiliki kontribusi yang sangat besar pada teknologi yang biasa kita nikmati sehari-hari.

man in white dress shirt holding woman in black shirt
Photo by ThisisEngineering RAEng on Unsplash

Fenomena saintis yang tidak diberi kredit pada perkembangan teknologi ini sangat lumrah, khususnya bagi non-akademisi, karena dilihat dari sisi bisnis, yang penting adalah bagaimana dengan teknologi tersebut dapat menghasilkan profit.

Selain itu, kebanyakan saintis merilis penelitiannya tanpa paten, sehingga semua orang bisa menggunakan penelitian dari saintis tanpa perlu membayar biaya lisensi.

Function vs Scalable

Saintis pada dasarnya mencoba berinovasi untuk menciptakan inovasi-inovasi baru yang lebih mutakhir, artinya saintis berorientasi pada fungsi. Sedangkan bagi seorang programmer, hal utama yang menjadi pusat perhatian adalah bagaimana caranya menciptakan sebuah sistem yang bisa terus dikembangkan mengikuti kebutuhan bisnis, artinya programmer berorientasi pada scalability.

Spaghetti Code

Spaghetti code merupakan sebutan untuk kode yang sulit dibaca atau sulit untuk diketahui fungsi dan tujuannya apa.

Bagi seorang programmer, membuat kode adalah sebuah seni. Bagaimana cara menulis kode merupakan seni yang merupakan hasil latihan selama bertahun-tahun dari pengalaman dan penerapan design pattern dan design principles.

img IX mining rig inside white and gray room
Photo by imgix on Unsplash

Bagi seorang saintis, kode adalah media komunikasi, seperti matematika untuk mengekspresikan suatu proses untuk mencapai tujuan tertentu. Target utama dari kode ini adalah sebagai proof of work, membuktikan suatu teori atau hipotesis. Misalnya pada uji coba klasifikasi spesies tanaman.

Seorang saintis tentunya tidak memiliki pengalaman sebanyak seorang programmer untuk menciptakan kode program yang baik. Seorang programmer pun akan kesulitan menciptakan inovasi sehebat saintis pada bidangnya. Hal ini merupakan keseimbangan yang berarti antara saintis dan programmer, terdapat keterkaitan yang tidak bisa dipisahkan.

Me, A Scientist and Programmer, too.

Penulis sendiri merupakan akademisi di civitas academic Universitas Pakuan, sebagai mahasiswa yang masih menempuh program studi Ilmu Komputer strata satu yang berfokus pada sains data. Di sisi lain, penulis juga seorang backend developer di anak perusahaan Telkom yang bergerak di bidang logistik.

Gimana Rasanya Menjadi Saintis dan Juga Programmer?

It feels kind of weird.

Kamu tau kalau kode itu jelek, tapi kodenya bisa running. Kejadian ini paling sering penulis hadapi. Berapa banyak kode yang membuat penulis greget karena strukturnya yang sulit dipahami.

Di sisi lain, penulis juga sadar kenapa kebanyakan kode buatan akademisi itu sulit dibaca dan strukturnya rumit, karena kebanyakan akademisi tidak punya pengalaman yang cukup mengenai pembuatan sistem yang scalable dan maintainable.

Selain itu, jika saintis menggunakan metode pengembangan layaknya programmer, maka berapa banyak waktu yang dibutuhkan untuk mengimplementasikan kode tersebut? Seorang saintis biasanya dikejar waktu untuk melakukan eksperimen dan menguji berbagai metode pendekatan.

Pada akhirnya, jika inovasi dari saintis tersebut memiliki impact yang besar, programmer akan menulis ulang algoritma tersebut agar lebih mudah digunakan dan lebih maintainable. It’s all coming together.

Simpulan

Jadi, dari semua ini, apa yang sebenarnya ingin disampaikan penulis?

Artikel kali ini adalah curhatan penulis, karena beberapa pekan ini penulis banyak dimintai bantuan untuk menyelesaikan program-program dengan metode yang unik, yang lebih ada library-nya. Akhirnya, penulis terpaksa menulis kode dari dasar atau menggunakan referensi kode dari penelitian lain. Dan tentu saja, kodenya pun tidak mudah untuk dipahami.

Di sini penulis hanya ingin bisa berbagi kepada teman-teman programmer atau developer dan rekan peneliti, bahwa kita semua pasti punya tujuan yang berbeda-beda, tetapi secara umum punya tujuan yang sama, yaitu berinovasi, menciptakan sesuatu yang lebih baik.

Semangat inilah yang ingin disampaikan oleh Kodesiana.com, dengan slogan #NgodingItuMudah.