نعم، إضحك إن أردت لكن نعدك بنهاية هذا المقال ستجد نفسك أمام إدراك آخر في مجال البرمجة من خلال بطة مطاطية صفراء، لربما شاهدتها بضع مرات أمام مكاتب بعض المبرمجين، و لم تلتفت لها او تعر لها أي إهتمام إلى حين ذكرناها لك في عنوان هذا المقال، و في الحقيقة تلك البطة الصفراء الصغيرة لها فوائد على المبرمج جد إيجابية ستجعل من وجودها ضرورة ملحة أثناء ممارسة البرمجة، و اليوم سنشارك معك هذه الفوائد، سنحاول إقناعك في الحصول عليها لتضعها جانبك في مكتبك المتواضع، و نعدك أن إنتاجيتك البرمجية و وتيرتها ستتغير للأفضل بسبب بطة صغيرة !
إن كانت لديك مسبقا او تملك أي لعبة الى جانبك، فستفي بالغرض أيضا، لكنها و كأي ثورة رقمية أخرى ( نعم ثورة ) فإن المتعارف بين المبرمجين جلب بطة صفراء مطاطية او ما يصطلح عليها بالـ Rubber Duck، لكن يمكنك دائما الإعتماد على بديل، و أيضا، لا تنسى ان تطلق عليها إسماً محددا فهذا دائما يساعدك في إنتاجية أفضل ... إختصارا للحديث الطائش، إليك أيها المبرمج مجموعة من الأسباب التي ستجعلك تضع هذه البطة إلى جانبك دائما أثناء عملك البرمجي :
لا صديقك او صديقتك و لا أي أحد من أفراد عائلتك سيود الإستماع إليك تهذي بعبارات برمجية لا يفهمها هو أصلا، و ربما ستكون تلك آخر جلسة سيجلسها معك أيها الممل، لأنك ببساطة لا تقدم حوارا يتشاركه إثنين، و هذا سيضرك أنت من الجانبين : الجانب الأول انك لن تجد في المستقبل شخصا لتشرح له كود محدد، و الجانب الثاني انك لن تجد شخصا إطلاقا !
الصديق الحميم الذي سيستمع لتفسيراتك و تأويلاتك البرمجية و سيساعدك في فهم الكود البرمجي و إيجاد الأخطاء أثناء طرحك لأفكار الكود هو البطة الصفراء، هي الوحيدة التي يمكنك النظر في عينيها و تشرح لها شفرتك البرمجية، و كيف قمت بهذا و كيف قمت بذاك، و تشرح لها بحق السماء ما الذي يفعله هذا السطر البرمجي هنا ؟ و تجد أخطاءً برمجية في الكود خاصتك، بل و يمكنك تطويره للأفضل.
الحل يكمن في صديقنا العزيز بطبوط الذي سيتحمل الألم من أجلك، لكونه مطاطيا فيمكنك ممارسة عليه ما يسمى بالـ Stress/Anger Management الذي يتم عبر عصر كرة مطاطية في يدك من أجل إستئصال كل الطاقة السلبية و الغضب الذي يحوم حولك، و تضغط عليها مرارا و تكرارا الى حين الحصول على الإرتخاء و إعتدال المزاج و العودة للعمل، و صديقنا بطبوط سيقوم بهذه العملية من أجلك، فهو قابل للضغط.
الى جانب ذلك يمكنك ان تصفعه بين الحين و الآخر او ان ترميه عرض الحائط من أجل التنفيس أكثر عن الغضب فالصديق الحقيقي يستطيع تحمل ذلك من أجلك، فقط تذكر حين يعتدل مزاجك او تقول له : " أنا آسف ".
الإستمرارية في آداء عمل مسترسل يؤدي الى التعب و الملل و عدم الرغبة مستقبلا في العمل على ذلك المشروع البرمجي لإستنفاذ كل الطاقة الإنتاجية في بداية الأمر و عدم توزيعها بشكل معتدل، ببطة صغيرة إلى جانبك ستذكرك انه عليك الإهتمام بها و التحدث إليها و اللعب معها قليلا لأنك لم تفعل منذ ساعات، و هذا سيكسر حاجز الإسترسال أثناء العمل و محاولة إبقاء كل السعرات الإنتاجية في أعلى مستوياتها.
بطرحك لسؤال : " كيف يعمل ؟ - How it works ؟ " ستتضارب الأفكار و التقنيات في عقلك و ستوجب عليك شرح سيرورة حل ذلك المشكل لصديقك المقرب البطة الصفراء المطاطية من أجل معرفة طريقة عملها و تحديد أفضل خوارزمية لصناعة تلك الفكرة / حل ذلك المشكل.
مع الوقت و بإكتساب تقنيات كثيرة و تعلمها عن طريق تفسيرها للبطة، ستصير مطوراً أفضل قادر على إيجاد أفضل الحلول لأصعب المشاكل البرمجية دون الحاجة الى أي مساعدة فقط عن طريق فهم الكود، إيجاد المشكل، إيجاد حل للمشكل و تطبيق الحل في برمجيتك، و كلها خطوات ستحتاج الى ان تسردها على البطة من أجل تبادل طرح الأفكار و الحلول بين نفسك و بين نفسك الأخرى الموجودة في البطة.
- لتستطيع تفسير الكود البرمجي لها :
تعود قصة الـ Rubber Duck او البطة الصفراء المطاطية إلى كتاب The Pragmatic Programmer الذي يتحدث عن البرمجة و المبرمجين و تقنياتهم، فقد ذُكر في الكتاب انه من تقنيات حل المشاكل البرمجية او الـ Debugging هو محاولة تفسير الكود البرمجي سطر بسطر لشخص آخر، و أثناء تفسيرك له في الغالب ستجد الخطأ بشكل سريع و تقوم بتصحيحه في الكود البرمجي. لكن من هذا الذي سيود الإستماع لك تشرح كود برمجي سطر بسطر ؟ الإجابة : لا أحد.الصديق الحميم الذي سيستمع لتفسيراتك و تأويلاتك البرمجية و سيساعدك في فهم الكود البرمجي و إيجاد الأخطاء أثناء طرحك لأفكار الكود هو البطة الصفراء، هي الوحيدة التي يمكنك النظر في عينيها و تشرح لها شفرتك البرمجية، و كيف قمت بهذا و كيف قمت بذاك، و تشرح لها بحق السماء ما الذي يفعله هذا السطر البرمجي هنا ؟ و تجد أخطاءً برمجية في الكود خاصتك، بل و يمكنك تطويره للأفضل.
- لأنها تساعدك على التنفيس على غضبك :
ستفقد أعصابك في فترة ما أثناء ممارسة البرمجة لا شك في هذا فكل مبرمج يمر من تلك المرحلة، و حين تفعل فسيكون أمامك بضعة حلول فقط كالخروج و الإبتعاد عن الشاشة قليلا و التفكير في الكود في الهواء العليل و يعتبر هذا أفضل حل، لكن للأسف لا يمكنك ممارسته في أي وقت، لنقل الثالثة ليلا مثلا، و أنت مرغم بسبب الـ Deadline بعدم الذهاب للنوم الى حين إصلاح المشكل و حل الكود، و البقاء في حالة غضب لن يزيد سوى الطين بلة.الحل يكمن في صديقنا العزيز بطبوط الذي سيتحمل الألم من أجلك، لكونه مطاطيا فيمكنك ممارسة عليه ما يسمى بالـ Stress/Anger Management الذي يتم عبر عصر كرة مطاطية في يدك من أجل إستئصال كل الطاقة السلبية و الغضب الذي يحوم حولك، و تضغط عليها مرارا و تكرارا الى حين الحصول على الإرتخاء و إعتدال المزاج و العودة للعمل، و صديقنا بطبوط سيقوم بهذه العملية من أجلك، فهو قابل للضغط.
الى جانب ذلك يمكنك ان تصفعه بين الحين و الآخر او ان ترميه عرض الحائط من أجل التنفيس أكثر عن الغضب فالصديق الحقيقي يستطيع تحمل ذلك من أجلك، فقط تذكر حين يعتدل مزاجك او تقول له : " أنا آسف ".
- لتساعدك على كسر حاجز الإستمرارية :
يوجد الكثير من القواعد المتبعة من أجل الحفاظ على الإنتاجية أثناء العمل لربما أشهرها طريقة 40/10 التي تخبرك انه في كل 40 دقيقة من العمل عليك ان تأخذ إستراحة 10 دقائق فذلك يبقي معدلات الإنتاجية لديك مرتفعة و طرق أخرى أيضا، لكن مع إنتباهك الكلي مع الكود البرمجي و عدم إعارة الوقت إهتماما، بل و ربما عدم الأخذ بنصائح الإنتاجية سيكون أمامك فقط البطة الصغيرة التي ستكسر بين الفينة و الأخرى حاجز العمل و الصمت.الإستمرارية في آداء عمل مسترسل يؤدي الى التعب و الملل و عدم الرغبة مستقبلا في العمل على ذلك المشروع البرمجي لإستنفاذ كل الطاقة الإنتاجية في بداية الأمر و عدم توزيعها بشكل معتدل، ببطة صغيرة إلى جانبك ستذكرك انه عليك الإهتمام بها و التحدث إليها و اللعب معها قليلا لأنك لم تفعل منذ ساعات، و هذا سيكسر حاجز الإسترسال أثناء العمل و محاولة إبقاء كل السعرات الإنتاجية في أعلى مستوياتها.
- لأنها ستجعلك مبرمجا أفضل :
الـ Debugging عن طريق البطة المطاطية ما هو إلا فترة بسيطة تقوم من خلالها بمعرفة و فهم الكود البرمجي و تمييز الخطأ و الصواب وسط شفرتك البرمجية، لكن ماذا عن المشاكل البرمجية ؟ او حتى الأفكار البرمجية ؟بطرحك لسؤال : " كيف يعمل ؟ - How it works ؟ " ستتضارب الأفكار و التقنيات في عقلك و ستوجب عليك شرح سيرورة حل ذلك المشكل لصديقك المقرب البطة الصفراء المطاطية من أجل معرفة طريقة عملها و تحديد أفضل خوارزمية لصناعة تلك الفكرة / حل ذلك المشكل.
مع الوقت و بإكتساب تقنيات كثيرة و تعلمها عن طريق تفسيرها للبطة، ستصير مطوراً أفضل قادر على إيجاد أفضل الحلول لأصعب المشاكل البرمجية دون الحاجة الى أي مساعدة فقط عن طريق فهم الكود، إيجاد المشكل، إيجاد حل للمشكل و تطبيق الحل في برمجيتك، و كلها خطوات ستحتاج الى ان تسردها على البطة من أجل تبادل طرح الأفكار و الحلول بين نفسك و بين نفسك الأخرى الموجودة في البطة.