39 puan yazan spilist2 2025-03-25 | 11 yorum | WhatsApp'ta paylaş
  • Vibe coding yükselirken buna eşlik eden "artık geliştiriciye gerek yok" vs "yine de daha çok erken" tartışması da hararetli şekilde sürüyor
  • İki tarafın da haklı olduğu noktalar var. Yapay zekadaki gelişmeleri izlerken ve product engineer olarak çalışırken düşündüklerimi toparladım
  • Ama ben bir yapay zeka uzmanı değilim, sadece bir geliştiriciyim. Vibe coding deneyimim de az. Yine de başkalarının görüşlerini duymak istediğim ve kaygı duyan junior geliştiricilere yardımcı olmasını umduğum için bu yazıyı yazdım

Bizzat deneyimlediğim Vibe: Bu kadar ileri mi, yoksa ancak bu kadar mı?

Hafta sonu vibe coding ile bir misket oyunu yaptım. 7 yaşındaki kızımla birlikte oynamak için hazırladım. Kodlamanın %90'ı yalnızca promptlarla ilerledi, uygulama süresi dramatik biçimde kısaldı (4 saat içinde fena olmayan bir kalitede tamamlandı)

Bu süreçte bir yandan "Böyle basit bir şeyi de mi yapamıyorsun?" diye hayal kırıklığı yaşadım, bir yandan da "Sadece bu seviyedeki gereksinimlerle bile bunu bu kadar iyi mi yapıyorsun?" diye şaşırdım. Özellikle ilki ağır bastı; çünkü yapay zekanın "benim dediğimi yapmasını" sağlamak kolay değildi

Ama sonuçta promptları iyileştirip teknoloji daha da gelişirse, "şaşkınlık" tarafının çok daha ağır basacağını ve bunun junior geliştirici alımlarında belirgin bir düşüşe yol açacağını düşünüyorum

Bu hissi Pareto ilkesi ve ürün olgunluğu kavramıyla anlatmaya çalışacağım

Karanlık tablo: Kodun %96'sını yapay zeka yazabilir

Ürün olgunluğunu 3 aşamada (zero-to-one, one-to-ten, sonrası) düşünürsek, zero-to-one seviyesindeki kodlamanın büyük bölümünün yapay zekayla ikame edilebilir hale gelmesi beni gerçekten sarstı

Pareto ilkesine göre bakarsak, bir geliştiricinin ürün geliştirmek için ürettiği kodun %80'i aslında bu zero-to-one için ortaya çıkan çıktı değil miydi diye düşünüyorum.

  • Fikrin hayata geçirilmesi ve PMF aranması sürecinde çıkan kodlar. Ayrıca vibe coding ile geliştirici olmayanların da kolayca üretebildiği kodlar.

Buna ek olarak, one-to-ten aşamasında gereken %80'in iyi tanımlanıp parçalara ayrılarak zero-to-one seviyesinde ele alınabileceğini varsayarsak...

  • Aşırı uçta, üretilen kodun yaklaşık %96'sı (= 0.8 + 0.2 * 0.8) yapay zeka tarafından ikame edilebilir gibi geliyor
  • Vibe coding'i tanıtan Y Combinator videosunda da bazı kurucuların "ürünün kod tabanının %95'ini yapay zeka yazdı" dediği söyleniyordu; rakamlar tuhaf biçimde birbirini tutuyor

Bunun, geliştirici yetkinliğine dair beklentiyi ve MVP düzeyindeki ürünlere dair beklentiyi genel olarak yukarı çekeceğini düşünüyorum.

  • Bootstrap ve TailwindCSS sonrasında frontend geliştiriciler için "makul düzeyde UI stil verme" becerisinin temel bir yeterlilik haline gelmesine benzer

Öyleyse, eskiden zero-to-one aşamasında ürün çıkarabilme becerisiyle bile saygı görebilecek geliştiricilere ayrılan işe alım kontenjanlarının azalması gayet doğal görünüyor. Bu yüzden "artık geliştiriciye gerek yok" sözü tamamen abartı sayılmaz....

