Yapay Zeka Kodu Yazdığında, Artık Programcı Kim? — Vibe Coding

742K
41
4
6
73

TL;DR

Vibe Coding, geliştiricinin rolünü sözdizimi yazmaktan, niyeti tanımlamaya ve yapay zeka çıktısını incelemeye kaydırıyor. Bu makale, yapay zeka otomasyonuna rağmen mühendislik temellerinin neden hayati önemini koruduğunu analiz ediyor.

Yeni bir uygulama oluşturmak istediğinizi düşünün.

Eskiden bir kod editörü açar, bir framework seçer, dosyalar yazmaya başlar ve ardından saatlerce hata ayıklayıp ayarlamalar yapardınız.

Bugün tek bir cümleyle başlayabilirsiniz:

Giriş ekranı, bir gösterge paneli ve aylık harcamaları gösteren grafikler içeren bir gider yönetimi uygulaması istiyorum.

Sonra yapay zekanın çalışmaya başlamasına izin verirsiniz.

Kodu yazar.

Dosyaları oluşturur.

Projeyi çalıştırır.

Hataları tespit eder.

Ve yazdıklarını değiştirir.

Peki ya siz?

Her satırı kendiniz yazmak yerine, ne istediğinizi tarif eden ve oluşturulanları gözden geçiren kişi haline geldiniz.

Vibe Coding'in özü budur.

Ama burada üzerinde durmaya değer bir soru ortaya çıkıyor:

Yapay zeka kodu yazabiliyorsa... programcının rolü ne hale geldi?

📌 Yazıyı en başından kaydedin, çünkü sadece kod yazmanın yeni bir yolundan bahsetmiyoruz; yazılımın nasıl inşa edildiğinde yaşanan değişimden bahsediyoruz.

En önemli soru sonunda şu olmayacak: Yapay zeka kod yazabilir mi?

Aksine:

Ne inşa edilmesi gerektiğini ve nedenini biliyor musunuz ve inşa edilen şey güveninize değer mi?

Vibe Coding Nedir, Gerçekten?

Vibe Coding terimi yeni bir programlama yöntemi gibi gelebilir, ancak aslında yazılımın nasıl inşa edildiği konusunda daha büyük bir değişimi tanımlıyor.

Geleneksel programlamada çözümü düşünür ve ardından onu koda çevirirsiniz.

Mimariye siz karar verirsiniz.

Kütüphaneleri siz seçersiniz.

Fonksiyonları siz yazarsınız.

Hatalarla siz ilgilenirsiniz.

Ve her parçayı siz test edersiniz.

Vibe Coding'de farklı bir noktadan başlarsınız:

Ne inşa etmek istediğinizi tarif edersiniz, sonra bu tarifi koda dönüştürmenin büyük bir kısmını yapay zekaya bırakırsınız.

Örneğin şununla başlayabilirsiniz:

E-posta ve şifre kullanan, mobil uyumlu basit bir giriş sayfası istiyorum.

Yapay zeka kodu üretir.

Çalıştırırsınız.

Tasarımı beğenmediğinizi fark edersiniz.

Ve şöyle dersiniz:

Tasarımı daha sade yap ve yanlış veri girildiğinde net bir mesaj ekle.

Kodu değiştirir.

Sonra başka bir sorun keşfedersiniz.

Düzeltmesini istersiniz.

Sonra yeni bir özellik eklersiniz.

Ve böylece programcıların alışık olduğundan tamamen farklı bir döngü başlar.

Gerçek fark, yapay zekanın kodu yazması değil

Ve burada çok önemli bir nokta var.

Yapay zeka bir süredir kod yazabiliyor.

Peki neden Vibe Coding farklı bir konu haline geldi?

Çünkü fikir şu değil:

"Yapay zeka kod yazmama yardımcı oluyor."

Aksine:

"Yapay zekayı programlama sürecinin çoğunu yürüten kişi olarak görüyorum; ben yönlendiriyorum ve sonucu gözden geçiriyorum."

Ve bu temel bir fark.

İlk durumda hâlâ birincil programcı sizsiniz ve yapay zeka size yardımcı oluyor.

İkinci durumda, gereksinimleri tanımlayan, sonucu test eden ve neyin değişmesi gerektiğine karar veren kişi konumuna doğru kayıyorsunuz.

🤯

