ChatGPT ile Kod Yazıp Kendini Programcı Sananlar Arttı

Yapay zeka ile kod yazmak artık o kadar kolaylaştı ki, birkaç prompt yazıp çalışan bir uygulama olusturan kendine programcı demeye başladı.

Eskiden programcı olmak için kod yazmayı öğrenmek gerekirdi.

Değişken nedir?

Fonksiyon nedir?

Döngü nasıl çalışır?

Veritabanı nasıl tasarlanır?

HTTP nedir?

API nasıl çalışır?

Hata neden oluşur?

Kod neden yavaşlar?

Güvenlik açığı nasıl ortaya çıkar?

Bunları bilmeden programcı olmak mümkün değildi.

Şimdi ise ChatGPT’ye:

“PHP ile kullanıcı giriş sistemi yap.”

diyorsun.

Kod geliyor.

Kopyala.

Yapıştır.

Çalıştı.

Sonra:

“Admin paneli ekle.”

Yine kod geliyor.

Bir de:

“Modern responsive tasarım yap.”

Tamam.

Ortaya bir şey çıkıyor.

Kodu yazan kişi de kendisini yazılımcı ilan ediyor.

İşte yapay zeka ile program geliştirme tartışmasının en komik tarafı burada başlıyor.

Kod çalışıyor diye sen programcı olmadın

Kod üretmek ile programlama bilmek aynı şey değil.

Bir araba kullanmak için motorun nasıl çalıştığını tamamen bilmek gerekmiyor.

Ama kendine otomotiv mühendisi diyorsan işler değişiyor.

ChatGPT’nin ürettiği kodu kullanabilmek de seni otomatik olarak yazılımcı yapmıyor.

Çünkü kodun neden çalıştığını bilmiyorsan gercekte elindeki sistem üzerinde tam kontrolün yok.

Bir hata çıkınca yine ChatGPT’ye gidiyorsun.

ChatGPT başka bir kod veriyor.

Onu yapıştırıyorsun.

Başka hata çıkıyor.

Tekrar soruyorsun.

Böyle böyle proje büyüyor.

Sonunda 50 bin satırlık bir proje ortaya çıkıyor.

Ama kodun yarısının ne yaptığını bilmiyorsun.

Sonra biri gelip:

“Bu sistem neden yavaş?”

diye soruyor.

Cevap yok.

“Ama çalışan uygulama yaptım”

Evet.

Bu başarıdır.

Ama programcı olduğunun kanıtı değildir.

Bir uygulama yapmak ile sürdürülebilir bir yazılım geliştirmek arasında ciddi fark var.

Küçük bir script yazabilirsin.

Bir web sitesi çıkarabilirsin.

Basit bir API hazırlayabilirsin.

Bunların hepsi güzel.

Ama gerçek problem proje büyüdüğünde ortaya çıkıyor.

Kod birbirine giriyor.

Performans düşüyor.

Veritabanı şişiyor.

Güvenlik açığı çıkıyor.

Bir özellik diğerini bozuyor.

Kullanıcı sayısı artıyor.

Sunucu çökmeye başlıyor.

Ve ChatGPT’ye:

“500 bin kullanıcım var site yavaşladı ne yapmalıyım?”

diye soruyorsun.

İşte burada prompt yazmakla programcılık arasındaki fark ortaya çıkıyor.

ChatGPT her zaman iyi kod üretmiyor

Yapay zekanın verdiği kod çalışabilir.

Ama çalışması iyi olduğu anlamına gelmez.

Gereksiz sorgular olabilir.

Kötü mimari olabilir.

Güvenlik açığı olabilir.

Bellek kullanımı tırt olabilir.

Kod tekrarları olabilir.

Yanlış veri tipi kullanılabilir.

Hatalı exception yönetimi olabilir.

SQL sorguları verimsiz calısabilir.

ChatGPT kod yazabilir mi?

Evet.

Hem de çok iyi yazabilir

Ama üretilen kodu denetleyecek bilgi sende yoksa problem başlıyor.

Çünkü yapay zekanın yazdığı kodu yine yapay zekaya kontrol ettiriyorsun.

Sonra o da:

“Bu kod gayet iyi.”

diyor.

Harika.

İki yapay zeka birbirini onayladı.

Programcı da rahatladı.

Stack Overflow’dan kopyalamakla ChatGPT’den kopyalamak arasında ne fark var?

Eskiden bazı insanlar Stack Overflow’dan kod bulup anlamadan kopyalıyordu.

Şimdi ChatGPT’den kopyalıyorlar.

Tek fark artık cevap bulmak daha hızlı.

Bu yüzden ChatGPT programcıların yerini alacak mı tartışması sürekli dönüyor.

Bence daha ilginç soru şu:

ChatGPT kullanarak kod yazan ama kodu anlamayan insanların sayısı ne kadar artacak?

Eskiden basit bir web uygulaması yapmak için bile temel HTML, CSS, JavaScript ve sunucu tarafı mantığını öğrenmek gerekiyordu.

Şimdi:

“Üyelik sistemi olan modern bir web sitesi oluştur.”

Promptunu yazıyorsun.

Karşına yüzlerce satır kod geliyor.

Bu durum yeni başlayanlar için inanılmaz cazip.

Ama aynı zamanda tehlikeli.

Programlama öğrenmek yerine prompt yazmayı öğreniyorlar