...Peki gerçekten öyle mi?

Umutlu tablo: Yine de geliştiricilerin yapacağı çok iş var

1) Pazar çok daha büyüyecek, dolayısıyla yapılacak iş de artacak

Vibe coding'in en büyük anlamı, ürün geliştirmenin giriş bariyerini düşürmesinde yatıyor

  • Eskiden zero-to-one için geliştiricilerin elle yapmak zorunda kaldığı işlerin büyük kısmını, kodlama ajanları son derece düşük maliyetle (zaman/para/insan) ikame ediyor.
  • Yani geliştirici olmadan da fikir yürütme-doğrulama döngüsünü hızla çevirmek mümkün hale geliyor

Bunun sonucunda, eskiden ortaya çıkamayan zero-to-one (hatta onun da altı) seviyesindeki ürünler patlama yaşarcasına çoğalacak ve "ben de fikrimi hayata geçirmek istiyorum" diyen insanların sayısı da çok artacak.

Bütün bunlar, "geliştiricilerin para kazanabileceği" pazarın büyümesine yol açacak. Eskiden geliştiricilerin müşterisi olmayan insanlar yeni bir müşteri kitlesine dönüşecek. Örneğin:

  • Geliştirici olmayanlar, PM'ler ve tasarımcıların kendi fikirlerini hayata geçirmesini sağlayan vibe coding eğitimleri
  • Cursor ile ürünün %90'ını yapmış ama bitirememiş kişilere ürünü tamamlamada yardımcı olan kısa süreli freelance işler
  • Bir şekilde yapılmış ürünü gerçekten işletip sürdürülebilir gelir elde etmeye bağlayan danışmanlık
  • Vibe coding'i daha iyi ve daha kolay yapmaya yardımcı çeşitli ücretli araçların geliştirilmesi

İster şirket dışında bu işlerden ek gelir elde edilsin, ister bu işleri yapan şirketler ortaya çıksın, pazar değişiminin en büyük faydasını geliştiricilerin göreceğini düşünüyorum

2) Geliştiricilerin kodlama dışında da yapabileceği ve yapması gereken çok şey var

Yapay zeka "kodlamanın" %90'ını ikame ediyor diye geliştiricilerin %90'ını işten çıkarmak mümkün değil

  • Çünkü kodlamanın ürün geliştirme içindeki, hatta daha geniş anlamda product engineering içindeki payı sanıldığı kadar büyük değil

Bir ürüne tek bir özellik eklenene kadar kabaca nasıl bir süreçten geçildiğine bakmak bile ne kadar çok adım olduğunu gösteriyor.

  1. Problemin fark edilmesi
  2. Çözüm fikrinin çıkarılması
  3. Beklenen etki ve maliyetin tahmin edilmesi, geliştirme önceliğinin belirlenmesi
  4. Bunun ürüne bir özellik olarak işlenmesi için planlama yapılması
  5. UI/UX tasarımı
  6. Mimari tasarım
  7. Backend + frontend + altyapı implementasyonu
  8. Kod inceleme, otomasyon testleri, QA
  9. Dağıtım, izleme, özelliğin tanıtımı, A/B testleri
  10. Kullanıcı geri bildirimi toplama, operasyon, iyileştirme

Vibe coding burada yalnızca 7. adımı ve 8. adımın bir kısmını üstleniyor.

  • Gerçekten üstün bir product engineer ise tüm bu adımların her birine belirli bir seviyenin üzerinde dahil olmalıdır
  • Kodlamayı yapay zeka üstlendikçe, geriye kalan işleri iyi yapan insanların değeri aslında daha da artıyor

3) Sadece kodlamaya baksak bile hâlâ anlamlı ölçüde iş var