Vibe Coding yalnızca kod yazmayı hızlandırmıyor... programcı olmanın ne demek olduğunu değiştiriyor.

Burada daha büyük resim ortaya çıkmaya başlıyor.

Çünkü kod yazmaya harcadığınız zamanı azalttığınızda, zamanınızın başka şeylere kaydığını görürsünüz:

Ürün hakkında düşünmeye.

Ne inşa edilmesi gerektiğini tanımlamaya.

İnşa edileni test etmeye.

Neyin yanlış olduğunu keşfetmeye.

Ve neyin değişmesi gerektiğini belirlemeye.

Bu yüzden Vibe Coding yalnızca daha hızlı kod yazmanın bir yolu değil.

Bu, yazılım inşa sürecindeki her adımı kimin gerçekleştirdiğini değiştirme girişimidir.

Artık soru, yapay zekanın bir uygulama yazıp yazamayacağı değil...

Bu artık netleşti.

Daha zor olan soru:

Uygulama çalışmaya başladığında ama onun nasıl inşa edildiğini tam olarak bilmediğinizde ne olur?

Kod yazmaktan ne istediğinizi tarif etmeye

Vibe Coding'i daha iyi anlamak için bir programcının nasıl çalıştığını ile bugün nasıl çalışabileceğini karşılaştırın.

Geleneksel programlamada bir fikirle başlarsınız:

Bir gider yönetim sistemi istiyorum.

Ama bu fikir tek başına yeterli değil.

Bunu gereksinimlere dönüştürmeniz, ardından uygun teknolojileri seçmeniz, veritabanını tasarlamanız, arayüzü oluşturmanız, API'yi yazmanız, parçaları birbirine bağlamanız, sistemi test edip hataları düzeltmeniz gerekir.

Her adım teknik kararlar gerektirir.

Vibe Coding ile aynı fikirden başlayabilirsiniz, ancak onu kendiniz yüzlerce programlama detayına dönüştürmek yerine, yapay zekaya ürünün ne yapmasını istediğinizi tarif edersiniz.

Ardından bu tarifi bir uygulamaya dönüştürmeye başlar.

Geleneksel Programlama

Fikir → Gereksinimler → Mimari → Kod Yazma → Hata Ayıklama → Sistem Testi → Dağıtım

‏عادل | مبرمج - inline image

Geleneksel Programlama

Vibe Coding

Fikir → Gereksinimleri Tanımlama → Yapay Zeka İnşa Eder → Çalıştır ve Deneyimle → Geri Bildirim → Yapay Zeka Değiştirir → Test ve Gözden Geçirme

‏عادل | مبرمج - inline image

Farkı fark edin.

İlk yöntemde kod, fikriniz ile ürün arasındaki birincil araçtır.

İkincisinde ise tarif etme, deneyimleme ve gözden geçirme sürecin daha büyük bir parçası haline gelirken, yapay zeka fikri koda dönüştürmenin büyük bir kısmını üstlenir.

Burada Vibe Coding'deki en önemli değişimlerden biri ortaya çıkıyor:

Artık her şeyin nasıl yazılacağını her zaman bilmek zorunda değilsiniz... ama neyin var olması gerektiğini nasıl tanımlayacağınızı bilmelisiniz.

Bu, teknik bilginin değersiz hale geldiği anlamına gelmez.

Tam tersi.

Kod üretmek ne kadar kolaylaşırsa, onu değerlendirme ve sonuçlarını anlama yeteneği o kadar önemli hale gelir.

Çünkü sonunda sadece şunu sormayacaksınız:

Uygulama çalışıyor mu?

Bunun yerine şunu sormanız gerekecek:

Doğru şekilde mi inşa edildi?

Kod yalnızca bir araç haline geldiğinde

Burada önemli bir şey oluyor.

Geleneksel programlamada, bir fikri bilgisayarın anladığı talimatlara dönüştürmek için çok zaman harcanır.

Ne inşa etmek istediğinizi bilirsiniz, ancak bu fikri kendiniz şu yapılara çevirmeniz gerekir: Fonksiyonlar, Bileşenler, API'ler, Veritabanı Sorguları, Durum Yönetimi ve diğerleri.

Programlamayı öğrenmenin uzun sürmesine neden olan şey bu kısımdır.

Ama Vibe Coding bu mesafeyi azaltmaya çalışıyor.

Birincil görevinizin şu olması yerine:

Bu kodu nasıl yazarım?

Şu hale geliyor:

Ne olmasını istiyorum?

Bu, kelimelerde küçük ama düşünme biçiminde çok büyük bir değişiklik.

Bir uygulamaya arama özelliği eklemek istediğinizi düşünün.

Geleneksel bir programcı şöyle düşünmeye başlayabilir:

Endpoint nedir?

Durumu nasıl yöneteceğim?

Debouncing kullanmalı mıyım?

Sorguyu nasıl yazacağım?

Sayfalamayı nasıl yöneteceğim?

Yükleme durumunu nasıl göstereceğim?

Hataları nasıl yöneteceğim?

Vibe Coding'de daha üst düzeyden başlayabilirsiniz:

Ürünler için anında sonuç veren, yükleme durumu olan ve sonuç bulunamadığında net bir mesaj gösteren hızlı bir arama ekle.

Yapay zeka bu tarifi teknik detaylara dönüştürmeye çalışır.

Burada programcının değeri, öncelikle var olması gereken detayları bilme yetenekleriyle daha çok ilişkili hale gelir.

💡

Kod yazmak ucuzladığında, ne yazılacağını bilmek, nasıl yazılacağını bilmekten daha önemli hale gelir.

Ama burada büyük bir tuzak var.

Çünkü ne aradığınızı bilmiyorsanız...

Yapay zekanın doğru çözümü seçip seçmediğini bilemezsiniz.

Size çalışan bir kod verebilir.

Harika görünebilir.

Ve uygulamayı çalıştırırken hiçbir hata görünmeyebilir.

Ancak bu kodun arkasındaki mühendislik kararı zayıf olabilir.

Vibe Coding'deki gerçek sorun burada başlıyor.

Yapay zekaya kod yazdırmak, yazdığı kodun saklamaya değer olup olmadığını bilmekten çok daha kolaydır.

Kod çalışıyor... ama iyi mi?

Burada ilk denemede ortaya çıkmayan sorun başlıyor.

Yapay zekadan bir giriş sistemi oluşturmasını isteyebilirsiniz, kodu yazar, uygulamayı çalıştırırsınız ve her şeyin çalıştığını görürsünüz.

Hesap açarsınız.

Giriş yaparsınız.

Çıkış yaparsınız.

Ve tekrar geri gelirsiniz.

Her şey kusursuz görünüyor.

Kendi kendinize dersiniz ki:

İşimiz bitti.

Peki ya testinizde ortaya çıkmayan bir güvenlik açığı varsa?

Peki ya veritabanı sorgusu optimize edilmemişse?

Peki ya kullanıcı sayısı 100 yerine 100.000 olduğunda ortaya çıkacak bir sorun varsa?

Peki ya yapay zeka eski bir kütüphane veya birkaç ay sonra projeyi geliştirmeyi zorlaştıracak bir yapı kullandıysa?

Burada temel bir farka ulaşıyoruz:

Kodun çalışmasını sağlamak başka bir şey... iyi bir program inşa etmek başka bir şey.

Yapay zekaya şunu sorduğunuzu düşünün:

Uygulamaya bir ödeme sistemi ekle.

Ve gerçekten de ödeme sayfasını oluşturdu, API'ye bağladı ve testte her şey çalışıyor.

Ama şunları doğruladınız mı:

  • Ödeme sırasında bağlantı kesilirse ne olur?
  • İşlem yanlışlıkla iki kez gerçekleştirilebilir mi?
  • Tutar sunucuda doğrulanıyor mu?
  • Hassas veriler korunuyor mu?
  • Tutar düşüldükten sonra ödeme başarısız olursa ne olur?
  • Kullanıcı isteği manipüle edebilir mi?

Bunlar kod yazmakla ilgili sorular değil.

Bunlar yazılım mühendisliğiyle ilgili sorular.

İnsan deneyiminin değeri burada ortaya çıkıyor.

⚠️

Yapay zekanın yazdığı en tehlikeli kod, hata içeren kod değil... yanlış olduğunu bilmeden çalışan koddur.

Bu yüzden Vibe Coding, programcının artık programlamayı anlamasına gerek olmadığı anlamına gelmez.

Tam tersi anlama gelebilir.

Kod üretmek ne kadar kolaylaşırsa, kötü kodu keşfetmek o kadar önemli hale gelir.