Bazı insanlar artık programlama öğrenmek yerine iyi prompt yazmayı yeterli görüyor.

“Şöyle yap.”

“Buraya bunu ekle.”

“Bu hatayı düzelt.”

“Responsive yap.”

“Dark mode ekle.”

“API bağla.”

Bu şekilde ilerleyerek ortaya bir ürün çıkarılabilir.

Ama bir problem olduğunda kişi ne yapacağını bilmiyor.

Çünkü yazılımın temelini öğrenmedi.

Sadece yapay zekaya ne söyleyeceğini öğrendi.

AI ile yazılım geliştirme bunun için iki farklı sonuç doğurabilir.

Programlama bilen kişi için müthiş bir hızlandırıcıdır.

Programlama bilmeyen kişi için ise bazen sahte bir yeterlilik hissi yaratır.

İşte ikinci durum sıkıntılı.

Bir hata çıkınca gerçekler ortaya çıkıyor

En basit örneklerden biri veritabanı.

ChatGPT’ye:

“PHP MySQL kullanıcı sistemi yap.”

Kod geliyor.

Çalışıyor.

Kullanıcı kayıt oluyor.

Giriş yapıyor.

Tamam.

Sonra gerçek kullanıcılar geliyor.

Birisi saldırı deniyor.

Birisi SQL injection deniyor.

Birisi session bilgisini kurcalıyor.

Birisi şifre sıfırlama sistemini manipüle ediyor.

ChatGPT ile PHP kodu yazmak mümkün.

Ama güvenli PHP uygulaması geliştirmek için PHP bilmek gerekiyor.

Yapay zeka bunun yerine geçmez.

En komik taraf: Kodun ne yaptığını ChatGPT’ye soruyorlar

Bir insan kendi yazdığı kodu ChatGPT’ye gösterip:

“Bu kod ne yapıyor?”

diye soruyorsa burada bir problem vardır.

Kodu kendisi yazmadıysa.

Çünkü normalde programcı kodu neden yazdığını bilir.

Elbette karmaşık bir kodu açıklatmak farklı.

Ama her fonksiyonu yapay zekaya yazdırıp sonra:

“Bu ne işe yarıyor?”

diye sormak başka.

Bu durumda kodu geliştiren kişi sen değilsin.

Sen sadece aracı kullanıyorsun.

Yapay zeka programcıları bitirmeyecek

Burada fanboyların diğer tarafa savrulmasına da gerek yok.

“AI programcıları tamamen yok edecek.”

Saçma..

Yapay zeka yazılım geliştirmeyi değiştirecek.

Hatta değiştirdi bile.

Kod yazmak hızlandı.

Dokümantasyon hızlandı.

Hata bulmak kolaylaştı.

Tekrarlanan işler azaldı.

Basit uygulamaların geliştirilmesi kolaylaştı.

Ama karmaşık sistemlerde hâlâ insan bilgisi gerekiyor.

Mimari karar.

Güvenlik.

Performans.

Veri modeli.

Ölçeklendirme.

Bakım.

Bunların hepsini prompt yazarak çözemezsin.

Gerçek değer kod yazmak değil, problem çözmek

Programcılığın temelinde kod yazmak yoktur.

Problem çözmek vardır.

Kod bunun aracıdır

Bir sistemin neden bozulduğunu anlamak.

Bir problemi parçalara ayırmak.

Doğru veri yapısını seçmek.

Yapay zeka programcıların işini kolaylaştırıyor mu?

Kesinlikle.

Ama bu kolaylık bazı insanların programcılığın ne olduğunu yanlış anlamasına da yol açıyor.

Çünkü kod üretmek artık çok kolay.

Kodun arkasındaki mantığı anlamak ise güç..

Gerçek programcıyı nasıl anlarsın?

Çok basit.

ChatGPT kapat.

İnternet bağlantısını kes.

Önüne bir problem koy.

Sonra bak.

Kişi problemi parçalara ayırabiliyor mu?

Hatanın nereden kaynaklandığını bulabiliyor mu?

Kodun neden çalışmadığını anlayabiliyor mu?

Veritabanını inceleyebiliyor mu?

Log okuyabiliyor mu?

Mimari karar verebiliyor mu?

ChatGPT olmadan hiçbir şey yapamıyorsa, yazdığı kodun çoğunun ne yaptığını bilmiyorsa ve sadece promptlarla ilerliyorsa kendisine “programcı” dememeli.

Sonuç

Yapay zeka ile kod yazmak kötü bir şey değil.

Ama araç ile meslek arasındaki farkı karıştırmamak gerekiyor.

ChatGPT sana kod yazabilir.

Ama sana otomatik olarak programlama bilgisi yüklemiyor.

Bir web sitesi oluşturabilir.

Ama seni otomatik olarak web geliştiricisi yapmıyor.

Bir uygulama çıkarabilir.

Ama sistem mimarı yapmıyor.

AI ile kod yazıp kendini programcı sanmak kolaylaştı.

Çünkü artık çalışan bir şey ortaya çıkarmak eskisinden çok daha kolay.

Fakat çalışan kod ile kaliteli yazılım arasında hâlâ uçurum var.

Ve o uçurumu prompt kapatmıyor.

Kodun ne yaptığını bilmiyorsan, neden çalıştığını bilmiyorsan ve bozulduğunda ne yapacağını bilmiyorsan elindeki şey yazılım bilgisi değil.

Yorum yapın