Category Archives: Yazılım Hakkında Genel Düşünceler

Yazılım Hakkında Genel Düşünceler

Yazılımda Geriye Kalan Hersey Artık Teferruattır!

Blockchain teknolojisini hatirlayalim. Her derde deva olacak diye pazarlandi. Aslinda bulduklari cözüm icin cok uzun bir zaman sorun aradilar. O arayis hala devam ediyor… Cözümleri son care gibi dikte etmek ve müstterinin gercek gereksinimlerini göz ardi etmek yazilimda bir gelenek. Her daim “böyle bir cözüm var, sizin probleminize uyuyor ya da kendinizi buna göre uydurun” […]

Junior Yazılımcı Olsam Nasıl İş Bulurdum?

Yapay zekanin yayginlasmasi ile junior yazilimcilarin artik sektöre girmeleri hemen hemen imkansiz hale geldi. Bugün üniversiteyi bitirmis bir junior yazilimci olsaydim, nasil is bulurdum? Bu verecegim örnek acimasiz ve is gücünü sömürme olarak algilanacak, lakin back to the roots yapmak zorundayiz, aksi taktirde genclerin is gücü olarak kendilerini ispatlama sanslari kalmamistir. Eskiden ve hala bazi […]

Refactoring Artik bir Zihin Aktivitesidir

Neden kodu yeniden yapilandirmak (refactoring) artik sadece bir zihin aktivitesidir? Eskiden bir yazilim ürünü icin gelistirilecek özelliklerin bir maliyeti vardi. Buna göre de yer yer öncelik siralamasi yapilirdi. Simdi bu maliyet hemen hemen ortadan kalkmis durumda. Maliyetin kaybolmaya yüz tutmasi, yazilimci olarak istedigimizi yapacagiz anlamina gelmiyor. Neden yazilim yaptigimizi hatirlayalim. Yazilim müsterisi icin yapilir. Yazilim […]

Ürün ve MVP Ötesi

Ürün ya da mvp cikarmak sorun degil, asil mevzu onu müsterisi ile bulusturmak. Kod yazip, ürün olusturmak baska bir sey, o ürünü canliya alip, calistirmak cok baska birsey. Bu yüzden her yazilimicinin yazilim haricinde hakim olmasi gereken teknik konulari basliklar olarak yaziyorum. Gerisini bilenler tamamlayabilir: Kod yazdim, isim bitti mi diyorsunuz?

Junior Yazilimcilar ve Vide Coding

“Vibe coding” terimi mevcut durumu tanimlamak icin artik yetersizdir. Genc yazilimcilar artik vibe coding yapmiyorlar, usta cirak iliskisi icinde gerekli tüm temel ve üst bilgiyi hocalarindan (AI) ögreniyorlar. Bizim dönemimizde eksik olan usta-cirak iliskisi artik olusmus durumda. Genc yazilimcilari bu nimetten faydalanmalari yerine uyarmak anlamsiz. Yaptiklari vibe coding degil, yeni düzenin ögrenme süreci ve bu […]

Analog Yazilimdan Dijital Yazilima Gecis

Yazilim camiasindaki güncel gelismeler Alice harikarlar diyarinda gibi hissettiriyor. Artik iki dünya olustu: analog yazilim, dijital yazilim. Benim gibi uzun yillardan beri yazilim yapanlar analog yazilim dünyasinda yetistiler. Bugün yazilima yeni basliyanlar, dijital yazilim dünyasinin parcasi olarak yetisecekler. Onlarin mevcut yapilara adapte olmalari cok daha kolay. Birkac ay öncesine kadar “vibe coding” in yeni baslayanlar […]

Mindshift

Benim 20 sene imperatif program kod yazdiktan sonra fonksiyonel proglamaya gecisim cok zor olmustu. Beynimin en son hücresi bile imperatif düsünmeyi yeglerken, artik bunu baska türlü yapiyoruz demek yeterli olmuyor. Insanin bu kemiklesmis düsünce sablonlarini asmasi cok zor. Yapay zeka baglaminda günümüzde senior (10+ yil tecrübe) olan programcilarin da buna benzer bir problem ile karsi […]

Code Generation ve Generative AI

Code generation konusunda nereden nereye geldik… Kodu generate ettirmek icin kod yazarken, simdilerde kod yazmadan gen ai ile tüm kodun olusmasini seyrediyoruz. Bundan sonra ne gelecek? Makina kodu yazmanin ne kadar zor oldugunu hatirlayalim. Assembly ile programcilikta büyük bir sicrama yasandi. Bu da yetmedi ve Fortran, C ve Java gibi diller ile daha yüksek bir […]

Yazilimcilar Icin Yapay Zeka Kullanma Klavuzu

Ben günlük islerimde IntelliJ / Android Studio ve Copilot Claude Sonnet 4.5 yapay zeka modelini kullaniyorum. Zaman icinde kendim icin yapay zeka öncesinden cok farkli bir calisma modeli gelistirdim. Bu bir nevi yapay zeka kullanim klavuzu. Yapay zeka araclari gelistirildi lakin bunlarla nasil programci olarak calismamiz gerektigine dair bize bir kullanim klavuzu verilmedi. Herkes kendi […]

Bindikleri Dalı Kesiyorlar

