Aylardır elimle kod yazıyorum
(miguelconner.substack.com)- Yapay zeka kodlama ajanlarının yaygınlaştığı bir dönemde, buna karşılık LLM olmadan elle kod yazılan 3 aylık bir retreat’e katılan bir geliştiricinin notları
- Brooklyn’deki Recurse Center’da 6. haftasını geçirirken LLM’i sıfırdan kuruyor, Python becerilerini geliştiriyor ve bilgisayarın farklı soyutlama katmanlarına dair anlayışını da güçlendiriyor
- Kodlama ajanları hızlı yineleme ve dağıtım sağlasa da, kodu doğrudan elle yazarken isteneni ifade etme ve aynı anda kod tabanını öğrenme olmak üzere iki eylem birlikte gerçekleşiyor
- Cal Newport’un "yazmak egzersiz gibidir" benzetmesinde olduğu gibi, kod üretirkenki zihinsel çabanın becerinin temel bir unsuru olduğu görüşünü paylaşıyor
- Yapay zeka araçlarını çok iyi kullanan mühendislerin genelde derin bilgiye de sahip olduğu gözleminden hareketle, yapay zeka çağında da temel yetkinlikler kaldıraç yaratır noktasını vurguluyor
LLM ve kodlama deneyimi
- Son 2 yıldır Barcelona’daki Aily Labs’te AI ajanları geliştiriyor
- 2024’ün başında kurum içi bir web arama ajanı yaptı; bu, Anthropic’in "Building Effective AI Agents" yazısından yaklaşık 6 ay, OpenAI’nin DeepResearch ürününden ise yaklaşık 1 yıl önceydi
- Cursor’un ilk kullanıcılarındandı ve LLM kullanarak bilgi grafiği oluşturma çalışmalarına da erken dönemde katıldı
- Her hafta düzenlenen bir journal club’ı yöneterek açık kaynak LLM geliştirmeye dair makaleler sundu
- DeepSeek R1, Ai2’nin Olmo 3’ü, Meta’nın Llama 3 makaleleri gibi çalışmaları ele aldı
- Kurum içi model eğitimi ile SOTA kapalı modeller üstüne kurulu iş akışları arasındaki trade-off’ları anlamaya yardımcı oldu
- 2023’te LLM’leri ilk kullanmaya başladığından beri çalışma prensipleri ve uygulamalarıyla sürekli ilgileniyor
Becerinin temel unsuru olarak doğrudan kod yazmak
- LLM’leri incelerken aynı zamanda onları kodlamada kullanarak fark ettiği şeyler
- Kodu "elle" yazarken, isteneni yazma ve aynı anda kod tabanını öğrenme olmak üzere iki işi birlikte yapıyor
- Kodlama ajanı kullanıldığında ise yalnızca prompt’ta belirtilen şeyi tam olarak alıyorsunuz; ne istediğiniz net değilse ajan bunun yerine birçok varsayım (assumption) yapıyor
- Bu durumda öğrenme azalıyor ve kod tabanına dair kavrayış da zayıflıyor
- Öte yandan kodlama ajanları hızlı yineleme, güvenilir yazılım dağıtımı ve harika bir öğretmen olma konusunda çok faydalı
- Cal Newport’un NYT köşesinden alıntı
- "Yazınız size ait olmalı. Açık bir not ya da rapor yazmak için gereken gerilim, bir sporcunun spor salonunda yaptığı antrenmana denk düşen zihinsel bir faaliyettir; ortadan kaldırılması gereken bir zahmet değil, becerinin temel bir unsurudur"
- Bu benzetmenin kod yazmak için de aynı şekilde geçerli olduğunu düşünüyor
- Aily’de birlikte çalıştığı çok iyi programcılar çoğunlukla AI’ı çok iyi kullanan kişilerdi; derin bilgi, yapay zeka araçlarından daha fazla kaldıraç elde etmeyi sağlıyor
Kod retreat’i nedir
- Recurse Center (RC), Brooklyn’de bulunan, kendi kendini yöneten ve tam zamanlı bir programlama retreat’i
- Retreat: "Gündelik hayattan bir süre geri çekilip belirli bir faaliyete odaklanılan dönem"
- Başvuru ve kodlama mülakatının ardından katılım sağlanıyor; 6 ya da 12 hafta boyunca tamamen programlamaya odaklanılıyor
- Farklı uzmanlıklara sahip kişilerden oluşan cohort tabanlı işbirliği ortamı ile öne çıkıyor ve onlarca yıllık deneyime sahip çok sayıda programcı da katılıyor
- Ücretsiz olarak yürütülüyor
- Recurse Center’daki hedefleri
-
LLM’i sıfırdan öğrenmek
- Ön eğitim ve sonrasındaki ince ayarı da kapsayacak şekilde, hazır bir kod tabanını fork etmek yerine doğrudan Transformer yazmayı hedefliyor
-
Python’ı elle daha iyi yazmak
- Yıllardır Python’la çalışsa da hâlâ öğrenecek çok şey olduğunu düşünüyor; dokümantasyona bakmayı ya da LLM’e sormayı en aza indirip proje yapısına dair sezgisini geliştirmek istiyor
-
Bilgisayarı daha derinden anlamak
- Bilgisayarın birden çok soyutlama katmanında çalışan son derece karmaşık bir makine olduğunu vurguluyor
- Resmî bir Computer Science eğitimi almadığı için, bu katmanların birlikte nasıl çalıştığına dair daha iyi bir zihinsel model kurmak istiyor
- Çok somut bir planı olmasa da RC’nin bunun için doğru yer olduğuna inanıyor
-
İlerleme durumu
-
1. LLM’i sıfırdan eğitmek
- Stanford’un CS336: Language Modeling from Scratch dersinin ilk ödevini LLM kodlama yardımı olmadan tamamladı
- 50 sayfalık ödevi başka bir Recurser ile birlikte yaptı
- Python’da optimize edilmiş bir tokenizer yazdı ve PyTorch ile güncellenmiş GPT-2 tarzı bir mimari kurdu
- Tiny Stories veri kümesi üzerinde hiperparametre ayarı için çok sayıda ablation çalışması yaptıktan sonra bunu OpenWebText’in yaklaşık 9 milyar token’ına uyguladı
- Kendi yazdığı 17M parametreli modelde learning rate sweep sonuçları, yüksek learning rate’in kararsızlığa yol açtığını gösterdi. Eğitim A100 üzerinde yaklaşık 1 saat sürdü
- Sonraki planlar
- CS336’nın kalan ödevleri: dil modeli optimizasyonu, scaling law tahmini/hesaplaması, ham metnin ön eğitim verisine dönüştürülmesi, model post-training
- İkinci ödev olan GPU profiling ve Triton içinde FlashAttention2 uygulaması çalışmalarına şimdiden başladı
- Nihai hedef, post-training sürecini de kendi yaptığı bir modele sahip olmak
- Stanford’un CS336: Language Modeling from Scratch dersinin ilk ödevini LLM kodlama yardımı olmadan tamamladı
-
2. Python becerilerini geliştirmek
- Python ve PyTorch ile birçok küçük ajan ve sinir ağı yazarak pratik yapıyor
- En çok fayda sağlayan şey, 10 yıldan fazla Python deneyimi olan biriyle pair programming yapmak oldu
- Pair partner’larından biri bir söz dizimini ya da davranışı hatırlamadığında, hemen terminali açıp basit bir örnek yazarak 1 dakika içinde nasıl çalıştığını doğruluyor
- Google araması ya da LLM sorgusu olmadan sorun çözmeye yarayan bu kas hafızasına dönüşmüş süreç, tıkanmaları açmada büyük katkı sağlıyor
- Bu yaklaşımı Advent of Code benzeri problemleri pair programming ile çözerek sürdürmeyi planlıyor
- Gerçek zamanlı işbirliği başta gergin hissettirse de, bu sayede hızlı bir gelişim yaşadığını düşünüyor
-
3. Bilgisayara dair anlayışı derinleştirmek
- 1983 Apple IIe bilgisayarında BASIC ile fizzbuzz yazdı
- Elle yapılan kod düzenleme ve çalıştırma sürecini doğrudan deneyimledi; geçmiş ve bugünün bilgisayarları arasındaki farkları ve benzerlikleri birlikte gördü
- CTF Fridays etkinliklerine katılarak Unix/terminal becerilerini geliştirdi
- Bandit gibi "war games" türü görevleri terminal üzerinden çözerek parola topladı ve seviye atladı
- Artık Claude Code’un kendi bilgisayarında ne çalıştırmak istediğini anlayabiliyor
- Vim’de tek katmanlı bir perceptron’u elle yazdı
- İlk başta çok sıkıcıydı ama başka bir Recurser’ın ipuçları ve kısayolları sayesinde süreç iyileşti
- Bulut GPU’larında eğitim işi çalışırken son anda dosya düzenlemek gerektiğinde bunun çok yararlı olduğunu söylüyor
- Clojure atölyesine katıldı (15 yıldan fazla deneyimli biri tarafından yürütüldü)
- Fonksiyonel dil deneyimi az olduğu için konunun kendisi özellikle ilgi çekiciydi
- Kısa bir girişten sonra mob programming formatında ilerledi; katılımcılar sırayla 1-2 dakikalık katkılarla problemi çözdü
- Haftalık 5 dakikalık teknik sunumlara katıldı
- "Running Rust Code", "GPUs for Dummies", "Typesafe APIs for Type B Personalities", "Some Useless Agents" (kendi sunumu) gibi çok çeşitli konular vardı
- Kendisi şimdiye kadar 2 sunum yaptı (basit ajan mimarileri, MCP araçlarının verimli ölçeklenmesi) ve bu hafta GPU optimizasyon yöntemleri üzerine konuşmayı planlıyor
- Diğer katılımcıların projelerini ve kariyerlerini dinlemek bile, bilgisayarların çözebileceği problem alanlarına dair anlayışını genişletiyor
- 1983 Apple IIe bilgisayarında BASIC ile fizzbuzz yazdı
Kalan 6 hafta
- Retreat sonrasında yeni teknoloji ve becerilerle birlikte ajanları production’a dağıtma ve eval çalıştırma işine geri dönmeyi planlıyor
- Kalan 6 haftada listedeki her şeyi bitiremeyebileceğinden endişe ediyor
- Ancak RC’nin asıl değerinin tüm maddeleri tamamlamakta değil, kod yazmaya zaman ayırmanın kendisinde olduğunu söylüyor
6 yorum
İş için olan kodları yapay zeka ajanlarına bırakıyorum; olabildiğince uzun döngülerle her şeyi onlara yaptırıyorum.
Hobi amaçlı kişisel projeleri ise yapay zeka asistanı ya da yapay zeka otomatik tamamlama da kullanmadan bizzat geliştiriyorum (...)
Geçenlerde gördüğüm bir mizah yazısı aklıma geldi
Kodu bizzat elle yazdıktan sonra yapay zekadan iyileştirmesini istemişler
Phase 1: çöp kodu sil
diye çıkmış, hahaha
VSCode'un yapay zeka özelliklerini kapatıp Claude Code kullanıyorum; kesinlikle daha konforlu.
Yapay zeka için
vim'i bırakıpvscode'a geçmiştim,geliştirirken aldığım keyfi kaybetmişim gibi hissettiğim için
vim'e geri döndüm.Yapay zekayı bir assistant olarak kullanıyorum ve kesinlikle geliştirme keyfini yeniden bulmuş gibiyim.
Ben ise tam tersine, AI Agent kullandıktan sonra
nvime geçtim.Kaynak koda bakmak
nvimile çok daha rahat olduğu için..Hacker News görüşleri
Bu dönem 18 yaşındaki öğrencilere, emüle edilmiş bir Apple II Plus üzerinde 6502 assembly öğretiyorum
Öğrenciler daha önce modern bir ortamda Python, veri yapıları ve nesne yönelimli programlama öğrenmişti
Toplam yaklaşık 10 saatlik ders ve uygulamayla register'lar, komutlar, addressing mode'lar, memory map ve Apple monitor rutinlerini öğrendikten sonra, 40x40 düşük çözünürlüklü grafiklerle bir çizim programı, zıplayan top, kendi yaptıkları sprite'lar ve basit çarpışma tespiti bile birlikte geliştirdik
Ödev olarak da Snake ya da Tetris gibi basit bir oyunu kendileri yapıp gösterdiler, ardından nasıl çalıştığını anlattılar
Başta satır editöründen nefret ettiler ama kısa süre sonra kodu yazmadan önce plan yapmaya ve tartışmaya başladılar
Önceki derslerde hep vurguladığım ama pek yerleşmeyen alışkanlık, güçlü araçlar olmayınca bu kez doğal biçimde oturdu
Sonunda öğrenciler, ekranda tüm kodu açmadan da kodun zihinlerinde yer ettiğini söylediler
Elbette sonunda yine modern araçlara dönecekler ama bunun kesinlikle çok anlamlı bir deneyim olduğunu hissettim
En büyük neden, tipleri sürekli düşünmek gerekmesi ama Python'ın bunu aksine biraz belirsizleştirmesi
Boşluklar da bazen zorunlu bazen değil; alışkın olanlara nefes almak kadar doğal gelse de yeni başlayanlar için kafa karıştırıcı olabiliyor
Düşük seviyeli ortam ve sınırlı araçlar sayesinde, kod yazmadan önce düşünme alışkanlığı kazandım
Hâlâ greenfield işlerde önce kalemle kareli kâğıdı çıkarıp olası fonksiyonları ya da sınıfları gevşek bir grafik halinde çiziyor, sonra oklarla bağlıyorum
Tabii bunu fazla zorlarsanız waterfall planlamanın başka bir biçimine dönüşebilir; bu yüzden denge önemli
Sadece birkaç saat önceden yapıyı düşünmek bile gerçek kodlama süresini ciddi biçimde azaltıyor gibi geliyor
Ortaya çıkan sonucun kâğıttaki tasarımla birebir aynı olduğu neredeyse hiç olmadı ama önce büyük resmi düşünme sürecinin kendisi üretkenliği artırıyor
Editör içinde scaffold kurunca insan hızla gerçek implementasyona kayıyor; ama kâğıda yazınca nasıl olsa sonra tekrar yazmak gerektiği için değişken adı ya da metot seçimi gibi dikkat dağıtıcı şeylerden uzak kalabiliyordum
Birkaç kez vibe coding yaparken de bu yaklaşım özellikle faydalı oldu; sayede çok daha somut ve odaklı prompt'lar verebildim
Ama öğrencilerin kodu zihinlerinde tutmaya başladıkları kısmı okuyunca fikrim değişti
Zed Shaw'ın da benzer biçimde, IDE olmadan yazılan kodun garip şekilde daha iyi göründüğünü söylediğini hatırladım
Benzer bir bağlamda ben de "From Nand to Tetris" gibi kitaplarla çalıştım; bilgisayarların, assembler'ın ve derleyicilerin nasıl işlediğini anlamamda gerçekten çok yardımcı olmuştu
Bir sorun aldığında hemen yazmaya başlamaz; önce düşünür, kâğıda birkaç şey karalar, hatta yürüyüşe çıkar, ancak ondan sonra bilgisayarın başına otururdu
Sonra da neredeyse tek seferde yazıp en sonda sadece derlerdi ve gerçekten de çoğu zaman çalışırdı
Yazım hataları bile nadirdi
Bu deneyim bana, problem alanını ve programı önce zihinde kurup akıl yürütebilmenin ne kadar önemli olduğunu güçlü biçimde hissettirdi
Böyle olunca beklenen sonuç daha net oluyor ve beklenmedik bir şey olduğunda da bunu daha hızlı fark edebiliyorsunuz
Üst yönetim bunun fazla zor olduğunu, artık kimsenin kullanmadığını söyleyip dersi kaldırıyordu
Yine de sistem programlama, bilgisayar dilleri ve bilgisayar mimarisi gibi başka derslerin içine gizlice biraz biraz yerleştirdim
Benim yetiştiğim dönemde assembly müfredatın bir parçasıydı ve C/C++ gibi üst düzey dillerle donanım arasındaki boşluğu kapatıyordu
Neden bazı dil özelliklerinin var olduğunu ve birçok dil bileşeninin gerçekte nasıl çalıştığını anlamayı sağlıyordu
Her şeyden önce, yukarıdaki yorumlarda olduğu gibi CPU'yu satır satır takip ederek düşünme eğitimi vermesi gerçekten mükemmeldi
Resmî ders konusunda çoğu zaman kaybettim ama en azından öğrencilerin içine bir tohum ekmiş olmayı umuyorum
Herkesin en az bir kez bir tür assembly öğrenmeye değer olduğuna inanıyorum
Yapay zeka otomatik tamamlama iş akışlarına daha fazla yatırım yapılmış olmasını isterdim
Bence oldukça iyi bir orta yoldu
Şu an sözde eski usul denilen yaklaşım bile, daha geniş çerçevede ajan tarzı iş akışlarıyla karşılaştırıldığında hâlâ gayet rekabetçi görünüyor
Kendin yazarak codebase bilgisini çok daha iyi koruyor, aktif biçimde hatırlama ve doğrulama süreci sayesinde kavramları da daha derin anlıyorsun
Kodu ben yazıyorum, ajanaysa code review yaptırıyorum
Böylece hem kodlama hissim hem de codebase anlayışım korunuyor, commit öncesi hataları da iyi yakalıyor
İlk dönem Cursor gerçekten şaşırtıcıydı ama sonrasında otomatik tamamlama neredeyse yerinde sayıyor gibi geldi; en güncel Cursor bile diğer araçlar gibi giderek daha çok ajan tarafına kayıyor
Belki bir gün diffusion modelleri daha da ivme kazanırsa otomatik tamamlama etrafındaki iş akışları yeniden canlanabilir diye umuyorum
Inception Labs'in Mercury modeli neredeyse anlık yanıt verdiği için hâlâ biraz sihir gibi hissettiriyor
Yine de Cursor düzeyinde incelik ve derin editör entegrasyonu henüz eksik
Bir de diffusion tarafı yerel kullanım için gerçekten çok uygun görünüyor ama anlamlı open-weight modellerin neredeyse hiç olmaması üzücü
Sıkıcı glue code'u kendim yazdığımda projenin haritası kafamda oluşuyor
Ama ajan yapıyı fazla kurduğunda, kısa vadede çalışsa bile bir hafta sonra küçük bir değişiklik yapmaya kalkınca önce neyi nereye koyduğunu aramaya başlıyorum
İnsanların hızla başka yöne kaymasının bir nedeni vardı; sonuçta kullanışlı bir arayüz değildi
Bir kez uçağa bindikten sonra geri dönmek gerçekten zor oluyor
Bu başlık, burada gördüklerim arasında en depresif başlıklardan biri gibi geldi
Elle kod yazmanın artık blog yazısı olacak kadar yabancı bir şeye dönüşmesi yüzünden depresif olabilir; ya da bir AI maksimalistinin insan kodlamasıyla alay etmesi anlamına gelebilir
Yazı geçmişine bakınca muhtemelen ilk yorum daha doğru görünüyor
Bir zamanların moda ifadesi wild swimming gibi, sanki biraz fazla ileri gitmişiz gibi hissettiriyor
Gerçekten de köpekbalığının üzerinden atlamışız gibi duruyor
Yine de bunun gerçekten etkileyici bir katkı olduğunu düşündüm
Sonra görünce gerçekten akıl almaz geldi
Yakında sadece elle kodlamadan bahsettiğin için akıl hastanesine gönderildiğin bir dünyayı bile şaka yollu hayal edebiliyorum
Kariyerimin ilk birkaç yılını SPARC tabanlı Solaris üzerinde vi ile, üstelik vim bile değil vi ile ağırlıklı olarak Perl kodu yazarak geçirdim
O’Reilly'nin Perl Cookbook'u neredeyse tek rehberimdi; internet forumları azdı ve arama motorları ilkeldi, bu yüzden takılınca yardım almak çok daha zordu
Ama o ortam bana Perl sözdizimini, terminal araçlarını ve özellikle vi tuş vuruşlarını çok derinlemesine öğretti
Sözdizimi vurgulama ya da IntelliSense yoktu; belki de bu yüzden daha kalıcı oldu
Şimdi dönüp bakınca, o zamanlar dikkat dağıtıcı unsur ve gürültü çok daha azdı
Elbette kariyerin başında beklentiler düşük olduğu için böyle hissetmenin de etkisi vardır ama bugün her şeyin gereğinden fazla katmanlı ve karmaşık hale geldiğini düşünüyorum
Bu, anında ödül, hızlı geliştirme ve gereksiz katmanlar olmadan oldukça saf bir deneyimdi; beni bu yola çeken de tam olarak buydu
İronik biçimde agentic coding, o zamanki heyecanın bir kısmını geri getirdi
Çünkü karmaşık kurumsal meselelerle bizzat boğuşmak zorunda kalmadan, düşünce ile sonuç arasındaki bağ yeniden yakınlaştı
Sektördeki değişim gerçekten şaşırtıcı geliyor
Sadece 2 yıl önce olsa neredeyse her geliştiricinin söyleyebileceği bir şeydi; şimdi ise elle kod yazdığını söyleyen biri nesli tükenmekte olan bir tür gibi görünüyor
Son 1 yılda çalıştığım yeni teknoloji ve dillerde, artık sonuca fazla kolay ulaştığım için içimde bir bilgi borcu biriktirdiğim hissi var
Gelecek nesil yazılım mühendislerinin bunlara dair derin bir anlayışı nasıl kazanacağını, hatta kazanıp kazanamayacağını ciddi biçimde merak ediyorum
Bir önceki nesil benzetmesinde bu, IDE olmadan kod yazmaya benziyordu; gerçekten de o yaklaşım bile zaten epey nadirdi
Ben genel olarak AI'ı, özellikle de GenAI'ı epey destekliyorum ama yine de hâlâ çok zamanımı elle kod yazarak geçiriyorum
En fazla Copilot desteğini açık tutuyorum
Bazen SpecKit + OpenCode gibi araçlarla spec-driven development yapıyor, bazen de sadece vibe code ediyorum
Yine de anlamam gereken kodun sorumluluğunu bırakıp, doğrudan yazabilme becerisinin kendisinden vazgeçmeye henüz niyetim yok
Bu yüzden yakın zamanda birkaç yeni LISP ve Java kitabı aldım; ondan önce de Forth kitapları almıştım
En azından bir süre daha, belki de sonsuza kadar, kodlamayı tamamen bırakmayı düşünmüyorum
Önemli olan implementasyon değil, davranışı anlamak
Bunu doğrulamayı da otomatik birim testleri, entegrasyon testleri ve yük testleri yapıyor
Birisi, iç kullanım için bir web yönetim sitesini vibe coded yapıp kodun tek satırına bakmadan güvenlik gereksinimlerini karşıladığını söylememi safça bulmuştu
Ama gereksinim, siteye erişimi olan kişinin istediği her şeyi yapabilmesiydi; erişimi Amazon Cognito kimlik bilgileriyle koruduk ve bunu sağlayan Lambda'ya da en düşük ayrıcalık rolü verdik
Eğer bu iki değişmez bozulmuşsa, bu ancak Claude'un devasa bir AWS zafiyeti bulmuş olması seviyesinde bir şey olurdu diye düşünüyorum
AI'dan sonuna kadar yararlanıp çok şey üretiyorum ama aynı zamanda AI'ın ürettiği kodun benim bilişsel yük eşiğimi geçip geçmediğini gözden geçirmek için mutlaka zaman ayırıyorum
Bu sürece kodu temizleme ve dokümantasyon da dâhil; bu AGENTS.md örneği sayesinde pek çok şeyi daha kolay hallediyorum
Yine de işin tuhaf bir yöne gittiği anları fark edebiliyorum; o noktada yönü tekrar ben belirliyorum
Krediler bitince de gerçekten sıra bana geliyor
Kod zaten iyi düzenlenmiş, soyutlamaları mantıklı ve yorumları faydalı olduğu için, oradan devam edip organik insan kodlamasını sürdürmek güzel oluyor
Artık limite yaklaşırken AI'dan sahneyi benim için önceden hazırlamasını istiyorum
Eskiden kredi bitince anlamak için ders çalışmak gereken kod kalıyordu ve bu sinir bozucuydu; şimdi ise bir sonraki brain time hand-out'u neredeyse bekliyorum
Kulağa garip gelebilir ama bana bu da bir tür ekip çalışması gibi geliyor
Daha pahalı bir plana geçebilirim ama beynimi aktif tutmak istiyorum
İlkeye katılıyorum ama en azından Claude'un mantığı gereğinden sık kopyaladığı için, neredeyse ters yönde yönlendirilmesi gerektiğini hissediyorum
LLM benim yerime kod yazdığında, o kod bana neredeyse müdahale edilemez bir kara kutu gibi geliyor
Çalışıyorsa kullanıyorum ama güvenmiyorum; bozulursa da sadece can sıkıcı oluyor
Sonuçta bana uyan yöntem, direksiyonu her zaman benim tutmam; LLM'nin ise sorulara cevap veren, birlikte fikir üreten ve benim zaten anladığım kavramları belirli bir dilin sözdizimine dökmeme yardım eden bir yardımcı olması
Aslında benim için zor olan şey, kavramı anlamaktan çok onu sözdizimine aktarmak oldu hep
Ben de ajanlara bazı kısımları yaptırıp bazı işleri ise beynimi çalıştırmak için bilinçli olarak kendime bırakma fikri üzerine düşünüyordum
Belki Claude Code için bir skill ya da hook yazmayı denemeliyim
3 ay boyunca kendi kendine yön verilen, derin bir öğrenme yolculuğu yaşayabilmek gerçekten harika bir şey gibi geliyor
Bu tür derin teknikler uzun vadede de değerli olabilir; ayrıca mevcut değişimin assembly'den C'ye geçişle tamamen aynı tür bir soyutlama olup olmadığından da henüz emin değilim
Bu günlerde kodumun çoğunu LLM üretiyor ama günün sonunda dürüst olmak gerekirse çok fazla keyif, başarı hissi ya da tatmin duygusu kalmıyor
Aynı anda şunu da fark ettim: Benim kodlamada gerçekten keyif aldığım kısım aslında belki %5-10'du; geri kalanı ise ilginç çekirdeği ayakta tutan sıkıcı, yarı mekanik işlerdi
İnsanlık tarihi ölçeğinde bakınca bilgisayarlarla çalışma dönemi zaten çok kısa bir an ve 100 yıl sonra elle kodlama çağının nasıl görüneceğini merak ediyorum
Belki sadece bir dipnot olarak kalacak ya da makineler kendilerini otomatikleştirmeden önceki tüm dönemlerle birlikte tek bir döneme sıkıştırılacak
Eskiden insanlar doğrudan assembly yazıyordu, sonra C gibi derlenen dillere geçildi; assembly yararlı ama niş bir beceri olarak kaldı
Şimdi nasıl kodu derleyiciye bırakıp çoğu zaman onun iç çıktısına bakmıyorsak, gelecekte de geliştiricilerin büyük kısmı LLM soyutlama katmanına geçebilir
Temel beceriler de iyi prompt yazma, context window yönetimi, ajan ve bellek işletimi gibi alanlara kayabilir
Bazı geliştiriciler yine LLM'nin ürettiği kodu okuyup sorun bulabilecek ama çoğu bunu yapamayabilir
Benim de duygularım karışık
ChatGPT çıktıktan sonra, birkaç ay öncesine kadar LLM ile programlamaya epey şüpheyle bakıyordum; yeni model gelse bile sonuç hep benzer, düşük kaliteli çıktının varyasyonları gibi geliyordu
Ama son zamanlarda modeller sanki bir eşik noktayı geçti ve ben de hâlâ Claude'u temkinli kullansam da, özellik geliştirme süresini kısaltmada ya da sadece log'lara bakarak hatanın yerini bulmada gerçekten faydasını gördüm
Hâlâ kodlama çözüldü türü abartılara katılmıyorum ama en azından üst düzey dillerin gelişi מאז en büyük değişimlerden birine tanık olduğumuzu düşünüyorum
Yarı uzlaşma olarak Zed kullanmaya başladım
Bundan sonra AI'ı implementasyondan çok planlama ve adım önerileri için kullanmayı düşünüyorum
Bugünlerde teknik olmayan kişilerin bile Claude ile uygulama yapmaya başladığını görüyorum; Openclaw dahil ajan takıntılı akıma bakınca, AI'a aşırı kapılma yolunda devam etmenin pratik olmadığını hissediyorum
Hayatın başka alanlarında hep iç ayrıntılara kadar dikkat eden, yeni sorunlarda bizzat elini taşın altına koyarak çözüm üreten biri olarak değerlendirildim
Piyasanın buna nasıl uyum sağlayacağını ve insanların bu tür nüanslarla başa çıkma becerisini nasıl aktaracağını ve kanıtlayacağını merak ediyorum
Recurse Center sitesinde “öğretmen ya da sabit bir müfredat yoktur, yalnızca inziva süresince tam zamanlı adanmışlık beklenir” ifadesini görünce merak ettim
Tam zamanlı çalışan biri böyle bir kodlama inzivasına genelde nasıl katılıyor diye sordum
Bunun daha çok sektöre yeni girecekler ya da işler arası boşlukta olanlar için mi tasarlanmış olduğunu da merak ettim
Yazının kendisi inzivada neler yaptığını anlatıyordu ama benim asıl hissettiğim şey, oraya bizzat gitmek istemem oldu
RC için özellikle işinden ayrılan ya da işsiz kaldıktan sonra başvuran çok oluyor
Resmî sabbatical, garden leave ya da lisans ve lisansüstü öğrencilerin yaz tatili dönemini kullananlar da var
Freelancer'lar, bağımsız sözleşmeliler ve emekliler de az değil
Sektöre girmek için gelenler var ama katılımcıların büyük kısmı zaten programcı olarak çalışmış kişiler
Katılımcı yaşları 12'den 70'lerin başına kadar uzanıyor ama ana dağılım 20'lerden 40'lara kadar
Katılımcılar hakkında daha fazla ayrıntıyı Recurse Center tanıtım sayfasında görebilirsin
Ya da mevcut işine geri dönebileceğin yaklaşık 6 haftalık bir sabbatical alabilmen gerekiyor ki bu gerçekçi olsun