View profile

Yazılımcılar İçin Hafta Sonu Okumaları - Sezon #2 / Sayı #55(2019 Derlemesi)

Merhabalar. Aralık sonu Ocak başı geçmiş yılın muhasebesi, değerlendirmeleri, özetleri, raporları, al
Yazılımcılar İçin Hafta Sonu Okumaları - Sezon #2 / Sayı #55(2019 Derlemesi)
By Muhammed Hilmi Koca • Issue #55 • View online
Merhabalar.
Aralık sonu Ocak başı geçmiş yılın muhasebesi, değerlendirmeleri, özetleri, raporları, almanakları; gelecek senenin öngörüleri gibi içeriklerle doluyor. Ben de geçen sene yaptığım gibi bu sene de geçen yılın sayılarından bir derleme ile karşınızdayım. Bu da 25 sayıdan yapılan bir derlemeye tekabül ediyor. (Bu noktadan sonra geçen sene yayımladığım derlemeden kopya çekerek devam ediyorum.)
Derleme yapmaya karar vermemin akabinde büyük bir özenle(kopyala-yapıştır marifetiyle) okumakta olduğunuz bu sayıyı hazırladım. Binâenaleyh bu sayı yeni bir sayı değil. Yani yeni bir sayı ama içeriği yeni değil(şu anda kafanıza şişiren bu giriş kısmı hariç). Bir nevi özel sayı(böyle daha havalı oldu sanki). Buradan da 2 sonuç çıkarmamız gerekiyor:
1- Aşağıda geçen “bu hafta”, “geçtiğimiz çarşamba” vb. ibareler güncel değil, ilgili sayının yayımlandığı tarihle ilişkili ifadeler.
2- Bu hafta ayrı bir sayı çıkmayacağı için muhtemelen önümüzdeki hafta da geçen hafta olduğu gibi bir “bitmeyen sayı” yapacağım.
Şunu da ifade edeyim: Bu derlemede yer alan içerikler tamamen subjektif bir değerlendirme neticesi, size “muhakkak okuyun” diyebileceğim yazılar. Mesela geçen hafta bunu yayımlasam “2019 girmeden okumanız gereken makaleler” diye iddialı bir başlık atabilirdim.
Buyursunlar…

