20 पॉइंट द्वारा GN⁺ 2025-12-01 | 2 टिप्पणियां | WhatsApp पर शेयर करें
  • Advent of Code विभिन्न स्तरों के प्रोग्रामरों के लिए एक programming puzzle advent calendar है, जिसे किसी भी भाषा में हल किया जा सकता है
  • प्रतिभागी इसे इंटरव्यू तैयारी, corporate training, university assignments, practice problems, speed competition आदि कई उद्देश्यों के लिए इस्तेमाल कर सकते हैं
  • इसमें भाग लेने के लिए computer science की डिग्री जरूरी नहीं है, और समस्याएँ ऐसी बनाई गई हैं कि 10 साल पुराने कंप्यूटर पर भी 15 सेकंड के भीतर चल सकें
  • साइट OAuth authentication, high contrast mode, private leaderboards, code block selection जैसी सुविधाएँ सपोर्ट करती है
  • global leaderboard को stress और cheating की समस्याओं के कारण हटा दिया गया है, और अब प्रतिभागी-केंद्रित, मज़ेदार problem-solving experience पर ज़ोर है

Advent of Code का परिचय

  • Advent of Code, Eric Wastl द्वारा बनाया गया एक वार्षिक programming puzzle event है, जो हर साल 1 दिसंबर से शुरू होने वाले online advent calendar format में puzzles उपलब्ध कराता है
    • प्रतिभागी हर दिन एक नई समस्या हल करते हैं, और किसी भी भाषा में स्वतंत्र रूप से समाधान लिख सकते हैं
    • इन समस्याओं का उपयोग इंटरव्यू तैयारी, शिक्षा, अभ्यास, competition, mutual challenges जैसे कई उद्देश्यों के लिए किया जाता है
  • इसमें भाग लेने के लिए computer science की औपचारिक पढ़ाई जरूरी नहीं है; बुनियादी programming और problem-solving skills काफ़ी हैं
    • सभी समस्याएँ 10 साल पुराने hardware पर भी 15 सेकंड के भीतर पूरी होने के लिए बनाई गई हैं

भागीदारी और समर्थन का तरीका

  • Advent of Code को सपोर्ट करने के लिए इसे Bluesky, Twitter, Mastodon आदि पर साझा किया जा सकता है, या AoC++ के माध्यम से सीधे समर्थन दिया जा सकता है
  • यदि समस्या हल करते समय अटक जाएँ, तो sample input जाँचना, test cases लिखना, दोस्तों से मदद माँगना, subreddit पर hints लेना जैसी विधियाँ सुझाई जाती हैं

सामान्य टिप्स (General Tips)

  • यदि sample input और output मेल नहीं खाते, तो समस्या विवरण को फिर से पढ़ें और अपने code के व्यवहार की जाँच करें
  • sample पास होने के बाद भी उत्तर गलत हो, तो ऐसे test cases बनाएँ जिन्हें हाथ से verify किया जा सके
  • फिर भी समाधान कठिन लगे, तो थोड़ा विराम लेकर दोबारा कोशिश करें या community से सवाल पूछें

अक्सर पूछे जाने वाले सवाल (FAQ)

  • Code block selection: JavaScript enabled होने पर triple click से पूरा block चुना जा सकता है
  • Authentication method: OAuth का उपयोग करके Reddit, GitHub जैसी बाहरी सेवाओं से login किया जाता है, और credentials केवल उन्हीं सेवाओं को भेजे जाते हैं
    • Advent of Code केवल उपयोगकर्ता का ID, नाम, URL, image ही संग्रहीत करता है
  • Difficulty changes: event के दौरान कठिनाई धीरे-धीरे बढ़ती है, और महसूस की जाने वाली कठिनाई व्यक्ति के skill level पर निर्भर करती है
  • Puzzle release time: puzzles U.S. Eastern Standard Time (UTC-5) की आधी रात में जारी होते हैं, क्योंकि यह आयोजक के लिए प्रबंधनीय time zone है
    • यदि आप competition चाहते हैं, तो private leaderboards के ज़रिए अपने क्षेत्र के अनुसार प्रतिस्पर्धा कर सकते हैं
  • Readability issues: high contrast mode सपोर्ट किया जाता है, और Firefox में इसे default रूप से सक्षम किया जा सकता है
  • Puzzle suggestions not accepted: copyright कारणों से बाहरी puzzle ideas स्वीकार नहीं किए जाते
  • Bug reports: puzzle जारी होने के 1 घंटे से अधिक समय बीत जाने पर आमतौर पर कई उपयोगकर्ता उसे हल कर चुके होते हैं, इसलिए bug होने की संभावना कम मानी जाती है
    • समस्या होने पर पहले subreddit में जाँच करने की सलाह दी जाती है
  • Speed competition: यदि आप तेज़ी से हल करना चाहते हैं, तो अतिरिक्त practice और skills की ज़रूरत होगी, लेकिन अपने लक्ष्य के अनुसार भाग लेना अधिक महत्वपूर्ण है
  • Event duration change: 10 साल तक एक जैसा schedule रखने के बाद, आयोजक के समय के दबाव को कम करने के लिए इसे महीने के मध्य में समाप्त करने के रूप में बदला गया
  • Global leaderboard removal: अत्यधिक competition, DDoS attacks, और user stress जैसी समस्याओं के कारण 10 साल बाद इसे हटा दिया गया
    • इसके बजाय read-only private leaderboard sharing feature दिया गया है
  • AI usage: puzzles का उद्देश्य मानव की सोचने की क्षमता को बेहतर बनाना है, इसलिए AI का उपयोग अनुशंसित नहीं है
    • इसे इस उदाहरण से समझाया गया है: “अगर व्यायाम कोई और कर दे, तो आप मज़बूत नहीं बनते”
  • Content copying prohibited: Advent of Code मुफ्त में इस्तेमाल किया जा सकता है, लेकिन puzzle text या input data की नकल करना मना है
    • वेबसाइट के design या नाम की नकल करना भी प्रतिबंधित है

