20 puan yazan GN⁺ 2025-12-01 | 2 yorum | WhatsApp'ta paylaş
  • Advent of Code, farklı seviyelerdeki programcılar için hazırlanmış bir programlama bulmacaları advent takvimi olup, herhangi bir dilde çözülebilir
  • Katılımcılar bunu mülakat hazırlığı, şirket içi eğitim, üniversite ödevleri, alıştırma soruları, hız yarışı gibi çeşitli amaçlarla kullanabilir
  • Bilgisayar bilimi eğitimi olmadan da katılmak mümkündür ve 10 yıllık bir bilgisayarda bile 15 saniye içinde çalışabilecek problemlerden oluşur
  • Site; OAuth kimlik doğrulaması, yüksek kontrast modu, kişisel lider tablosu, kod bloğu seçme özelliği gibi işlevleri destekler
  • Küresel lider tablosu, stres ve hile sorunları nedeniyle kaldırılmıştır; bunun yerine katılımcı odaklı, keyifli bir problem çözme deneyimi vurgulanır

Advent of Code genel bakış

  • Advent of Code, Eric Wastl tarafından oluşturulan yıllık bir programlama bulmacası etkinliğidir ve her yıl 1 Aralık'ta başlayan çevrimiçi advent takvimi biçiminde bulmacalar sunar
    • Katılımcılar her gün yeni bir problemi çözer ve dil kısıtlaması olmadan özgürce çözüm üretebilir
    • Problemler; mülakat hazırlığı, eğitim, pratik, rekabet, karşılıklı meydan okuma gibi farklı amaçlarla kullanılabilir
  • Katılım için bilgisayar bilimi alanında akademik bilgi gerekmez; temel programlama ve problem çözme becerileri yeterlidir
    • Tüm problemler, 10 yıllık donanımda bile 15 saniye içinde tamamlanabilecek şekilde tasarlanmıştır

Katılım ve destek yolları

  • Advent of Code'u desteklemek için Bluesky, Twitter, Mastodon gibi platformlarda paylaşabilir veya AoC++ üzerinden doğrudan destek olabilirsiniz
  • Problem çözerken takılırsanız örnek girdiyi kontrol etme, test vakaları yazma, bir arkadaştan yardım isteme, subreddit'te ipucu isteme gibi yöntemler önerilir
Reklam

Genel ipuçları (General Tips)

  • Örnek girdi ve çıktı eşleşmiyorsa problem açıklamasını yeniden okuyup kodun nasıl çalıştığını kontrol etmelisiniz
  • Örnek test geçse bile doğru cevap yanlışsa, elle doğrulanabilecek test vakaları oluşturarak kontrol edin
  • Hâlâ çözmekte zorlanıyorsanız bir süre ara verip tekrar deneyebilir veya topluluğa soru sorabilirsiniz

Sık sorulan sorular (FAQ)

  • Kod bloğu seçimi: JavaScript etkin durumdayken üç kez tıklayarak tamamını seçebilirsiniz
  • Kimlik doğrulama yöntemi: OAuth kullanılarak Reddit, GitHub gibi dış servislerle giriş yapılır; kimlik bilgileri yalnızca ilgili servise iletilir
    • Advent of Code yalnızca kullanıcının ID, ad, URL ve görselini saklar
  • Zorluk değişimi: Etkinlik süresince kademeli olarak zorlaşır ve algılanan zorluk seviyesi kişinin teknik düzeyine göre değişir
  • Bulmacaların yayın saati: Bulmacalar ABD Doğu Standart Saati (UTC-5) ile gece yarısında yayınlanır; bunun nedeni bunun yöneticinin yönetebileceği zaman dilimi olmasıdır
    • Rekabet etmek isteyenler, kişisel lider tabloları üzerinden kendi bölgelerinde yarışabilir
  • Okunabilirlik sorunu: Yüksek kontrast modu desteklenir ve Firefox'ta varsayılan olarak etkinleştirilebilir
  • Bulmaca önerisi yasağı: Telif hakkı sorunları nedeniyle dışarıdan bulmaca fikri kabul edilmez
  • Hata bildirimi: Bulmaca yayınlandıktan sonra 1 saatten fazla geçtiyse, çok sayıda kullanıcı zaten çözmüş olacağından hata olasılığı düşüktür
    • Sorun yaşanırsa önce subreddit'i kontrol etmeniz önerilir
  • Hız yarışı meselesi: Daha hızlı çözmek istiyorsanız ek pratik ve beceri gerekir; ancak kendi hedeflerinize uygun şekilde katılmanız önemlidir
  • Etkinlik gün sayısının değişmesi: 10 yıl boyunca takvim aynı kaldıktan sonra, yöneticinin zaman yükünü hafifletmek için etkinliğin ay ortasında bitmesine geçilmiştir
  • Küresel lider tablosunun kaldırılması: Aşırı rekabet ile DDoS saldırıları, kullanıcı stresi gibi sorunlar nedeniyle 10 yılın ardından kaldırılmıştır
    • Bunun yerine salt okunur kişisel lider tablosu paylaşım özelliği sunulur
  • Yapay zeka kullanımı: Bulmacalar insanın düşünme becerisini geliştirmeyi amaçladığından yapay zeka kullanımı önerilmez
    • Bu durum, “yerinize egzersiz yaptırmak sizi güçlendirmez” benzetmesiyle açıklanır
    Reklam
  • İçerik kopyalama yasağı: Advent of Code ücretsiz kullanılabilir, ancak bulmaca metinlerinin veya girdi verilerinin kopyalanması yasaktır
    • Web sitesi tasarımını ya da adını taklit etmek de yasaktır