Kendi bindikleri dalı kestiklerini anladıkları için çark etmeye başladılar. Yapay zeka yazılımcıyı ortadan kaldıramaz. Yazımcılar yapay zeka araçlarını çok iyi kullanır hale gelecekler. Senior olanlar junior olanların gelişimine odaklanarak usta pozisyonuna geçecekler. Çırak olan junior yazılımcılar ustalarından ve yapay zekadan bu işin nasıl yapıldığını öğrenip, kendileri de zamanı geldiğinde usta konumuna yükselecekler. Bu şekilde şimdiye […]

Yazılımcılar İçin Yeni Dönem Başlıyor

Sadece mevcut bilgi ve tecrübe seviyesini ölçmeye yönelik yazılımcı mülakatları sona erecek. Artık adaylardan copilot gibi yapay zeka araçları ile sunulan bir fikir için çok hızlı ve çalışır bir protip (MVP) oluşturmaları istenecek. Birkaç saatlik bir zaman diliminde fikirden, çalışan ürüne kadar tüm yazılım yelpazesi ve adayın bu süreçte nelere hakim olduğu kontrol edilecek. Böylece […]

Yapay Zeka İle Çevik Olma

Yazılımda çevik olmanın tek yöntemi test yazmaktır. Yazılım projelerinin zaman içinde yeniden yapılandırılamayarak telef olmalarının tek sebebi test eksikliğidir. Bknz: https://kurumsaljava.com/2012/04/05/cevikligin-boylesi/ Artık test yazmamak için hiçbir mazuriyet kalmamıştır. Claude Sonet 4.5 yeni bir API için 20 ye yakın entegrasyon testini 5 dakikanın altında olusurdu. O testleri yazmak günler ya da haftalar alabilir. Test yazmamanın ana […]

Statükocu Zihniyet

Yazılımcı olarak bazı gerçeklerle yüzleşmemiz gerekiyor. Copilotu sadece bir sefer Claude Sonet 4.5 ya da türevleri ile deneyimleyen bir yazılımcı, anti yapay zeka savlarının birçoğunun gerçek dışı olduğunu görecektir. Nedir bu anti yapay zeka savları? Yapay zekanın tecrübeli bir yazılımcıyı ortadan kaldırma ihtimalinin olmadığını düşünenlerdenim. Aynı şekilde vibecoding hızlı MVP tarzı prototipleme için kullanılabilecek bir […]

Sekiz Milyar Değişik İşletim Sistemi

Son zamanlarda alışkanlıkların oluşumu, etkileri ve yapıları hakkında bilgi edinme ve uygulama fırsatım oldu. Bir yazılımcı olarak insan vücudunu donanım, kişiliğini oluşturan tüm davranış biçimlerini ve diğer yetilerini yazılım olarak gördüğüm için alışkanlıkları da bu pencereden incelediğim bu yazıyı kaleme almaya çalıştım. Kısaca bir alışkanlığın ne olduğunu ve anatomisini inceleyelim. Bir alışkanlık beyin tarafından otomatize […]

Gitflow ve Verdiği Zararlar

Artık git ile çalışmayan kalmadı sanırım. Bilindiği üzere gitflow isminde bir çalışma modeli var. Bu modelde uzun ömürlü feature branchlar ve ihtiva ettikleri daha geniş kapsamlı commitler ile çalışılmakta. Bu yazımda sizlerle bu modelin dejavantajları ve sebep olduğu sorunlar ve zorunlulukklar hakkındaki fikirlerimi paylaşmak istiyorum. İlk etapta bir feature branch bünyesinde çalışmak mantıklı bir opsiyon […]

Çevik Süreçler Neden Dikiş Tutturamadı

Çevik süreçlerin tam olarak ne olduğunu kavramamış, çevik süreçler ile bir proje uygulamamış, scrum yaparak çevik olduğunu ve çevik süreçlerin bir işe yaramadığını zanneden şahısların “agile is dead” naralarını unutmadık. Ben de çevik süreçler öldü diyorum, lakin ekliyorum: “yaşasın çevik süreçler”. Çevik süreçlerin yıldızlarının bundan sonra nasıl parlayacaklarını ve tam anlamıyla yazılım geliştirme süreçlerine hakim […]

Bilginin Evrimi

Yazılımda bilginin yarı ömrü ne yazık ki altı ayın altına düşmüş durumda. Yazılımcılar eskiye nazaran daha çok bilgi edinmek zorundalar. Bunda yazılımda soyutlamanın hızlanmasının büyük bir rolü mevcut. Soyutlama ve geldiğimiz noktayı bu yazımda kaleme almaya çalışmıştım. Soyutlama işlemi bilginin evrimi için gerekli bir süreç. Evrimin olmadığı yerde gelişme olmaz. Evrim süreci bilginin geçerliliğini ispat […]

Yazılım Dünyasının Hızlı Çözüm Üretmek İle Olan İmtihanı

Yazılım neden vardır sorusu sorulduğunda, benim aklıma gelen ve benim için en anlamlı cevap yazılımın müşterinin gereksinimlerini tatmin etmek için var olduğudur. Müşteri piyasa ihtiyaçlarından doğan gereksinimlerini tatmin etmek ya da piyasa rekabetinde avantaj sağlamak için yazılıma yönelir. Yazılım müşterinin piyasa şartlarında ayakta kalkmak için kullanacağı en kıymetli araç haline gelebilir. Sektörüne göre yazılım olmadan […]