Product engineering tarafına hiç girmesek bile yapılacak iş çok

  • One-to-ten kodlamasının son birkaç yüzdesini tamamlama işi çok olacak
  • Geliştiriciler spesifikasyon tasarımı, yapı tasarımı, işin parçalara ayrılması gibi konularda yardımcı olursa vibe coding'in maliyeti de düşecek

Ayrıca one-to-ten sonrası ürünlerde vibe coding'in birçok sınırı var

  • Kod tabanı büyür -> sınırlı context window
  • Yüksek güvenlik seviyesini korumak ve performansı artırmak için uzmanın doğrudan müdahalesi gerekir
  • Yapay zekanın iyi öğrenmemiş olabileceği kütüphane veya dillerle kodlama yapılırken de durum aynı
  • https://tr.news.hada.io/topic?id=19923 da benzer sorunlardan söz ediyor

Peki junior geliştiriciler şimdi ne yapmalı?

Dünya ister karanlık tabloya gitsin ister umutlu tabloya, çok hızlı değiştiği kesin. Özellikle işe alım kapısının keskin biçimde daraldığı bir ortamda, junior'lar nasıl öğrenmeli ve büyümeli?

<Üstün geliştiriciyi ne yaratır?> makalesini okuyup, üstün geliştiricinin 5 temel yetkinliğini şöyle tanımladım

  • İyi kod yazar
  • Kanıta dayalı karar vermeyi uygular
  • Ekip arkadaşlarının etkili karar vermesine yardımcı olur
  • Yaptığı işin mevcut değerini maksimize eder
  • Etkili ve sürdürülebilir biçimde öğrenir

Bunlar yapay zeka çağında da hâlâ önemli. Bunu umutlu tabloyla ilişkilendirebiliriz

1) Büyüyen pazardan aktif biçimde yararlanmak

Ben olsam şunları denerdim

  • Prompt engineering çalışmak
  • Yeni çıkan AI uygulamalarını tek tek kurcalamak
  • Kodlama ajanlarının gereksinimlerimi daha iyi anlaması için işi nasıl parçalara ayırmak gerektiğini öğrenmek ve denemek
  • Kendi küçük problemlerimi çözen bir uygulamayı vibe coding ile yapıp yayına almak
  • Geliştirici olmayan bir tanıdık vibe coding yapmak isterse ona (ücretli olarak) özel ders vermek
  • Tanıdıkların implementasyonu bitirip yayına almasına ve işletmesine de (yine ücretli olarak) yardımcı olmak

2) Product engineer olarak yetkinlik kazanmak

Ben olsam şunları denerdim

  • Problem fark etme, fikir üretme, planlama, tasarım, test, operasyon gibi ürünün tamamına ilgi duymak
  • Tek başına kurucu gibi uygulama yapıp işletmek, product engineering yetkinliğini doğal olarak büyütür
  • Ekip içinde iş birliğiyle ürünü iyileştirmeye çalışarak hem iş birliği hem product engineering becerilerini geliştirmeye çalışmak

Ben geliştirici işe alıp offer letter yazarken her zaman "Senden mini bir CTO gibi düşünerek çalışmanı bekliyorum" anlamına gelen bir ifade eklerdim

  • En azından sana emanet edilen projede teknik kararların nihai sorumlusu sensin
  • O projeyi başarılı kılmak için gereken tüm aşamalara dahil ol
  • Teknik ya da teknik olmayan fark etmeksizin, ekip arkadaşlarının etkili kararlar almasına ve harekete geçmesine yardım et

3) Tek tek teknolojileri derinlemesine anlamak ve kodlama sezgisi geliştirmek

Tek tek teknolojileri derinlemesine anlayan geliştiricilere sürekli talep var. Çünkü PMF'nin ötesine geçip unicorn/decacorn şirkete dönüşmek için Make it Right & Fast şart.

Bunun kestirme yolu yok. (Yapay zekadan yardım alarak da olsa) zaman yatırıp emek vermek gerekiyor.

  • Framework/kütüphane iç yapısını incelemek, tarihsel bağlamı anlamak, open source'a katkı vermek, doğrudan kütüphane geliştirmek, bug izleme/düzeltme, web standartları/performans iyileştirmeleri gibi

