Yazılımcılar İçin Hafta Sonu Okumaları - Sayı #33(Mülakat Soruları, Legacy Code Hikayeleri, Domain Borcu ve daha fazlası)
Merhabalar.
33. sayı ile karşınızdayım. Bu hafta birkaç günü yolda geçirmem hasebiyle normalden de fazla gecikti. Geç oldu ama umarım güzel olmuştur.
İş 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.
Mikroservisler ve Veritabanı Tasarımı
Suat Köse, mikroservis mimarilerdeki zorlukları ve "best practice"leri incelemeye devam ediyor. En son yazısında mikroservis mimarilerde veritabanı tasarımını nasıl yapmamız gerektiğinden, hangi durumlarda NoSQL, hangi durumlarda RDBMS veritabanı kullanmamız gerektiğinden ve mikroservislerin veritaban(lar)ına erişim kurgusundan bir örnek eşliğinde ve detaylıca bahsetmiş.
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(1, 2) ö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ş.
TDD Yapmanın Önündeki Bazı Engeller
Test yazmanın ve TDD(Test Driven Development) yapmanın en büyük zorlukları/engelleri kuşkusuz kullandığımız nesnelerin bağımlılıkları. Selçuk Usta, somut bir örnek üzerinden bu problemi nasıl alabileceğimizi anlatmış.
CDN
Günümüz itibariyle CDN'ler internet sitelerinin temel bileşenlerinden biri. Kısaca CDN sağlayıcıların dünyanın farklı bölgelerinde barındırdıkları ve uygulamanın belli kısımlarının "cache"lendiği, sunucular vasıtasıyla uygulamaların performanslı çalışmasına katkı sağlayan bir yapı diyebilirim sanırım. Gökhan Şengün, geçtiğimiz haftaki yazısında CDN'nin ne olduğundan ve 3 temel kullanım senaryosundan bahsetmiş.
Çocuk ile Yapay Zeka Çalışma
Birkaç sayı önce Zafer Demirkol'un 10 yaşındaki oğlu ile yapay zeka çalışmasını anlattığı harika yazıdan bahsetmiştim. 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. Geçtiğimiz hafta itibariyle seri 4 yazıya ulaştı(2, 3, 4). Okuyalım, okutalım efendim.
Final Yolları
Son Big Bang Girişimcilik Yarışması'nda finale çıkan girişimlerden biri BenzinLitre imiş. Girişimin kurucusu Görkem Ünel, İş Bankası Workup Girişimcilik Programı'na başvurularının reddedilmesinden başlayarak Big Bang finaline uzanan serüveni detaylıca anlatmış. Çıkardığı derslerden bahsetmiş; jürinin yetkinliğinden yarışmada torpil olup olmadığına çok sorulan soruları yanıtlamış.
Veri Bilimi ve Yazılım Dilleri
Yazılıma yeni başlayan hemen herkesin(müfredatın zorlamasıyla bir dili öğrenen öğrenciler hariç elbette) en çok cevabını kovaladığı soruların başında "hangi programlama dilini öğrenmeliyim?" sorusu geliyor.(Konuya daha önce hiç girmemiş olanlar bu soruyu -yanlış bir şekilde- "en iyi programlama dili hangisi" şeklinde dile getiriyor.) Mehmet Gençer de bu soruya çokça muhatap olmuş ve hangi dili nerede, ne için seçmemiz gerektiğinden bahsetmiş. Akabinde veri analitiği için en mantıklı dilin R olduğunu ifade ederek gerekçelerini yazmış.
Diğer yandan Merve Bayram Durna, veri bilimi için yoğun olarak kullanılan bir diğer dil Python'daki NumPy kütüphanesini anlattığı bir seriye başlamış.
Kısa Kısa
Türkay Ürkmez, koleksiyonların içinde gezmemizi sağlayan tasarım deseni Iterator Design Pattern'ı gerçek hayat örnekleriyle anlatmış.
Osman Şafak, bu hafta itibariyle stabil versiyonu yayımlanan React Hooks'u anlatmaya başlamış. İlk yazıda useState ve useEffect kullanımından bahsetmiş.
Zeki Seskir, okuduğu "Erwin Schrödinger ve Kuantum Devrimi" kitabından bahsetmiş.
Görkem Karadeniz, Cobalt Strike aracıyla Siber saldırı simülasyonu yapmayı anlattığı bir seriye başlamış.
Mustafa Kemal Temel, bir e-ticaret sitesinde takip edilmesi gereken olmazsa olmaz eventleri listelemiş.
Tamer Yakut, özellikle teknik kişilerin çalıştıkları birimin yöneticisi olması durumunda yaşanan "çalışandan yöneticiye geçememe sendromu"nu ve bu sendromu aşma yöntemlerini anlatmış.
Berkin Ceylan, Swift UIKit elemanlarından UIKit Dynamics'i anlatmış.
Oğuz Kılıç, 2019 hedeflerini yazmış.
Gizem Ayas, Deloitte Türkiye'nin düzenlediği Katathon'u anlatmış.
Çağrı Aksu, veri bilimi ile ilişkili -toplamda- 3 dizi ve filmden ve gerçek hayatta uygulanabilecek kurgularından bahsetmiş.
Abdullah N., Java 11 ile gelen yenilikleri ve ücretli olma meselesini anlatmış.
İşCep, Gartner'ın "2019'un Teknoloji Trendleri" raporundan bahsetmiş.
Sinem Cantürk, KVKK ihlallerini takip eden Kişisel Verileri Koruma Kurumu'nun internet sitesinde veri ihlallerini duyurmaya başladığını yazmış.
Emirhan Gül, test yazmak için kullanılan specFlow aracında stepler arası veri aktarımını anlatmış.
Haberler
Deep Learning Türkiye topluluğu, yine önemli bir çalışmaya imza atarak Stanford Üniversitesi'nin Machine Learning ve Deep Learning dersleri için hazırlanan el kitaplarını Türkçeye çevirmiş.
Hamdi Küçük, Ekip Yönetimi ve Liderlik başlıklı bir e-bülten yayımlamaya başlamış.
Software Craftsmanship Turkey, kadın yazılımcıları desteklemek için 10 haftalık ücretsiz bir program başlatmış.
İstanbul Java User Grup, 7 Şubat'ta "Yük Testleri ve JUnit ile Entegrasyonu" başlıklı bir meetup düzenleyecekmiş.
Bitirirken
Umarım keyifli ve istifadeli bir sayı olmuştur.
Zâtınıza çook iyi davranın.
Bana ulaşmak için: Linkedin, Twitter, CuriousCat
Daha fazla motive etmek için: Patreon
Sosyal Medya
[tweet https://twitter.com/TBaltacioglu/status/1091009295246942209]
TED: Yapay Zeka İnsanlığı Nasıl Kurtarabilir
Kai-Fu Lee: How AI can save our humanity | TED Talk — www.ted.com AI is massively transforming our world, but there's one thing it cannot do: love. In a visionary talk, computer scientist Kai-Fu Lee details how the US and China are driving a deep learning revolution -- and shares a blueprint for how humans can thrive in the age of AI by harnessing compassion and creativity. "AI is serendipity," Lee says. "It is here to liberate us from routine jobs, and it is here to remind us what it is that makes us human."