Yazılımcılar İçin Hafta Sonu Okumaları - Sezon #2 / Sayı #60(Açık Kaynak Kitaplar, Sorularla Fonksiyonel Programlama, Frontend ve daha fazlası)
Merhabalar.
60. sayı ve aynı zamanda 2. sezonun finaliyle karşınızdayım. Bu sayıdan sonra tahminen 1-1,5 aylık bir süre zarfında yeni sayı olmayacak. Elbette okumaya devam. Okuduklarımı da Twitter'dan paylaşmayı planlıyorum. Arada bir #YazılımcıOkumaları hashtagine göz atabilirsiniz.
Neyse, sadede gelelim artık.
Açık Kaynaklar
Geçtiğimiz haftalarda e-kitap statüsünde 3 güzel Türkçe doküman yayımlandı.
Bunlardan biri tasarım prensipleri ve tasarım desenleri hakkında bir üniversite öğrencisi olan Yusuf Yılmaz tarafından hazırlanan açık kaynak doküman.
Bir diğeri mikroservis mimarisi hakkında bir dönem -görece eski okurlarımızın hatırlayacağı üzere- oldukça yoğun içerik üreten Suat Köse'nin bunları derleyip toparladığı ve ekleme-çıkarmalarla kitap formatına getirdiği açık kaynak "Mikroservis Mimari" dokümanı.
Diğeri ise Oğuzhan İnan'ın açık kaynak yük dengeleyici(load balancer) ve proxy çözümü HAProxy hakkında yazdığı kapsamlı doküman. Bu arada kendisi geçtiğimiz yıl da Varnish Cache hakkında bir e-kitap kaleme almış.
Sorularla Fonksiyonel Programlama
Sıddık Açıl, karantina döneminde fonksiyonel programlamaya dalma kararı vermiş. Dahası 99 fonksiyonel programlama meydan okuması diye bir problem serisini F#'ta çözmeye başlamış ve her soruyu/çözümü paylaşmaya karar vermiş. An itibariyle 10'dan fazla sorunun çözümünü yazmış.
Ertuğrul Çetin, fonksiyonel programlama dili Clojure ile web uygulaması geliştirmeyi anlattığı bir seriye başlamış(1, 2).
Yüz Bir
Kuantum bilgisayarları anlamada önemli bir aşama kuantum fiziğini anlamak. Kuantum bilgisayarlar konusunda en aktif içerik üreticilerden Zeki Seskir, kuantum fiziğine giriş konusunda geniş bir makale kaleme almış.
Sercan Çakır, Go dili hakkında oldukça geniş bir giriş yazısı yazmış.
Batuhan Apaydın, HashiCorp ürünleri Terraform, Consul ve Vault'un dokümanlarından çıkardığı notlarını paylaşmış.
Kamil Kaplan, C# üzerinden nesne yönelimli programlamayı anlatmış. Diğer yandan "A'dan Z'ye C#" başlıklı bir seriye başlamış.(1, 2, 3)
Yine React Native
Zafer Ayan, yine seri React Native içeriği getirerek ayrı bir başlıkta açmaya mecbur kıldı. Bu defa React Native'de WebSocket marifetiyle bir chat uygulaması yazmayı, harita kullanımını, CameraRoll ile galeri fotoğraflarını görüntülemeyi, harita kullanımını, swipe to delete özelliği eklemeyi, stepper form(önceki-sonraki) oluşturmayı, ghost loader geliştirmeyi, SQLite kullanımını ve ses dosyalarını oynatmayı anlatmış.
React Native demişken;
Abdurrahman Tekin, avantaj ve dezavantajlarıyla bir Flutter vs React Native karşılaştırması yapmış.
Osman Yavuz Demir, React Native'de Router Flux kütüphanesiyle drawer menu oluşturmayı anlatmış.
Burhan Yılmaz, React Native'de Hooks kullanımını anlatmış.
Mustafa Yumurtacı, React Native'de hem Android hem de iOS için "Firebase Push Notification" entegrasyonunu anlatmış.
İrem Karaoğlu, geliştirdiği React Native projesinde hangi adımda hangi kaynaklardan faydalandığını anlatmış.
Frontend
Bir diğer üretken blogger'ımız Onur Dayıbaşı ise Frontend alanında ilerlemek isteyen yazılımcılar için bir yol haritası hazırlamış. Bunun yanı sıra modern Frontend frameworkleri ve DOM kullanım yöntemleri hakkında bir seri kaleme almış. JQuery'de DOM kullanımından başlayarak, template rendering'i(Mustache.js ile, Handlebar.js ile), Backbone.js ile DOM kullanımını ve bu tip UI bileşenlerinin ReactJS, Vue, Svelte gibi kütüphanelere/frameworklere evrimleşmesini anlatmış.
Frontend demişken Adem İlter, Youtube'da CSS video eğitim serisine durmaksızın devam ediyor.
Seriler
Üstte yazdıklarım dışında da güzel serilere denk geldim.
Ertan Deniz, yazılım tasarımı, yazılımda kalite, tasarım desenleri gibi konular hakkında hap yazılar yazmaya başlamış.
İsmet Balat, geçtiğimiz yıllarda Python'daki web geliştirme frameworklerinden Flask hakkında 17 yazılık bir seri kaleme almış. Yine Python hakkında da bir seri yazmış.
Serkan Peldek, Kaggle'da derin öğrenme ve makine öğrenmesi gibi alanlarda örnek projeler üzerinden 20 civarı makale yayımlamış.
Burak Karadağ, temiz kod prensipleri(clean code) hakkında bir seriye başlamış.(1, 2)
Haftanın Üretken Genci: Nafi Durmuş
Takip ettiğim üretken gençleri tanıtmaya devam ediyorum. "Genç"ten kasıt daha ziyade lise-üniversite çağında olanlar veya yeni mezunlar. Bu defaki konuğumuz Nafi Durmuş. Kendisi -Linkedin profilinden öğrendiğim kadarıyla- yeni mezun bir bilgisayar mühendisi. Teknik yazıları büyük çoğunlukla Ruby hakkında. Teknik yazılar dışında da bolca yazıyor. Belli dönemlerde oldukça yoğun içerik üretiyor. Mesela geçtiğimiz hafta kod yazarak müzik yapmayı sağlayan Sonic Pi hakkında bir seriye başlamış(1, 2, 3).
Motivasyonunun, başarılarının ve ekosisteme katkılarının artarak devamını diliyorum.
Kısa Kısa
Selçuk Cihan, eş zamanlı programlama yöntemlerinin çalışma prensiplerinden ve ilişkili terminolojiden bahsetmiş.
Emre Mert, salgın döneminde hastanelerde yoğun kullanılan bir yazılım ürünleri üzerinden güvenilir yazılım geliştirmeyi anlatmış.
Hüseyin Polat Yürük, girişimleri için ürünün ilk geliştirme aşamasında yanlış programlama dili/teknoloji seçiminin nedenlerinden ve sonuçlarından bahsetmiş. Bir diğer yazısında ise yan projelerde kod kalitesinin ne kadar önemli olduğunu irdelemiş.
Serkan Bektaş, modern tarayıcıların DNS önceliklendirme özellikleri ile web uygulamalarının performansının nasıl artırılabileceğini anlatmış.
Başar Kaya, salgın sonrası TÜBİTAK hibelerinin durumunu irdelemiş.
Başak Buluz, hukuk alanında Yapay Zeka uygulamalarının kullanımı irdelemiş.
Furkan Güngör, mikroservis mimarisinde servisler arası haberleşmede kullanılan bazı yöntemlerden bahsetmiş. Diğer bir yazısında ise yakında yayımlanacak .Net 5'ten ve getireceği yeniliklerden bahsetmiş.
Mesut Pişkin, mikroservis yaklaşımında servisler arası iletişimde kullanılan mimarilerden bahsetmiş.
Kurtuluş Ahmet Temel, Clean Swift mimarisini anlattığı bir yazı dizisine başlamış.(0, 1, 2)
Emre Çelebi, Swift'te nesneleri karşılaştırmayı sağlayan Equatable protokolünden bahsetmiş.
Nadin Tamer, iOS'ta uygulama ikonu tasarlamaktan bahsetmiş.
Can Balkaya, "adım adım kodla" serisinde baştan sona günlük tüketilen su miktarını takip etmeyi sağlayan bir iOS uygulaması geliştirmeyi anlatmış.
Kadir Bekar, Flutter’da mobil cihaz üzerinde login bilgisi tutmayı anlatmış.
Mert Toptaş, Flutter için geliştirilen ORM kütüphanesi Floor'dan bahsetmiş.
Halil Özel, Android’de Bluetooth Api kullanımını anlatmış.
Emre Çabuk, veri tabanında execution plan incelemesini anlattığı serinin 3. yazısını yayımlamış.
Hüseyin Demir, NoSQL veritabanı Couchbase'de eventing ve full text search servislerini anlatmış.
Anıl Kaynar, Google hesabındaki kullanıcı verilerini çekip analiz etmeyi anlatmış.
Talha Tarık Küçük, geniş bir yazılım terimleri sözlüğü kaleme almış. Bir diğer yazısında ise Heroku'yu ve bir Docker projesinin nasıl deploy edileceğini anlatmış.
Uğur Akgül, çok aşamalı(multi-staged) Dockerfile oluşturmayı anlatmış.
Emre Savcı, geliştirme yaparken kullandığı kaynakları paylaşmış. Diğer bir yazısında ise Golang Docker Client'ı anlatmış.
Onur Kağan Aldemir, Go'da variadic(belirsiz sayıda parametre alan) fonksiyonları anlatmış.
Bahadır Kandemir, geliştirdiği oyunun hikayesini anlattığı seriye harita tasarımından bahsederek devam etmiş.
Arda Çetinkaya, uzaktan çalışmanın görece olumsuz yanlarından bahsederek nasıl olması gerektiğini sorgulamış.
Sevi Karaköse, nasıl "remote takım" olunmayacağını anlatmış.
İlkim Dilara Kadalakoğlu, remote çalışırken Scrum Master olarak kullandığı araçlardan bahsetmiş.
Arda Aksoy, kullanıcı deneyimi (UX) dünyasında teknik borcu anlatmış.
Ayhan Korkmaz, Let's Encrypt ile ücretsiz SSL sertifikası oluşturmayı anlatmış.
Engincan Veske, server side rendering için kullandığı Next.js kütüphanesinden bahsetmiş.
Gökten Karadağ, .Net Core'da cache kullanımlarını anlattığı bir seriye başlamış. İlk yazıda InMemory cache'i anlatmış.
Hakan Karabulut, AspNet Core uygulamasında Prometheus, Grafana ve AppMetrics araçlarıyla monitoring yapmayı anlatmış.
Oğuzhan İnan, Kubernetes'te REST Api yapısını anlatmış.
Hande Ebrar Güneşdoğdu, Dependency Injection, Dependency Inversion ve IoC Container gibi bolca karıştırılan kavramları tek tek anlatmış.
Malik Masis, xUnit'te birim test yazımını ve veri kümelerinin kullanımını anlatmış.
Yahya Civelek, hiyerarşik durum makinelerini dosya halinde tutmak için kullanılan alternatif bir formattan bahsetmiş.
Beyza Sunay Güler, karantina günleri için online etkinlik düzenleme tecrübelerini anlatmış.
Ferhat Yalçın, dijital dönüşüm çabalarında insan ve teknoloji uyumundan bahsetmiş.
Ender Gümen, Azure'da sanal makineleri belirli zamanlarda, belirli sürede, belirli portların erişimine açmayı sağlayan Azure Just in Time Access yapısını anlatmış.
Sezer Hüseyin, yazılım tarihindeki önemli kişileri anlattığı serinin 3. yazısında Grace Hopper'dan bahsetmiş.
Yakup Bayrak, tasarım geliştirme örneği üzerinden bir problem çözme yöntemi olan "5 neden?" tekniğini anlatmış.
Necati Ergin, C++'ta birden fazla constructor içeren sınıflarda, bu constructorlerda ortak kullanılacak kodları yöntemek için bir yöntem olan "delegeting constructor" yapısını anlatmış.
Ceyhun Keklik, Paris'te düzenlenen dotJS ve dotCSS konferanslarından notlarını paylaşmış.
Emre Özkan, sanal, fiziksel, bulutta çalışan tüm makineleri tek bir arayüzde yönetmeyi ve takip etmeyi sağlayan Red Hat Satellite aracından bahsetmiş.
İbrahim Kürce, bir IPv4 adres formatlama örneği üzerinden Refactoring ve temiz kod yazımı anlatmış.
Serkan Ünsal, salgının yatırım dünyasına etkilerinden bahsetmiş.
Rahime Yeşil, R dili hakkında bir giriş yazısı yazmış.
Proje & Kütüphane & Teknoloji
Bora Kaşmer, Javascript ile manuel JWT token oluşturmayı anlatmış. Diğer bir yazısında ise Angular 9'da validation ve parent child ilişkisi ile AG-Grid data binding tutarlılığınının nasıl sağlanabileceğini anlatmış.
Aydın Koca, dotTrace aracı ile .Net uygulamalarında performans analizi yapmayı anlatmış.
Koray Güler, Javascript ile taş kağıt makas oyunu geliştirmeyi anlatmış.
Abdülkerim Karaman, Java Spring Boot ile mikroservis mimarisini destekleyen cloud native bir uygulama geliştirmeyi anlatmış.
Serdarcan Büyükdereli, Etcd(key-value veri tabanı) ile Docker konteynerları arasında haberleşmeyi sağlayan overlay network yönetimini anlatmış.
Rana Taki, Swift ile iOS'ta artırılmış gerçeklik uygulamaları geliştirmek için kullanılan ARKit kütüphanesinden bahsetmiş.
Bilal Yaşar, Python'ın Pandas(1, 2) ve NumPy(1, 2) kütüphaneleri hakkında birer mini seri kaleme almış.
Bitirirken
Sezon finalimizi de bitirdik. Beğendiyseniz paylaşmayı, eleştirileriniz önerileriniz varsa iletmeyi unutmayın.
Faydalı olması ümidiyle. Sağlıklı günler dilerim.
Bayramdan sonra görüşmek üzere.
Zâtınıza çook iyi davranın ve evde kalın.
Bana ulaşmak için: Linkedin, Twitter, CuriousCat
Daha fazla motive etmek için: Patreon