Apakah AI akan Menggantikan Pekerjaan bidang Programming?
“Mas Anas, saya pengen belajar programming dari nol, tapi akhir-akhir ini jadi takut kalau nanti sudah belajar, pekerjaan coding-nya akan digantikan oleh AI. Apakah sebentar lagi AI bisa menggantikan pekerjaan di bidang programming?”
Saya udah nggak inget lagi berapa kali ditanyai pertanyaan seperti ini, baik lewat Direct Message Twitter atau email.
Jawaban singkatnya: dalam 5 tahun kedepan, hampir semua jenis pekerjaan akan tetap aman. Adopsi AI dalam industri nggak semasif yang kelihatannya dilihat di video demo perusahaan-perusahaan teknologi di Twitter. Karena proses implementasinya dalam skala besar membutuhkan waktu, sumber daya, dan tantangan teknis yang nggak mudah.
Tapi saya nggak menyalahkan kamu kalau kamu pemula, dan mendengar banyak hal pesimistis tentang masa depan di mana-mana. Termasuk karena perkembangan AI yang pesat.
Dan kalau kamu perhatikan, mereka yang suka nakut-nakutin biasanya adalah salah satu dari tiga kelompok ini:
- Orang yang belum banyak pengalaman dalam bidang software engineering,
- Orang yang mendapat insentif untuk bikin klaim berlebihan (looking at you, Jensen Huang), atau
- Orang yang memang sebenernya nggak mau belajar coding
Yes, orang yang nggak mau belajar coding akan selalu bisa menemukan alasan untuk nggak mau belajar. Kali ini alasannya AI, beberapa tahun lalu ada sentimen programmer akan tergantikan dengan no-code tools. Lebih jauh lagi, pernah juga tech industry dianggap udah selesai karena Internet Bubble meledak.
Yang masih banyak orang nggak sadari adalah bahwa membuat software itu nggak hanya sekedar menulis code. Tantangan sebenarnya dari membangun software adalah bagaimana memastikan code yang kita buat berjalan seharusnya, menyelesaikan masalah yang kita mau, menghindari kemungkinan masalah di masa depan, dan nggak membuat bugs saat itu digunakan.
Sebuah AI hanya bisa belajar sebuah tugas kalau kita punya cara untuk AI melakukan tugas itu dan kemudian dinilai apakah tugasnya dilakukan dengan benar.
Dua tugas utama yang sekarang digunakan untuk melatih AI adalah:
- Next-word prediction. AI diberi dokumen teks dari internet dan diminta untuk memprediksi kata berikutnya dalam dokumen tersebut.
- Short response generation (RLHF). AI diberi pertanyaan atau prompt dan diminta untuk membuat respons. Respons itu dinilai oleh manusia berdasarkan manfaat dan ketepatannya.
Melatih AI dengan tugas-tugas ini sudah menghasilkan produk yang sangat berguna seperti ChatGPT.
Tapi sekali lagi, software development bukan hanya soal menulis functions dan respons singkat. Bagian penting dari software development adalah membuat technical decision, seperti prioritization atau arsitektur sebuah sistem, yang hanya akan membuahkan hasil dalam jangka panjang, berbulan-bulan bahkan bertahun-tahun.
Untuk melatih AI melakukan ini, kita butuh cara agar AI bisa membuat keputusan teknis dan cara menilai keputusan tersebut untuk keandalan jangka panjangnya. Kita belum tahu cara melakukannya, dan kita terutama nggak tahu cara melakukannya dalam skala yang dibutuhkan untuk melatih large AI model.
Kekurangan LLMs ini diakui sendiri oleh salah satunya, computer scientist dari Microsoft Research, Sebastien Bubeck yang belum lama ini mengisi talk di MIT dengan judul, "Sparks of AGI". Dia mendemonstrasikan hal-hal yang bisa dengan baik dilakukan GPT-4, tapi dia juga menjelaskan bahwa model terbaru dari OpenAI ini nggak selalu pintar.
Dalam presentasi itu, Bubeck mengilustrasikan keterbatasan GPT-4 dengan sebuah tes matematika sederhana: 7*4 + 8*8 = 92
. Model tersebut diminta untuk mengubah satu angka di sisi kiri agar persamaan menjadi 106. Bagi manusia, ini nggak sulit: cukup ganti 7*4
dengan 7*6
.
Tapi GPT-4 dengan percaya diri memberikan jawaban yang salah. "The arithmetic is shaky" kata Bubeck.
Peneliti lain juga menemukan bahwa model ini kesulitan dalam tugas-tugas sederhana seperti menumpuk balok, memecahkan teka-teki Towers of Hanoi, dan menjawab pertanyaan tentang penjadwalan pengiriman.
Apa yang membuat GPT-4 kesulitan dengan masalah-masalah ini? Semuanya memerlukan kemampuan untuk mensimulasikan masa depan. Kita mengenali bahwa 7*4
adalah pendekatan yang tepat untuk dimodifikasi dalam task aritmatika ini karena secara implisit kita mensimulasikan dampak peningkatan jumlah 7 pada hasil penjumlahan.
Jadi, kalau kita ingin membangun AI yang lebih mirip manusia, mereka harus punya kemampuan meramal. Mereka harus bisa mensimulasikan konsekuensi dari tindakan.
Tapi ini bukan hal yang bisa dilakukan AI model seperti GPT-4. Arsitektur mereka bersifat statis dan feedforward, nggak mampu melakukan rekurensi, iterasi, atau eksplorasi kemungkinan baru sesuai permintaan. Mau dilatih sebagus apa pun, mereka tetap nggak bisa bikin perencanaan secanggih manusia.
Dalam konteks pengembangan software, kemampuan untuk mensimulasikan rencana masa depan ini esensial. Skill ini membantu kita menghindari bugs, merancang arsitektur yang solid, mengoptimalkan performa, menyusun test-cases yang komprehensif, dan membangun komunikasi yang efektif dalam sebuah tim.
Membangun software yang berkualitas butuh kombinasi unik antara pengetahuan teknis, creative problem-solving, dan kemampuan perencanaan yang matang. Masih menjadi tanda tanya apakah generative AI akan mampu menguasai semua aspek ini.
Tapi, andaikan suatu hari kita sampai di sana, bukan cuma profesi software engineer yang terancam. Mayoritas pekerjaan berbasis pengetahuan (knowledge worker) mungkin akan menjadi obsolete lebih dulu dari yang kita kira.
Meskipun begitu, saya sendiri sebenarnya optimis dan excited dengan perkembangan AI yang bisa membawa banyak manfaat bagi kehidupan manusia, termasuk membawa banyak nilai ekonomi. Mungkin akan ada pekerjaan-pekerjaan yang menjadi nggak relevan lagi, tapi juga akan melahirkan banyak jenis pekerjaan baru. AI akan menjadi seperti Revolusi Industri untuk sektor Knowledge Work yang akan merubah bagaimana kita bekerja dan berkarya.
Bagaimana dengan programmers?
Here's what I predict: AI-assisted programming will increase the demand for programmers. Lho kok bisa?
Dulu akuntan mikir spreadsheet bakalan bikin profesi mereka mati. Tapi malah kebalikannya, permintaan buat skill mereka makin tinggi. Compiler membuat coding jauh lebih mudah dibandingkan menulis dalam Assembly. Python membuat coding jauh lebih mudah lagi daripada menulis C. Keduanya justru membuat demand akan programmer meningkat.
And software is still eating the world. Software semakin terintegrasi ke dalam setiap aspek kehidupan manusia. Mulai dari kedokteran, pertanian, militer, seni, pendidikan, transportasi, manufaktur, dan lain-lain. Ada kebutuhan yang terus meningkat akan orang-orang untuk membuat berbagai macam software ini.
Dengan perkembangan LLMs, iterasi untuk membuat software akan semakin cepat. Tapi kamu tetap harus bisa paham dan menggunakan bahasa scripting seperti Python atau Javascript, atau lower-level languages seperti C untuk bisa benar-benar memanfaatkan potensi AI itu sendiri.
Karena AI hanya akan membantu dengan solusi parsial.
Teknologi AI berkembang pesat, benar, dan nggak ada yang benar-benar tahu apa yang akan terjadi. Tapi seperti yang pernah dibilang Alan Kay, it's easier to invent the future than to predict it. Bersikap optimis (namun tetap hati-hati) adalah pilihan terbaik.
Dan yang jelas, ada manfaat nyata dari LLMs dalam coding dan itu sudah bisa dirasakan sekarang: LLMs secara signifikan menurunkan threshold buat kamu untuk mulai belajar coding. Dan memahami cara kerja LLMs memungkinkan kamu untuk menggunakannya dengan efektif.
Selain itu, dengan semakin berkembangnya teknologi dan kolaborasi yang ada di dunia open source, ada semakin banyak hal yang bisa kita eksplore dan ciptakan. Dengan biaya infrastruktur yang semakin hari semakin murah.
It's an exciting time to be a programmer.
Mau belajar lebih banyak soal coding? Cek buku terbaru saya, "Panduan Memulai Coding Career di 2024". Baca selengkapnya.