Bulan ini, kita menyaksikan sejumlah hal unik dalam dunia pemrograman—mulai dari mantan insinyur utama Codex yang berhenti karena merasa *coding* dengan bantuan AI itu membosankan, hingga JIT-Agents yang mampu membangun *framework* mereka sendiri secara instan.
Saat ini, AI mampu menulis kode dengan begitu mudah sehingga muncul tren baru—"Vibe Coding"—di mana orang awam meminta AI membuat aplikasi hanya berdasarkan deskripsi dan "nuansa" (vibe), tanpa perlu memahami satu baris kode pemrograman pun.
Dalam tulisan terbarunya mengenai AI Engineering Skills Map, Andrew Ng (mantan kepala Google Brain & salah satu pendiri Coursera) baru-baru ini menyampaikan peringatan keras. Vibe Coding memang bisa menghasilkan aplikasi sederhana, namun mencoba membangun aplikasi siap pakai untuk skala produksi (bisnis) tanpa memahami dasar-dasar Rekayasa Perangkat Lunak adalah resep menuju kegagalan.
Mengapa demikian? Karena AI tidak memiliki konteks mengenai kebutuhan bisnis Anda. AI tidak tahu apakah Anda lebih mengutamakan kecepatan (latensi rendah), keamanan, atau efisiensi biaya. Jika Anda tidak memahami dasar-dasarnya, Anda tidak akan bisa mengarahkan AI untuk membangun arsitektur yang tepat.
Andrew Ng menguraikan lima elemen dasar yang wajib dikuasai pengembang di era Agentic Coding:
1. Pemahaman Full Stack secara Umum
Kecerdasan buatan memang bisa membantu pengembang frontend menulis kode backend dan sebaliknya, namun Anda tetap harus menguasai dasar-dasarnya. Anda perlu memahami rendering UI, caching, desain API, autentikasi (JWT/sesi), dan proses asinkron (async). Jika AI memberikan kode API yang tidak diamankan dengan benar menggunakan token yang tepat, Anda harus mampu mengenali masalah tersebut dan memperbaikinya.
2. Manajemen Data (Fondasi Paling Krusial)
Data ibarat fondasi beton sebuah bangunan; jika dicor dengan cara yang salah, fondasi tersebut sulit untuk diubah. Anda perlu memahami perbedaan antara Relational Tables (SQL), Documents (NoSQL/MongoDB), dan penyimpanan Key-Value (Redis). AI Anda akan memperoleh konteks (input) dari basis data ini. Jika skema basis data Anda berantakan, AI juga akan mengalami malfungsi (garbage in, garbage out—seperti kasus yang menyoroti pentingnya data Salesforce bagi model AI).
3. Desain Arsitektur Sistem
“AI hebat dalam menulis sintaks, tetapi manusialah yang menentukan arsitekturnya. Kapan harus menggunakan Microservices dan kapan sebaiknya tetap menggunakan Monolith untuk menekan biaya?
Arsitektur Tidak Bersifat Statis: Arsitektur yang Anda gunakan untuk membangun prototipe (Minimum Viable Product) akan sangat berbeda dengan arsitektur yang dibutuhkan saat aplikasi Anda memiliki jutaan pengguna. AI membutuhkan Anda (manusia) untuk memutuskan kapan saatnya melakukan migrasi dan transisi.
4. Keamanan dan Keandalan (Shift-Left Security)
Dalam kesehariannya, pengembang sering kali juga berperan sebagai insinyur keamanan. Anda harus menjaga keseimbangan yang sehat antara Unit Test dan Integration Test. Anda juga perlu memahami konsep Graceful Degradation (misalnya, saat batas API tercapai, aplikasi tidak boleh langsung crash, melainkan tetap berjalan dengan fitur terbatas).
Hal ini menjadi semakin krusial mengingat adanya kejadian mengejutkan di mana agen AI seperti Claude menginstal "malware" melalui file `llms.txt`. Memahami keamanan berlapis—serta konsep "radius dampak keamanan" (security blast radius)—adalah kunci untuk mencegah pembobolan sistem dengan mudah.
5.Penskalaan & Operasional Produksi (DevOps)
Menjalankan aplikasi di laptop lokal itu mudah. Melakukan deployment ke server produksi untuk jutaan pengguna adalah hal yang jauh berbeda. Anda perlu menerapkan siklus SDLC, CI/CD, dan IaaS. Anda juga perlu tahu cara membaca log, menangani load balancing, dan menerapkan pengindeksan basis data saat beban server melonjak drastis. Alur kerja ideal bagi agen AI untuk memvisualisasikan hubungan antara pemrogram manusia dan agen AI dalam lanskap saat ini:
Intinya, menghafal sintaks kode mungkin akan segera ketinggalan zaman karena AI kini mampu menghasilkan kode dengan jauh lebih cepat. Namun, kemampuan untuk berpikir secara sistematis (Desain Sistem) justru nilainya semakin melonjak tinggi.
Jika kamu menguasai dasar-dasar pemrograman, posisimu akan jauh lebih unggul dibandingkan mereka yang hanya melakukan "Vibe Coding". Seberapa baik pemahamanmu tentang arsitektur sistem?