Aynı zamanda iyi koda dair kendi ölçütlerini oluşturmak ve iyi kodu ayırt eden bir "kodlama sezgisi" geliştirmek çok daha önemli hale gelecek. Çünkü yapay zekanın yanlış vibe'ını fark etmek, durdurmak ve müdahale etmek gerekecek.

Kodlama sezgisi geliştirmek için bilinçli pratik şart. Burada da zaman ve emek vermek gerekiyor

  • Çok sayıda iyi kod görmek, kendi yazdığın kod için ister yapay zekadan ister kıdemli geliştiricilerden bol bol geri bildirim almak, yapay zeka ya da ekip arkadaşlarının yazdığı koda bakıp "böyle giderse ne tür sorunlar çıkar" diye tahmin yürütmek ve bunu gerçekle karşılaştırmak

11 yorum

 
ethanhur 2025-03-27

Her hâlükârda yazılım mühendisliğindeki pratik işler büyük ölçüde değişecek. Sadece kod üreten makinelerin rekabet gücü düşecek, ama ben gerçekten bir ürünü uçtan uca geliştirebilen mühendislerin ayakta kalacağına bahse giriyorum.

 
bichi 2025-03-26

Klavye yazma işi azaldı ama yapay zekanın ürettiği tuzak kodları bulma işi eklendi.

 
j2sus91 2025-03-25

Gerçekten çok anlamlı ve güzel bir yazı, teşekkürler!

 
spilist2 2025-03-25

Bir yazım hatası yapmışım. TT

Özellikle ikincisi için bunun büyük bir nedeni, yapay zekayı 'dediklerimi takip ettirmenin' kolay olmamasıydı -> birincisi

 
origolucis 2025-03-25

Startup’ların ihtiyaç duyduğu product engineering alanını derinlemesine anlamak elbette iyi bir şey, ancak bence bunun yerine teknolojiyi en uç noktaya kadar takip edip sürekli bileyleyen bir yol da hâlâ anlamlı. Basit web uygulamaları geliştirme işi yapay zeka tarafından ikame edilecek olsa da, birilerinin Kubernetes’i tasarlaması ve ElasticSearch’ü dizayn etmesi gerektiğini düşünüyorum.

 
doolayer 2025-03-25

Böyle çekirdek bileşen tasarımcılarının sayısı sınırlı olduğundan, sonuçta "geliştirici" olarak adlandırılan mesleğe olan talebin azalacağı görüşüne katılıyorum.

 
spilist2 2025-03-25

Yorum yazdıkça, yazıda ifade etmek istediğim mesajın kafamda netleştiğini fark ediyorum.

Bana göre tek tek şirketler düzeyinde geliştirici talebi her hâlükârda azalacak gibi görünüyor; ancak 'geliştirme işi'ne ihtiyaç duyan şirketlerin ya da buna benzer işletme/sahısların sayısı çok daha fazla artacağı için, geliştiricilerin yapacak işi yine de çok olacak.

Elbette bunların da yerini AI alabilir ama iş o noktaya gelirse zaten yerini AI'nın alamayacağı pek bir meslek kalmaz herhâlde...

 
kakasoo 2025-03-25

Çok yerinde sözler!

 
nowdoit7 2025-03-25

Katılıyorum. Bundan sonra işlerin AI coding ile yapılacak kısmı ile insanların yapacağı tasarım ve inceleme kısmı diye ayrılacak gibi görünüyor; proje bütününü anlayan bir yapay zeka ortaya çıkana kadar da birlikte var olacaklar gibi.

 
spilist2 2025-03-25

Katılıyorum! Elbette orada da yapay zeka yardımcı olur ama sadece vibe ile zor olur diye düşünüyorum.

 
spilist2 2025-03-25

Bu arada, vibe coding ile yapılmış oyun bu: https://www.stdy.blog/vibe-go-stone/