Yapay zeka size ilk sürümü dakikalar içinde verebilir.

Ama her zaman tek başına cevaplayamadığı soru şudur:

Bu sistemi inşa etmenin doğru yolu bu mu?

Vibe Coding programlamayı öldürüyor mu?

Asıl tartışma burada başlıyor.

Çünkü Vibe Coding'in ortaya çıkışı eski bir soruyu daha acil hale getirdi:

Yapay zeka kod yazabiliyorsa, neden programlama öğreneyim ki?

Hızlı cevap şu olabilir:

Çünkü yapay zekanın yine de bir programcıya ihtiyacı olacak.

Ama bu cevap tek başına yetersiz.

Çünkü gerçek şu ki programcının eskiden yaptığı işin bir kısmı çoktan yapay zekaya kaymaya başladı.

Boilerplate yazmak mı?

Kolaylaştı.

Bileşen oluşturmak mı?

Hızlandı.

CRUD API'leri yazmak mı?

Hızlandı.

Tasarımı arayüze dönüştürmek mi?

Kolaylaştı.

İlk testleri yazmak mı?

Hızlandı.

Yani hiçbir şey değişmedi diyemeyiz.

Gerçekten değişti.

Ama hata, programlamayı kod yazmakla eşitlemektir.

Programcı şirkete yazabildiği satır sayısını satmaz.

Şirketin 10.000 satır koda ihtiyacı yoktur.

Bir sorunu çözen bir sisteme ihtiyacı vardır.

Bu çok büyük bir fark.

Yapay zeka bir saatte 10.000 satır yazabiliyorsa ama sistem hatalarla doluysa...

Hiçbir şey kazanmış olmayız.

Ama bir programcı yalnızca 1.000 satır kullanarak, iyi bir mimari, güvenlik ve testlerle doğru sistemi inşa edebiliyorsa...

Asıl değer budur.

⚔️ Programcının rolüne ne oluyor?

Değişim şu şekilde basitleştirilebilir:

Geleneksel Programlama

Programcı doğrudan kod yazmaktan, teknik detayları uygulamaktan, uygun sözdizimini (Syntax) aramaktan, hatalarla elle ilgilenmekten ve sistem parçalarını sıfırdan inşa etmekten sorumluydu. Zamanlarının büyük bir kısmı fikri bilgisayarın anladığı talimatlara dönüştürmeye gidiyordu.

Vibe Coding ile

Programcı artık daha çok gereksinimleri tanımlamaya, teknik kararlar almaya, sorunları analiz etmeye, yapay zekayı yönlendirmeye ve ardından inşa edileni gözden geçirip değiştirmeye odaklanıyor. Her detayı kendileri uygulamaya odaklanmak yerine, odaklarının daha büyük bir kısmı nihai sonuca ve inşa edilen sistemin kalitesine kayıyor.

Bu, programcının koddan tamamen uzaklaşacağı anlamına gelmez.

Bu, kodun sağladıkları değerin en büyük parçası olmaktan çıkabileceği anlamına gelir.

🤯

Vibe Coding programcıyı ortadan kaldırmıyor... ancak işlerinin elle kod yazmaya dayanan kısmının değerini azaltıyor.

Burada soru daha net hale geliyor:

Yalnızca kod yazmayı bilen programcı hâlâ yeterli olacak mı?

Büyük olasılıkla...

Hayır.

Çünkü yalnızca sözdizimini (Syntax) bilen kişi, bu beceride yardımcı olan yapay zeka tarafından büyük ölçüde değiştirilebilir.

Ama şunları anlayan kişi:

Bu sistemi neden inşa ediyoruz?

Nasıl çalışmalı?

Hangi riskler var?

Nasıl test ederiz?

Ve başarısız olduğunda ne olur?

Deneyimlerinde hâlâ çok büyük bir değer var.

Aslında kod üretmek kolaylaştığında bu beceriler daha da önemli hale gelebilir.

Vibe Coding herkes için uygun mu?

Burada Vibe Coding kullanma olasılığı ile onu iyi kullanma yeteneğini birbirinden ayırmalıyız.

Evet, fazla programlama deneyimi olmayan birinin yapay zekayı kullanarak basit bir uygulama inşa etmesi mümkün hale geldi.

Ve bu çok önemli.

Çünkü yeni bir fikri deneme engeli çok daha düşük hale geldi.

