“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.
Okumaya devam et“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.
Okumaya devam etYazilim camiasindaki güncel gelismeler Alice harikarlar diyarinda gibi hissettiriyor.
Artik iki dünya olustu: analog yazilim, dijital yazilim.
Okumaya devam etBenim 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.
Okumaya devam et
Code generation konusunda nereden nereye geldik…
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 basina bunlari kesfetmek zorunda. Bu konuya katki amaciyla kendi tecrübelerimi paylasmak istedim. Hep birlikte belki genel kapsamli bir calisma ve kullanim klavuvuzu gelistirebiliriz. Bu yazim benim icin bir nevi “programming best practices with ai” görevini görecek.
Okumaya devam etSadece 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.
Okumaya devam etYazı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.
Okumaya devam et
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ı?
Okumaya devam etIyi bir fikim var baslikli yazim.
Okumaya devam etSon 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.
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.
Ç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 olacaklarını kendi yazılımcı perspektifimden sizinle paylaşmaya çalışacağım.
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 etmekle mükellefken, soyutlama süreci de bilginin kullanıldığı anlamına gelmekte. İnsanlık var olduğu sürece, bu ilişki bilginin bir balon gibi şişip, sonsuzluğa doğru büyüyeceği anlamına geliyor, çünkü insanoğlu doğası gereği soyutlamadan yapamaz. Bu yüzden soyutlama işlemini bilgisel evrimin akaryakıtı olarak görebiliriz. Okumaya devam et
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 bir firmanın piyasa işlevini yerine getiremediğini, rakiplerine yenik düştüğünü ve yök olduğunu ya da yetersiz yazılım yüzünden yok olma riski ile karşılaştığına tanık olmak mümkündür.
Bilindiği üzere bilginin yarı ömrü yazılım sektörü için altı aylık bir zamanın bile altına düşmüş durumda. Teknolojiler ve trendler çok hızlı gelişiyor ve birçoğu yine bu hızda kayboluyor. Bu yazımda son zamanlarda yaşanan gelişmelere ve değişimlere değinmek istiyorum.
Buradaki yazımda teknik borcun ne olduğunu, nasıl oluştuğunu ve nasıl ödenebileceği konusuna değinmiştim. Teknik borç kodu doğrudan ilgilendiren ve projenin sürdürülebilirliğini etkileyen bir durumdur. Bu yazımda teknik borç kadar dikkat görmeyen, lakin yazılım projesinin kaderini teknik borçlanmaya nazaran daha belirleyici olan alan borçlanmasından bahsetmek istiyorum.
Kodu debug yapma tekniği her yazılımcının hata bulmak ve kodu anlamak için kullandığı bir yöntemdir. Lakin bu tekniğin kullanımı yazılımın en kötü alışkanlıklarından birisidir. Bunun neden böyle olduğunu bu yazımda sizlerle paylaşmak istiyorum.
Yazıma başlamadan önce şunu belirtmek isterim. Bir yazılımcı olarak debug etme tekniğini gerekli gördüğümde kullanıyorum. Bu blog yazımın kesinlikle “debug etmek yanlıştır, kullanılmamalıdır” şeklinde algılanmasını istemem. Gerekli olduğu yerde debug etme tekniğinin kullanımı mübahtır. Yazımda debug yapma termini hata bulma ve kodu anlama süreci için eş anlamlı kullandım.
Bu konuda kısa bir zaman önce bir tweet yazdım:
Debug yapiyorsan, kodu anlamadin demektir. Debug yaparken kodu anlamiyorsan, nasil debug yapilir, onu anlamadin demektir.Debug yaparken kodu anladigini dusunuyorsan, aslinda debuga ihtiyacin olmadigini anladin demektir. Debug etmek kodun mental bir modelinin eksikligine isarettir
— Özcan Acar (@oezcanacar) 16. März 2018
Birçok okurumdan bu ve buna benzer sorular aldığım için bu konuyu aydınlatmak adına bu yazıyı kaleme almak istedim.
Bilindiği üzere yazılım sektörü çok hızlı teknolojik gelişmelere sahne olmakta. Kullanıma sunulan yeni programlama dilleri, çatı ve yöntemlerin sayısı çok yüksek. Doğal olarak yazılımcılar işin neresinden tutmalıyım ya da başlamalıyım, hangi konulara ağırlık vermeliyim, neleri öğrenmeliyim gibi sorularla karşılaşmaktalar. Bu yazımda bu tür sorulara kendim için nasıl cevap bulduğumu aktarmak istiyorum. Vermek istediğim örnek bir nevi öğrenim ve kişisel gelişim konusundaki benim yol haritam.