1 puan yazan GN⁺ 5 시간 전 | 1 yorum | WhatsApp'ta paylaş
  • Üretken yapay zeka ile bir projeyi tamamlasanız bile, talep eden kişi ile fiilen üreten özne farklıysa “bunu ben yaptım” duygusunu elde etmek zor
  • Prompt yazmak vizyon, muhakeme, iletişim ve teknik beceri gerektirir; ancak doğrudan üretme becerisinden çok üretimi başka bir varlığa yaptırma becerisine daha yakındır
  • Elle yazılan 177 satırlık İspanyolca flashcard sistemi Claude’a göre yaklaşık 50 kat daha uzun sürdü, ama yapay zekanın yazdığı herhangi bir koddan daha büyük bir gurur verdi
  • Derleyici, assembler ve çekiç üreticinin araçları gibi hissedilirken, insan diline yanıt veren yapay zeka talimat alan bir kişi gibi göründüğünden araç ile vekil üretici arasındaki sınırı bulanıklaştırır
  • Yapay zeka ile üretim de yaratıcı bir eylem olabilir; ancak bir sonucu tamamlamak ile onu doğrudan yapmak kişisel tatmin açısından aynı değildir ve bu sınırı net biçimde tanımlamak da zordur

Yapay Zeka Geliştirmenin Değiştirdiği Başarma Duygusu

  • Üretken yapay zeka ve LLM kullanan geliştiriciler birbirine zıt değişimleri aynı anda yaşar
    • Elle kod yazmanın zanaatkârlığını, düşük seviyeli problem çözmeyi ve eğlenceyi kaybedebilirler
    • Üst seviye problem çözme artabilir, ertelenmiş projeler tamamlanabilir ve yeni bir keyif doğabilir
  • Bu kazanç ve kayıpların ötesinde asıl mesele, yapay zekanın sizin yerinize tamamladığı sonucu kendiniz yapmış gibi hissedip hissedemeyeceğinizdir
  • Bu düşünce, 1980’lerin mikro bilgisayar döneminden beri kod yazan, sektörde 20 yıl çalışmış ve şu anda bilgisayar bilimi öğreten bir geliştiricinin deneyiminden yola çıkar
    • Yapay zeka ütopyası ile felaket ölçeğinde kendisini %65 felaket tarafında değerlendiriyor
    • Claude Code kullanırken doğrudan kod yazmayı da sürdürüyor

Yapay Zeka Çıktılarıyla Süslenen “Çok Yönlülük”

  • Giriş bölümünde doğrudan yapılmış gibi görünen çeşitli sonuçlar yer alır
    • Savaş sahnesi içeren bilimkurgu romanı The Vorrkai Interval
    • Pastel renkli ağaç baskı Mirrors of the Machine
    • Yeni yapılmış sedir ağacından giriş verandası
    • Rust ile yazılmış TUI macera roguelike kodu
  • Gerçekte roman, resim ve kod yapay zeka tarafından üretilmiş, veranda ise ücret alan usta işçiler tarafından inşa edilmiştir
  • Kendisinin rolü üretimi başlatmak ve gereksinimleri iletmek olduğu için, bu sonuçları kendisinin yaptığını söylemek rahatsız edicidir

“Bunu Ben Yaptım” Demenin Zor Olmasının Nedeni

  • Başka birinin inşa ettiği veranda için “ben kurdum” demektense “kurdurttum” diye ayırmanın daha doğru olduğunu düşünür
  • Claude’un ürettiği kodu da “ben yaptım” değil, “benim için yaptırdım” diye ifade eder
    • Bir istihdam ilişkisi olmayan yapay zeka çıktısına kendi adıyla MIT lisansı koymaktan da rahatsız olduğu için Unlicense kullanır
  • Yönetici olarak çalıştığında da “ürünü ben yaptım” değil “ekibimiz yaptı” der; bir LLM’i yönetseydi “ajanlarım yaptı” diye ifade ederdi
  • Projeyi bitirmek başlı başına güzel olsa da, kendi başlattığı bir projeyi başkası tamamladığında tatmin doğrudan üretmeye göre çok daha azdır
  • Kaybedilen şey yalnızca kodlama becerisi ya da problem çözmenin eğlencesi değil, bir şeyi doğrudan yapma deneyimidir

