Yazılımcılar İçin Hafta Sonu Okumaları — Sayı #64 / Sezon #3 (2020 Derlemesi)
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 2 senede yaptığım gibi bu sene de bitmekte olan yılın sayılarından bir derleme ile karşınızdayım. Fark ettiğinizi umduğum üzere bu sene istediğim sıklıkta sayı çıkaramadım. Yıl boyunca toplamda 9 sayı çıkarmışım. Çok istediğim halde maruz kaldığım yoğunluk nedeniyle yeterince vakit ayıramadım. Ama verdiğim aralar ayları bulsa da bülteni devam ettirmek için direniyorum. Her neyse sadede gelelim. (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 şu sonucu çıkarmamız gerekiyor:
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.
Şunu da ifade edeyim: Bu derlemede yer alan içerikler tamamen subjektif bir değerlendirme neticesi, size “kaçırmayın” diyebileceğim yazılar.
Buyursunlar…
CTO’lardan Tavsiyeler
Umut Gökbayrak ve Hakan ERDOGAN, Medium’da CTO’un El Defteri başlıklı bir yayın oluşturarak tecrübelerini ve tavsiyelerini kaleme almış. Direkt CTO’ları ilgilendiren bazı kısımlar olsa da başta takım liderleri olmak üzere her yazılımcının istifade edeceği, enfes yazılardan oluşan bir başucu kaynağı oluşmuş.
Micro Frontend’e Geçiş
Geçtiğimiz senenin Martin Fowler’ın(ve arkadaşlarının) makalesiyle gündeme oturan konusu/yaklaşımı Micro Frontend idi. Sonrasında yaşanan tartışmalardan gördüğümüz kadarıyla bu aslında yeni bir olay değilmiş, isimsiz müsemma halinde insanlar uyguluyormuş. Oğuzhan Aslan, Hepsiburada’da yaptıkları Micro Frontend dönüşümünü nedenleri, süreçte yaşanan zorluklar/sorunlar ve sonuçlarıyla detaylıca anlatmış.
Bol Bol Yapay Zeka
Geçtiğimiz haftalarda Yapay Zeka hakkında bol miktarda nitelikli yazıya rast geldim. Beraber bakalım:
Tuncay ŞAHİN, BKM’de geliştirdikleri Yapay Zeka projelerinde elde ettiği tecrübeleri paylaşmış. Yapay Zeka ile proje geliştirmeye hangi durumlarda ve nasıl başlanması gerektiğini, getireceği maliyetleri ve karşılaşılabilecek başlıca sorunları yazmış.
Ömer Taban, Viola Jones algoritmasını kullanarak yüz tanıma uygulaması geliştirmeyi anlatmış.
Yiğit Mesci, Python‘da bir örnek üzerinden Yapay Zeka’nın köklü kavramlarından Perceptron’u anlatmış.
Merve Noyan, Yapay Zeka uygulamalarında kullanılan Karar Teorisi, karar ağaçları, rassal ormanlar ve ensemble learning meselelerini anlatmış.
Kaan Can Akdere ise Yapay Zeka tarafından üretilen eserlerin fikri mülkiyet hakları üzerine yaşanan tartışmalardan bahsetmiş.
Ömer Özgür, derin öğrenme kullanarak antiviral ilaç geliştirmeyi anlatmış.
Merve Bayram Durna, makine öğrenmesi modelinin performansını değerlendirmeyi sağlayan cross-validation yönteminden bahsetmiş.
F.Batıncan Gürbüz, Derin Öğrenme mimarileri hakkında yaklaşık 20 yazılık bir seri kaleme almış.
İlter Güvenç, yapay zeka ve sanat ilişkisini felsefi arka planıyla birlikte irdelemiş.
Adem Akdogan, detaylıca Evrişimsel Sinirsel Ağları anlatmış.
Eren Bozarık, tıbbi teşhis için yapay zeka kullanımından bahsettiği bir seriye başlamış.
Burak Dilber, R dilinde uygulamalarla makine öğrenme algoritmalarını anlattığı bir seriye başlamış.
Ayyüce Kızrak, makine öğrenmesi uygulamalarında insanın yerinin ne olması gerektiğini irdelemiş.
Kuantum Programlama Projeleri
QTurkey Topluluğu, Aralık ayında Kuantum Programlama Uygulamaları başlıklı bir hackaton düzenlemişti. Hackaton sonucunda 8 projeye ödül verilmiş. Geçtiğimiz haftalarda söz konusu projelerin amacını, anlatımını ve kaynak kodlarını paylaşmışlar.
Bir Tutam React Native
Burada zaman zaman yazılarına yer verdiğim, üretken bloggerlarımızdan Zafer Ayan, son haftalarda özellikle React Native üzerine oldukça aktif(ortalama 1–2 günde bir) içerik üretiyor.
İlk etapta React Native ile bir Instagram klonu geliştirerek -şu ana kadar- 8 yazı halinde bu uygulamanın geliştirilmesini anlatmış.
Akabinde ise biraz temellere inerek React Native Bridge‘in çalışma prensibini ve React Native’in müstakbel mimarisi JSI’ı detaylıca anlatmış.
Diğer bir yazısında ise reaktif programlamayı anlatmış.
Javascript ile Fonksiyonel Programlama
Son dönemlerin zinde konusu fonksiyonel programlama hakkında Türkçe olarak da güzel içerikler çıkmaya devam ediyor.
En son Javascript temelleri hakkında güzel bir seri yazan Onur Dayıbaşı, bu kez Javascript’te fonksiyonel programlama hakkında başarılı bir seriye başlamış. An itibariyle 8 yazıya ulaşmış.
Konu hakkında daha önce paylaştığım Zafer Ayan’ın 2 yazısını da analım(1, 2).
Kuantum Hikayeleri
Ülkemizde Kuantum Bilgisayımı hakkında ilgi ve farkındalık oluşturmayı amaçlayan, eğitimler ve yarışmalar düzenleyen QTurkey topluluğu, geçtiğimiz aylarda L4Y ile ortak “2040 Yılında Kuantum Teknolojiler Hayatımızı Nasıl Etkileyecek?” başlıklı bir hikaye yarışması düzenlemiş. Akabinde dereceye giren hikayeleri Medium’da yayımlamış(birinci, ikinci, üçüncü).
Diğer yandan Dr. Furkan Semih Dündar, bir “kuantum hal”in neden kopyalanamayacağını anlatmış.
Unity ile Oyun Geliştirme
Bahadır Kandemir, hobi olarak bir oyun sunucusu geliştirmeye başladıktan sonra Unity’de oyun geliştirme sevdasına düşmüş. İşin güzeli bu serüveni, blog olarak yayımlamaya karar vermiş. Şu ana kadar 2 yazı yayımlamış(1, 2).
Bu yazıları okuduktan sonra “Unity hakkında başka Türkçe blog var mıdır?” diye biraz bakındım.
HuseyinSeber, basitçe Unity’de oyun geliştirme mantığından bahsetmiş. Ayrıca bolca Unity videosu paylaştığı bir Youtube kanalı varmış.
Mehmet Kerem Ceylan, Unity 2019'da oyun mimarisini anlattığı bir seriye başlamış.
Fatma ERDOĞAN, bir Flappy Bird klonu yazmayı anlatmış.
Osman Anıl Özcan, Unity’nin sitesindeki örnek bir oyundan çıkardığı notlarla 9 yazılık bir “Unity Günlükleri” serisi kaleme almış.
Code Review
ibrahim seçkin, Code Review kavramı hakkında bir seriye başlamış. “Nedir, ne değildir, faydaları nelerdir, nasıl yöntemleri vardır, nasıl daha efektif uygulanabilir?” gibi sorulara yanıt aramış.(1, 2)
Blockchain’de Konsensüs Protokolleri
Blockchain’in en önemli bileşenlerinden biri doğal olarak işlem doğruluğunu ve tutarlılığını sağlayan; hileli işlemleri engelleyen konsensüs protokolleri. Hakan Yalçınsoy, bu protokoller hakkında bir seri kaleme almış. Giriş yazısından sonra temel konsensüs protokollerinden 4 tanesini anlatmış: pBFT(Practical Byzantine Fault Tolerance), Paxos Konsensüs Protokolü, Nakamoto Konsensüs Protokolü, Avalanche Konsensüs Protokolü.
Yazılımda Kalite ve Mimariler
Onur Dayıbaşı, son zamanlarda -burada neredeyse her sayıda bahsettiğim gibi- bir konu belirleyip girişten derinlere ilerlediği seri yazılar yazıyor. Bu kez yazılım süreçleri hakkında bir seriye başlamış. Şimdiye kadar 4 yazı(yazılım geliştirme yaşam döngüsü, fazları, modelleri, prensipleri) yayımlamış.
Deniz KILINÇ, yazılım geliştirirken yolun başında harika çözüm gibi gözükmesine rağmen ileride başımıza bela olan “antipatternler”den bahsetmiş. Diğer bir yazısında ise veri bilimi ve yapay zeka konusunda yazdığı yazıları toparlamış.
Yazılım kalitesinin vazgeçilmez parçalarından bir elbette testler.
Emre Hızlı, birim testlerle alakalı oldukça detaylı ve dolu dolu bir seriye başlamış. xUnit.NET kütüphanesi üzerinden birim testleri anlattığı seri şu anda 8 yazıya ulaşmış.
Huseyin Kutluca, ”Mimarinin Evrimi“ serisinin 3. yazısında mimari seviyede yeniden düzenleme(refactoring) yapmaktan; hangi koşullarda, hangi yöntemlerle yapılabileceğinden bahsetmiş.
Caner Patır, DDD ve Mikroservis mimari yaklaşımlarının beraber kullanılmasını ve Bounded Context kavramını anlattığı 2 yazılık bir seri kaleme almış(1, 2).
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 oguzhaninan’ı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ış.
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ış.
Derinlemesine Yazılar
Furkan Türkal, derinlemesine Go dilinde derleyicinin işleyişini ve statik kod analizini derinlemesine anlatmış. O kadar ki spesifik bir konu olmasına rağmen Medium’a göre 31 dakikada okunabilecek uzunlukta bir yazı.
İlim Turan, canlı ortamda yaşadıkları ve hem nedenini hem de çözümünü bulmak için bolca efor sarf ettikleri bir problemle mücadelelerini ince detaylarıyla anlatmış.
Oğuz Kılıç, BFF(Backend for Frontend) yaklaşımı ile ön yüz uygulamaları için veri modelini optimize etmeyi detaylıca anlatmış.
Yeni Yazılımcılar İçin Bir Rehber
Direkt bu tartışmayla alakalı olmasa da Deniz İrgin, yazılıma yeni başlayanlar için oldukça kapsamlı bir rehber hazırlamış. Bir diğer yazısında ise Windows’ta gerçek bir Linux deneyimi sunmayı hedefleyen ve Linux Kernel’ı barındıran WSL 2(Windows Subsystem for Linux 2)‘den bahsetmiş.
Açık Mimariler
Huseyin Kutluca, açık mimarileri geçmişleri ve detaylarıyla anlattığı serisine devam etmiş. Aviyonik Sistemler(uçak, helikopter vb yazılımlar) için oluşturulan açık mimari FACE mimarisini, askeri araçlar için açık mimarileri ve veri mimarilerini anlatmış.
Kodlama Kampından Meyveler
Nitelikli yazılımcı yetiştirmek için çaba sarf eden platformlardan Kodluyoruz, React Native Bootcamp’i gerçekleştirmiş. Akabinde bu Boot Camp mezunları React Native‘le alakalı farklı konularda yazılar yazmışlar. Sonuçta 25’e yakın makale ortaya çıkmış.
Bir Takım Temeller
Onur Dayıbaşı, kullandığımız teknolojileri temelden(fundamental) girerek anlatmaya devam ediyor. Chrome’un işletim sistemi ve donanımı nasıl kullandığını, rendering, navigation ve JS motorunu anlattığı bir seri kaleme almış(buradan başlayarak). Akabinde ise React‘e dalmış. Diğer bir yazısında HTML Rendering’in tarayıcıda mı(CSR) yoksa sunucuda mı(SSR) yapılması gerektiğini irdelemiş. Son değineceğim yazısında ise JavaScript’te Execution Context, Lexical Enviroment, Scope ve Clousure kavramlarından bahsetmiş.
ElasticSearch Tecrübeleri
Neslihan Esra Altınışık, yüksek sayıda isteği loglayıp işlemek ve sonrasında bunlar içinde arama yapmak için ihtiyaç duydukları veritabanını seçme ve kullanma süreçlerini anlattığı bir seri kaleme almış. İlk yazıda Couchbase, InfluxDb ve Elasticsearch arasında yaptıkları kıyaslamaları ve neden ElasticSearch’ü seçtiklerini, ikinci yazıda performans testlerini, üçüncü yazıda ise kendi ihtiyaçlarına yönelik yaptıkları konfigürasyonları anlatmış.
Erişilebilir İçerik
Biz yazılımcıların(özellikle web uygulaması geliştirenlerin) dikkat etmemiz ve farkındalığımızı artırmamız gereken çok önemli bir konu var: erişilebilir dijital içerikler. Bu konudaki içeriklere denk geldikçe burada yer veriyorum. Medium’da Dijital Erişilebilirlik isimli bir yayın açılmış ve bu konuda içerikler üretiliyor. Şu anda dijital erişilebilirlik nedir, bu konudaki Türkçe ve İngilizce çalışmalar ve erişilebilir dijital içerik oluşturma ipuçları gibi konularda 3 yazı yayımlanmış.
Bir Kalp Cihazını Hacklemek
Günüzleri tıp öğrencisi geceleri siber güvenlikçi(böyle Mr. Robot gibi hayal ediyorum) olarak yaşayan Eşref Erol, yine ilginç ve detaylı bir yazı kaleme almış. Kardiyoloji stajı sırasında dikkatini çeken ICD isimli kalbe takılan ve kablosuz kontrol edilebilen bir cihaza merak salmış ve bu cihazın nasıl çalıştığını, nasıl programlandığını ve muhtemel siber güvenlik zaafiyetlerini irdelemiş.
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.
Sağlıklı, keyifli ve afiyetli bir yıl diliyorum efendim.
Zâtınıza çook iyi davranın.
Daha fazla motive etmek için: Patreon