Featured image of post FizzBuzz

FizzBuzz

आखिर यह FizzBuzz है क्या?

नमस्ते!

आज मैं “FizzBuzz” के बारे में लिखना चाहता हूँ।

चाहे आप ऐसा सोचते हों “अरे, मैं इसे जानता हूँ!”, या “मैंने इसके बारे में सुना है, लेकिन मुझे समझ में नहीं आया”, कृपया कुछ देर मेरे साथ रहें। इसे पढ़ने में कुछ ही मिनट लगेंगे, और शायद आप सोचें “यह समझ में आता है।”


क्या यह सच है कि “यदि आप FizzBuzz नहीं लिख सकते, तो आप एक प्रोग्रामर के रूप में असफल हैं”?

FizzBuzz, संक्षेप में, कुछ ऐसा है।

1
2
3
4
5
6
7
8
9
for i in range(1, 101):
    if i % 15 == 0:
        print("FizzBuzz")
    elif i % 3 == 0:
        print("Fizz")
    elif i % 5 == 0:
        print("Buzz")
    else:
        print(i)

हाँ, यह प्रसिद्ध “FizzBuzz समस्या” है।

आप 1 से 100 तक की संख्याओं को क्रम में देखते हैं,
यदि यह 3 का गुणज है, तो “Fizz” प्रिंट करें, यदि यह 5 का गुणज है, तो “Buzz”,
यदि यह दोनों का गुणज है, तो “FizzBuzz” प्रिंट करें - यह बहुत ही सरल है।

और फिर भी, किसी कारण से, इसे अक्सर “प्रोग्रामर के लिए न्यूनतम परीक्षण” के रूप में माना जाता है। यह साक्षात्कारों में आता है, और सोशल मीडिया पर आपको ऐसी बातें देखने को मिलेंगी जैसे “कोई जो FizzBuzz भी नहीं लिख सकता…”

लेकिन, एक मिनट रुकिए।

क्या हम वास्तव में कह सकते हैं कि “FizzBuzz नहीं लिख सकना = प्रोग्रामिंग नहीं कर पाना”?


यह कर सकने के बारे में नहीं है, बल्कि क्या आपके पास कर सकने की “स्थिति” है

यह सच है कि FizzBuzz के लिए सिंटैक्स की समझ और बुनियादी तार्किक सोच की आवश्यकता होती है। इसलिए यह समझ में आता है कि इसका उपयोग “मूल बातों की जाँच” करने के लिए किया जाता है।

लेकिन, यहाँ बात यह है।

अगर माहौल अलग है, तो नतीजे भी अलग होंगे।

उदाहरण के लिए,

  • जब आप किसी ऐसे साक्षात्कारकर्ता के सामने घबराए हों जिससे आप पहली बार मिले हैं
  • जब आपको अचानक एक व्हाइटबोर्ड दिया जाता है और आपके पास कोई संपादक नहीं होता है
  • जब आपको तुरंत याद नहीं आता, “अरे, मॉड्यूलो (modulo) क्या है?”

…क्या ऐसा नहीं होता? हम इंसान हैं। मुझे लगता है कि ऐसा होता है।

इसलिए, “क्या आप FizzBuzz लिख सकते हैं” के बजाय, मुझे लगता है कि “क्या आप खुद को ऐसी स्थिति में ला सकते हैं जहाँ आप FizzBuzz लिख सकें” वास्तव में अधिक महत्वपूर्ण है।


“बस प्रशिक्षण लें और यह ठीक हो जाएगा” की सामान्य सलाह का नुकसान

जब यह विषय आता है, तो “तो हर दिन अभ्यास करो!” जैसी सलाह आमतौर पर दी जाती है।

यह सच है कि बार-बार अभ्यास करने से आप इसे धाराप्रवाह रूप से लिख सकेंगे, और यह अपने आप में एक अच्छी बात है। लेकिन अगर हम इस आधार से शुरू करते हैं कि “यदि आप FizzBuzz नहीं लिख सकते हैं तो आप असफल हैं,” तो यह आसानी से सिर्फ एक डर में बदल सकता है।

दूसरे शब्दों में, यह एक ऐसी संरचना बनाने की प्रवृत्ति रखता है जहाँ आपको लगता है कि “मैंने गलती की = मैं बेकार हूँ।”

उदाहरण के लिए, जिस दिन आप देर तक सोते हैं, क्या आप यह नहीं सोचते कि “मैं आलसी हूँ…”? लेकिन ऐसा हो सकता है कि आपका शरीर उस समय थका हुआ हो।

FizzBuzz भी ऐसा ही है।


इसके बावजूद, FizzBuzz अभी भी एक अच्छा सवाल है

इसके बावजूद, FizzBuzz बुरा नहीं है।

बल्कि, मुझे लगता है कि यह बहुत ही अच्छी तरह से तैयार किया गया प्रश्न है। नियम सरल हैं, और विस्तार करना आसान है। उदाहरण के लिए, यदि आप इसे इस तरह बदलते हैं, तो आपकी सोच गहरी होगी।

1
2
3
4
5
6
7
for i in range(1, 101):
    output = ""
    if i % 3 == 0:
        output += "Fizz"
    if i % 5 == 0:
        output += "Buzz"
    print(output or i)

यह एक उदाहरण है कि “आप if-elif-else का उपयोग किए बिना भी इसे लिख सकते हैं।” यह थोड़ा स्मार्ट है, है ना?

दूसरे शब्दों में, FizzBuzz केवल “आप यह कर सके या नहीं” के बारे में नहीं है, बल्कि यह यह देखने के लिए एक प्रवेश द्वार के रूप में भी कार्य करता है कि “आप इसे कैसे लिखते हैं” और “आप कितना समझते हैं।”


संक्षेप में

मुझे लगता है कि हमें इस बात को बहुत अधिक महत्व नहीं देना चाहिए कि आप FizzBuzz कर सकते हैं या नहीं।

भले ही आप इसे नहीं लिख पाए हों, यह सिर्फ इतना हो सकता है कि “आप अभी ठीक महसूस नहीं कर रहे थे,” और अक्सर आप बाद में ध्यान से सोचने पर इसे कर सकेंगे।

जल्दबाजी न करें, चलिए धीरे-धीरे आगे बढ़ते हैं।

कोड इंसानों द्वारा लिखा जाता है। इंसान होने के नाते, हम कभी-कभी चीजें भूल जाते हैं और घबरा जाते हैं। इसे स्वीकार करते हुए, मुझे लगता है कि यह पर्याप्त है अगर हम थोड़ा-थोड़ा करके आगे बढ़ सकें।

तो, चलिए आज भी आराम से कोड लिखते हैं।

comments powered by Disqus
निर्मित Hugo के साथ
थीम Stack द्वारा डिज़ाइन किया गया Jimmy