Leetcode içerisinde bulunan “Three Consecutive Odds” sorusunun açıklaması ve çözümü. Bu soruda size verilen bir tam sayı dizisinde, 3 tane yan yana tek sayı olup olmadığını bulmanız isteniyor.
Visual Studio 2022 17.0.3 release’i ile gelen özelliklerden biri de “bidirectional” yani çift yönlü karakterleri artık editörde görebiliyoruz.
Kodun yanlış sunulmasına izin veren potansiyel olarak kötü amaçlı bir istismarı önlemek için, Visual Studio artık iki yönlü metin kontrol karakterlerinin editör içerisindeki karakterlerin sırasını değiştirmesine izin vermeyecek.
Bu özelliği Tools –> Options –> Text Editor –> General page altındaki “Show bidirectional text control characters” kısmında açıp kapatabilirsiniz. Default’ta açık geliyor.
Bidirectional karakter olarak adlandırılan karakterlerin tüm listesi şu şekilde; U+061c, U+200e-U+200f, U+202a-U+202e, U+2066-U+2069
CallerArgumentExpression attribute kullanımı size parametre olarak verdiğiniz expression’ın string halini size geri döndürüyor. Diğer compiler servis attribute’ler gibi bu da optional.
Leetcode içerisinde bulunan “Add Digits” sorusunun açıklaması ve çözümü. Bu soruda sizi verilen bir tam sayının rakamları toplamı tek hane olana kadar toplayıp geriye döndürmeniz isteniyor.
Naval Ravikant’ın “Şanslı olmadan nasıl zengin olunur?” şeklinde bir twitter thread‘ine denk geldim. Kendisi girişimcilerin yoda’sı olarak bilinir. Uber, FourSquare, Twitter, Clubhouse, Stack Overflow, OpenDNS vb. 100’e yakın şirketin kurulma zamanlarında ciddi yatırımlar yapmış bir kişi.
➡️ Para veya statü değil, zenginlik arayın. Zenginlik, uyurken kazanılan varlıklara sahip olmaktır. Para, zamanı ve zenginliği nasıl aktardığımızdır. Statü, sosyal hiyerarşideki yerinizdir.
➡️ Etik bir zenginlik yaratmanın mümkün olduğunu anlayın. Zenginliği gizlice hor görürseniz, o sizden kaçar.
➡️ Statü oyunları oynayan insanları görmezden gelin. Bu kişiler servet yaratma oyunları oynayan insanlara saldırarak statü kazanırlar.
➡️ Zamanını kiraya vererek zengin olmayacaksın. Finansal özgürlüğünüzü kazanmak için öz sermayeye – bir iş parçasına – sahip olmalısınız.
➡️ Toplumun istediği ama hali hazırda nasıl elde edeceğini bilmediği şeyi topluma ölçeklenebilir şekilde vererek zengin olacaksınız.
➡️ Uzun vadeli insanlarla uzun vadeli oyunlar oynayabileceğiniz bir sektör seçin.
➡️ İnternet, olası kariyer alanını büyük ölçüde genişletti. Çoğu insan bunu henüz anlamadı.
➡️ Tekrarlanan oyunlar oynayın. Zenginlik, ilişkiler veya bilgide olsun, hayattaki tüm getiriler bileşik faizden gelir. (Bileşik faiz nedir? Faizin ana paraya eklenmesiyle artan miktarın da faize tabi olması durumu)
➡️ Yüksek zekaya, enerjiye ve hepsinden önemlisi dürüstlüğe sahip iş ortakları seçin.
➡️ Sinik ve karamsar kişilerle ortak olmayın.
➡️ Satmayı öğrenin. İnşa etmeyi öğrenin. Her ikisini de yapabilirseniz, durdurulamaz olacaksınız.
➡️ Özgül bilgi, eğitilemeyeceğiniz bilgidir. Eğer toplum seni eğitebilirse, bir başkasını da eğitebilir ve o kişi senin yerine geçebilir.
➡️ Özgül bilgi, şu anda sıcak olan şeyden ziyade gerçek merakınızı ve tutkunuzu takip ederek bulunur.
➡️ Özgül bilgi oluşturmak size oyun gibi gelecek, ancak başkalarına iş gibi görünecek.
➡️ Özgül bilgiler okullarda değil, çıraklık yoluyla öğretilir.
➡️ Özgül bilgi genellikle oldukça teknik veya yaratıcıdır. Dış kaynaklı veya otomatik olamaz.
➡️ Sorumluluğu benimseyin ve kendi adınıza ticari riskler alın. Toplum sizi sorumluluk, eşitlik ve kaldıraçla ödüllendirecektir.
➡️ En sorumlu kişilerin tekil, halka açık ve riskli markaları vardır: Oprah, Trump, Kanye, Elon.
➡️ Bana yeterince uzun bir kaldıraç ve duracak bir yer verin, dünyayı yerinden oynatayım.- Arşimed
➡️ Servet kaldıraç gerektirir. İş gücü, marjinal bir çoğaltma maliyeti olmaksızın sermayeden, insanlardan ve ürünlerden gelir.
➡️ Sermaye para demektir. Para toplamak için, belirli bilginizi hesap verebilir şekilde uygulayın ve sonuçta iyi bir muhakeme gösterin.
➡️ Emek, sizin için çalışan insanlar demektir. Bu, en eski ve en çok mücadele edilen kaldıraç biçimidir. Emek gücü anne babanızı etkileyecek, ancak hayatınızı bunun peşinde koşarak harcamayın.
➡️ Sermaye ve emek, izin verilen kaldıraçtır. Herkes sermayenin peşinde ama birinin onu size vermesi gerekiyor. Herkes liderlik etmeye çalışıyor ama birinin seni takip etmesi gerekiyor.
➡️ Kod ve medya izinsiz kaldıraçtır. Yeni zenginlerin arkasındaki kaldıraç onlar. Siz uyurken sizin için çalışan yazılım ve medya oluşturabilirsiniz. ➡️ Bir robotlar ordusu serbestçe kullanılabilir durumdadır. – sadece ısı ve alan verimliliği için veri merkezlerine doluşturuldu. bunu kullanın.
➡️ Kod yazamıyorsanız, kitap ve blog yazın, video veya podcast kaydedin.
➡️ Kaldıraç, kararınız için bir kuvvet çarpanıdır.
➡️ Yargılama deneyim gerektirir, ancak temel becerileri öğrenerek daha hızlı inşa edilebilir.
➡️ “İş” diye bir beceri yoktur. İş kitaplarından ve iş kurslarından kaçının.
➡️ Mikro ekonomi, oyun teorisi, psikoloji, ikna, etik, matematik ve bilgisayarları inceleyin.
➡️ Okumak dinlemekten daha hızlıdır. Yapmak, izlemekten daha hızlıdır.
➡️ Karışık olmayan bir takviminiz varken bile “bir kahve yapmak” için çok meşgul olmalısınız.
➡️ İstekli bir kişisel saatlik ücret belirleyin ve uygulayın. Bir sorunu çözmek, saatlik ücretinizden daha az tasarruf sağlayacaksa, görmezden gelin. Bir görevi dışarıdan temin etmek, saatlik ücretinizden daha az maliyetli olacaksa, onu dışarıdan temin edin.
➡️ Elinden geldiğince çok çalış. Kiminle çalıştığınız ve ne üzerinde çalıştığınız ne kadar çok çalıştığınızdan daha önemli olsa da.
➡️ Yaptığınız işte dünyanın en iyisi olun. Bu doğru olana kadar ne yaptığınızı yeniden tanımlamaya devam edin.
➡️ Hızlı zengin olma planları yoktur. Bu sadece senin üzerinden zengin olan başka biridir.
➡️ Özgül bilgiyi kaldıraçla uygulayın ve sonunda hak ettiğinizi elde edeceksiniz.
➡️ Ve son olarak, sonunda zengin olduğunuzda, ilk başta aradığınız şeyin bu olmadığını anlayacaksınız. Ama bu başka bir gün için.
Daniel Habib isimli bir programcı, yazılım görüşmelerinde konu ne olursa olsun nasıl bir yaklaşım sergilemeniz gerektiği konusunda bir spreadsheet oluşturmuş.
C# 10 ile gelen yeniliklerden biri de struct ve anonymous type’larda gelen with kullanımı.
C# 9 ile hayatımıza with expression’ı girmişti. With ile solundaki operand’ın property ve field’ları ile, sağında verilen özellikler göz önüne alınarak yeni bir kopyasını oluşturur. C# 9 ile gelen with kullanımı sadece record tipi için geçerliydi.
Kısaca bir kullanım olarak;
var p1 = new Person("Soner", "İstanbul" );
// p1.Name: Soner
// p1.City: İstanbul
var p2 = p1 with { City = "Kırklareli" };
// p2.Name: Soner
// p2.City: Kırklareli
public record Person(string Name, string City);
C# 10 ile artık struct ve anonim tiplerde de with kullanımına destek gelmiş oldu. Struct için aynı kodu şu şekilde değiştirebiliriz;
var p1 = new Person();
p1.Name = "Soner";
p1.City = "İstanbul";
// p1.Name: Soner
// p1.City: İstanbul
var p2 = p1 with { City = "Kırklareli" };
// p2.Name: Soner
// p2.City: Kırklareli
public struct Person
{
public string Name;
public string City;
}
Anonim tiplerde de aynı şekilde kullanabiliriz;
var p1 = new { Name = "Soner", City = "İstanbul" };
// p1.Name: Soner
// p1.City: İstanbul
var p2 = p1 with { Name = "Ahmet" };
// p2.Name: Ahmet
// p2.City: İstanbul
.NET 6 ile gelen yeniliklerden biri de Windows time zone desteğine ilave olarak IANA time zone desteğinin geldi.
.NET 6 ile birlikte bütün platform’larda Windows time zone desteğine ek olarak IANA time zone desteği geldi. Bildiğiniz gibi günümüzde IANA time zone en güncel ve en popüler zaman dili bilgisine sahip yapılardan biri. Bu nedenle bu desteğin gelmesi geliştiriciler için gayet faydalı oldu.
Aşağıdaki kod parçasına bir göz atalım;
var ianaZoneId = "Europe/Istanbul";
var zoneInfo = TimeZoneInfo.FindSystemTimeZoneById(ianaZoneId);
Console.WriteLine(zoneInfo.DisplayName);
// (UTC+03:00) Istanbul
TimeZoneInfo.TryConvertIanaIdToWindowsId(ianaZoneId, out var windowsId);
Console.WriteLine(windowsId);
// Turkey Standard Time
TimeZoneInfo.TryConvertWindowsIdToIanaId(windowsId, out ianaZoneId);
Console.WriteLine(ianaZoneId);
// Europe/Istanbul
Console.WriteLine(zoneInfo.HasIanaId); // True
Leetcode içerisinde bulunan “Determine Color of a Chessboard Square” sorusunun açıklaması ve çözümü. Bu soruda size verilen satranç tahtası üzerindeki karenin beyaz bir kare olup olmadığını bulmanız isteniyor.