Elle Yapılmış 177 Satırlık Flashcard

  • Eşi, bir hesap tablosuna istediği kelimeleri koyup bunları flashcard olarak görebileceği basit bir İspanyolca öğrenme sistemi istedi
  • Uygulamayı kendisi üstlendi ve Claude’a kod üretmemesini söyledi; yalnızca Google Sheets’ten veri çekmenin en kolay yolu gibi temel bilgileri sordu
    • Google Sheets’in CSV endpoint’ini kullandı
    • JavaScript 112 satır, CSS 33 satır, HTML 32 satır olmak üzere toplam 4 dosya ve 177 satır yazdı
  • Claude’un yapmasına kıyasla yaklaşık 50 kat daha uzun sürdü, ama kendi adını koyup bunu doğrudan yaptığını söyleyebiliyor
  • Büyük ya da çığır açıcı bir kod olmasa da Claude’un yazdığı herhangi bir koddan çok daha fazla gurur veriyor
  • Talebi başlatan eşinin flashcard sistemini kendisinin yazdığını söylememesi gibi, talep eden kişi otomatik olarak üretici değildir

Prompt Yazmak Ayrı Bir Beceri

  • Etkili promptlar açık bir insan katkısı gerektirir
    • Vizyon uygulanmalıdır
    • Sonuç değerlendirilmelidir
    • İletişim ve prompt yazma becerisine sahip olunmalıdır
  • Tüm promptlar ve yapay zeka kullanıcılarının verimliliği aynı olmadığından, prompt yazmada da önemli bir beceri vardır
  • Ancak bu, doğrudan üretme yeteneğinden çok istenen şeyi etkili biçimde yaptırma yeteneğine yakındır
  • Yazılım için prompt vermek de doğrudan yazılım yapmak yerine, üretimi başka bir varlığa havale etmek gibi hissedilir

Derleyici ile Yapay Zeka Arasındaki Gri Alan

  • C veya Rust programı yazarken gerçekte çalıştırılan makine kodunu doğrudan yazmazsınız; yine de programı kendiniz yazmış gibi hissedersiniz
  • C kodundan makine koduna dönüşüm matematiksel olarak hassas bir sürece yakındır, ama birkaç soru kalır
    • Clang ve GCC farklı komutlar ürettiği için sonuç katı biçimde tek bir şeye indirgenmiş değildir
    • Platforma göre makine kodu değişse de C kodu taşınabilirdir
    • Yalnızca Linux’ta derlenmiş olsa bile Windows’ta çalışan programı da kendiniz yazmış sayabilirsiniz
  • Claude’dan özyinelemeli Fibonacci C programını x86_64 Linux assembly’ye dönüştürmesi istendiğinde derlenip çalıştırılabilen kod üretildi
    • Çıktı 0: 0 ile 9: 34 arasında doğru Fibonacci dizisini gösteriyor
    • Çıkış durumunu 0 olarak ayarlamak için XOR da kullanıyor
  • Orijinal C kodunu doğrudan yazdığı için, assembly’yi Claude üretmiş olsa da programı kendisinin yazdığını hissediyor
  • Assembly’den makine koduna dönüşüm katı ve zekâ içermeyen bir süreç olduğundan, çivi çakarken çekiç kullanmak gibi üretim eylemini elinizden almayan bir araç kullanımı olarak kabul edilir