Küçük bir proje fikri olan biri, fikrinin ilk sürümünü görmeden önce programlamanın tüm detaylarını öğrenmek zorunda değil artık.

Başlayabilir, deneyebilir, değiştirebilir ve inşa ederken öğrenebilirler.

Ama sorun şundan geçiş yaparken başlar:

Bir fikri denemek istiyorum

şuna:

İnsanların bağlı olduğu gerçek bir sistem inşa etmek istiyorum.

Burada hikâye tamamen farklı.

Birinin Vibe Coding kullanarak eksiksiz bir e-ticaret mağazası inşa ettiğini düşünün.

Arayüz çalışıyor.

Ürünler görünüyor.

Sepet çalışıyor.

Ve giriş çalışıyor.

Proje başarılı görünebilir.

Ama fiyatların hesaplanma şeklini değiştirmeleri gerektiğinde ne olur?

Ya da yeniden üretemedikleri bir hata (Bug) ortaya çıktığında?

Ya da iki kütüphane çakıştığında?

Ya da veritabanı tasarımının uygun olmadığını keşfettiklerinde?

Burada yapay zekaya şunu söylemek yeterli olmayacak:

Bunu düzelt

Çünkü önce sorunun kendisini anlamanız gerekiyor.

Vibe Coding'i size inşa etmede yardımcı olan bir araç olarak kullanmak ile...

onu ne inşa ettiğinizi anlamanın tamamen yerine koymak arasındaki fark budur.

💡

Vibe Coding programlamada başlangıç maliyetini düşürdü, ancak anlama maliyetini ortadan kaldırmadı.

Aslında anlamayı daha da önemli hale getirmiş olabilir.

Çünkü ne olduğunu anlayan kişi yapay zekayı devasa bir kaldıraç olarak kullanabilir.

Ne olduğunu anlamayan kişi ise hızlıca bir şeyler inşa edebilir...

Ama neden çalıştığını, ne zaman çalışmayı bırakacağını ve başarısız olduğunda nasıl düzelteceğini bilemeyebilir.

Vibe Coding ne zaman harika bir fikirdir... ve ne zaman risk haline gelir?

Vibe Coding her yazılım türü için uygun bir alternatif değildir.

Bazı durumlarda, bir fikirden çalışan bir modele ulaşmanın en hızlı yollarından biri olabilir.

Bir prototip mi inşa etmek istiyorsunuz?

Harika.

Önemli zaman ve para yatırmadan önce bir fikri denemek mi istiyorsunuz?

Harika.

Bir açılış sayfası, basit bir dahili araç veya kişisel bir proje mi oluşturmak istiyorsunuz?

Burada Vibe Coding'in sağladığı hız büyük bir avantaj olabilir.

Projeyi kurmak ve tekrarlayan parçaları yazmak için günler harcamak yerine, kısa sürede ilk bir sürüme ulaşabilir, ardından fikrin kendisini test etmeye başlayabilirsiniz.

Bu çok önemli bir nokta:

Bazen kusursuz koda ihtiyacınız yoktur... önce fikrin inşa edilmeye değer olup olmadığını bilmeniz gerekir.

Ama program hassas şeylerden sorumlu olduğunda tablo değişir.

Ödemeleri işleyen bir sistem.

Kişisel verileri saklayan bir uygulama.

Bir tıbbi sistem.

Bir finans platformu.

Bir kimlik doğrulama (Authentication) sistemi.

Ya da küçük bir hatanın para kaybına, veri sızıntısına veya hizmet kesintisine yol açabileceği herhangi bir program.

Burada şunu söylemek yeterli değildir:

"Uygulama çalışıyor."

Aksine, nasıl çalıştığını, neden çalıştığını ve birinin onu beklemediğiniz bir şekilde kullanmaya çalıştığında ne olabileceğini bilmelisiniz.

⚔️ Basit Kural

Hatanın maliyeti ne kadar yüksekse, gerçek bir mühendislik incelemesi olmadan Vibe Coding'e o kadar az güvenebilirsiniz.

Kendiniz için küçük bir araç inşa ediyorsanız, hız kusursuzluktan daha önemli olabilir.

Ama binlerce kullanıcının bağlı olacağı bir sistem inşa ediyorsanız, mimari, güvenlik, test ve inceleme şansa bırakılabilecek şeyler değildir.

