Yapay zeka çağında kod yazmanın değişen el becerisi
Yapay zeka araçları kod yazmanın ne kadarını devraldı, geliştiriciye ne kaldı? Değişen el becerisi üzerine bir değerlendirme.
İlk yapay zeka kod aracını denememin üzerinden yaklaşık üç yıl geçti. O zaman bir merak, bugün günlük işin sıradan bir parçası. Bu süre yeterince uzun oldu; artık “bu araçlar işe yarar mı?” sorusunun ötesine geçip daha gerçek bir soruyu sorabiliyorum: bu araçlar kod yazmanın hangi kısmını devraldı, geriye geliştiriciye ne kaldı?
Devralınan kısım: üretim
Açık olan şu: kodun fiziksel üretimi artık ucuzladı. Bir fonksiyonun iskeletini kurmak, bilinen bir kalıbı yazmak, bir testin tekrar eden kısmını doldurmak — bunlar eskiden zaman alırdı, şimdi almıyor. On yedi yıldır bu işi yapıyorum ve daktilo hızının hiçbir zaman gerçek darboğaz olmadığını biliyordum. Şimdi bu iyice belli oldu.
Eğer bir geliştiricinin değeri “kodu hızlı yazabilmek” idiyse, o değer eridi. Ama benim için hiçbir zaman orada değildi.
Kalan kısım: muhakeme
Değişmeyen, hatta önemi artan şey muhakeme. Araç bir çözüm öneriyor; o çözümün doğru çözüm olup olmadığına karar vermek hâlâ geliştiricinin işi. Ve bu karar, üç ayrı beceri istiyor:
- Problemi doğru kurmak. Araç, sorduğunuz soruyu yanıtlar; yanlış soruyu sorarsanız kusursuz ama yararsız bir cevap alırsınız. Asıl iş, soruyu doğru çerçevelemekte.
- Çıktıyı denetlemek. Üretilen kod, kendinden emin bir tonla yanlış olabilir. Onu okumak, anlamak, kenar durumlarını sınamak — bu beceri eskisinden daha kritik.
- Bütünü görmek. Araç, önündeki parçayı çözer; o parçanın sistemin geri kalanıyla nasıl oturduğunu görmek hâlâ insanın işi.
Değişen el becerisi
Yani el becerisi yok olmadı; yer değiştirdi. Eskiden ustalık, çözümü zihinden koda akıcı biçimde geçirmekti. Şimdi ustalık, bir çözümü değerlendirmek, kötü olanı hızlı reddetmek ve iyi olanı bütüne yerleştirmek. Daha az “yazma”, daha çok “yargılama”.
Bunun bir tehlikesi var: muhakeme, kullanılmazsa körelir. Bir junior, üretimi tümüyle araca devrederse, çıktıyı denetleyecek birikimi hiç kazanamayabilir. Bu yüzden hâlâ, bilmediğim bir konuyu önce kendim eşeleyip sonra araca soruyorum. Aracı bir hızlandırıcı olarak kullanıyorum, bir ikame olarak değil.
Aracın güvenli göründüğü yer yanlış olabilir
Son aylarda fark ettiğim bir örüntü var: araç en güvenli göründüğünde en dikkatli olmak gerekiyor. Yaygın kalıpları — bir REST uç noktası, bir form doğrulaması, bir veritabanı sorgusu — sağlam yazıyor. Ama problemin kendine özgü bir boyutu varsa, araç bunu görmeden “standart” bir çözüm üretiyor; ve standart çözüm, sizi sormadığınız bir problemin cevabını veriyor.
Geçen ay bir para dönüştürme fonksiyonu için önerilen kod, ondalık hassasiyeti float aritmetiğiyle yönetiyordu. Küçük miktarlarda sorunsuz çalışırdı; büyük miktarlarda yuvarlama hatası birikir ve yanlış hesaplama üretirdi. Araç bunu güvenli görünen bir biçimde yazmıştı; fark etmek, o alandaki geçmiş deneyimi gerektirdi.
Bu durum, araçla ilişkinin sağlıklı kalması için önemli bir şeyi işaret ediyor: eleştirel mesafeyi korumak. Araç ne kadar iyi olursa olsun, çıktısını doğrulamak geliştiricinin vazgeçilmez sorumluluğu olmaya devam ediyor. “Araç yazdı, doğrudur” düşüncesi, deneyim yıllarını en hızlı biçimde etkisizleştiren düşünce tarzı.
Sonuç
Yapay zeka, kod yazmayı bitirmedi; kod yazmanın değerli kısmını daha görünür kıldı. O kısım her zaman muhakemeydi — ne yapılacağına, neden yapılacağına ve doğru yapılıp yapılmadığına karar vermek. Üretim ucuzladıkça, yargı pahalılaştı. Geliştirici olarak yatırım yapmaya devam edeceğim yer, tam olarak orası.