Araç ile Vekil Üreticiyi Ayıran Ölçüt

  • Doğrudan yapılan işler arasında C kodu yazıp çalıştırmak, çekiçle çivi çakmak ve assembler ile assembly’yi makine koduna çevirmek vardır
  • Talimat verip başkasına yaptırılan işler arasında yazılım yazdırmak, veranda inşa ettirmek ve resim yaptırmak yer alır
  • ChatGPT’nin ürettiği resmi kendisinin çizdiğini hissetmez; ancak çekiç ya da derleyici için bir şeyleri kendi yerine yapmasını rica ettiği hissi yoktur
  • Claude’dan C kodunu derlemesini isteme örneği iki kategoriye birden girer
    • Doğrudan yazdığı C kodunu çalıştırmak olarak görülebilir
    • Yapay zekadan yazılım yazmasını istemek olarak da görülebilir
    • Aynı sonucu yalnızca İngilizce gereksinimlerle de ürettirebilirdi
  • Yapay zeka, kesin olmayan insan dilini anlayıp insan gibi yanıt verdiği için derleyici ya da çekiçten çok yönetici ile ast arasındaki ilişki gibi hissedilebilir
  • Yapay zeka gömülü bir çekiçten çivi çakmasını isteseydi, yaratıcı sürece katılmış olsa bile doğrudan çekiç salladığını söylemesi zor olurdu
  • Gri alan incelendikçe, yapay zekaya üretim yaptırmanın da yaratıcı bir eylem olabileceği düşüncesi güçlenir; ancak neye doğrudan yapılmış denebileceğinin sınırı hâlâ belirsizdir

Sonuca Fiilen Katılan Emek

  • Bilimkurgu sahnesi için, kahraman ve iki mültecinin düşmanın lazer saldırısına sıkışıp bir çıkış yolu bulduğu üç paragraf ile roman başlığını üretmesini isteyen bir prompt kullanıldı
  • Resim için, birbirine dönük ve bilgisayara odaklanmış iki büyücü tarzı hacker’ın ağaç baskı ve pastel renklerle oluşturulması, iki tarafta karşıt ama tamamlayıcı renklerin kullanılması istendi
  • Oyun için Ultima I’e benzeyen fantastik bir TUI oyunu istendi
    • Harita hücresi başına 3×3 karakter, ekran başına 7×7 harita hücresi ve su animasyonu talep edildi
    • Perlin noise tabanlı prosedürel dünya, rastgele hareket eden önceden tanımlı canavarlar ve D&D tarzı özellikler dahil edildi
    • Sınıfsız sıradan bir oyuncu kullanılması, Rust ve Ratatui ile uygulanması, UI ile oyun mantığının ayrılması istendi
  • Ahşap işinde “giriş verandasını değiştirin” diye istekte bulunuldu; ancak girişteki fotoğraf için gereken tahta parçasındaki bir çiviyi gerçekten kendisi çaktı
  • Yazıda kullanılan em dash bilinçli olarak seçildi ve Vim digraph’i ^K-Mdir

