Henüz Kimse Yapay Zeka ile Nasıl İnşa Edileceğini Bilmiyor
(worksonmymachine.substack.com)- Şu anda yapay zeka geliştirme metodolojisi henüz yerleşmiş değil; herkes deneme yapıyor
- Yapay zeka çağında geleneksel uzmanlık kavramı anlamını yitiriyor ve herkes kalıcı bir acemi
- Gerçek geliştirme süreci, doğaçlama biçimde biriken belgeler ve tekrarlanan deneme-yanılma yoluyla ilerliyor
- Yapay zeka ile iş birliği yapıldığında kısa odak süreleri ve asgari girdilerle bile devasa sonuçlar üretilebiliyor
- Kişinin kendi belge sistemi bile geçici; herkes tek seferlik deneyler sürdürme sürecinde
The Great Experiment Nobody's Running the Same Way
- Yapay zeka geliştirmede kimse kesin yöntemi bilmiyor
- Malcolm Gladwell'in 10.000 saat teorisinde olduğu gibi biriken uzmanlık, burada etkisini yitiriyor
- Yapay zeka araçları o kadar hızlı gelişiyor ki ustalık kazanmak zorlaşıyor
- Yapay zeka eşli programlama deneyimi bile 2 yılın altında; herkes sürekli başlangıç seviyesinde
My Current Experiment (Subject to Change)
- Çalışmaya başlamadan önce başvurulan 4 ana belge var
pair_programming.mdproject_plan_{some extension}.mdtechnical_considerations.mdmcp-browser-architecture.md
- Bu belge sistemi de en baştan tasarlanmadı; doğaçlama biçimde birikmiş bir sonuç
- Başta yalnızca mimariyle ilgili tek bir belge vardı; tekrar eden sorunlar ve bilgi aktarımındaki problemler nedeniyle zamanla sayı dörde çıktı
- Dört belgenin seçilme nedeni bunun en iyi çözüm olması değil, artık daha fazlasını eklemeye gerek yokmuş gibi hissettirmesi
- Bazen kendi kendine “işte mimari belge bu”, “işte bu süreç resmi süreç” diye rol yapıyormuş gibi hissetmek de mümkün
- Yazılım gerçekten çalışıyor ve önemli olan da bu tür geçici sistemlerin bile sonuç üretebilmesi
- Her belgenin rolü şöyle
- Architecture Overview: README'den yola çıkıp “bu yazılım ne yapıyor gibi görünüyor”u kaydetmek
- Technical Considerations: Tekrarlanan hayal kırıklıkları veya sorunları belgelemek; Claude kafası karıştıkça ayrıntı eklemek
- Workflow Process: Tekrarlanan prosedürleri belgelemek; aslında resmi kurallar ya da dokunulmaz bir metin değil, bu sefer tesadüfen işe yarayan yöntemlerin toplamı
- Story Breakdown: 15-30 dakikalık parçalara bölünmüş iş kümeleri. Claude çok çabuk unuttuğu için konuşma geçmişini sık sık tazelemek amaçlanıyor
Time Dilation in the Age of AI - Yapay Zeka Çağında Zamanın Bükülmesi
- Son dönemde Protocollie geliştirme sürecinde, yapay zeka ile iş birliği klasik yazılım geliştirmedeki zaman algısını tamamen altüst eden bir deneyim oldu
- Claude'a belirli bir özellik üzerinde çalışmasını söyledikten sonra arada kişisel yaşama dönmek, sonra da belli aralıklarla kontrol ve kısa geri bildirim vermek üzerinden proje ilerledi
- Gerçek anlamda odaklanıp “çalışılan” süre günde yaklaşık 90 dakika olsa da yapay zeka bu arada hızla binlerce satır kod üretti
- Girdiyle kıyaslandığında çıktının bu kadar hızlı ve fazla olması, bildiğimiz girdi-çıktı, emek-sonuç, zaman-ilerleme denklemini bozuyor
- Bazen bu kadar hızlı geliştirme suçluluk duygusu bile yaratıyor; geleneksel geliştirme paradigmasına uymadığı için kafa karışıklığı ve hatta zaman zaman hile yapıyormuş hissi doğuruyor
Spagetti Deneyi Aşaması
Mevcut yapay zeka geliştirme ortamı “spagetti deneyi” aşaması olarak tanımlanıyor
- Yani duvara deneme amaçlı spagetti fırlatma süreci başlı başına anlamlı; neyin yapışıp kaldığı o kadar önemli değil. Asıl deney, fırlatma eyleminin kendisi
- Her türlü boşa kürek çekme, başarısız deney ve tesadüfen işe yarayan prosedür, kolektif deneyin birer veri noktası işlevi görüyor
- Kullanılan 4 belge sistemi de her an anlamsız hale gelebilir; önemli olan deney ruhunu sürdürmek
Programlama Artık Nedir? - What Even Is Programming Anymore?
Kodlama tarihine bakıldığında, soyutlamanın gelişimiyle birlikte “ne istediğimi anlatırsam onun hayata geçirildiği” bir çağa girildiği görülüyor
- Yapay zekadan yararlanmak, yalnızca yeni bir soyutlama katmanı değil; tamamen farklı bir varlığa dönüşüyor
- Bugünün programlaması artık sözdizimi bilgisi, algoritma anlayışı veya sistem tasarım yeteneğinden çok 'somut hayal gücü' ve 'niyeti doğru ifade etme' gibi yeni beceriler gerektiriyor
- “İsteneni tutarlı biçimde açık anlatabilme yeteneği” her şeyden daha önemli hale geliyor
Dört Belgeli Sistemin Felsefi Anlamı - The Four-Document System as Accidental Philosophy
- Bu 4 belgeli yapı sonuçta hafıza ve unutma, yani “yeniden yaşamak istemediğim deneyimlerin kaydı”
- Architecture Overview: “Hafızamı kaybetsem bilmek isteyeceğim şeyler”
- Technical Considerations: “Tekrar yaşamak istemediğim sorunlar”
- Workflow Process: “Kaçırmak istemediğim kalıplar”
- Story Breakdown: “Her seferinde yeniden başlıyormuş gibi bir durumda nasıl ilerleme sağlanır”
- Tüm belgeler sonuçta gelecekteki kendine gönderilmiş mesajlar işlevi görüyor
- Esasen bilgi kaybına karşı kişinin kendine bıraktığı bir rehber niteliği taşıyorlar
Rahatsız Edici Plato ve Kalıcı Acemilik - The Uncomfortable Plateau
Şu anda herkes sanki junior geliştirici olmuş gibi, kalıcı olarak istikrarsız bir acemilik halinde
- Ancak geleneksel junior'lardan farklı olarak, değişim hızı yüzünden uzmanlaşmaya zaman bile kalmıyor
- Sürekli değişen “fizik yasaları” içinde, istikrarlı ustalıktan çok uyum sağlama ve deney ruhu önem kazanıyor
- Bu belirsizlik, kontrol takıntısı olanlar için ürkütücü, ama kabul edildiğinde özgürleştirici de olabilir
Where This All Goes
Sırada ne yapılacağı, hangi sürecin kullanılacağı ya da bu kez oluşturulan dört belgenin kullanılmaya devam edilip edilmeyeceği bilinmiyor
- Tüm geliştiriciler aynı anda hem kendi rutinlerinde uzman, hem de yeni durumlarda tam bir acemi
- Dört günlük işin geçmişteki birkaç aya denk gelebilmesi, “isteneni açıklayabilme becerisi”ni belirleyici yetenek haline getiriyor
- Bu dört belge de bir tavsiye ya da şablon değil, yalnızca kolektif deneyin bir izi
- Belgeler, süreçler ve yöntemlerin tümü geçici ürünler; başkasının yöntemi sizin cevabınız olmayabilir
Sonuçta hepimiz çekilen deniz sırasında kumdan kaleler (yazılım) inşa ediyoruz ve ilerleme dalgasının yakında bunları yeniden silip süpüreceğini biliyoruz
Yakında birileri 3 belgeli sistem, 5 belgeli sistem ya da bambaşka bir yaklaşım deneyecek ve o yöntem de etkili olabilir
Sonuç
- Yapay zeka ile geliştirme, kolektif bir deney ve yaratıcı deneme-yanılmanın sürekliliği
- Bir haftalık süreç bile çoktan geçmişten kalma bir eser sayılabilecek kadar hızlı değişiyor
- Birinin bıraktığı izler faydalı olabilir ama asıl önemli olan, herkesin kendi yolunu kurması
Son olarak, kullanılan dört belge şu anda GitHub üzerinde açık durumda
- Bu, mutlak doğru ya da şablon değil; belirli bir dönemin tekil deney örneği olarak görülmeli
- Başkalarının izlerinden yararlanılabilir ama birebir takip etmek gerekmez
- Kendi deneylerini ve metodolojini geliştirmek, yapay zeka çağının yeni geliştirme ekosistemidir
4 yorum
Hafta sonu çevirip paylaşmayı düşünmüştüm ama GN+ işi elimden kapmış 🥲
"Belge sisteminin de en baştan tasarlanmış bir şey değil, doğaçlama biçimde birikmiş olmasının sonucu" kısmında güçlü bir empati ve hafif bir gülümseme geliyor. haha
Ne alaka, yine bir garip tarikatçı gibi yorum yapmış, sanki hoca falanmış gibi.
Hacker News görüşü
Bu yazıya gerçekten katılıyorum. Kidlin’s Law, yani “Bir problemi açıkça yazabiliyorsanız, onu zaten yarı yarıya çözmüşsünüzdür” ilkesini tesadüfen keşfettim. Bugünün yapay zeka çağında bu çok güçlü bir ilke. Doğal dil, teknolojiyle iletişimin başlıca aracı haline geldikçe, problemi net tanımlayabiliyorsanız yapay zekanın potansiyelini de en üst düzeye çıkarabiliyorsunuz. Asenkron kodlama yaklaşımı da gerçekten ilginç. Ben kişisel olarak Repl.it’i çok sık kullanıyorum ve problem çözmeye odaklanabilmek inanılmaz bir değişim. Kodlama araçlarını kullanırken Mario Kart’ta yıldız ya da mantar almış gibi hissediyorum. Çok heyecan verici, ama bazen yapay zeka tamamen tuhaf yönlere gittiğinde gerçek zamanlı karar müdahalesi de gerekiyor. Tek bir stack’i yönetmek bile zordu, şimdi ise sonsuz stack’lerle uğraşıyormuşum gibi geliyor
Ben de yazılım mühendisi olarak kendimi geliştirirken, yapmak istediklerimi anlatabilmek için yazılım dünyasının terminolojisini öğrenmeye çok zaman harcadığımı sık sık hatırlıyorum
Repl.it bazen gerçekten iyi çalıştığında birkaç dakikada bitecek iş, bazen bütün öğleden sonrayı alabiliyor. Ama bazen prompt kutusunun altındaki önerileri deneseniz bile düzgün çalışmaması çok sinir bozucu
Aslında problemi açıkça ifade etmek eskiden de her zaman zordu, şimdi de öyle. Açık doğal dili koda dönüştüren araçların ortaya çıkması gerçekten harika ama AGI gelse bile açık bir spesifikasyon üretme işi değişmeyecek. Bu araçlar sayesinde kodun kendisiyle boğuşmaya daha az zaman harcayabiliriz, ama günün sonunda gerçekten net bir şartname yazmak hâlâ en zor kısım
Yeni programlama tarzını çok seviyorum. Bunun nereye gideceğini bilmiyorum ama şimdilik memnunum. Artık normalde dinleneceğim zamanlarda bile kod üretiyorum ve bu bana dinlenmek gibi geliyor. Özellikle uzun yıllar çalışmış kıdemli geliştiriciler için çok iyi. Bugünlerde düzenleme işi çoğunlukla sıkıcı geliyor. Koda bakıp yanlış desenleri fark ettiğinizde, yeni fikirleri denemek için çok sayıda şeyi değiştirmeniz gerekiyor; eskiden Stack Overflow’da arayıp düşünmem gereken şeyleri şimdi tek bir Copilot ipucu ya da Claude doğrudan çözüyor. Örneğin sahte bir hisse senedi borsası yaptım; normalde gerçek bir borsaya bağlanma işi yüzünden sık sık ertelediğim bir şeydi. Şimdi ben HN okurken Claude hepsini kuruyor. Buna strateji implementasyonu da eklenince, aslında sadece sıkıcı tekrar işlerinden ibaret olan kısımlar hemen hallediliyor. Yazım hataları, bağımlılık ekleme gibi şeyler yüzünden eskiden çok zaman gidiyordu, artık buna gerek yok. Bunun kodu dağınık hale getirip getirmeyeceğinden endişe edebilirsiniz ama ben her zaman Claude’la konuşarak değişiklikleri eleştirel biçimde gözden geçiriyorum. Deneyim yardımcı oluyor, ama yapay zekanın yanlış yola girdiğini de çabuk fark edebiliyorum. Yani bu araçlarla kariyerimin tam doğru anında tanışmış oldum. Sorun ise junior geliştiriciler için duruyor. Sanki basamakları kaybolmuş bir dağın zirvesine tek seferde çıkıyorlar; nasıl gelişeceklerini merak ediyorum
Junior geliştiricilerin geleceği konusuna katılıyorum. Neredeyse 50 yaşındayım ve 30 yıldan uzun süredir birçok alanda programlama yaptım; deneyimime dayanarak ajanları iyi yönlendirmeyi ve mimariyi sağlam kurmayı biliyorum. Deneyim olmadan her şey AI tarafından pişirilip önlerine gelirse, gençlerin nasıl gelişeceğini gerçekten merak ediyorum. Bunu zaman gösterecek
Ben de büyük dil modellerini keyifle kullanıyorum ama sürekli prompt girmek hem sıkıcı hem de biraz tedirgin edici. Programın nasıl çalıştığını tam olarak bilmiyormuşum gibi hissettiriyor. Bir şeyi bizzat inşa etmek gerçekten eğlenceli ve daha önce yaptığım tekrar işleri ya da umursamadığım görevleri LLM’ye bırakıyorum. Claude ile terminal tabanlı bir snake oyunu bile yaptım, gerçekten etkileyiciydi
Eski ufak tefek işlere artık geri dönemeyeceğinizi fark edip etmediğinizi merak ediyorum. LLM’ler çıktığından beri, çalışırken dışarı çıkma isteğim daha da arttı. Eskiden olduğu gibi 12 saat monitöre bakıp iki kara kutuyu birbirine bağlayamadan zaman kaybetmek zorunda kalmayacakları için yeni geliştiricileri biraz da kıskanıyorum
Gerçekten implementasyon yaparken herkes her şeyi baştan sona tek seferde mi hallediyor, merak ediyorum. Ben her zaman yinelemeli ve kademeli biçimde yazıp rafine ederek ilerliyorum. Çizime benzetirsek, önce genel çerçeveyi kurup sonra giderek daha ince detaylarla geliştiriyorum. Her aşamada ne yapmak istediğim biraz daha netleşiyor ve en az çabayla en büyük etkiyi elde etmeye çalışıyorum. Kodlamada da yaklaşımım refaktör odaklı: önce minimum çalışan kodu yazıp TODO yorumları bırakıyor, sonra iteratif biçimde geliştiriyorum
Bu araçların, daha önce binlerce kez yaptığımız sıkıcı işleri üstlenmesi gerçekten heyecan verici
Benim gözümde AI, internette var olan tüm bilgiler üzerinde konuşabileceğiniz yeni nesil bir Google araması. Arama motorları yaygınlaştığında gazeteler, telefon rehberleri, ansiklopediler, seyahat acenteleri gibi birçok sektörde işler kaybolmuştu; AI da benzer bir dönüşüm getiriyor. Ama bunun insanların düşündüğü kadar varoluşsal bir kriz olduğunu sanmıyorum. AI sadece bir araç. Zeki ve yaratıcı insanlar bu aracı kullanarak harika işler yapacak. Sonuçta kullanım kullanıcıya bağlı. Arama artık sohbete dönüştü. Eskiden kendiniz arıyordunuz, şimdi sohbet ediyorsunuz ve AI sizin yerinize arayıp daha fazlasını da yapıyor
Sohbet tabanlı LLM arayüzünün en iyi yöntem olup olmadığından emin değilim. Daha akıllı bir yaklaşım gerekiyor gibi görünüyor
Google’ın altın çağından farklı olarak artık sinyal/gürültü oranı daha kötü ve verinin kaynağı da daha belirsiz
Artık Google arama sonuçlarında işe yarar bilgiden önce AI tarafından üretilmiş çöpün öne çıktığını hissediyorum
Modern arama motorları sadece cevabı veriyor, ama cevaba giden süreci vermiyor; bu yüzden bilgiyi doğru bulup kaydeden insanların rolü yok oluyor. Bu ortadan kalkarsa sonunda herkes yönünü kaybedecek. AI mevcut bilgiyi yeniden kullandığı için, içerik üreticilerine, özellikle de iyi gazetecilere gelir geri döndürmenin bir yolu bulunmalı. Aksi halde demokratik toplumun temeli zarar görebilir. Haber sektörü zaten yıllardır kriz içindeydi ve bunun sonucu olarak güvensizlik, kutuplaşma, yanlış bilgi ve dış müdahale gördük. AI sektör için son ölümcül darbeyi vurabilir. Bu yalnızca işlerin yerini alması meselesi değil; şu anda gittiğimiz yol oldukça karanlık
Arama dışında da çeşitli alanlarda açıkça faydalı
Claude Code’u telefondan bir bulut VM üzerinde çalıştırıp, yürüyüşte ya da bisiklete binerken geri bildirim vererek çalışmayı sürdürmek istiyorum
https://vibetunnel.sh
Girdi ve çıktı oranı ilginç. Genelde çıktı miktarını en üst düzeye çıkarmaya çalışırız ama şimdi tam tersi. Ben maksimum hacimden çok, işin sürecinin somut ve doğrulanabilir adımlara bölünmesini istiyorum. Cursor ile birlikte gereksinim yazarken başta iyi gidiyor ama bazen yanlışlıkla plandan sapıp büyük miktarda kod üretiyor. Markdown başlığından sonra boş satır ekleyememesi ya da tekrar tekrar hatırlatılması gereken ufak şeyler de var. Yineleme süreci, kalite ve tutarlılık üzerinde biraz daha fazla kontrol sahibi olabilsem keşke diye düşünüyorum. AI, test edilebilir kapalı problemlere çevrilebildiğinde gerçekten parlıyor. Benim ihtiyacım, açık problemleri kapalı problemlere dönüştürmeme yardımcı olacak araçlar
“Ofise giriyorum, Claude’un yaptığını test ediyorum, çalışıyorsa commit edip push’luyorum” deneyimi tekrar tekrar yaşandıkça, bir siber güvenlik danışmanı olarak gelecekte gerçekten çok para kazanabileceğimi düşünüyorum
Bunun vibe coding olmadığını, tamamen yeni bir şey olduğunu düşünüyorum. Ben buna “flex coding” diyorum. Bir öğleden sonra içinde bütün bir uygulamayı yaptım ve aynı zamanda iyi bir baba oldum. “Şimdi sunucu bağlantı arayüzünü yap” diyorum, Claude kodluyor, ben de günlük hayatıma dönüyorum. Kahvaltı hazırlıyorum, oğlumla oynuyorum, TV izliyorum ve bu aralarda Claude kodlamaya devam ediyor. Her bir iki saatte bir kısa bir uğrayıp test ediyor ve geri bildirim veriyorum
Duygusal olarak çok cazip ve birçok kişinin hayal ettiği bir yaşam tarzı olabilir ama Claude’un kodu gerçekten güvenilecek seviyede mi? Müşteriye fatura keseceğiniz ya da itibarınızı koyacağınız bir üründe kullanabilir misiniz? Benim cevabım “hayır”. Kullandığımda sık sık referans hataları, mevcut tipleri kopyalayıp sadece isim değişiklikleri, hatta hiç tip hatası olmayan durumlar gördüm. Test kodu yazdırdığımda da, başarısız olması gerekiyorsa gerçekten başarısız olmak yerine kendi kendini doğrulayan tuhaf testler üretebiliyor. Değerli zamanınızı ailenizle geçirmeniz güzel, ama yaptığım uygulamayı kritik bir yerde kullanmayı tavsiye etmem
Böyle çalışan birine neden maaş verelim ve ben bunu kendim yapabiliyorsam neden yazılıma para ödeyeyim diye düşündürüyor
Şaka yollu bir uyarı: yakında Claude sana da biraz iş yapman gerektiğini söyleyerek söylenmeye başlayabilir
LLM kullanan yazılım araçlarında sınırlara çarpıyorum. Tüm OpenRouter Key tabanlı uygulamalara ortak uygulanacak tek bir global sistem prompt’u belirlemenin yolu yok ve bir uygulamadaki sohbeti diğerine taşımak da zor. Tüm uygulamalara aynı MCP araç erişimini vermek bile düzgün şekilde mümkün değil. Şu anda Claude Code UX en iyisi gibi görünüyor ama Claude aboneliğine bağlı kalmak istemiyorum; kendi anahtarım üzerinden istediğim sağlayıcıya bağlanmak istiyorum
Görünüşe göre güvenlik, uluslararasılaştırma, yerelleştirme, erişilebilirlik, kullanılabilirlik gibi konuları başarıyla prompt’lamış olma kısmı atlanmış. Bu kalite unsurları olmadan kendine “yazılım üreticisi” diyen çok fazla amatör var ve sorun da bu. Bu boyutlar eksikse ticari yazılımda asla başarılı olamazsınız. Bunların prompt’la kolayca çözülebileceğini düşünüyorsanız, o alanda ciddi deneyiminiz yok demektir
Adil olmak gerekirse, ticari yazılımların birçoğunda da bunların gerçekten dikkate alınmadığı oluyor
Ben de şüpheliyim ama bağlanan dört belgeden en azından erişilebilirlik ve kullanılabilirlik dokümanları vardı. Uluslararasılaştırma ve yerelleştirme görünmese de özünde çok farklı olduklarını düşünmüyorum. Güvenlik ise bana gerçekten ayrı bir alan gibi geliyor
“Dört dokümanlık sistemim mi? Sonuçta sadece örüntü haline gelmiş spagetti ve yarın hepsi çökebilir. Sonra tekrar spagetti fırlatırız.” Geliştirmenin bu şekilde ölçekleneceğine hâlâ inanan çok kişi olması şaşırtıcı
Son zamanlarda model tabanlı geliştirmeyi deneysel olarak inceliyorum ve yazıdaki “programlama nedir?” kısmıyla derin biçimde rezonans kurdum. 25 yıllık deneyimimi ve bilgisayar bilimi bilgimi sonuna kadar kullanıyorum ama bunun artık elle kod yazılan geleneksel programlama olduğunu sanmıyorum. Şimdi bir şeyi el işçiliğiyle üretmekten çok, araçları yöneten bir pilot gibi hissediyorum. El işçiliğini seven insanların önümüzdeki beş yıl içinde sektörden ayrılma ihtimali yüksek gibi geliyor. Elbette hâlâ elle yapılması gereken kısımlar olacak ama yeni bir metodoloji açılıyor. Şu an herkes bu metodolojide yetkin değil ama bu da sektörün bir parçası olacak