Vibe Coding ile başa çıkmanın en iyi yolu burada ortaya çıkıyor:

Onu yazılım mühendisliğinin yerine kullanmayın.

Onu yazılım mühendisliğini hızlandırmak için kullanın.

Ve bu çok büyük bir fark.

Vibe Coding doğru şekilde nasıl kullanılır?

Vibe Coding'i gerçek bir şey inşa etmek için kullanan biri ile yapay zekaya tıklayıp ilk sonucu alan biri arasındaki fark, kullandıkları araçta değildir.

Fark, çalışma biçimindedir.

En büyük hata, yapay zekaya devasa bir fikir verip tüm projeyi bir anda inşa etmesini istemektir.

Örneğin:

"Bana giriş, ödeme, gösterge paneli, bildirimler ve kargo sistemi olan eksiksiz bir e-ticaret mağazası kur."

Gerçekten de çalışan bir proje elde edebilirsiniz.

Ama görev ne kadar büyükse, içinde ne olduğunu bilmek o kadar zorlaşır ve hataları keşfedip düzeltmek daha karmaşık hale gelir.

En iyi yol, projeyi aşamalar halinde ele almaktır.

Hedefle başlayın.

Sonra yapay zekadan bir plan oluşturmasını isteyin.

Bundan sonra tek bir özellik inşa edin.

Çalıştırın.

Test edin.

Kodu gözden geçirin.

Sonra bir sonraki özelliğe geçin.

Bu şekilde yapay zekanın projeyi sizin yerinize inşa etmesine izin vermezsiniz...

Aksine, onu adım adım sizinle birlikte inşa etmesini sağlarsınız.

📊 Vibe Coding için basit bir iş akışı

🎯 Hedef → 📝 Plan → 🤖 Yapay Zeka İnşa Eder → ▶️ Çalıştır ve Deneyimle → 🔍 Gözden Geçir → 🐛 Hataları Keşfet → 🤖 Yapay Zeka Değiştirir → ✅ Test → 🚀 Sonraki adıma geç

‏عادل | مبرمج - inline image

Vibe Coding için basit bir iş akışı

En önemlisi:

Sistemin önemli kısımlarında işlevini anlamadığınız kodu kabul etmeyin.

Yapay zekanın yazdığı her satırı ezberlemeniz gerekmez.

Ama mimaride neler olduğunu, verilerin nasıl hareket ettiğini, zayıf noktaların nerede olduğunu ve hataların nasıl ele alınacağını bilmelisiniz.

💡

Hızınızı artırmak için yapay zekayı kullanın, anlayışınızın yerine koymak için değil.

Vibe Coding'le bu şekilde başa çıktığınızda, yapay zekanın size verdiği hız gerçek bir avantaja dönüşür.

Çünkü projeyi ona yönlendirtmezsiniz...

Siz yönlendirirsiniz, o yürütür.

Vibe Coding kullanıyorsanız programlama öğrenmeli misiniz?

Burada Vibe Coding'in en çok sorulan sorularından biri ortaya çıkıyor:

Yapay zeka kod yazabiliyorsa, neden programlama öğreneyim ki?

Cevap, herkesin profesyonel bir yazılım mühendisi olması gerektiği değil.

Ama yalnızca bir fikri denemekten gerçek programlar inşa edip onlara güvenmeye geçmek istiyorsanız, programlamayı anlamak çok önemli olmaya devam edecek.

Mutlaka eski yöntemle değil.

İlk projenizi inşa etmeden önce yüzlerce satır sözdizimini (Syntax) ezberlemeniz gerekmez.

Ve tüm boilerplate kodları kendiniz yazmanız gerekmez.

Ama yapay zekanın ürettiklerini yargılayabilmenizi sağlayan şeyleri anlamalısınız.

Şunlar gibi:

  • API'lerin nasıl çalıştığını.
  • Uygulamaların veritabanlarıyla nasıl etkileşime girdiğini.
  • Verilerin sistem parçaları arasında nasıl hareket ettiğini.
  • Kimlik doğrulama (Authentication) ve yetkilendirmenin (Authorization) ne anlama geldiğini.
  • Hataların (Bug) nasıl keşfedileceğini.
  • Testlerin nasıl çalıştığını.
  • Mimariden ne kastedildiğini.
  • Güvenlik sorunlarının nerede ortaya çıkabileceğini.