Çocuklara Yapay Zeka Öğretimi
Geçen sayıda Zafer Demirkol‘un 10 yaşındaki oğluyla yapay zeka çalışma serüveninden bahsetmiştim. Bu kez de “çocuklara nasıl yapay zeka öğretilir?” sorusunu cevaplamak için bir seriye başlamış(234). Yine emek verilmiş enfes bir yazı ortaya çıkarmış. Okurken girift konuların bir nevi oyunlaştırma ile nasıl basitçe anlatılabileceğini görmenin yanı sıra henüz aşina değilseniz yapay zekanın temellerini de anlayabiliyorsunuz. Yapay zeka öğretimine gelmeden önce direkt öğretimle alakalı anlattıkları da ekstra faydalı.
Beyaz Yakadan Girişimciliğe
Kendi ifadesiyle “pinpon topu gibi bir kariyer"e sahip olan Umut Gökbayrak, 3 kez kurumsal dünyaya 4 kez de girişimcilik dünyasına göç etmiş. Aynı zamanda uzun yıllara yayılan bu süreçte edindiği tecrübeleri, ”beyaz yakadan girişimciliğe geçiş“ başlıklı her yönüyle enfes yazısında bize aktarmış. 
Yazılımcının Kamçısı
Geliştirdiğimiz yazılımlardaki teknik borçlar hayatımız gerçeği. Yüzde yüz kendi yağında kavrulan bir yazılım geliştirmek neredeyse imkansız. Ama ne kadar az borçla ilerlersek yarınlarımızı o kadar az ipotek ederiz ve başımız o kadar az ağrır. Burak Selim Şenyurt, geçtiğimiz haftalarda yayımladığı yazısında genişçe teknik borçlardan bahsetmiş; nasıl kaçınacağımızı ve önceden birikmiş borçları nasıl ödeyeceğimizi anlatmış. 
CRISPR
CRISPR, son yıllarda ciddi biçimde gelişen, kuvvetle muhtemel çok yakında günlük hayatımıza etki edecek ve biz yazılımcıların henüz pek aşina olmadığı bir teknoloji. Basitçe genom düzenlemeye yarayan, mesela DNA'daki hastalığa neden olan genin çıkarılmasına imkan veren bir teknoloji. Bu teknolojiyi anlamak için güzel bir Türkçe içerik hazırlanmış. 
Ayrıca Feyzullah Ünnü de konuya distopik açıdan yaklaşan bir yazı kaleme almış.
Girişimciler ve Yatırım
Çoğunluğumuz itibariyle içimizde bir girişim başlatma hayali/niyeti/planı var. Başlattıktan sonra da önemli merhalelerden biri yatırım bulma meselesi. Ali Karabey, yatırımcı penceresinden girişimcilere bol miktarda altın tavsiye sıralamış. Aklınızda bir yerde “girişim"in “g"si ile ilgili bir şey varsa okumanızı öneririm.
Konuyla nispeten ilişkili bir diğer içerik ise Bora Yılmaz‘ın “Girişim Sermayesi Terim ve Süreçleri” başlıklı serisi(1234).
Refactoring
Yazılım geliştirme hayatımızın her evresinde mücadele ettiğimiz bir kişi var: önceki yazılımcı. Saçma sapan bir yazılım tasarımı yapar, gereksiz bir ton kod yazar, doğru düzgün null kontrolü yapmaz… Bu listenin sonu yok. Ama işin acı tarafı her birimiz birer önceki yazılımcıyız. Üstelik hiç kimsenin olmasa bile kendimizin. 3-5 ay önce yazdığınız kodları inceleyin mutlaka düzenleyeceğiniz bir şeyler çıkacaktır. Dolayısıyla kim yazarsa yazsın hemen hemen tüm yazılımlar zamanla düzenlenmeye muhtaçtır. Bu düzenleme işlemine “refactoring” diyoruz.
Ali Rıza Adıyahşi, refactoring için Github'da oldukça detaylı ve güzel bir Türkçe rehber hazırlamış. İlk etapta temiz kod, teknik borç gibi konularla giriş yaparak “kokan kod"dan bahsetmiş ve tek tek tüm kötü kokuları irdelemiş. Son olarak da bunları çözmek için kullanılan refactoring yöntemlerini anlatmış. Her yazılımcının okuması gereken bu rehbere siz de katkı ve star verebilirsiniz.
Yılan Hikayesi
Fatih Erikli, Python‘ı anlattığı “yılan hikayesi” isimli bir seriye başlamış ve geçtiğimiz hafta ilk bölümünü yayımlamış. Kendine has üslubuyla anlattığı, hikaye tadında, akıp giden, enfes bir yazı olmuş.
Sesli Asistan Yazmak
Veri bilimi alanında nitelikli içerikler üreten genç bloggerlardan Yunus Emre Gündoğmuş, bu kez Python ile bir sesli asistanın nasıl yazılabileceğini anlatmış. Yazının sonunda ise kendi yazdığı açık kaynak bir asistan olan Kavi'den bahsedip kod deposunu paylaşmış.
GPU Mimarisi ve CUDA
Python son zamanların en popüler dillerinden. Özellikle yapay zeka ve veri biliminin gelişmesiyle altın çağlarını yaşıyor. Ama muadilleri ile yapılan kıyaslamalarda 2 ila 10 kat daha yavaş olduğu ortaya çıkmış. Tahir Özdemir, İngilizce bir makaleden yararlanarak bu yavaşlığın sebeplerini anlatmış.
Bu arada Medium profilini incelerken CUDA hakkında bir yazısını gördüm. Neymiş diye araştırınca şöyle bir tanıma denk geldim: “GPU'nun donanımsal hesaplama gücünden faydalanmak amacıyla sunduğu paralel hesaplama mimarisidir.”
Bahsettiğim yazıda, CPU ve GPU'nun karşılaştırmasından başlayarak GPU'nun mimarisini ve çalışma prensibini anlatmış. Akabinde GPU'da çalışacak bir yazılım geliştirirken dikkat edilmesi gerekenlerden bahsetmiş. Henüz okuyamadığım bir devam yazısı da yazmış. CUDA'yı araştırırken denk geldiğim, Nezihe Sözen‘e ait nispeten daha detaylı yazıyı da şuraya bırakayım.
İş Görüşmesinde İşverene Sorulacaklar
Ülkemizdeki iş görüşmelerinde genelde maaş, terfi vb. kozlara sahip olduğu için işveren tarafı yukarıda, kendisine beğenilmesi gereken pozisyonda; çalışan adayı ise talep eden, kendini beğendirmek mecburiyetinde olan pozisyonda algılanıyor. (Ben de geçmişte yaşadım bu psikolojiyi) Ne var ki bir şirkette çalışma dediğimiz eylem esasında bir efendi-köle ilişkisi değil bir alışveriş. Hatta emek-sermaye ortaklığı da diyebiliriz. İşveren, çalışanına lütufta bulunmuyor bilakis satın aldığı emeğin karşılığını veriyor. Dolayısıyla ideal bir dünyada görüşmede de aynı pozisyona ve aynı değerde kartlara sahip olmalılar.
Gökhan Topçu, geçen hafta en çok paylaşılan yazılardan biri olan ve kuvvetle muhtemel sizin de denk geldiğiniz uzun yazısında, bahsettiğim bakış açısıyla işverene ait bir hak gibi görülen soru sorarak karşı tarafı değerlendirme meselesini, çalışan adayının nasıl kullanabileceğini anlatmış. Bu vesileyle, kaliteli sunumlarıyla da tanıdığımız Sayın Topçu gibi dolu dolu insanların daha fazla Türkçe blog üretmeleri için buradan talepte bulunalım.
Legacy Code Maceraları
Bir yazılımcının hayatındaki en büyük gerçekliklerden biri legacy code(miras kod) diye nitelendirdiğimiz, uzun süredir çalışan ama eskimiş, kokmaya başlamış; üzerinde değişiklik yapması yürek isteyen yapılar. Bir nevi statüko. (Hatırlayacağınız üzere geçen sayıda bu kokuları refactoring marifetiyle nasıl giderebileceğimize dair muazzam bir Türkçe kaynak paylaşmıştım.)
Burak Altın, Avustralya'da yeni başladığı işinde fevkalade bir legacy code hazinesiyle karşılaşmış. Anlatımına göre hemen her nevi kötü kodu muhtevi, düzeltmesi zor bir yapı. İşin güzel tarafı bu mücadelesini bir yazı dizisi halinde paylaşmaya başlamış. İlk yazısında durumu rapor ettikten sonra ikinci yazıda ufaktan canavarı dürtüklemeye, ortalığı toparlamaya başlamış.
Söz Legacy Code'dan açılmışken, İbrahim Kürce, konu hakkındaki kült eser “Beyond Legacy Code” kitabının Türkçe özetini çıkarmaya devam ediyor. Geçtiğimiz hafta iki yeni bölümün(12) özetini yayımlamış.
Alan Borcu
Geçtiğimiz sayılarda teknik borçlardan bahseden bazı yazılardan söz etmiştim. Özcan Acar, teknik borçların nispeten bilinirliği olan bir konu olduğundan bahisle fazla üzerinde durulmayan bir diğer borçtan bahsetmiş: Alan borcu(Domain debt). Domain modellenirken yapılan tasarım hatalarından doğan bu borcun çoğu zaman daha hayati problemlere sebep olduğundan söz etmiş.
Mühendisler vs İK'cılar
Mühendisler(diplomadan bağımsız, yaptığı iş mühendislik içerenler) olarak hobilerimiz arasında yer alan faaliyetlerden biri İK'cıları(İnsan Kaynakları çalışanları) gömmek. Bunun için de elimizde bolca malzeme var. Peki bu yaptığımız pragmatik olarak ne kadar doğru? Veya bu durumu, şikayet ettiğimiz konuları nasıl düzeltebiliriz, düzeltirsek neler elde ederiz? İşte bütün bu soruların cevabını Bilgem Çakır, geçtiğimiz hafta yayımladığı yazıda irdelemiş. İK birimlerinin kuruluş nedenlerinden, mühendislik takımlarını başarılı oluşturmak için sahip olmaları gereken organizasyondan ve mühendislik ekiplerinin neden iş birliği içinde olması gerektiğinden objektif bir şekilde bahsetmiş. 
Eğlenceli Algoritmalar
İbrahim Kürce, İngilizce teknik kitapların Türkçe özetini çıkarmaya devam ediyor. Son olarak Grokking Algorithms kitabını özetlemeye başlamış(12). Kitabın(ve dolayısıyla özetin) anlatımı tek kelime ile harikulade. Tabi kelime sınırı gibi bir derdimiz olmadığı için övmeye devam edebiliriz. Evet, en son harikulade demiştik. Genel itibariyle problemler ve onları çözen algoritmalar eğlenceli bir şekilde hikayeleştirilerek anlatılmış. Ayrıca bol ve yine eğlenceli çizimlerle bezenmiş. Henüz linke tıklamadıysanız övmeye devam edeceğim. Hadi tıklayın, okuyup gelin. Burada bekliyorum.
Yazılımcıların Bilmesi Gereken Anahtar Kavramlar
Yazılım dünyasına ilk adımını atan veya buna niyet eden hemen herkesin merak ettiği ilk meseleler “nereden başlamalıyım, neleri öğrenmeliyim” vb. sorular. Mehmet Cem Yücel, Twitter'da yazdığı floodda 15 madde halinde yazılımcının bilmesi, aşina olması gereken kavramlardan bahsetmişti. Bunu blog yazısı olarak paylaşması talebimizi geri çevirmeyerek kendi blogunda ve Medium'da da yayımladı. Başta bahsettiğim konu için başucunda yer alması gereken bir makale.
Bu arada yakın zamanda kişisel blogundaki mevcut yazıları Medium'da da yayımlamaya başlamış. Son yazısı Heroku'nun bulut tabanlı yazılım geliştirme süreci için yayımladığı manifesto “12 Factor App” hakkında. Bulut tabanlı uygulama geliştirmeseniz bile yönetilebilir ve ölçeklenebilir bir uygulama geliştirme noktasında herkesin istifade edebileceği bir yazı.
Twelve Factor App demişken, Erkan Erol‘un konu hakkındaki güzel sunumunun videosunu da istifadenize sunayım.
Sektörde Çalışma Koşulları
Ülkemizin kanayan yaralarından biri -her- sektördeki çalışma koşulları. Geçtiğimiz iki sayıda bu konuyla dolaylı yoldan alakalı olan yazılımcı iş görüşmelerinden ve İK & mühendis ilişkisinden söz eden makalelerden bahsetmiştim. Bu hafta direkt bilişim sektöründeki çalışma koşulları ile ilgili bir yazı yayımlandı. Hem de çalışanların gözünden. Oğuz Kılıç, internet üzerinden konu ile ilgili görüştüğü kişilerin söylediklerini, kendi yorumlarıyla harmanlayarak yazmış.
Veri Bilimi Uygulaması Geliştirme
Fatma Gülcan Ertop, tam sektörün ihtiyaç duyduğu türde bir yazı kaleme almeş: “Gerçek Hayatta Bir Veri Bilimi Projesi Nasıl İnşaa Edilir?”. Oldukça detaylı bir şekilde fikrin ortaya çıkmasından ürüne dönüşmesine kadar olan süreci ve hatta sonrasını adım adım anlatmış.
Veri bilimi ile ilgili yayımlanan bir başka yazı ise Merve Bayram Durna‘nın Python‘daki veri bilimi için kullanılan kütüphanelerden Pandas'ı anlattığı makale.
Yeni Teknolojiler ve Hukuk
Yapay zeka, robotik ve otonom araçlar gelişip yaşamımızın içine girdikçe etik ve hukuki tartışmalar da artıyor. Olayın sevindirici tarafı azar azar da olsa ülkemizde bu tartışmaların dillendiriliyor olması. Geçtiğimiz hafta bu konuda 2 makaleye denk geldim.
Bunlardan ilki Avukat Burçak Ünsal‘ın Baro Dergisi için kaleme aldığı makale.
Diğeri ise Betül Çolak‘ın otonom araçların yasal sorumluluğu hakkında yazdığı makale.
Konu Dışı
İnsanlık olarak doymayan para hırsımızdan dolayı dünyanın, doğanın içine etmeye ve dengesini alt üst etmeye devam ediyoruz. Ülkemizde yakinen müşahede ettiğimiz beton aşkı doğayı tahrip ederken, dünya çapında ise endüstriyel atıklar ve küresel ısınma, ekosistemdeki dengeyi bozuyor, hayvan türlerinin yok olmasına sebep oluyor. Örneğin böcek sayısının hızla azalması besin zincirinin bir üstündeki canlıları da tehdit ediyor. Geçtiğimiz hafta konuyla ilgili yayımlanan bir yazıda Can Tonbil, karanlık geleceğimizi anlatmış.
İletişimde Blockchain
Gün geçmiyor ki yeni bir veri mahremiyeti skandalı ile karşılaşmayalım. Hatta Facebook ve Google ikilisi skandal kotasını fazlasıyla dolduruyor. Doğal olarak mahremiyetimize sahip çıkabilmemiz için çalışan insanlar da var dünyada. Enes Türk, iletişimin gizliliğini koruma hedefine hizmet eden 3 önemli Blockchain projesinden bahsetmiş.
Blockchain'den konu açılmışken, Deniz Özgür, dev bir amme hizmetine imza atarak Ethereum’da akıllı sözleşme geliştirmek için kullanılan Solidity dilinin dokümanlarını Türkçeye çevirmiş.
Frontendciler Buraya
Bu hafta frontend geliştiriciler için elimde çok güzel mallar var.
İlk olarak dev bir amme hizmetimiz var. Frontend geliştiriciler için mülakat sorularının derlendiği çok güzel bir site varmış:h5bp.org. Daha da güzeli ise bu sitenin Türkçe çevirisi yapılmış. Katkı sağlayan herkesin eline sağlık.
Fatih Hayrioğlu, CSS'in kavranması zor konularından CSS Grid'i anlattığı bir seriye başlamış ve geçtiğimiz hafta giriş yazısını yayımlamış.
Hale Nur Çalışkan ise EcmaScript 6 için bir eğitim serisine başlamış. Şimdiye kadar 7 yazı yayımlamış.
TOR
TOR, internetin derinlerindeki gizli saklı köşelere erişim için kullanılan bir yapı. Bir nevi giriş kapısı. Anonim ve kimi zaman illegal hayatların velinimeti. Ziyahan Albeniz, Tor servislerinin tarihini ve çalışma prensibini anlatmış.
Yazılımcılara Tavsiyeler
Bilgem Çakır üstad, yine döktürmüş ve dolu dolu bir yazı yayımlamış. Yaklaşık 1 hafta geçtiği için çoktan okuduğunuzu tahmin ediyorum. Konu, yazılıma nasıl başlayacağını ve başladıktan sonra kendini nasıl geliştireceğini soranlara tavsiyeler. Yazıya girişte yine itinayla fikri temeli oluşturmuş ve bilgi, olgu, yeti kavramlarını irdemiş. Akabinde yol haritasının nasıl çizilmesi gerektiğinden bahsedip tavsiyelerini sıralamış. 
Ürün Geliştirme
Piyasaya sürülen ürünün başarısını etkileyen pek çok parametre var. Doğru fikir, doğru zamanlama, doğru üretim yöntemi, geliştirilme hızı, pazarın ürüne ihtiyacı, ürünün geleceği açısından geliştirilme safhalarında uygulanan süreçler, ölçeklenebilir altyapı… İsmail Kırtıllı, “değerli olanı” yapmaktan ve bunun için uygulanabilecek metodlardan süreçlerden bahsettiği ve toplam 5 yazı olacağını vaat ettiği bir seriye başlamış(1234). Okudukça bu konularda ne kadar birikimli olduğunu görüyor ve zevkle okumayı sürdürüyorsunuz. Bu bahse dahil edebileceğimiz bir diğer yazı ise Seyhan Külahlı Yılmaz‘ın User Story(kullanıcı hikayesi) oluşturmayı ve bunun önemini anlattığı yazısı.
Ürünün başarısını tayin eden parametrelerden biri de elbette son kullanıcıda karşılık bulması. Bunun da kilit noktalarından biri UX(kullanıcı deneyimi). Doruk Kaşoğlu, mobil web uygulamalarında UX'e uygun bir form oluşturmayı detaylıca anlatmış. Okudukça kullanıcı davranışları için ne denli ciddi araştırmalar yapıldığını da görüyorsunuz.
C# ve Memory Yönetimi
Sena Kılıçarslan, C#‘ta hafıza(memory yönetimini anlattığı bir seriye başlamış(İngilizce). İlk yazıda stack, heap, reference type ve value type; ikinci yazıda ise finalizer ve dispose kavramlarını anlatmış. Makineye ne söylediğini bilerek ve daha performanslı kod yazmayı(alt seviye diller kadar olmasa da) sağladığı için bu tip yazıları seviyorum. Devamını da bekliyorum.
Berkan Şaşmaz ise C# öğrenimi için bir günlük yayımlamaya başlamış. İlk yazısında .Net Framework'teki bileşenleri, kütüphaneleri, stack-heap, value-reference type, static, const, var vb. kavramları anlatmış.
Cumartesi Geceleri
Ekosistemin en istikrarlı ve üretken bloggerlarından biri şüphesiz Burak Selim Şenyurt. 2003 yılında yazmaya başlamış ve kaba hesapla 1000(yazıyla bin)‘e yakın nitelikli makale yazmış. Yazmaya da devam ediyor. Çiçeği burnunda bir öğrenci edasıyla da okumaya, araştırmaya devam ediyor(Medium'da okuduğum hemen her yazıda onun izlerine/vurgulamalarına rastlıyorum).
Birkaç aydır geçtiğimiz yıllara nisbeten blogunda daha az yazı yayımlıyordu. Meğer bu arada Github'da büyük bir hazine meydana getirmekle meşgulmüş. Oluşturduğu repoda cumartesi geceleri çalışmalarından çıkardığı notları derlemiş. An itibariyle Angular‘dan React'e Vue'ye, TypeScript'ten Python'a, Blazor'dan GraphQL'e 29 farklı konuda makale ve örnek var. Şuradan hazineye ulaşıp, hunharca tüketip, “star"ınızı bırakabilirsiniz.
Boca: Blockchain Uygulaması Geliştirme
Son dönemin hype, hype olduğu kadar da büyük potansiyele sahip teknolojilerinden biri Blockchain. Şahsi düşünceme göre her yazılımcının en azından temellerini bilmesi ve uzaktan da olsa takip etmesi gereken bir teknoloji. Hatta belki elimizi kirletmenin vakti de gelmiştir. Bu sayıda farklı dil ve platformlar üzerinde Blockchain uygulaması geliştirmeye yönelik, rast geldiğim kaynakları üzerinize boca ediyorum(sosyal medya bölümünde de bu konuyla alakalı birkaç flood var):
Blokchain 101: Ahmet Usta ve Serkan Doğantekin‘in yazdığı -ücretsiz- e-kitapta adından anlaşılacağı üzere Blockchain'in temelleri, üzerinde geliştirilen platformlar ve uygulamalar anlatılıyor.
PHP ile Blockchain (Blokzinciri) yazıyoruz: Ulugbek Miniyarov, PHP ile Blockchain oluşturmayı anlatan 4 yazılık(PrototipProof of WorkSaklama ve Komut SatırıTransactions) İngilizce serinin çevirisini yapmış.
.Net Core ile Blockchain İnşa Etme: Hasan Denli, .Net Core üzerinde bir Blockchain oluşturmayı anlattığı 3 yazılık(Temel Altyapıyı OluşturmaProof of WorkWallet Transaction) bir seri kaleme almış.
Python ile Blockchain Oluşturma: Evrim Dönmezgel de Python ile detaylıca adım adım Blockchain oluşturmayı anlatmış.
Blockchain Yapısı ve Ethereum: Engin Ünal, Blockchain yapısı ve Ethereum'la ilgili bir dizi yazı yazmış. İlkinde Bitcoin ve Blockchain'in çalışması, ikinci yazıda Ethereum ve akıllı kontratlar, akabinde Ethereum Blockchain'i oluşturma ve son olarak da Solidity ile Ethereum'da akıllı kontrat yazmayı anlatmış.
Yine yukarıda bahsettiğim kitabın yazarlarından Serkan Doğantekin, 15'er dakika Ethereum ağı oluşturmayı ve akıllı sözleşme yazmayı anlatmış.
Son olarak Mert Susur‘un ve Onur Aykaç'ın Blockchain temelleriEthereum&Solidity ve Ethereum webinar serisi eğitim videolarını da buraya bırakayım.
Blockchain Aleminde Neler Oluyor?
Blockchain, her geçen gün popülaritesini artırıyor. Farklı farklı alanlarda farklı senaryolarda kullanılmaya çalışılıyor. Teknoloji trend/araştırma şirketleri de doğal olarak bu duruma kayıtsız değil. Recep İlkbahar, işbu araştırma şirketlerinin Blockchain hakkındaki raporlarını incelemiş ve önemli gördüğü noktaları kendi yorumlarıyla beraber paylaşmış.
Okan Yıldız ise benzer şekilde McKinsey&Company'nin Blockchain raporunu okuyup kritik noktalarını aktarmış.
Diğer yandan Enes Türk, Blockchain’in kullanım senaryolarından bahsetmeye devam ederek Blockchain üzerinde geliştirilen 2 sosyal sorumluluk projesinden bahsetmiş.
Mesut Gülecen, ilk Bitcoin transferinin alıcısı olan ve Satoshi'ye ilk destek veren kişilerden olan Hal Finney‘in “Bitcoin and Me” yazısını çevirmiş.
Yaşanmış Hikayeler
Bülteni uzun süredir takip edenlerin fark edeceği üzere en sevdiğim makale konularından bir şirketlerin vaka çalışması yazıları. Teknoloji geçişleri ve karşılaşılan problemler, yaşanan büyük krizlerin anatomisi vb. Türkiye'de çok yazılmayan amançok önemli ve değerli makaleler.
Bu bağlamda Çiçek Sepeti, yakın zamanda .Net Core ve Linux'a büyük bir geçiş gerçekleştirmiş. Turgay Özgür, bütün süreci detaylıca; karşılaştıkları ve aştıkları problemlerle beraber anlatmış.(.Net Core, Linux, Kubernetes)
Bu konudaki favori bloglarımdan hesapkurdu.com ise yine bir yaşanmış hikaye ile karşımızda. Bu defa Aydın Çınar, uygulamanın Frontend'ini nasıl kurguladıklarını anlatmış.
Yazılım Mimarileri
Hüseyin Kutluca, yazılım mimarisi geliştirme hakkında bir seriye başlamış. İlk yazıda “mimari nedir, ne değildir, temel kavramlar nelerdir ” tadında bir giriş yapmış. Sonraki yazılarda ise mimarinin nasıl tasarlanacağını anlatmaya başlamış.
Sezer Tanrıverdioğlu, Aspect Oriented Programming'i anlattığı bir seriye başlamış.(Java)
Osman Hömek, örnek bir proje eşliğinde MVC mimarisini ve ORM kavramını anlatmış.(Go)
Osman Korcan Andaç, antipatternleri anlattığı güzel ve önemli bir seriye başlamış. İlk yazısında 3, ikinci yazısında 4 adet çok görülen antipatterni anlatmış.
Eğlenceli Makine Öğrenmesi ve Yapay Zeka
Adam Geitgey'in “Machine Learning is Fun” isimli müthiş bir serisi var. Az çok matematik bilen hemen herkesin çok rahat anlayabileceği ve aynı zamanda eğlenceli bir şekilde makine öğrenmesini anlatıyor. Az çok yapay zeka ve makine öğrenmesi ile ilgilenen hatta -ben gibi- bunların ne olduğunu, nasıl işlediğini merak eden herkesin muhakkak okuması gereken bir seri diyebilirim.
İşin daha güzel tarafı ise serinin ilk 3 yazısı Türkçeye çevrildi. (ilkini Özgür Şahin2. ve 3. yazıları ise Atakan Yenel çevirmiş) Umarım kısa sürede topluluğun da katkısıyla tüm serinin çevirisi yapılır.
Özkan Doğan ise pekiştirmeli öğrenmenin popüler algoritmalarından Q-Learning‘i anlattığı bir seriye başlamış.
Hakan Arıbaş, yapay zeka & etik konusunda bir derleme yapmış.
Hadi Test Yazalım
Yazılım geliştirirken test yazmanın faydası saymakla bitmiyor. Ama diğer yandan test yazmamak için üretilen bahaneler de bitmek bilmiyor. Orhun Beğendi, bu konuda elini taşın altına koyarak yine büyük bir amme hizmetine imza atmış ve test yazma konusunda bir yazı dizisine başlamış. Seriyi 12 yazı olarak planlamış ve şu ana kadar 5 tanesini yayımlamış(123, 4, 5). Her zamanki gibi kendi tecrübelerini de içeren keyifli yazılar olmuş.
Kullanıcı Deneyimi
Ürünün başarıya ulaşmasındaki en önemli kalemlerden biri kullanıcı deneyimi dediğimiz UXSelman Ay, bu konuda Kullansınlar isimli bir Medium Yayını oluşturmuş ve arayüz tasarımı ile UX tasarımı hakkında uzun süredir baya güzel içerikler üretmiş. Yakın zamanda ise “şirketleri UX'e neden ve nasıl teşvik etmeliyiz?”, “UX tasarımcılarının sorması gereken 10o harika soru”, “bir UX ve UI tasarımcısı olarak tasarım sürecim nasıl geçiyor” ve “gençlerin kullanıcı deneyimi: gençler için tasarlamak - bölüm ½” başlıklı 4 yazı yayımlamış.
Nermin Canik, bir e-ticaret sitesi örneği üzerinden kullanıcıların web sitesini neden terk ettiğinin tespitini ve önleme yöntemlerini anlatmış.
Kamudan Güzel Haberler
Pek çoğumuzda olduğu gibi bende de kamu kurumlarının teknolojiyle ilişkisi konusunda olumsuz önyargılar var. Bu yüzden böyle konudaki her gelişme beni sevindiriyor. Bu kez Kütahya İl Özel İdaresi'nde süreçlerin analogdan dijitale dönüştürülmesi için oluşturulan teknolojik altyapı hakkında bir yazı yayımladı. Bu dönüşümde -anladığım kadarıyla lider olarak- yer alan Ömer Savaş, söz konusu süreci başlangıcından itibaren, kullanılan modern teknolojilerle(mikroservisler, docker, RabbitMQ, ELK, Varnish, Redis…) ve kullanılan araçların seçilmesinin nedenleriyle birlikte anlatmış.
Diğer güzel haber ise bir süre önce projelerini açık kaynak olarak paylaşan Çankırı İl Sağlık Müdürlüğü‘nün blog açması olmuş. İlk yazı GrayLog kurulumu hakkında.
Tarayıcıda Yapay Zeka
TensorFlow.js sayesinde tarayıcı üzerinde çalışan yapay zeka uygulamaları yazılabiliyor. Ki bu da her yazılımcının en azından giriş seviyesinde yapay zekayı kurcalaması için yeni bir sebep daha demek.
Bu konuda yakın zamanda 2 tane Türkçe makaleye denk geldim.
İlki aynı zamanda konu hakkında Developer Summit etkinliğinde sunum yapan Yavuz Kömeçoğlu‘nun nispeten geniş çerçeveli yazısı. Diğeri ise Emre Kızıldaş‘ın Javascript ile kamera kullanarak nesne tanıma uygulama geliştirmeyi anlattığı yazısı.
Globale Açılma
Son dönemde hem yazılımcılarımızın hem de yazılım firmalarımızın yurtdışına yaptığı işlerde sevindirici biçimde ciddi bir artış var. Yazılım ihraç eden firmalarımızın yanında Türkler’in yurtdışında kurduğu Countly, Netsparker, Logiwa vb. başarılı firmalar da güzel işler yapmaya devam ediyor. Ayrıca son dönemde artan bir vurgu var: her girişimin hedefinin global arena olması gerekliliği.
Countly’den Görkem Çetin, yine sektörün önemli ihtiyaçlarına yönelik güzel bir yazı kaleme almış ve kendi tecrübeleri üzerinden Fortune 2000 listesindeki firmalara nasıl yazılım satılabileceğini, satış süreçleri, bu süreçlerde dikkat edilmesi gereken noktaları anlatmış. Global düşünen herkesin okuması elzem bana göre.
Tabi globale açılmadan önce nitelikli bir ürün geliştirmiş olmamız gerekiyor. Bu konuda da Emre Mert‘in pek çok kalemde tavsiyelerini dillendirdiği 2 yazısını(12) öneriyorum.
Derin Javascript
Özellikle Javascript hakkında nitelikli yazılar kaleme alan Tahir Kardak, bu kez 3 tane çeviri yazı yayımlamış. Javascript'te anlaşılması zor konular hakkındaki yazıların ilkinde tip dönüşümü, ikincisinde Javascript motorlarının çalışma mantığı, son yazıda ise “value” ve “reference” tipler anlatılmış. Yazılar da çevirileri de gayet keyifli olmuş.
Javascript demişken Doğan Öztürk de katıldığı Amsterdam JSNation etkinliğinden notlarını paylaşmış. Sunum videoları da yazının içinde mevcut.
Yine Javascript demişken “JavaScript için Uyarlanmış Temiz Kod Kavramları” başlıklı çok güzel bir Türkçe doküman hazırlanmış.
Robot Hukuku
Muhtemelen önümüzdeki yıllarda bolca tartışacağımız bir başlık bu. Adından anlaşılacağı üzere hayatımıza girecek hem robotlarla hem de sürücüsüz araçlarla ilgili hukuki meselelerle ilgilenen bir alan. Selin Çetin, bu kavramın ne olduğundan başlayarak nasıl geliştiğini, Türkiye'de ve dünyada ne durumda olduğunu, bu alanda çalışmak isteyenlere tavsiyelerini ve daha pek çok konuyu ihtiva eden bir yazı kaleme almış.
Blockchain Gerçekten Bir Devrim mi?
Bitcoin'in halka inmesi, sonra değerinin çakılması, ICO'ların dolandıcılık için kullanılması vb. pek çok gelişme sonrası insanlar Blockchain'e biraz mesafeli durmaya başladı. Cemil Şinasi Türün, olumsuz görüşlere karşın Blockchain'in neden hala bir devrim olduğunu yazmış.
Kamer Elciyar ise merkeziyetsizliğin ne olduğunu sorarak, bu ifadeden ne anlamamız gerektiğini, hangi yapıların ne kadar gayrımerkezi olduğunu, hangi uygulamalarda merkeziyetsizliğe ihtiyaç duyulabileceğini vb. konuları ele aldığı bir yazı kaleme almış.
Fikir Babası Türk Profesör Olan Blockchain Projesi
Bu hafta göğsümüzü kabartan bir projeden haberdar oldum: Avalanche. Fikir babası ve ana geliştiricisi Cornell Üniversitesi'nden Türk bilim adamı Prof. Dr. Emin Gün Sirer imiş. Kendisinin ayrıca daha önce de p2p ağlar için önemli ve hala kullanılan çalışmaları varmış.
Projede Bitcoin'in maliyetli olan transfer işlemleri için çok hızlı(yaklaşık 2 saniye) ve güvenli olduğu iddiasında, madencilik gerektirmeyen bir algoritma geliştirilmiş. Ege Tekiner, kuş bakışı Emin Hoca'nın çalışmalarından ve Avalanche projesinden bahsetmiş.
SPA(Single Page Application)lar ve SSR(Server Side Rendering)
Son dönemin en gözde ön yüz yaklaşımı sanırım Single Page Application. Elbette yazılım dünyasındaki her şey gibi bu yaklaşım da kusursuz değil(yani her şey kusurlu, yani hiçbir şey kusursuz değil). Zingat'tan Üsame Fethullah Avcı, bu yaklaşımdaki rendering tekniklerinin(server side, client side ve pre-rendering) neler olduğunu, çalışma şekillerini, artı-eksilerini ve hangi durumlarda kullanılmaları gerektiğini detaylıca anlatmış.
Refactoring
Hayatın her alanındaki entropi, yazılımlarımızı da boş geçmiyor. Zaman geçtikçe yeni özellikler gelip kodlar büyüdükçe daha da anlaması zor ve hataya açık hale geliyor. Bu yüzden hayatımızda her an olması gereken bir kavram var: Refactoring.
Bora Kaşmer, Refactoring anlattığı bir seriye başlamış. Konsept ise Martin Fowler'ın kitabındaki bir örnek üzerinden bir laboratuvar ortamı(kokan bir proje) oluşturarak Refactoring yapmış.
Yazılım Trendleri
Mustafa Ekim, geçtiğimiz senelerde 15 yazılık güzel bir seri(hepsini okumuştum ve sizlere de tavsiye ediyorum) ile yazılım geliştirme trendlerinden bahsetmişti. Bu kez bu yazıların tek tek muhasebesini yaparak hangi öngörülerinde başarılı olduğunu, hangilerinde yanıldığını yazmış
Yeni Ufuklar
Görebildiğim kadarıyla yazılımcıların ciddi çoğunluğu belli başlı programlama dillerine ve nesne tabanlı programlamaya yöneliyor. Bunun yanında özellikle “bulut"un yaygınlaşmasıyla fonksiyonel programlama da popülerliğini artırıyor.
Geçtiğimiz hafta “ana akım"ın dışındaki dillerle alakalı 2 güzel yazıya denk geldim. Bunların ilki Erlang. -Duyduğum, okuduğum kadarıyla- paralel çalışma ve eşzamanlılık olaylarını müthiş kotaran bir dil. WhatsApp ve RabbitMQ gibi yüksek hızın önemli olduğu uygulamaların bu dille yazılması da önemli bir gösterge. Rıdvan Nuri Göçmen, Erlang'a genel bir bakış atmış.
Diğer yazı ise öğrenmesinin zorluğuyla meşhur fonksiyonel programlama dili Haskell. Üniversite öğrencisi Ali Barış Ayten, Haskell'ı keyifli bir şekilde anlatan online ve İngilizce bir kaynağı okumaya başlamış. Hazır okurken de bizleri düşünerek Türkçeye çevirmeye karar vermiş.
Aykırı Yazılımcı
Pek çok meslekte olduğu gibi yazılımcıların da iş hayatında karşılaştığı problemler var. Elbette genel problemlerin yanında yazılımcının yaptığı işin diğer insanlar için “soyut” olmasının neden olduğu bir kısım problemler de var. Şanslıyız ki son dönemlerde bu problemlere sıkça kafa yoran insanlar var. Özellikle Codefiction 3 senedir bunu yapıyor.
Geçtiğimiz hafta ise Hüseyin Polat Yürük, yazılımcıların kimi zaman dış kaynaklı kimi zaman da kendilerinden kaynaklanan doğru bilinen yanlışlara ve tabulara odaklanmış ve Medium'da “Aykırı Yazılımcı” adıyla bir yayın açmış.
Derdini anlattığı bir giriş yazısı ve “performansı kod satır sayısı ile ölçme” yanlışı hakkında yazmış. Ayrıca benzer derdi yaşayan herkesi bu konuda yazmaya davet etmiş.
Kuantum Bilişim
Özellikle Kuantum Bilgisayarlar konusundaki makaleleriyle burada sık sık yer verdiğim Zeki Seskir, geçtiğimiz ayda bu konuda bolca içerik üretmiş. Öncelikle biz konudan uzak insanlar için kuantum dolanıklık kavramını izah etmiş. Sonraki yazısında Okan Bayülgen'in ağır isimleri konuk edip Kuantum muhabbeti çevirdiği programı yorumlamış. Diğer bir yazısında ise Kuantum Atlamaları gözleme ve geri çevirme hakkında yazmış. Son olarak Kuantum Kimya için Kuantum Bilgisayarların kullanımından bahsetmiş.
Libra'yı Tanıyalım
Son haftaların popüler haberlerinden biri Facebook'un piyasaya süreceğini açıkladığı Libra kripto para ve Blockchain platformu. Konuyla alakalı birkaç Türkçe makaleye denk geldim.
İlk olarak projenin resmi dokümanı olan izahnameyi(white paper) Ebru Güven, Türkçeye çevirmiş..
Diğer bir önemli makale Turan Sert‘in enine boyuna konuyu incelediği ve pek çok soruyu yanıtladığı yazısı: Facebook'un kafasına nereden esti kripto para çıkarmak? Neden tek başına sahip olmuyor da başka şirketlerle ortak vakıf kuruyor? sosyal ve ekonomik olası sonuçları neler olacak? Mevcut Blockchain ekosistemini ve kripto paraları nasıl etkileyebilir? Babam böyle pasta yapmayı nereden öğrendi?
Ussal Şahbaz, konuya Libra Vakfı'nın kuruluşunu ve statüsünü inceleyerek başladığı yazısında hem küresel ekonomiye hem de ülkemiz ekonomisine olası etkilerini yazmış.
Güven Sak ise konuyu ekonomik boyutları ve riskleriyle irdelemiş.
Algoritmalar
Gerçek hayatta kullanılan algoritmaları tanımak bana her zaman yeni bakış açıları ve ufuk katıyor. Bu algoritmalardan ikisi hakkında birer makaleye denk geldim geçtiğimiz hafta. Bunlardan birinde Alperen Özlü, eşleştirme problemleri için(karı-koca, öğrenci-üniversite, hasta-donör vb.) kullanılan “kararlı eşleşme algoritması“nı anlatmış.
Ahmet Ataşoğlu, yine rahat anlaşılır bir şekilde Yapay Zeka alanında kullanılan önemli algoritmalardan birini anlatmışgenetik algoritmalar. Gerçek yaşamdan nasıl esinlenildiğinden başlayarak detaylıca yapısını anlatmış. Yazı sonunda da yine ilgi çekici bir örnekle bu algoritmayı kullanarak Shakespeare'in bir sözünü üretmiş.
Diğer yandan Üsame Kaldırımsimetrik-blok şifreleme algoritmalarını anlatmış. Aynı zamanda algoritmaların detayına gireceği bir yazıyı da vadetmiş
RxJS
Javascript'le uğraşanların aşina olduğu asenkron çağrılar yapmayı ve eşzamanlılığı(concurrency) yönetmeyi kolaylaştıran popüler bir konsept var: RxJS. Tahir Kardak, RxJS'i anlatmak için bir yazı dizisine başlamış. İlk yazıda konseptin temel kavramlarını anlatmış. Aynı zamanda animasyonlarla RxJS'te sıralı dizileri birleştirmeyi anlatan güzel bir yazıyı çevirmiş.
Yazılım Tasarımı Nedir?
Lemi Orhan Ergin'in birkaç sunumunda atıf yaptığı ve şiddetle okunmasını önerdiği bir yazı vardı: Jack W. Reeves’ın 1992 tarihli “What is Software Design” makalesi. Nesne yönelimli programlamanın yeni yeni yaygınlaştığı dönemlerde yazılım tasarımının nasıl olması gerektiğinden, Refactoring'den, test yazmaktan bahseden uzun ve önemli bir makale bu.
Bu önemli makale için yaklaşık 2 yıl kadar önce bir çeviri denemesi yapmıştım. Sosyal medyada hala zaman zaman paylaşmama rağmen burada -hatırladığım kadarıyla- hiç paylaşmadığımı fark ettim. Okumak için buradan buyurun.
10 Kaplan Gücünde Mühendis
Geçtiğimiz haftalarda yanılmıyorsam Hintli bir arkadaşın Twitter'da yaptığı “10x engineer” paylaşımı pek çok platformda bolca tartışıldı.(Ben de geçen hafta burada Gökhan Topçu'nun flooduna yer vermiştim) Hüseyin Polat Yürük, bu tartışmaya yazdığı blogla katılmış: “ezber bozan 10x mühendis”. Yazıda söz konusu paylaşımı ciddi biçimde eleştirerek sayılan maddeleri “doğru bilinen yanlışlara” canlı birer örnek olarak kullanmış. Aynı zamanda burada anlatılanların hangi konumda doğru olacağından bahsetmiş.
Bu konu aynı zamanda denk geldiğim kadarıyla 2 ayrı podcastte de tartışılmış. Bunlardan ilki Codefiction ekibinin şu yayını, diğeri ise podcast ailesinin çiçeği burnunda üyesi KodPod'da Fatih Kadir Akın ile Uğur Özyılmazel'in yayını.
Yüksek Seviye Dillerde Bellek
Donanımdan uzaklaştıkça soyutlamalar artıyor ve pek çok işlemi frameworklere terk ediyoruz.(Soyutlamalardan bahsettikçe Bilgem Çakır‘ın şu tıka basa derin bilgi dolu sunumunu hatırlıyorum) Örneğin C ve C++ gibi dillerde bellek yönetimini bizim yapmamız gerekirken yüksek seviyeli dillerde çöp toplama(Garbage Collection) mekanizmalarına devrediyoruz.
Oğuzhan Çevik, Java'da bellek yönetiminin ve söz konusu Garbage Collection mekanizmasının nasıl işlediğini anlatmış.
Berkan Şaşmaz ise C# günlüklerinin 3. sayısında C#‘ta bellek yönetimini detaylıca anlatmış.
Yapay Öğrenme İle Ters Kinematik
Yeni öğrendiğim bir kavram: kinematik. Birden fazla eklemi olan bir robot kolunun son parçasının nasıl hareket edeceğini ayarlamak için bağlantılı tüm eklemlerin yapacağı hareketleri hesaplama imiş. Aynı zamanda ters kinematik de son kolun alacağı konum ve açıdan hareketle öncekileri hesaplama imiş.
Cümle içinde kullanımı: “Ben kinematik gördüm.”
Engin Kaya, ters kinematik çözümü için yapay öğrenmenin kullanımını anlatmış.
Bir Gemiyi Hacklemek
Siber saldırı hikayeleri her zaman ufkumu açan, hiç aklıma gelmeyecek noktalardaki zekice yakalanan zafiyetleri ortaya koyan olaylar olmuştur. Geçtiğimiz hafta içeriğindekileri yine şimdiye kadar hiç düşünmediğim bir siber güvenlik yazısı okudum: o gemi bir gün hacklenecekEşref Erol, bir geminin hangi noktalardan ve nasıl yöntemlerle hacklenebileceğini anlatmış.
Girişimcilik Serüveni
Yücel Faruk Şahan, geçtiğimiz birkaç yılı girişimcilik macerası ile geçirmiş. İlk etapta ekipte sadece kendisinin kaldığı bir noktada başarısız olmuş. Daha sonra bu serüvenden çıkardığı derslerle ve hatta yeni girişim fikriyle tekrar çalışmaya koyulmuş. Akabinde ekibini kurarak 6 ay içinde ürünü(mobil uygulama) yayına almışlar.
Bizi ilgilendiren kısmına gelirsek. İlkinde bahsi geçen başarısızlık hikayesini ve çıkardığı dersleri anlattığı, diğerinde ise teknik detaylarıyla 6 ayda mobil uygulamayı nasıl çıkardıklarını anlattığı 2 güzel yazı yayımlamış.
Matematik Öğrenelim
Yapay Zeka ile ilgilenmeye hazır veri setlerini kullanıp birkaç giriş örneği yazarak başlayanlar farkında olmasa da kendisi, çok yoğun matematik kullanılan bir alan. Daha önce çocuklar için yapay zeka serisini burada bolca övdüğüm Zafer Demirkol‘un, bu kez “herkes için yapay zeka matematiği"ni anlatmaya başlamış(123). Yine gayet anlaşılır makaleler ortaya çıkmış.
Yapay Zeka öğreniminden bahsetmişken, Şefik İlkin Serengil de “Yazılımcılar için Makine Öğrenmesi Rehberi” başlıklı bir çeviri yazı yayımlamış.
Hüseyin Güzel, derin öğrenme, makine öğrenmesi ve yapay zeka kavramlarının arasındaki farkların anlatıldığı bir çeviri yazı yayımlamış.
Ahmet Ataşoğlu ise Python‘da bulanık mantık modellemeyi anlatmış.
Otonom Araçlarda Derin Öğrenme
Pek çok teknoloji ve otomotiv firması, otonom araçlar üretmek için ciddi bir çalışma içerisinde. Üzerindeki çok sayıda sensörle hem çevreyi algılaması hem yolu algılaması hem de olası bir kazayla yüz yüze gelmesi halinde nasıl hamle yapacağını belirlemek durumunda. Özellikle tahmin üretme ve karar alma noktalarında derin öğrenmenin kullanımı önem kazanıyor.
Mustafa Mert Tunalı, derin öğrenmenin işbu otonom araçlarda çalışma mantığını anlatmış.
Teknolojiye Engelsiz Erişim için Görüntü İşleme
Yapay Zeka'nın çok hızlı geliştiği bu çağdaki önemli teknolojilerden biri de görüntü işleme. Özellikle Çin'deki kullanımı insanı distopik düşüncelere gark etse de insanın hayatını kolaylaştıran uygulama alanları da elbette mevcut. Bunlardan biri Bilgisayar Mühendisliği okuyan Özkan Doğan ve Ozan Şahin‘in bitirme tezi olarak geliştirdiği bir uygulama. Kısaca engelli bireylerin bir ekrandaki menülerin üzerinde gözleriyle gezinerek ve seçim yaparak akıllı ev cihazlarını kontrol etmesini sağlıyor. Gözün hareketlerini yapay sinir ağları kullanarak yakalamışlar. Fark edeceğiniz üzere fikir geliştirilmeye çok müsait. Yazdıkları blog ile projenin teknik detaylarını anlatmışlar.
Javascript'te Bileşen Odaklı Geliştirme
Gözde frontend frameworklerinin doğuşuna sebep olan temel fikirlerden biri bileşen odaklı geliştirme. Ersen Başaran Şen geçtiğimiz yıl yayımladığı yazısında, yıllar önce web sayfalarının nasıl geliştirildiğinden başlayarak, bu noktaya ve fikre nasıl gelindiğini hikaye etmiş.
Bileşenlerden bahsetmişken Güner Kaan Alkım‘ın, Javascript'te bileşen tasarımını anlattığı 2 yazısını da bırakayım(12)
Bir Göç Hikayesi
Selçuk Usta, geçtiğimiz ay tam sevdiğim, okumaktan keyif aldığım, faydalı bulduğum ve her seferinde Türkçede benzerlerinin yazılmasını dilediğim tarzda bir yazı kaleme almış: Bir Kubernetes Göçü Hikayesi. Başta monolitik yapıda olan uygulamalarını servis yapısına ve Kubernetes‘e geçirme serüvenlerini detaylıca anlatmış. Kullanılan teknolojilerden mimarisine; monitoring, tracing, logging kurgularından deployment süreçlerine ve tüm bu aşamalarda yaşadığı problemlere genişçe değinmiş.
Svelte, Rust, Kaos Mühendisliği
Zafer Ayan, çoğunlukla Türkçe kaynağın az olduğu konularda detaylı içerik üreten bloggerlardan biri. Geçtiğimiz ay Devnot'ta bu kapsamda 3 yazı yayımlamış.
Bunlardan ilkinde tarihçesinden başlayarak kaos mühendisliğini ve bir örnek üzerinden uygulamasında kullanılan yöntemleri anlatmış.
Bir diğer yazısında son zamanlarda her ortamda bolca övülen Rust diline geniş bir giriş yazısı yazmış.
Son yazısında ise ismi yavaş yavaş duyulmaya başlanan ilginç Javascript frameworkü(ve derleyicisi) Svelte'i ve getirdiklerini anlatmış.
Bir Tutam Fonksiyonel Programlama
Özellikle benim gibi yıllarını nesne yönelimli programlama konseptinde geçirenler için tamamen farklı bir paradigma içeren fonksiyonel programlamayı anlaması biraz zor oluyor. Türerkan İnce, bizleri düşünmüş ve tane tane fonksiyonel programlamanın mantığını anlatmış.
Murat Koptur ise fonksiyonel programlama jargonu hakkında bir çeviri yazı yayımlamış.
Tabi bu bahsi kapatmadan Chris Stephenson‘ın konu hakkındaki -Türkçe- sunum videolarını da bırakmadan geçmeyeyim.(1. bölüm2. bölüm)
Yapay Zeka Ekosistemi Gelişiyor
Son zamanlarda ülkemizdeki yapay zeka ekosistemi ile alakalı güzel gelişmeler oluyor. Geçtiğimiz haftalarda İstanbul Üniversitesi'nde Tıp Fakültesi önderliğinde “Radyoloji’de Yapay Zeka Öncü Toplantısı” düzenlenmiş. Mustafa Mert Tunalı ise bu toplantıdan çıkardığı notları paylaşmış.
Ayrıca Kodluyoruz, yapay zekanın en önemli kollarından makine öğrenmesi hakkında bir bootcamp düzenlemiş ve öğrencilerden mezun olmaları için proje yapmalarını istemişler. Gülcan Yayla, ortaya çıkan projelerden 5 tanesini örnek olarak paylaşmış.
Yazılımcı Profilimiz
Geçtiğimiz haftalarda Burak Selim Şenyurt, ülkemizdeki yazılım geliştirici profilini merak etmiş ve bunun için bir anket düzenlemişti. 1000'in biraz üzerinde yazılımcının katıldığı ankette ilgi çekici sorular da vardı. Anketi sonuçlandırdıktan sonra tek tek tüm soruları ve gelen cevapları analiz ettiği güzel bir yazı kaleme almış.
Ek Proje Geliştirme
Tam zamanlı çalıştığımız işin dışında ek projelerle meşgul olmanın maddi manevi pek çok getirisi var. Elbette biraz fedakarlık gerektiren bir aktivite. Salih Oktay Akar, ek proje geliştirmenin neden önemli olduğundan ve getirilerden bahsetmiş.
Hüseyin Mert ise bu geliştirme sürecinde nelere dikkat edilmesi gerektiğinden bahsetmiş.
Tabi konusu açılmışken burada daha önce de paylaştığım Emre Mert‘in “yan proje geliştirme rehberi“ni analım.
Tecrübe, Tecrübe, Tecrübe
İşbu bültenin müdavimlerinin hatırlayacağı üzere okumaktan belki de en çok zevk aldığım makale türleri vaka çalışması diyebileceğimiz yaşanmış bir probleminin çözümünün veya yapılan bir geliştirmenin hikayesinin anlatıldığı yazılar.
Bu kapsamda geçtiğimiz hafta Hüseyin Güner, oldukça güzel bir yazı yayımlamış. Geçen sene dakikada 500K isteği rahatlıkla kaldıran ve Spring Boot üzerine bina edilen sistemin sayı büyüdükçe hantallaşmasından mütevellit başka arayışlara girmişler ve akabinde Golang‘de karar kılmışlar. Dakikada 1.5 milyon isteği karşılamaya başlayan sistemin hikayesi şurada.
Ömer Savaş ise bir kamu kurumundaki oldukça karmaşık ve tam sanallaşamamış bir ağı alıp nasıl düzgün, yedekli, yüksek erişilebilir ve gerçekten sanal bir ağa dönüştürdüklerini anlatmış.
Reklamlar
Muhtemelen çoğu okur gibi siz de benim ismimi, okumakta olduğunuz bu bülten vesilesiyle duydunuz. Bu durum dolayısıyla ismimle bülten özdeşleşiyor ve birileriyle konuşurken konu, eninde sonunda bültene geliyor(elbette şikayetçi değilim). “Özel yaşamımla değil bültenimle” gündeme geliyorum(“yazılım sektörünün e-posta şube müdürü”). Bu muhabbetler esnasında sorulan soruları ve sorulmadığı halde merak edeceğinizi düşündüğüm bazı konuları derleyip bültenin macerasını anlattığım bir yazı yayımladım. Keyifli okumalar.
Soyutlama ve Evrim
Geçenlerde yazılım dünyasında her şeyin çok hızlı değiştiğinden ve güncel kalmanın zorluğundan bahseden bir arkadaşa şakayla karışık “abi gömülü yazılıma geç rahat et” demiştim. Sonraki gün bu muhabbet aklıma geldiğinde makine dillerinden yüksek seviye dillere ve bunların frameworklerine geldikçe hem bu hızlı değişimin hem de soyutlanmanın arttığını düşündüm. Arada cidden bir korelasyon vardı.
Daha sonra okuma listesinde bekleyen Özcan Acar‘ın “Bilginin Evrimi” yazısını okuduğumda Özcan Hoca'nın bunların birbirine bağlı olduğunu düşündüğünü ve soyutlama arttıkça bilgi oluşumunun da arttığından, daha fazla bilginin de soyutlamayı hızlandıracağından bahsettiğini gördüm. Bu girizgahtan sonra ise Mikroservis Mimarisi, Reaktif Programlama, Reaktif Mimari, Angular gibi farklı yaklaşım ve frameworkler üzerinden “bilginin evrimini” anlatmış. Bunların öncesinde hayatımızda neler vardı, niye ortaya çıktılar, evrim süreçleri neydi ve devamında neye evrilebilirler gibi oldukça ilgi çekici soruların cevabını aramış. Şiddetle tavsiye ettiğim bir makale.
Bir Yapay Zeka Projesi
Geçtiğimiz aylarda düzenlenen Teknofest'19'da “Yapay Zeka Yarışması” düzenlenmiş. RetinaNet kullanarak dronedan alınan görüntülerde nesne tespiti yapan projesiyle HÜMA takımı finalistlerden biri olmuş. Yavuz Kömeçoğlu, bu projenin hikayesini paylaşmışSıddık Açıl ise projenin teknik kısmını anlatmış.
Yapay Zeka demişken;
Gökhan Yücel, Gartner'ın Yapay Zeka trendleri hakkında yayımladığı rapordan bahisle 37 madde halinde ve okuma/izleme önerileri eşliğinde Yapay Zeka'nın bugününü ve yarınını yazmış.
Şebnem Özdemir, Yapay Zeka hakkında konuşulan korku senaryolarından ve bunların haklılık paylarından bahsetmiş.
Muhammed Pektaşmakine öğrenmesi ile yüz tanıma için kullanılan FaceNet mimarisini, bir örnek eşliğinde anlatmış.
Şevket Ay, veri kümelemek için kullanılan K-Means algoritmasını anlatmış.
Açık Kaynak Davası
Son yıllarda açık kaynağın popülaritesi inanılmaz bir hızla artıyor. Trendin en büyük göstergesi Microsoft'un attığı adımlar olsa gerek. Türkiye'de de aynı hızda olmasa da bir iyiye gidiş var. Hatta Bakanlık, bu konuda bazı çalışmalar yapıyor. Ülkemizde açık kaynağın yayılması için çaba sarf edenlerden Eser Özvataf, kişisel açık kaynak macerasını, motivasyonunu, devamında ise kurucusu olduğu ve bugünlerde hareketlenen acikkaynak.info platformunun geçmişini, geleceğini ve misyonunu yazmış.
Bir Emülatör Yazmak
Rust, son zamanların en çok övülen dili olabilir. Benim de zaman bulabilirsem öğrenmeyi istediğim bir dil. Onur Aslan, bizler için Rust ile oldukça ilginç ve kapsamlı bir proje geliştirmiş ve geliştirilmesini e-kitap olarak yayımlamış. Konu: Rust ile bir CHIP-8 dili emülatörü yazmak. Proje, ayrıca emülatörlerin ve aynı zamanda modern CPU'ların çalışma prensibini anlamak için de önemli.
Javascript'i Anlamak
Javascript frontend, backend, mobil derken her tarafımızı sarmaya devam ediyor. Direkt Javascript geliştirici olmasak da ucundan bucağından bir şekilde bulaşıyoruz. Böyle bulaşınca da çoğu zaman gerçekten öğrenmeden, ihtiyacımız olan şeyleri StackoverFlow'dan bulup devam ediyoruz. Sonuç olarak da x fonksiyonu nasıl çalışıyor, y keywordü neden şurada farklı, burada farklı davranıyor vb sorular kafamızı kurcalıyor(yaşanmış olaylardan esinlenilmiştir). Onur Dayıbaşı, bu durumda olanlara deva olabilecek güzel bir seriye başlamış. İlk etapta Javascript'in tarihçesini anlatarak sırasıyla önemli kavramları neden ve nasıl kullandığımızı anlatmış. An itibariyle seri, 9 yazıya ulaşmış.
Yine Tahir Kardak, Javascript’te bolca kafa karıştıran this ifadesini anlatmış.
Halil İbrahim Özdoğan, Javascript’te daha performanslı uygulamalar geliştirmek için kullanılabilecek memoization yöntemini anlatmış.
Kaan Bayram ise Javascript’te Object.freeze() fonksiyonunun kullanım nedenini, mutable ve immutable kavramlarını anlatmış.
Diğer yandan Zafer Ayan, Javascript ES6 üzerinden detaylıca fonksiyonel programlamayı anlatmış. Hem fonksiyonel programlamayı öğreniyorsunuz hem de Javascript’i daha iyi anlıyorsunuz.
Kanunlarımız
Yasa, ortaokuldan hatırladığım kadarıyla “bilimsel olarak doğruluğu kesin teorem"ler olsa da bizim hayatımızdaki kanunlar, yasalar(Murphy, Moore) daha ziyade genellemeleri ifade ediyor. Github'da Hacker Laws diye bir doküman oluşturulmuş. Yazılım ve bilgisayar bilimi ile ilgili yasalar ve yazılım prensipleri güzelce derlenmiş. Umut Işık, amme hizmeti olarak bu dokümanı Türkçeye çevirmiş.
Şol Kuantum Bilgisayar Dedikleri
Kuantum Bilgisayar son dönemin “hype"larından. Ama ismi ne kadar bilinse de ne olduğunu gerçekten bilen kişi sayısı çok az. Ne olduğunu bilenler arasında da muhtemelen gerçekten nasıl çalıştığını bilen sayısı daha da az. Ki aslında bu pek anormal bir durum değil. Çünkü konu fizik, kuantum fizik, matematik ve bilgisayar bilimlerini aynı anda içeriyor.
Konu hakkında nitelikli Türkçe içerik üretenlerden Kutlu Kutluer, uzun uzadıya ve elden geldiğince anlayacağımız seviyeye indirgeyerek Kuantum Bilgisayarlarını, çalışma prensibini ve nasıl inşa edildiklerini detaylıca anlatmış. (Daha önce dediğim gibi beynimde yer yer kızarıklıklar oluşsa da baya anladığımı sanıyorum.)
Diğer yandan Yavuz Selim Yıldız da Kuantum Bilgisayarlar'ın çalışma prensibini anlatarak başladığı yazısında, bu bilgisayarların Bitcoin ve Sha256 şifreleme algoritmasının güvenliği için bir tehdit olup olmadığını irdelemiş.
Yapay Zeka ve Yazılımcılar
Yapay Zeka pek çok sektörü etkilemeye hazırlanırken muhtemelen biz yazılım geliştiricileri de boş geçmeyecek. Deniz Kılınç, Yapay Zeka'nın biz yazılım geliştiricilere ve geliştirme süreçlerine muhtemel etkilerini somut örneklerle anlatmış.
Yapay Zeka demişken;
Profesör Cem Balçıkanlı Yapay Zeka'nın yabancı dil çevirisi konusunda ne kadar başarılı olduğunu ve iyi çeviri için karşılaşabileceği zorlukları irdelemiş.
Rahime Yeşil, veri mahremiyeti odaklı makine öğrenimi algoritması “federe öğrenim“den bahsetmiş.
Şevket Ay, makine öğrenmesinde topluluk öğrenimi kavramından ve bunun için kullanılan algoritmalardan bahsetmiş.
İşlemcinin İşleyişi
Burada münasebeti geldikçe ifade ettiğim gibi yüksek seviyeli dillere ve frameworklere daldıkça temellere yabancılaşıyoruz. Halbuki temelleri, bilgisayarın mimarisini, işlemcileri, derleyicileri… bilmek hem ufuk açıyor hem de bizleri daha iyi yazılımcı yapıyor. Bu kapsamda geçtiğimiz haftalarda 2 yazıya denk geldim. Bunlardan ilkinde Barış Ekin Yıldırım, modern CPU'ların çalışma prensibini anlatmışÖmer Savaş ise oldukça anlaşılır bir örnekle işlemcinin aritmetik işlemleri yapan birimi ALU'nun(Arithmetic Logic Unit) işleyişini anlatmış.
Ayrıca Prisync ekibi hazırladıkları video içerikte derleyicilerin(compiler) çalışma prensibini anlatmış. Konuyla alakalı tavsiye edeceğim bir diğer video ise Frame of Essence kanalından.
Bitirirken
Bu sene de, senenin derlemesi de nihayete erdi. Umarım istifade etmişsinizdir.
Beğendiyseniz daha fazla insana ulaşması için paylaşmayı unutmayın.
Keyifli ve afiyetli bir yıl diliyorum efendim.
Zâtınıza çook iyi davranın.
Bana ulaşmak için: LinkedinTwitterCuriousCat
Daha fazla motive etmek için: Patreon
Did you enjoy this issue?
Muhammed Hilmi Koca

Okuduğum, istifade ettiğim ve başka yazılımcılar için de faydalı olacağını düşündüğüm bir kısım makale ve haberleri haftalık olarak derleyip kısa kısa tanıtıyorum.
Cumartesi sabahları posta kutunuzu kontrol edin!

If you don't want these updates anymore, please unsubscribe here.
If you were forwarded this newsletter and you like it, you can subscribe here.
Powered by Revue