Yazılımcılar İçin Hafta Sonu Okumaları - Sezon #2 / Sayı #53(Bir Emülatör Yazmak, Hacker Kanunları, Javascript'i anlamak ve çok daha fazlası)
Merhabalar.
53. sayı ile karşınızdayım. Aradan geçen uzun süre ve üretken bloggerlar dolayısıyla bitmeyen bir sayı oldu. Umarım keyifle okursunuz.
Buyursunlar.
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.
Kitap Okumak
Okumanın, hassaten kitap okumanın saymakla bitmeyecek kadar çok faydası var. Bir şeyler öğrenme, yeni bakış açıları/perspektifler kazanma, kendini ifade etme yetisinin gelişmesi, farklı dünyaları tanıma, insan psikolojisini anlama, anlayışın genişlemesi... Biz yazılımcılar genelde blog veya teknik kitaplar okuyoruz ama diğer kitaplara pek eğilmiyoruz. Halbuki mesleğimizle ilgili de alacağımız nice feyiz, teknik olmayan kitaplarda saklanmış bekliyor.
Bu noktada Hüseyin Polat Yürük, biz yazılımcıların neden ve nasıl kitap okuma alışkanlığı kazanabileceğimizi anlatmış.
Bir başka yazısında ise önde gelen hobilerimizden "yazılımı sıfırdan yazmak" konusundaki notlarını kaleme almış.
Bir Product Hunt Macerası
Fırat Demirel, geçen sene Product Hunt'ta 2. olan Dofo.com'un hikayesini, Product Hunt macerasını ve çıkardıkları dersleri detaylıca anlatmış.
Veri Bilimine Dalış
Deniz Kılınç, "Python ile veri bilimi" yazılarının üçüncüsünü yayımlamış. Bu kez Python ile veri ön işlemeye dalmış.
Bekir Arslan, veri analitiği ve iş zekası konularında faydalandığım video kaynakları derlemiş.
Ezel Merin Nalbantoğlu, yapay zeka ve büyük verinin pazarlama süreçlerine etkilerinden bahsetmiş.
Veri demişken Mert Çobanov, detaylı bir örnek üzerinden veri görselleştirmeyi anlatmış.
Kapsamlı Bir Proje
En üretken yazılımcı bloggerlarımızdan Bora Kaşmer, bir kez daha spesifik bir konuyu alıp detaylıca anlatmış. Bu kez normalden de detaylı bir proje/makale yazmış ve 3 parça olarak yayımlamış. İlk yazıda NodeJS ve Angular üzerinden yetkilendirme(authentication) ve güvenlikten(security) bahsetmiş. İkinci yazıda NodeJS'te Redis kullanımını göstermiş ve örnek projede refactoring yapmış. Üçüncü yazıda ise projeye Socket.io ekleyerek sunucudan gerçek zamanlı veri iletimini anlatmış.
Mikro Startup
Küçük ek projelerle pasif gelir sağlayabilmek mesleğimizin en güzel yönlerinden biri olabilir. Hüseyin Mert, bu projelerin anı yakalayan, ürün ya da ürüncük olanlarını "micro startups" olarak nitelemiş.
Geçtiğimiz haftalarda yayımladığı diğer bir yazıda hype aşamasını aşmış NodeJS ve Golang'den, başka bir yazısında ise sistematik hale getirdiği yazılım problemi çözme adımlarından bahsetmiş.
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ış.
Derek Austin, Javascript'te Infinity kavramını 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.
Tertemiz Mimari
Clean Architecture, literatüre Robert C. Martin tarafından sokulan bir konsept. Ve bu konsepti/deseni implemente eden, hayatımızı kolaylaştıran Hexogonal ve Onion gibi mimariler var.
Gökhan Gökalp, yine detaylı bir anlatımla AspNet Core'da Clean Archtitecture ile tasarlanmış bir uygulama geliştirmeyi anlatan bir seriye başlamış.
Yunus Emre Kaş ise Clean Architecture'ın ne olduğunu ve sahip olması gereken katmanları anlatmış.
Mimari demişken Bahadır Taşdemir, "event driven" mikroservis mimarisini anlatmış.
Gökhan Ayrancıoğlu, mikroservis mimarisi serisinde bu kez bir yazılımı mikroservis mimarisinde nasıl tasarlayabileceğimizi yazmış.
Hüseyin Kutluca, yazılım mimarileri serisinde dağıtık servislerde veri iletimini sağlayan DDS arakatmanından bahsetmiş.
Çin'in Blockchain Seferberliği
Geçen haftaların ilgi çekici gündemlerinden biri Çin'in Blockchain seferberliği idi. Devletin öncelikli teknoloji olarak belirlediği Blockchain, gazete manşetlerine ve sayfalarca bilgilendirme yazısına konu olmuş.
İsmail Hakkı Polat, Çin'in bu hamlelerle ne yapmak ve nereye varmak istediğini irdelemiş. Diğer bir yazısında ise 2020 Cumhurbaşkanlığı Yıllık Planı'nda yer alan Türkiye'nin dijital parasından bahsetmiş.
Enes Türk ise Çin'in bu teknolojiyi benimseme yolundaki 7 adımından bahsetmiş. Bir diğer yazısında ise Libra'nın mutabakat algoritması LibraBFT'yi anlatmış.
Blockchain'den bahis açılmışken Selim Önengüt, Blockchain teknolojisinin hukuk büroları için kullanımını inceleyen ve verimli olup olmayacağını sorgulayan bir çalışmayı anlatmış.
Devrim Danyal, özellikle Blockchain uygulamalarında kullanılan konsensüs algoritmalarından ve bunlara neden ihtiyaç duyulduğundan bahsetmiş.
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ş.
Haber
Oğuz Kılıç ve Özer Yılmaztekin, Frontend hakkında bir podcaste başlamış.
4 Haziran'da İstanbul'da Üstün Özgür'ün "Yazılım Sektöründe Korku, Kaygı ve Özgüven" başlıklı bir semineri varmış.
Kısa Kısa
İrem Karaoğlu, genelde hakettiği değeri görmeyen kadın yazılımcılar hakkında bir seriye başlamış ve yazılım dünyasını katkı sağlayan kadınların hayatlarını yazmış. Şu ana kadar 3 yazı yayımlamış.(Ada Lovelace, Jean Jennings Bartik, Hedy Lamarr)
Malik Masis, Angular öğrenimi sırasında aldığı notları 3 yazı halinde yayımlamış(1, 2, 3).
Onur Uzun, Angular ile native mobil uygulama geliştirmek için kullanılan NativeScript serisine devam etmiş. Aynı zamanda frameworkün avantaj ve dezavantajlarından bahsetmiş.
Hıdır Volkan Sönmez, Typescript serisinin ardından Angular serisine başlamış ve 3 hafta bile olmadan 8 adet yazı yayımlamış.
Burak Coşkun, Angular projesini Firebase'e deploy etmeyi anlatmış.
Edis Nezir, Firebase hakkında yanlış bilinenlerle ilgili bir çeviri yazı yayımlamış.
Burak Selim Şenyurt, bir React uygulaması üzerinden, tarayıcıda çalışan in-memory veritabanı AlaSQL'i anlatmış.
T. Emre Yıldırım, 2 yazı halinde React Native'de styled-components kullanımını anlatmış.(1, 2)
Mahmut Gündoğdu, Java Room kütüphanesi ile Android'de SQLite veritabanı üzerinde asenkron CRUD işlemleri gerçekleştirmeyi anlatmış.
Arda Çetinkaya, .Net Core'da streaming modelini ve gRPC kullanımını anlatmış.
Selçuk Usta, Docker'da build edilen uygulamaların boyutunu düşürmek için yapılabilecek konfigürasyonlardan bahsetmiş.
Derya Cortuk, kuş bakışı Python'daki meşhur web frameworkü Django'yu anlatmış.
Bora Yılmaz, girişimcilerin yatırımları ve hisse değişimlerini takip etmek için kullanması gereken "cab table"dan bahsetmiş.
Mert Demir, Javascript için bir test frameworkü olan Jest'ten bahsetmiş.
Anıl Öztürk, Java uygulama sunucularından WildFly'ı anlatmış.
Murat Veysel Aslan, WildFly'a deploy edilmiş bir Enterprise JavaBeans uygulamasını Payara'dan çağırmayı anlatmış.
Anıl Emre Özçelik, Java uygulamaları için bir build aracı olan Gradle hakkında bir seriye başlamış.(1, 2, 3)
Nadin Tamer, Apple'ın erişilebilir uygulamalar için yöntemler sunan UIKit elemanı UIAccesibility'den bahsetmiş.
Serkan Topkan, bir örnek eşliğinde SOLID prensiplerinden Interface Segregation(arayüz ayırma)'ı anlatmış.
Ahmet Çokgüngördü, özellikle birden fazla servisten oluşan sistemlerde loglamayı ve ilişkili süreçlerin loglarını ilişkilendirmeyi sağlayan Spring Cloud Sleuth aracını anlatmış.
Serdarcan, lokalde Kubernetes çalıştırmak için kullanılan MiniKube aracını anlatmış.
Anıl Güleroğlu, .Net Core'a geçişte yaşadıkları tecrübeleri aktarmış.
Abdülkerim Karaman, Docker üzerinde Nginx ile HTTP Load Balancing yapmayı anlatmış.
Gökten Karadağ, .Net Core Identity ile üyelik sistemi oluşturmayı anlatmış.
Yakup Bayrak, bir girişimin kullanıcı deneyimi(UX) için hangi aşamada yatırım yapması gerektiğini irdelemiş.
Güven Sak, İngiltere'nin Yapay Zeka Ofisi'nin "Dijital, Kültür, Medya ve Spor Bakanlığı" altında konumlandırılmasından hareketli çıkarılabilecek mesajları ve bizim bu konuda yapmamız gerekenleri yazmış.
Sunay Işık, yapay zeka hakkında bir giriş yazısı yazmış.
Oğuzhan Durmaz, yapay zeka algoritmalarının üzerine bina edildiği matematik formüllerini anlatan bir çeviri yazı yayımlamış.
Berk Berber, başarılı bir yazılımcı olmak isteyenler için tavsiyelerini sıralamış.
Evren Özmen, açık bankacılıktan ve hayatımıza olası etkilerinden bahsetmiş.
Ceyhun Kekik, WebSocket protokolünü anlatmış.
Serkan Bektaş, CSS Custom Properties ile html elementlerini kontrol etmeyi anlatmış.
Birol Emekli, açık kaynak log yönetim aracı Graylog hakkında detaylı bir seri yayımlamış.(1, 2, 3)
Osman Aktemur, uygulama performansını izleme aracı ElasticAPM'i anlatmış.
Adem Olguner, AspNet Core'da RabbitMQ kullanarak mail gönderimi yapan bir uygulama geliştirmeyi anlatmış.
Elif Yılmaz, yapay sinir ağları kullanarak araç satışlarını tahmin eden bir uygulama yapmayı anlatmış.
Serkan Arslan, chatbotların çalışma mantığı üzerinden doğal dil işlemeyi anlatmış.
Kaan Can Akdere, algoritmik sistemlerin regülasyonlara bağlanması konusundaki çalışmalardan bahsetmiş.
Ebru Canpolat, karar destek sistemlerinde analitik modelleme yapmayı anlatmış.
Bitirirken
Bu sayı da nihayete erdi. Umarım istifade etmişsinizdir.
Beğendiyseniz daha fazla insana ulaşması için paylaşmayı unutmayın.
Haftaya görüşmek üzere.
Zâtınıza çook iyi davranın.
Bana ulaşmak için: Linkedin, Twitter, CuriousCat
Daha fazla motive etmek için: Patreon