Cara Memrogram Bersama LLM
(crawshaw.io)- Tulisan yang merangkum pengalaman pemrograman menggunakan LLM (model bahasa besar) selama 1 tahun terakhir
- LLM meningkatkan produktivitas, dan sulit untuk kembali ke pemrograman tanpa menggunakannya
- Fokus utamanya pada lingkungan pemrograman Go, sambil mengembangkan alat bernama sketch.dev
Latar belakang
- Berawal dari rasa penasaran terhadap teknologi baru.
- Terpikat oleh kemampuan LLM untuk menghasilkan jawaban kompleks atas pertanyaan atau menulis kode pemrograman
- Memberikan rasa antusias dan kemungkinan yang mirip dengan saat internet pertama kali muncul
- Memastikan keuntungan bersih yang didapat ketika alat ini menghasilkan kode yang “umumnya benar”, lalu berupaya memanfaatkannya secara nyata
Kasus penggunaan utama
-
Autocomplete
- Produktivitas meningkat dengan menangani pekerjaan coding yang sering berulang melalui autocomplete
- Terutama, model FIM (Fill-In-the-Middle) sangat penting dalam pekerjaan sehari-hari
-
Pengganti pencarian (Search)
- Menjawab pertanyaan pemrograman tertentu (misalnya mengatur opasitas tombol di CSS) dengan lebih akurat daripada mesin pencari
- Jawaban LLM bisa saja salah, tetapi keterbatasan ini diterima sambil tetap dimanfaatkan
-
Pemrograman berbasis percakapan (Chat-driven Programming)
- Area yang paling sulit sekaligus paling bernilai.
- Mengambil alih pekerjaan awal seperti membuat file baru atau mencari library.
- Tujuan pemrograman percakapan adalah mengurangi ketidaknyamanan saat ini dan membuat kemampuan LLM lebih ramah bagi pengguna
Inti dari pemrograman percakapan
-
Mengapa menggunakan percakapan?
- Berguna untuk menyediakan draf pertama ketika energi menurun seiring berjalannya hari
- Melihat draf awal lalu memperbaikinya lebih efisien daripada menulis dari nol
-
Cara bekerja dengan LLM
- Menetapkan tujuan tugas yang jelas dan ringkas
- Membaca, memverifikasi, dan memperbaiki kode
- Memanfaatkan error compiler untuk menyelesaikan masalah dengan cepat
-
Menulis pengujian yang efektif
- LLM sangat antusias dalam menulis test dan dapat membangun lingkungan pengujian yang lebih menyeluruh
- Selain test berbasis contoh, juga dapat diperluas ke fuzz test
Contoh: sampler kuartil
- Tujuan: Menulis algoritme dalam bahasa Go untuk melakukan sampling kuartil pada aliran data
- Proses
- Menulis draf pertama melalui LLM
- Memperbaiki kode sambil membetulkan error kompilasi
- Menulis ulang kode test agar strukturnya lebih mudah dibaca
Kemungkinan struktur kode baru
-
Paket yang lebih kecil, lebih banyak test
- Paket kecil memberikan konteks kode yang lebih jelas sehingga lebih berguna bagi LLM maupun manusia
- Meningkatkan kemungkinan pengujian yang independen dan kompilasi yang berhasil
-
Contoh: wrapper API
- Disarankan menggunakan wrapper tipis yang hanya mengimplementasikan bagian yang diperlukan, alih-alih library resmi yang besar
- Mengurangi biaya pemeliharaan dan pembelajaran
Arah ke depan: sketch.dev
- IDE Go untuk LLM
- Menyediakan lingkungan pemrograman yang berpusat pada LLM
- Mendukung umpan balik pengujian otomatis, perbaikan error compiler, integrasi modul Go, dan lain-lain
- Memperkuat kolaborasi antara manusia dan LLM untuk menyediakan lingkungan yang lebih produktif
1 komentar
Opini Hacker News
Penulisnya sudah merupakan insinyur perangkat lunak kelas dunia, mantan karyawan Google, sekaligus salah satu pendiri/CTO Tailscale. Kesan yang muncul adalah LLM membuatnya lebih produktif.
LLM mengurangi energi awal yang dibutuhkan untuk memulai pekerjaan.
Saat menggunakan LLM, sebaiknya hanya dipakai pada bidang yang benar-benar kita pahami.
LLM memiliki potensi sebagai alat pengembangan perangkat lunak.
Mirip dengan menggunakan mesin pencari.
Tidak merasa punya dorongan untuk menggunakan LLM.
Bagi orang yang bukan programmer, LLM sangat membantu.
LLM berguna untuk menulis aplikasi sederhana.
LLM membantu orang yang memprogram sebagai hobi.
LLM terutama digunakan untuk pelengkapan otomatis dan pencarian.