ما هو FizzBuzz في النهاية؟
مرحباً!
اليوم أود أن أكتب عن “FizzBuzz”.
سواء كنت شخصاً يقول “آه، أعرف ذلك!"، أو شخصاً يقول “سمعت عنه نوعاً ما، لكنني لا أفهمه حقاً”، يرجى البقاء معي لبعض الوقت. يمكنك قراءته في بضع دقائق، وربما تجعلك تفكر “أفهم ذلك الآن”.
هل صحيح أنك “لست مبرمجاً إذا لم تستطع كتابة FizzBuzz”؟
بشكل تقريبي، هذا هو FizzBuzz.
| |
نعم، هذه هي “مشكلة FizzBuzz” الشهيرة.
أنت تنظر إلى الأرقام من 1 إلى 100 بالترتيب،
إذا كانت من مضاعفات العدد 3، فقم بطباعة “Fizz”، وإذا كانت من مضاعفات العدد 5، فقم بطباعة “Buzz”،
وإذا كانت من مضاعفات كليهما، فقم بطباعة “FizzBuzz”. إنه أمر بسيط للغاية.
ومع ذلك، لسبب ما، غالباً ما يتم التعامل معها على أنها “اختبار كحد أدنى للمبرمجين”. يتم تقديمها في المقابلات، وهناك أحياناً تعليقات متعالية على وسائل التواصل الاجتماعي مثل “الأشخاص الذين لا يستطيعون حتى كتابة FizzBuzz…”.
لكن انتظر دقيقة.
هل يمكننا حقاً القول “لا يمكنك كتابة FizzBuzz = لا يمكنك البرمجة”؟
لا يتعلق الأمر بما إذا كان بإمكانك القيام بذلك، بل ما إذا كان لديك “الحالة” للقيام بذلك
بالتأكيد، تتطلب مشكلة FizzBuzz فهماً للقواعد والتفكير المنطقي الأساسي. لذلك من المنطقي استخدامها “للتحقق من الأساسيات”.
لكن مهلاً.
إذا كانت البيئة مختلفة، فإن النتائج ستكون مختلفة.
على سبيل المثال،
- عندما تكون متوتراً أمام محاور تقابله لأول مرة
- عندما يتم تسليمك فجأة سبورة بيضاء وليس لديك محرر نصوص في متناول يدك
- عندما لا تستطيع التذكر فجأة “مهلاً، ما هو modulo مرة أخرى؟”
… ألا تحدث أشياء كهذه؟ نحن بشر بعد كل شيء. أعتقد أن ذلك يحدث.
لذا، بدلاً من “ما إذا كان بإمكانك كتابة FizzBuzz”، أعتقد أن الأهم حقاً هو “ما إذا كان يمكنك وضع نفسك في حالة يمكنك فيها كتابة FizzBuzz”.
فخ النصيحة الشائعة “ما عليك سوى التدرب وستكون بخير”
عندما يتعلق الأمر بهذا الموضوع، غالباً ما تظهر نصيحة “لذا تدرب كل يوم!”.
بالتأكيد، من الصحيح أن التدريب المتكرر سيسمح لك بالكتابة بطلاقة، وهذا في حد ذاته أمر جيد. ومع ذلك، إذا بدأت بافتراض أنك “فاشل إذا لم تتمكن من كتابة FizzBuzz”، فقد يتحول الأمر ببساطة إلى خوف.
بمعنى آخر، من السهل الوقوع في هيكل حيث تشعر “لقد ارتكبت خطأ = أنا لست جيداً”.
على سبيل المثال، في الأيام التي تنام فيها متأخراً، ألا تميل إلى الاعتقاد “أنا كسول…"؟ لكن قد يكون جسدك متعباً فقط بالصدفة.
الشيء نفسه ينطبق على FizzBuzz.
مع ذلك، FizzBuzz لا يزال سؤالاً جيداً حقاً
مع ذلك، فإن FizzBuzz ليس سيئاً.
بدلاً من ذلك، أعتقد أنه سؤال مدروس جيداً. القواعد بسيطة، ومن السهل توسيعها. على سبيل المثال، إذا قمت بتغييره على هذا النحو، فإن التفكير يتعمق أكثر.
| |
هذا مثال يوضح أنه “يمكنك كتابته بدون if-elif-else”. إنه ذكي قليلاً، أليس كذلك؟
بعبارة أخرى، لا يقتصر دور FizzBuzz على التحقق “ما إذا كان بإمكانك القيام بذلك”، بل يمكن أن يكون أيضاً نقطة دخول لمعرفة “كيف تكتبه” و “إلى أي مدى تفهمه”.
في الختام
أعتقد أنه لا ينبغي لنا أن نعطي أهمية مفرطة لما إذا كان بإمكان شخص ما إكمال FizzBuzz.
حتى لو لم تتمكن من كتابته، فقد يعني ذلك ببساطة أنك “لم تكن في حالة جيدة في تلك اللحظة”، وغالباً ما يمكنك القيام بذلك إذا فكرت في الأمر بعناية لاحقاً.
لا تتسرع، فلنأخذ الأمور ببطء.
الكود مكتوب بواسطة بشر. لأننا بشر، ننسى الأشياء أحياناً، وأحياناً نشعر بالتوتر. أعتقد أنه يكفي أن نتقبل ذلك ونمضي قدماً شيئاً فشيئاً.
حسناً إذن، دعونا نأخذ الأمور ببساطة ونكتب بعض الأكواد اليوم.