Çünkü bu temelleri bildiğinizde, yapay zekanın yazdığı koda bakıp doğru soruları sorabilirsiniz.

Bilmiyorsanız, önünüzde çalışan güzel bir proje görebilirsiniz...

Ve onun iyi olduğunu varsayarsınız.

Burada programlama öğrenme biçiminin kendisi değişebilir.

Herhangi bir proje inşa etmeden önce her şeyi ezberlemeye uzun zaman harcamak yerine, inşa ederken öğrenebilirsiniz.

Bir API'nin nasıl çalıştığını bilmek mi istiyorsunuz?

Yapay zekayla bir tane inşa edin, sonra ona açıklamasını isteyin.

Veritabanlarını anlamak mı istiyorsunuz?

Bir tablo oluşturun, sorgular yazın ve verilerin nasıl hareket ettiğini görün.

Kimlik doğrulamayı (Authentication) anlamak mı istiyorsunuz?

Uygulayın, ardından perde arkasında gerçekleşen her adımı anlamaya çalışın.

Bu şekilde yapay zeka aynı anda bir öğretmen, bir asistan ve bir hızlandırıcı haline gelir.

Ama bozmamanız gereken bir kural var:

⚠️

Yapay zekanın sizin yerinize programlama öğrenmesine izin vermeyin. Onu programlamayı daha hızlı öğrenmek için kullanın.

Çünkü ikisi arasındaki fark, bir Prompt'un çözemeyeceği ilk sorun ortaya çıktığı anda görülecektir.

Programcıya ne olacak?

Belki de Vibe Coding'i yalnızca yeni bir araç olmaktan çıkaran soru budur.

Çünkü yalnızca daha hızlı kod yazmanıza yardımcı olan bir programdan değil, programcının işinin şeklinin değişme olasılığından bahsediyoruz.

Geçmişte, bir programcının gününün büyük bir kısmı gereksinimleri koda dönüştürmeye giderdi.

Gereksinimi okur.

Çözümü arar.

Kodu yazar.

Test eder.

Hataları düzeltir.

Sonra döngüyü tekrar eder.

Yapay zeka bu görevlerin büyük bir kısmını üstlenebildiğinde, programcının odağının başka şeylere kayması doğaldır.

Soru şununla daha az ilgili hale gelecek:

Bunu nasıl yazarım?

Ve daha çok şununla ilgili olacak:

Bunu inşa etmenin en iyi yolu nedir?

Ve bu çok büyük bir fark.

Yeni bir projenin önünde duran bir programcı düşünün.

İlk dosyayı yazarak başlamak yerine, gereksinimleri tanımlayarak başlayabilir, ardından yapay zekadan bir mimari önermesini isteyebilir, seçenekleri tartışabilir, bir prototip oluşturabilir ve ilk testleri yazabilirler.

Sonra kararları gözden geçirmeye başlarlar.

Bir sorun keşfeder.

Tasarımı değiştirir.

Bir ayarlama ister.

Sonucu test eder.

Ve sonunda neyin production'a (canlıya) alınacağına karar verir.

Bu durumda programcı ortadan kaybolmadı.

Ama çalışmalarının merkezi değişti.

Her detayı yazmaktan...

...ürünü şekillendiren kararları almaya.

Bu, bazı becerileri görece daha az önemli hale getirebilirken, diğer becerilerin değerini artırabilir.

El ile yapma bağımlılığı azalabilecek beceriler

  • Boilerplate yazmak.
  • Tekrarlayan bileşenler oluşturmak.
  • Geleneksel CRUD yazmak.
  • Basit tasarımları koda dönüştürmek.
  • Her küçük sorun için sözdizimi (Syntax) aramak.

Daha önemli hale gelen beceriler

  • Sistem Tasarımı.
  • Mimari.
  • Hata Ayıklama.
  • Güvenlik.
  • Test.
  • İş Mantığını Anlama.
  • Kod İncelemesi.
  • Sorunu doğru bir şekilde tanımlama yeteneği.
  • Çözümün kalitesini yargılama yeteneği.

💡

Kod üretmek ne kadar kolaylaşırsa, kodun arkasındaki kararlar o kadar değerli hale gelir.

Bu nedenle, programcının geleceği daha fazla kod yazmak olmayabilir.

Aksine daha az kod, daha fazla araç ve daha doğru kararlar kullanarak daha iyi sistemler inşa etmek olabilir.