श्रेय (Credits)

  • Puzzles, code, design: Eric Wastl
  • Beta testing: Ben Lucek, JP Burke, Aneurysm9, Andrew Skalski
  • Community managers: Danielle Lucek, Aneurysm9
  • Participants: सभी उपयोगकर्ता

कानूनी सूचना (Legal)

  • Advent of Code एक U.S.-registered trademark है, और इसका design, language, style, concept पूरी तरह स्वामित्व वाली संपत्ति हैं
    • स्पष्ट लिखित अनुमति के बिना इनकी नकल या उपयोग नहीं किया जा सकता
  • puzzles के लिए link या उद्धरण देना स्वतंत्र रूप से संभव है, और commercial context में भी अनुमति है
  • Advent of Code प्रतिभागियों के solution code पर copyright claim नहीं करता

2 टिप्पणियां

 
roxie 2025-12-01

मैंने पिछले साल भी थोड़ा हिस्सा लिया था... सच में एक साल पलक झपकते निकल जाता है T_T

 
GN⁺ 2025-12-01
Hacker News राय
  • जब भी मैं यह सुनता हूँ कि इसमें computer science की पृष्ठभूमि के बिना भी भाग लिया जा सकता है, मुझे लगता है कि यह वास्तव में hobby programmers के लिए निराशाजनक हो सकता है
    अगर “काफ़ी आगे तक जा सकते हैं” का मतलब 1–2 आसान समस्याएँ हल करना है, तो यह सही है, लेकिन उससे आगे आसान नहीं है

    • किसी ने कहा कि समस्याएँ “बहुत आसान” हैं, और मुझे समझ नहीं आया कि वह आख़िर किस दुनिया में रह रहा है
    • मैं भी सहमत हूँ। डेवलपर के रूप में काम करने वाले दोस्तों को उम्मीद से कम प्रगति करते देख कर हैरानी हुई
  • Advent of Code हर साल दिसंबर का हाइलाइट होता है
    global leaderboard का हटना अफ़सोसजनक है, लेकिन समझ में आता है। इस साल सिर्फ़ 12 दिन चलना भी अच्छा है क्योंकि इससे दबाव कम होता है
    “जीतने” की कोशिश मत करो, बस problem solving का मज़ा लो

    • 12 दिन हैं, लेकिन असल में 24 challenges हैं, इसलिए मैं 24 दिनों तक आराम से इसका आनंद लेने वाला हूँ
    • 12 दिनों तक सिमटना थोड़ा अफ़सोसजनक है, लेकिन global leaderboard में वैसे भी time zone के फ़र्क की वजह से वास्तविक प्रतिस्पर्धा मुश्किल थी। personal leaderboard कहीं बेहतर है
    • इस साल मैं दोस्तों के साथ local leaderboard बनाने की सोच रहा हूँ। global पर तो वैसे भी नहीं पहुँच पाते
    • ऐसी events में मुझे बिल्कुल दिलचस्पी नहीं है, इससे पक्का हो जाता है कि मैं डेवलपर नहीं हूँ
  • मुझे Advent of Code सच में बहुत पसंद है
    इस साल सिर्फ़ 12 दिन चलना उल्टा स्वागतयोग्य है। साल के अंत में असल ज़िंदगी के काम बहुत होते हैं, इसलिए पिछले साल मैं लगभग आधा ही कर पाया था
    इसमें हिस्सा लेने वालों को बहुत धन्यवाद

    • पिछले साल मैं सिर्फ़ Day 7 तक ही कर पाया था, इसलिए इस साल कम बोझ होना अच्छा लग रहा है
    • शायद इस बार मैं सच में अंत तक पूरा कर पाऊँ
    • इस साल को लेकर बहुत उत्साहित हूँ
  • मैंने इस साल पहली बार Advent of Code किया, और यह सच में मज़ेदार था
    यह Project Euler जैसा है, लेकिन गणित से ज़्यादा programming-केंद्रित है
    Part 1 सरल होता है, लेकिन Part 2 में optimized approach चाहिए होती है, इसलिए यह दिलचस्प लगता है

  • public leaderboard हटाना तर्कसंगत था
    LLM की समस्या से अलग भी, कुछ अमेरिकी time zones के बाहर प्रतिस्पर्धा करना लगभग असंभव था
    उसकी जगह दुनिया भर में time zone के हिसाब से solve rate जैसी statistics देखना दिलचस्प होगा

    • LLM ने चीज़ें बिगाड़ दीं, लेकिन पहले सच में top-ranked solutions देखना रोचक होता था
      YouTube पर live coding videos देखना भी मज़ेदार था
  • मैं हर साल Advent of Code का इंतज़ार करता हूँ
    leaderboard के तनाव के बिना, मैं इसे नई language सीखने या skills को निखारने का मौका मानता हूँ
    रोज़मर्रा में मुझे अपने प्रोजेक्ट bootstrap करने या DFS implement करने की ज़रूरत नहीं पड़ती, इसलिए ऐसे events अच्छी practice हैं

    • मैं भी ऐसा काम करना चाहूँगा जिसमें सिर्फ़ ऐसी समस्याएँ हल करनी हों, लेकिन शायद उससे burnout हो जाएगा
      इसलिए आम दिनों में testing और documentation जैसे कामों से संतुलन बना रहता है
      हर साल मैं पुराने solutions को थोड़ा-थोड़ा बेहतर बनाते हुए efficiency और readability बढ़ाने की practice करता हूँ
  • इस साल भी Advent of Code होने से खुशी है
    FAQ पढ़ते समय input data को public न करने वाला नियम मुझे पूरी तरह समझ नहीं आया
    puzzle text तक तो बात समझ में आती है, लेकिन inputs भी private हों, यह थोड़ा अफ़सोसजनक है। फिर भी, यह मुफ़्त में मिलता है, इसलिए मैं इसका सम्मान करता हूँ

    • कहा गया कि अगर inputs public हो जाएँ, तो कोई puzzle generation logic की नकल कर सकता है
    • सिर्फ़ sample input commit कर दो, और tests उसी पर चलाओ, इतना काफ़ी है। Python या Rust के doctest की तरह structure करोगे तो साफ़-सुथरा रहेगा
    • मैं code public रखता हूँ, लेकिन inputs को private submodule में मैनेज करता हूँ
    • git-crypt से input files encrypt करके public repository में डालता हूँ
  • language survey: Python और C++ सबसे ज़्यादा इस्तेमाल होते हैं, लेकिन कम प्रचलित भाषाओं में भी कुछ ऐसी हैं जो AoC के लिए अच्छी बैठती हैं
    कौन-सी language अच्छी है, यह साझा करने का सुझाव है

    • मुझे K या Uiua जैसी array languages पसंद हैं। दिखने में अजीब लगती हैं, लेकिन शुरुआती समस्याओं के लिए एकदम सही हैं
      मज़ाक में कह रहा हूँ, लेकिन कभी-कभी Game Boy के ASM में भी हल करने की कोशिश करता हूँ। असल में Clojure या Python इस्तेमाल करता हूँ
    • मैं Haskell+Bash स्टाइल में बनाई हुई अपनी language इस्तेमाल करता हूँ। YouTube demo भी है
      इस साल मैं bytecode compiler बना रहा हूँ। leaderboard के लिए Go इस्तेमाल करता हूँ, और compile speed की वजह से 2022 Day19 में पहला स्थान लिया था
    • Haskell में parser combinators की वजह से input handling आसान हो जाती है। ऊपर से lazy evaluation और recursion से संक्षिप्त code लिखा जा सकता है
      उदाहरण के लिए, infinite list बनाकर शर्त पूरी होने तक उसे iterate करते हुए समाधान किया जा सकता है
    • Ruby आदर्श है। इसकी expressive syntax, समृद्ध standard library, और string processing tools बहुत काम आते हैं
      each_cons, permutation, prime जैसी methods AoC में उपयोगी हैं
    • Go तेज़ और सरल है, और OCaml का type system व execution speed शानदार है
      अगर पहले से 2D grid या parser utilities तैयार हों, तो काम काफ़ी ज़्यादा efficient हो जाता है
  • इस साल assembly (fasm) में चुनौती लेने का सोच रहा हूँ
    यह मज़ेदार भी हो सकता है और तकलीफ़देह भी, लेकिन जो भी हो, यह सीखने की प्रक्रिया है

  • लगता है पिछले साल के AI automation boom के बाद leaderboard हट गया
    अफ़सोस है, लेकिन यह अपरिहार्य फ़ैसला लगता है

    • puzzle release का समय अमेरिका के हिसाब से होता था, इसलिए मैं तब हमेशा सो रहा होता था
      वैसे भी प्रतिस्पर्धा मुश्किल थी, इसलिए global leaderboard का मेरे लिए ज़्यादा मतलब नहीं था