Katkıda bulunanlar (Credits)

  • Bulmacalar, kod, tasarım: Eric Wastl
  • Beta test: Ben Lucek, JP Burke, Aneurysm9, Andrew Skalski
  • Topluluk yöneticileri: Danielle Lucek, Aneurysm9
  • Katılımcılar: Tüm kullanıcılar

Yasal bildirim (Legal)

  • Advent of Code, ABD'de tescilli bir ticari markadır ve tasarım, dil, stil, konsept bütünüyle münhasır varlıklardır
    • Açık yazılı izin olmadan kopyalanamaz veya kullanılamaz
  • Bulmacalara bağlantı vermek veya alıntı yapmak serbesttir; ticari bağlamlarda da buna izin verilir
  • Advent of Code, katılımcıların çözüm kodları üzerinde telif hakkı iddia etmez

2 yorum

 
roxie 2025-12-01

Geçen yıl da biraz katılmıştım... Bir yıl gerçekten göz açıp kapayıncaya kadar geçiyor T_T

 
GN⁺ 2025-12-01
Hacker News görüşleri
  • Bilgisayar mühendisliği geçmişi olmasa da katılabileceği söylendiğini her duyduğumda, bunun aslında hobi programcıları için hayal kırıklığı yaratabileceğini düşünüyorum
    “Oldukça ileri gidersin” sözü 1-2 kolay soruyu çözmek anlamına geliyorsa doğru olabilir, ama ötesi kolay değil

    • Bazıları soruların “fazla kolay” olduğunu söyledi, ben ise insanların nasıl bir dünyada yaşadığını merak ettim
    • Ben de katılıyorum. Geliştirici olarak çalışan arkadaşlarımın bile beklenenden az ilerlemesine şaşırdım
  • Advent of Code her yıl aralığın en büyük olayı
    Küresel liderlik tablosunun kalkması üzücü ama anlaşılır. Bu yıl sadece 12 gün sürmesi de yükü azalttığı için güzel
    “Kazanmak” için uğraşmak yerine, sadece problem çözmenin keyfini çıkarmanızı öneririm

    • 12 gün sürüyor ama aslında 24 challenge var, o yüzden ben 24 güne yayarak sakince tadını çıkaracağım
    • 12 güne düşmesi üzücü ama küresel liderlik tablosunda zaten zaman dilimi farkı yüzünden gerçek bir rekabet yoktu. Kişisel liderlik tabloları çok daha iyi
    • Bu yıl arkadaşlarla yerel liderlik tablosu kurmayı düşünüyorum. Zaten küreselde yükselemezdim
    • Böyle etkinliklere hiç ilgi duymuyor olmam, kesinlikle geliştirici olmadığımı gösteriyor
  • Advent of Code'u gerçekten çok seviyorum
    Bu yıl yalnızca 12 gün sürmesi hatta hoşuma gitti. Yıl sonunda gerçek hayattaki program çok yoğun oluyor, geçen yıl ancak yarısını yapabildim
    Katkıda bulunan herkese büyük teşekkürler

    • Geçen yıl yalnızca 7. güne kadar gelebildim, bu yıl daha az göz korkutucu olması güzel
    • Bu kez sonunda tamamlayabilirim belki
    • Bu yıl için çok heyecanlıyım
  • Bu yıl ilk kez Advent of Code yaptım ve gerçekten çok eğlenceliydi
    Project Euler'e benziyor ama matematikten çok programlamaya odaklı

    1. kısım basit ama 2. kısım optimize edilmiş bir yaklaşım gerektirdiği için ilginç
  • Herkese açık liderlik tablosunu kaldırmak mantıklı
    LLM meselesi bir yana, belirli ABD saat dilimleri dışında zaten rekabet etmek mümkün değildi
    Bunun yerine dünya genelinde zaman dilimine göre çözüm oranı gibi istatistikleri görmek ilginç olabilir

    • LLM'ler işi bozdu ama eskiden gerçekten üst sıralardaki çözümleri izlemek ilginçti
      YouTube'da canlı kodlama videoları izlemek de eğlenceliydi
  • Advent of Code'u her yıl bekliyorum
    Liderlik tablosu stresi olmadan, bunu yeni bir dil öğrenmek ya da becerilerimi keskinleştirmek için bir fırsat olarak kullanıyorum
    Normalde kendi başıma proje bootstrap etmek ya da DFS yazmak gibi işler yapmadığım için, böyle etkinlikler iyi bir pratik oluyor

    • Ben de sadece böyle problemler çözerek çalışmak isterdim ama muhtemelen tükenmişlik yaşardım
      O yüzden normalde test yazma ve dokümantasyon gibi işlerle denge kuruyorum
      Her yıl eski çözümlerimi biraz daha iyileştirerek verimlilik ve okunabilirlik üzerinde çalışıyorum
  • Advent of Code'un bu yıl da yapılmasına sevindim
    SSS'yi okurken girdi verisini paylaşmama kuralını pek anlayamadım
    Bulmaca metnini anlıyorum ama girdinin de gizli olması biraz üzücü. Yine de ücretsiz bir şeyden faydalandığım için buna saygı duyuyorum

    • Girdi verisi paylaşılırsa birileri bulmaca üretim mantığını kopyalayabilir diye söyleniyor
    • Sadece örnek girdiyi commit etmek ve testleri onunla çalıştırmak yeterli. Python ya da Rust'taki doctest gibi yapılandırılırsa temiz olur
    • Ben kodu açık paylaşıyorum ama girdileri private submodule olarak yönetiyorum
    • Girdi dosyalarını git-crypt ile şifreleyip açık depoya yüklüyorum
  • Dil anketi: En çok Python ve C++ kullanılıyor ama ana akım olmayan diller arasında da AoC'ye çok uygun olanlar var
    Hangi dillerin iyi olduğunu paylaşalım önerisi

    • Ben K ya da Uiua gibi dizi dillerini seviyorum. Dışarıdan tuhaf görünüyorlar ama ilk sorular için birebir
      Şaka gibi ama bazen Game Boy ASM ile bile çözüyorum. Gerçekte ise Clojure ya da Python kullanıyorum
    • Ben Haskell+Bash tarzında yaptığım kendi dilimi kullanıyorum. YouTube demosu da var
      Bu yıl bir bytecode derleyicisi yapıyorum. Liderlik tablosunda ise Go kullanıyorum; derleme hızı sayesinde 2022 Day19'da 1. olmuştum
    • Haskell kullanınca parser combinator'larla girdi işlemek kolay oluyor. Üstelik lazy evaluation ve recursion sayesinde kısa kod yazılabiliyor
      Örneğin sonsuz liste üretip koşulu sağlayana kadar gezinerek çözebiliyorsunuz
    • Ruby ideal. İfade gücü yüksek sözdizimi, zengin standart kütüphane ve bolca string işleme aracı var
      each_cons, permutation, prime gibi metotlar AoC için kullanışlı
    • Go hızlı ve basit olduğu için iyi, OCaml ise tip sistemi ve çalışma hızı açısından harika
      Önceden 2D grid ya da parser yardımcıları hazırlarsanız çok daha verimli oluyor
  • Bu yıl assembly (fasm) ile denemeyi düşünüyorum
    Eğlenceli de olabilir, acı verici de, ama ne olursa olsun öğrenme sürecinin bir parçası

  • Geçen yılki AI otomasyon patlamasından sonra liderlik tablosu kaldırılmış gibi görünüyor
    Üzücü ama kaçınılmaz bir karar gibi

    • Bulmacaların yayın saati ABD'ye göreydi, ben o sırada hep uyuyor oluyordum
      Zaten rekabet etmek zordu, bu yüzden küresel liderlik tablosunun benim için pek anlamı yoktu