1 yorum

 
GN⁺ 5 시간 전
Hacker News görüşleri
  • LLM ile doğrudan tek satır kod yazmamış olsam bile ortaya çıkardığım şeyle gurur duyabilirim
    Harika bir programcı olduğumu iddia etmiyorum ama kod yazmak zaten baştan beri bitmiş bir ürün ortaya koymanın aracıydı
    Bahçeyi bizzat ben inşa etmeyip bir peyzaj şirketi tutmuş olsam da, benim tasarladığım bahçeden tatmin duyabilmem gibi
    Vibe coding ile yaptığım gitar tab editörü, başka yazılımlarda olmayan özelliklerle gerçek bir sorunu çözüyor ve iş-aile-hobi dengesinde AI olmadan bunu asla yapamazdım

    • Geçen hafta restoranda marulsuz, ekstra soğanlı sipariş ettiğim cheeseburger da benim isteğim olmasa var olmayacaktı; o halde bunu benim “yaptığımı” söyleyebilir miyim, emin değilim
      Fıstık ezmeli jöleli sandviç gibi yaratıcılık gerektirmeyen ama doğrudan yaptığımız şeyler için de “yaptım” deriz; el testeresi gibi el işini ikame eden bir araç kullansak da bu değişmez
      Ama web'den Articulated dragon.stl indirip sadece yazdır düğmesine basmakla, onu kendin tasarlayıp yazdırmak aynı şey değil
      CNC ve 3D yazıcı kullanmak da el işinden farklı bilgi ve beceri gerektirir ama araçlar kolaylaştıkça sınır bulanıklaşır
      Kesin bir çizgi olmasa da, “yeni araçları hile sayıp her şeyi elle yapmak” ile “sandviç sipariş edip beklemek” arasında bir yerde duruyor
    • “Ben olmasaydım var olmayacaktı” mantığını savunmak zor
      Bir projeyi başka birine devrettiysen, onu yönettiğini ya da bazı kısımlarını tasarladığını söyleyebilirsin ama doğrudan sen yaptın diye tüm krediyi almak zor
      Fiilen üretimi yapmamış olsan bile, bir sorunu çözmek için yön ve vizyon sunmuş olmakla yine de haklı olarak gurur duyabilirsin
    • “Ben yaptım” ifadesi, ellerini kirli kile gerçekten daldırma eylemi için ayrılmış bir kavram; sadece sonuca ulaşan diğer yaklaşımlardan farklı, kendine özgü bir anlamı var
    • making daha çok aktif biçimde bizzat yapma anlamı taşırken, producing daha çok denetleme ve koordine etme anlamı taşıyor
      Oyun geliştirmede yapımcılarla çalışmaya başlayınca bu ayrım daha da netleşti
    • LLM ile yapılmış, bizzat yapılmış değil
  • Son zamanlarda Claude ile ana kısımlarını yazdığım yan projeler istediğim işlevleri yerine getirse de, tuhaf biçimde çıkan şeyden kopukluk hissi yaşadım ve boş zamanımda AI'ı nasıl kullanmam gerektiğini düşünmeye başladım
    Derleyici, hassas komutlara deterministik ve tutarlı sonuçlar verir; ama Claude, koddan daha az kesin talimatları yorumlayıp her seferinde farklı sonuçlar ve istenmeyen davranışlar ekleyerek kullanıcı adına karar verir
    Büyük Markdown spesifikasyonları ya da ayrıntılı testlerle onu sıkı biçimde yönlendirebilirsin ama bunu yazmaya harcanacak zaman, doğrudan kodlamaktan çok da farklı olmayabilir
    AI, tıkandığın bir problemi çözmede ya da bir kavramı kişiselleştirerek açıklamada harika; ama kararı ona bıraktığın anda yaratım yerine sonucu öncelemeye başlıyorsun
    Yaratma eyleminin kendisini sevdiğin için yaptığın yan projeler, üründen çok sanata yakındır; bu yüzden AI ürün için uygun olsa da sanat için uygun olmayabilir

  • Teknoloji alanında ayrıntıları sevenler ve sistemleri sevenler var; sistem odaklı olanlar LLM'leri eğlenceli ve tatmin edici bulurken, ayrıntı odaklı olanlar tam tersini hissedebilir
    Sinir ağları öncesi bilgisayarlı görüyle tanınan bir tanıdığım, geçmişte ilk kez çözdüğü sayısız iş olduğunu ama artık yazılım geliştirmenin çoğunun zaten bilinen şeyleri birleştirmekten ibaret olduğu için sıkıcı geldiğini söylemişti
    LLM'ler de bu akışı daha da hızlandırıyor gibi görünüyor

    • Teknolojiden çok matematiği seviyorum; klavyeye bile dokunmadan bir problemi basit denklemlere indirgemekten ya da algoritma tasarlamaktan özellikle keyif alıyorum
      LLM ile peş peşe script üretmek, uygulama doğru dediği ana kadar Sudoku'ya rastgele sayı yazmak gibi hissettiriyor
    • Andrej Karpathy de bunu, “LLM coding esas olarak kod yazmayı seven mühendislerle esas olarak bir şeyler üretmeyi seven mühendisleri ayıracak” diye ifade etmişti
    • Sistem odaklı biri olarak, sihir gibi ortaya çıkan ve bazen anlaşılması zor olan bileşen kombinasyonlarının nasıl ilginç ve keyifli sonuçlara dönüştüğünü ayrıntı odaklı birine anlatmak zor
    • Kaliteye önem veren biriysen, bazı ortamlarda LLM'lerin kaliteye dair son bağlılığı bile miktar ve hız uğruna feda etmesi hayal kırıklığı yaratabilir
  • Hacker News'ta LLM'in ürettiği gönderileri görmek istemiyorum
    Başarılı bir ürün olmasa bile, insan özgünlüğünün gerçekten işe uygulanmış halini görmek keyif veriyordu
    Nasıl bilgisayarların kendi aralarında oynadığı satrancı izlemiyorsam, AI'ın yaptığı yazılım ve sanatı da kolayca ayırt edip kaçınmanın bir yolu olmalı

  • Fark, girdideki değişimin çıktının gözlemlenebilir davranışını nasıl etkilediğini çıkarabilme derecesinde yatıyor
    Derleyicinin ürettiği çalıştırılabilir dosya amaçlandığı gibi çalışmıyorsa bunun %99,99'u benim sorumluluğumdur; kaynak koddan sonucu öngörebilir, hatalı davranışı da analiz edebilirim
    Vibe coding programı ile üretim prompt'u arasında buna benzer bir ilişki kurulamaz

    • Güvenilirliği %99,99 olan bir LLM bile beni tekrar gerçekten kendim yapmış olduğum bir duruma geri götürmez
      Tam otonom bir çim biçme robotu işi kusursuz yaptıysa çimi robot biçmiştir; ama üstüne binip ben sürdüysem ya da joystick ile yönettiysem çimi ben biçmişimdir
      Nerenin biçileceğine karar veren öznenin kim olduğu, sahiplik hissini belirler
    • Bir şeyi doğrudan yaptığında, sonucun neden o biçimi aldığını somut olarak anlarsın ve kendine özgü bir değerlendirme ölçütün de olur
      Vibe coding projelerinde de, içine koyduğun ilgi ve anlayış derinliği oranında farklı seviyelerde sahiplik hissi duyarsın
    • Temel ayrım galiba süreç üzerindeki kontrol ile sonuç üzerindeki kontrol arasındaki farkta yatıyor
      Bazı insanlar sadece sürecin ne zaman başlayacağını ve sonucun iyi mi kötü mü olduğunu belirler; ama gerçekte değerlendirecek yetkinlikten yoksun oldukları için, üreticinin tüm alt unsurları iyi hallettiğine inanırlar
      Derleyici neredeyse her zaman programı doğru bir binary'ye dönüştürür ve başarısız olursa bunu açıkça bildirir; ama algoritmanın doğruluğu kullanıcının sorumluluğundadır, yani sınır nettir
      Buna karşılık LLM'in sorumluluk sınırı belirsizdir ve prompt'ta açıkça belirtilmeyen her unsuru istikrarlı biçimde ele alamaz
      Profesyonel bir ressamdan Batman çizmesini istemekle de aynı değil; çünkü böyle bir insan işbirliğinde ayak parmağı ya da kol sayısını ayrıca kontrol etmen gerekmez
  • Daha hızlı olduğu için LLM kullanıyorum ama artık eskisi gibi keyif almıyorum
    Hızın her zaman eğlenceden önce gelmesi gerekmiyor ve doğrudan kendin yazmayı “verimsiz” saymadan yeniden odaklanmayı öğrenmek gerekiyor
    13 yaşımdayken gece yarısı kod yazarken hissettiğim duyguyu geri istiyorum; Beej'in yazıları her zaman etkileyici

    • Gitarist Steve Vai, öğrenme ve bir şeyi bizzat yapma sürecinin onur ve özsaygı verdiğini söylemişti
      Yazıyı, kodu ya da müziği sadece prompt yazarak üretince, tam da o süreç ortadan kalkıyor
  • Yaklaşık iki ay boyunca içki içmek dışında televizyon bile izlemek istemedim, ama birkaç haftadır içkiyi bırakınca üretme isteğim yavaş yavaş geri dönüyor gibi görünüyor
    Kameralar ve küçük otonom sürüş robotlarını bizzat tasarlayıp ürettim; arabada yuvarlanıp bozulan kamerayı da sonunda tamir ettim
    Her vintage C mount lens için video üretirken ilgimi kaybettim ve geriye yalnızca bir lens kutusu ile süs eşyasına dönüşen kameralar kaldı, ama bu donanım projeleri sayesinde iki yazılım mühendisliği işi buldum
    Claude Code'un kod ürettiği bir proje için “bunu ben yaptım” dediğimde saygı hemen azalıyor gibi oluyor, ama sonuçta asıl mesele para ve özgürlük; ben de özgürlüğümü güvenceye aldıktan sonra sevdiğim işleri yapmak istiyorum

    • Kendine fazla yüklenmemek daha iyi olur
      Henüz bakmadıysan ADHD ya da başka etkenlerin ihtimalini de değerlendirmeye değer
      İnsan makine değil, karmaşık biyolojik bir varlık; bu yüzden kendi özelliklerini anlamak, doğru yönde yeniden harekete geçmene büyük ölçüde yardımcı olur
  • Son zamanlarda AI'ya yaptırdığım işlerin kabaca ayrıntılarını bile hatırlamak zor geliyor; buna karşılık yıllar önce yazdığım 100 binden fazla satırlık kod tabanını hâlâ zihnimde büyük ölçüde takip edebiliyorum

    • 10 yıl önce birlikte çalıştığım projelere bakınca, kimin hangi kısmı yazdığını, nerelerde tuzaklar olduğunu ve hangi yüzden zorlandığımızı, o anları birebir hatırlamasam da ayırt edebiliyorum
      Ama daha 2 hafta önce AI ile yaptığım proje, “birisi prompt yazdı ve kod çıktı” şeklinde bulanık bir yığın olarak kalıyor
  • OSU öğrencisiyken pratik sistem programlamayı kendi kendime öğrenirken her gün Beej's Guide to Network Programming'e başvururdum
    Pahalı üniversiteden çok bu ücretsiz web sitesinin daha faydalı olmasına hayıflanırdım; şimdi Beej'in OSU'da ders veriyor olması hoş bir döngü ve harika bir işe alım

    • Gelecek yıl iki yazılım mühendisliği dersi üstleneceğim ve mevcut içeriği fiilen çöpe atıp yeniden kurmayı planlıyorum
      Sistem düzeyi tasarım, AI'nin aktif kullanımı, daha büyük projeler ve ekipler üzerine odaklanmak istiyorum
      Kod yazmayı öğrenmek hâlâ şart, ama geçmişte iş hayatında edinilen yazılım mühendisliği yetkinliklerini artık eğitimin daha erken aşamalarına koymak gerekiyor
      Yine de LLM'lerin 15 yıl kadar daha geç ortaya çıkmış olması fena olmazdı diye düşünüyorum
  • Le Corbusier ve Frank Lloyd Wright binaları bizzat inşa etmedi, onları tasarladı; ama o binalar tereddütsüz onların eserleri sayılıyor
    Steve Jobs da devre kartı tasarlamadı ya da kod yazmadı, ama Mac, iPod ve iPhone'u yaptı; Rönesans ressamları da çırakların çalıştığı atölyeler işletiyordu
    Yazılım üretimi, kod yazmanın ötesinde; pazarı ve ihtiyaçları anlamak, pazarlama ve metinleri oluşturmak, neyin yapılıp neyin atılacağına karar vermek ve nihai biçimi tasarlamak demek
    Wright'ın evini inşa eden ustalar çatıyı, duvarları ve şelaleyi kendilerinin yaptığını gururla söyleyebilir, ama evin bütünü açıkça Wright'ındır
    Şu anki yakınma, aslında haklı bir teknik tekel kaybı korkusuna daha yakın
    El yapımı mobilyaların yerini IKEA aldıktan sonra usta marangozların üst segmente odaklanması gibi bir dönüşüm olabilir; ancak burada fark şu: programlamanın müşterileri çoğunlukla şirketler ve başarı ölçütü “çalışıyor mu” gibi ikili bir kritere dayanıyor