Burada çok önemli bir noktaya ulaşıyoruz:

Vibe Coding'i programlamayı anlamaktan kaçmanın bir yolu olarak gören programcı kendini zor durumda bulabilir.

Onu üretkenlik kapasitelerini artırmanın bir aracı olarak gören programcıya gelince...

Yalnızca geleneksel yöntemle çalışan programcıdan çok daha güçlü hale gelebilirler.

Vibe Coding'de kimsenin bahsetmediği tehlike

Yapay zekanın kötü kod yazmasından daha tehlikeli olabilecek başka bir sorun daha var.

Size öğrenmeyi bıraktıracak kadar iyi kod yazması.

Ve bu önemli bir fark.

İlk projenize Vibe Coding kullanarak başlayabilir ve günler yerine saatler içinde eksiksiz bir arayüz inşa edebildiğinizi keşfedebilirsiniz.

Heyecanlanırsınız.

Sonra ikinci bir proje inşa edersin.

Ve bir üçüncüsünü.

Her seferinde, bir sorunla karşılaştığında yapay zekâya sorarsın.

O açıklar.

Düzeltir.

Önerir.

Yazar.

Zamanla, nasıl çalıştıklarını derinlemesine anlamadan birçok şey inşa edebildiğini fark edebilirsin.

İşte burada tuhaf bir paradoks ortaya çıkıyor:

Program inşa etmede daha hızlı hale geldin... ama mutlaka programlama konusunda daha iyi hale gelmedin.

Kusursuz çalışan bir uygulaman olduğunu hayal et.

Sonra Production'da bir sorun ortaya çıktı.

API yavaşladı.

Bazı kullanıcılar yanlış veriler alıyor.

Ve sebebini bilmiyorsun.

Yapay zekâya soruyorsun:

Sorunu çöz.

Bir değişiklik öneriyor.

Deniyorsun.

Sorun hâlâ orada.

Başka bir değişiklik istiyorsun.

Sonra bir üçüncüsünü.

Bir anda kendini bir deneme döngüsünün içinde buluyorsun; çünkü sistemin içinde neler olup bittiğine dair kafanda net bir model yok.

Buradaki sorun, yapay zekânın zayıf olması değil.

Sorun, ona sorman gereken soruları bilmiyor olman.

⚠️

Vibe Coding'e tamamen güvenmek, seni kod üretmede iyi... ama onu anlamada zayıf yapabilir.

Dolayısıyla, şunu söyleyen biri ile...

Yapay zekâ uygulamayı benim için inşa etti.

...ve şunu söyleyen biri arasında fark vardır:

Uygulamayı inşa etmek için yapay zekâyı kullandım, ancak mimarisini anlıyorum ve onu nasıl test edeceğimi, düzelteceğimi ve geliştireceğimi biliyorum.

Birincisi bir ürüne sahiptir.

İkincisi bir yetenek sahibidir.

Ve bu yetenek, bugün kullandığın araç ortadan kalksa ve yarın yeni bir araç çıksa bile seninle kalacak olandır.

Bu nedenle Vibe Coding ile başa çıkmanın en iyi yolu, yapay zekânın senin yerine düşünmesine izin vermek değildir.

Aksine, onun düşünme ve inşa etme yeteneğini genişletmesini sağlamaktır.

Çünkü nihai hedef, yapay zekâya en çok kodu yazdırabilen kişi olmak değildir.

**Hedef, ne inşa edilmesi gerektiğini bilen ve inşa edilenin dü

Tek tıkla kaydet

YouMind ile viral makaleleri AI derin okumayla incele

Kaynağı kaydedin, odaklı sorular sorun, argümanı özetleyin ve viral bir makaleyi tek bir AI çalışma alanında yeniden kullanılabilir notlara dönüştürün.

YouMind'ı keşfet
Üreticiler için

Markdown'ınızı temiz bir 𝕏 makalesine dönüştürün

Kendi uzun yazılarınızı yayımlarken görselleri, tabloları ve kod bloklarını 𝕏 için biçimlendirmek zahmetlidir. YouMind, eksiksiz bir Markdown taslağını temiz ve hemen paylaşılabilir bir 𝕏 makalesine dönüştürür.

Markdown'dan 𝕏'e deneyin

Çözülecek daha fazla kalıp

Son viral makaleler

Daha fazla viral makale keşfet