Tanya
Bang, senior engineers tuh biasanya beneran jago di beberapa bahasa pemrograman kah? Dalam beberapa periode, kadang tech stack dan bahasa pemrograman yang digunakan berubah-ubah kan. Misalnya, 6 bulan terakhir ini pakenya Rust, 2 tahun yang lalu misal pakenya itu mostly Java. Nah, dalam 1,5 tahun ini kan gak pake Java tuh dan udah agak kaku banget, kalo misal nyari kerja gitu, apakah seorang senior engineer akan mencantumkan Java dalam CVnya untuk lowongan yg memang butuh Java? Terus, kita paham nih soal konsep2 containerizationnya Docker atau orchestrationnya Kubernetes, menurut abang, apakah seseorang harus dituntut untuk hafal sintaksis penulisan dan cli tools tersebut saat cari kerja ke depannya?
Jawab
Jujur, dari pengalaman gw, “jago di banyak bahasa” itu sering disalahpahami. Senior engineer yang gw respect biasanya bukan polyglot dalam arti hafal syntax lima bahasa sekaligus. Yang mereka kuasai itu konsep yang transferable: data structures, memory model, concurrency, system design, debugging mental model. Begitu konsepnya udah solid, pindah dari Java ke Rust itu lebih ke soal adaptasi syntax dan ecosystem, bukan belajar ulang dari nol.
Makanya pola yang lo describe itu normal banget. Dua tahun lalu mostly Java, sekarang Rust, itu bukan berarti skill Java-nya hilang. Yang kepake terus itu underlying judgment-nya: kapan harus pakai struktur data tertentu, gimana reasoning soal trade off performance vs maintainability, gimana baca error dan trace root cause. Itu semua portable across language.
Tapi ada nuance penting. Depth itu beda dengan breadth. Orang yang spent 1,5 tahun serius di satu bahasa biasanya punya pemahaman yang jauh lebih dalam soal idiom, footgun, dan best practice bahasa itu dibanding orang yang cuma numpang lewat enam bulan terus pindah lagi. Jadi kalau pertanyaannya “apakah mereka expert di semua bahasa yang pernah dipake,” jawabannya kemungkinan nggak. Tapi kalau pertanyaannya “apakah mereka bisa productive dengan cepat di bahasa baru,” itu hampir selalu iya, karena fundamentalnya udah kebentuk.
Satu hal lagi yang sering kelewat, exposure ke banyak bahasa itu sendiri ngebentuk semacam meta skill. Begitu lo udah pernah ngalamin gimana garbage collection bikin behavior tertentu di Java, lalu ngalamin ownership model di Rust yang maksa lo mikir lifetime dari awal, lo jadi punya frame of reference buat compare trade off antar paradigm. Itu yang bikin senior engineer lebih cepat menilai “bahasa ini cocok buat use case apa,” bukan karena hafal semua bahasa, tapi karena udah pernah lihat cukup banyak pattern.
Jadi singkatnya, real expertise itu di fundamental dan judgment, bukan di jumlah bahasa yang dikuasai. Bahasa cuma alat yang berubah seiring kebutuhan stack, tapi kemampuan mikir soal masalahnya yang stay constant.