جويل سبولسكي: كيف تطرح أسئلة مبرمجين أكثر خبرة بشكل صحيح

قواعد Faddish و Brainwashing Usenet و Burning Man و Stack Overflow


صورة


جويل سبولسكي ، أبريل 2018

هناك دراجة شائعة بين المطورين أنه إذا لم يعمل الرمز الخاص بك ، فأنت بحاجة إلى أخذ بطة مطاطية وإخبارها ، نعم ، بطة ، كيف يجب أن يعمل هذا الرمز: شرح كل سطر ما يجب أن يحدث ما خرج في النهاية ، وما إلى ذلك. يجادل المطورون ، الذين قاموا باختبار اختراق الحياة هذا بأنفسهم ، أنه في عملية المناقشة التفصيلية للمشكلة ، غالبًا ما يتمكن الكائن الجامد من إيجاد حله.

هذه إحدى الحيل التي يمكن أن تساعدك في حل المشكلة بنفسك في عملية البرمجة. طريقة أخرى هي تعلم كيفية تصحيح البرنامج (التصحيح) على أساس "فرق تسد". لا يمكن كسر ألف سطر من التعليمات البرمجية لخطأ واحد. ولكن يمكنك تقسيم الكود إلى قسمين ومعرفة ما يحدث في النصف الأول ، وما يحدث في الجزء الثاني. افعل ذلك خمس إلى ست مرات وستصل إلى السطر نفسه مع الخطأ.

بناء على ما تقدم، فإنه من المثير للاهتمام أن تقرأ جون السكيت في قائمة مرجعية ل كتابة السؤال الكمال . يسأل جون: "هل قرأت السؤال بعناية لتقدير مدى وضوحه وفهمه لشخص لم ير المعلومات التي لديك في عينيك؟" بشكل عام ، هذا اختبار بطة مطاطية. خيار آخر: "إذا تم تضمين رمز في السؤال ، فهل أدخلته في برنامج كامل ولكن قصير؟" إن التركيز على البرنامج القصير هو في الواقع اختبار لما إذا كنت قد حاولت "فرق تسد" أم لا.

على وجه التقريب ، تقترح قائمة التحقق الخاصة بـ John أن يحاول الأشخاص أولاً القيام بما حاوله المبرمجون المتمرسون بالفعل ، ثم يطلبون المساعدة من الآخرين.

للأسف ، لم يسمع الجميع عن قائمة التحقق هذه. أو ربما سمع ، لكنه اختار أن يتجاهل. يعاني الشخص من مشكلة في الشفرة ، فهو يعرف أن هناك نظام Stack Overflow للأسئلة والأجوبة يمكن أن يساعده ، وليس لديه الوقت لقراءة بروتوكول بعض الأشخاص المهووسين حول كيفية طرح الأسئلة.

غالبًا ما تكون هناك مناقشات حول ما إذا كان Stack Overflow يجب أن يسمح بأسئلة من الوافدين الجدد إلى البرمجة.

عندما ناقشت أنا وجيف التصميم الأولي للنظام ، أخبرته عن مجموعة حول لغة البرمجة C ، شائعة في الثمانينيات على شبكة Usenet. كان يطلق عليه comp.lang.c .

لغة C هي لغة برمجة بسيطة ومحدودة. يمكنك العثور على المترجم C فقط 100 كيلوبايت ، لذلك ، كما قد تخمن ، إذا قمت بإنشاء مناقشة حصرية لـ C ، فإن مواضيع المحادثة تنتهي بسرعة كبيرة.

وهناك شيئ اخر. في التسعينات ، كانت لغة C للطلاب الذين بدأوا للتو في المشاركة في البرمجة. وغالباً ما كان هؤلاء الطلاب أنفسهم يعانون من أكثر المشاكل بدائية مع C.. وركضوا على الفور مع الأسئلة في comp.lang.c.

والشعور بالملل هناك. مملة جدا. لقد سئموا من غثيان الطلاب الذين يدخلون المجموعة كل شهر سبتمبر ويسألون لماذا لا يمكنهم إرجاع مجموعة من الشخصيات من دالة ، إلخ. كل. سبتمبر.

اخترع هؤلاء الموقتون القدامى أيضًا مفهوم الأسئلة الشائعة (الأسئلة الشائعة). وهكذا ، يبدو أنهم يقولون "من أجل الله ، توقفوا عن سؤال ما تم بالفعل الرد على Usenet مائة مرة" ، أي أن طلاب المدرسة القديمة أرادوا الإجابة فقط على أكثر الأسئلة عجيبًا والباطنية التي 99 ٪ من المبرمجين العاديين C بشكل عام لم تكن هناك حاجة. كانت المجموعة الإخبارية تتلاشى لأنها ، في الواقع ، لم تخدم سوى مجموعة صغيرة من الأشخاص الذين ظلوا يتسكعون منذ حوالي عقد من الزمان.

هذا ما تحدثت عنه أنا وجيف. ماذا نفعل مع أسئلة المبتدئين؟
في النهاية ، تقرر أن يكون الوافدون الجدد. ليس لدى Stack Overflow مفهوم الأسئلة "البسيطة للغاية" ... ولكن من الأفضل العثور أولاً على الإجابة بنفسك قبل الانتقال إلى الآخرين للحصول على المساعدة.

لقد أدركنا أن بعض المبرمجين "المتقدمين" قد يجدون من الممل قراءة نفس الأسئلة البسيطة ولن يتصلوا بنا بعد الآن. لا بأس - Stack Overflow لا يلزم أي شخص بالجلوس هناك مدى الحياة. هل سئمت من قراءة أسئلة المبتدئين حول حقيقة أنهم لا يعيدون صفائف محلية من الشخصيات ("إنه يعمل بالنسبة لي!") ، وهل تفضل قضاء بقية حياتك في فرز ألبومات الموسيقى؟ كما يحلو لك ، حقك.

حقيقة أنك تنضم للتو إلى البرمجة لا يعني أن سؤالك ليس لديه مكان لتكون فيه على Stack Overflow. حتى أنني سألت السؤال على وجه التحديد "ولكن كيف يمكنك تحريك السلحفاة في LOGO ؟ "لإظهار أن مصممي مواقع الويب سعداء برؤية مبتدئين مطلقين في المنزل.

ولكن كما هو الحال دائمًا ، وفقًا لقانون العواقب غير المقصودة ، تسبب هذا السؤال تقريبًا في فضيحة - وليس على الإطلاق بسبب بساطته. المشكلة هي أنني تعاملت مع هذه المسألة بسوء نية. قال جيف أتوود جيدًا في هذا الصدد : "السؤال البسيط ليس سيئًا. إنه أمر سيئ عندما لا يكون هناك جهد للعثور على إجابة ". ( آه ، حسنا ، هذا ).

بالنسبة للمبتدئين ، يبدو أن عدد النقاط التي يجب ملؤها قبل طرح سؤال غير ضروري ، وأحيانًا غريب. إنه مثل مهرجان رجل محترق. هل تعتقد أنك ذاهب إلى حفلة حارقة في مكان ما في الصحراء ، وعند وصولهم يصرخون في وجهك حوالي 10 مبادئ، "التعبير عن الذات الراديكالية" وفي نفس السياق ، بعد غسل الأطباق ، تحتاج إلى جمع كل قطرة من الماء من بحيرة جافة وأخذها إلى المنزل - لتسليمها إذا لزم الأمر. لكل مجتمع قواعده الخاصة ، وقد يبدو في البداية غريبًا وممتعًا ، أو ، إذا كنت تحاول فقط الحصول على بعض التعليمات البرمجية للعمل ، فهم غريبون ومضطربون.

العديد من قواعد Burning Man التي تجعل المهرجان ناجحًا جدًا تبدو مجردة جدًا ، لكنها منطقية. يتطلب مكتب إدارة الأراضي الأمريكية ، الذي يسمح بمهرجان صحراوي ، عدم سكب المياه الملوثة على الأرض لأن التربة الطينية لا تمتص جيدًا ، مما قد يؤدي إلى نمو الميكروبات والمرض ، ولكن لماذا تفسر كل ذلك إذا كان بإمكانك فقط أن نقول أنه إذا لم يأخذ الزوار الماء ، فعندئذ لن يتم إقامة المهرجان؟

نفس الشيء مع Stack Overflow. نحن لا نسمح بنشر أسئلة مجردة للغاية ("كيفية إنشاء برنامج؟"). قاعدتنا العامة هي: إذا كان الجواب على سؤالك هو حجم كتاب كامل ، فأنت تريد الكثير. كأنك تكتب "يبدو أن كليتي تؤلمني. كيف تقصها؟ " يبدو هذا السؤال غير مناسب بل ومهين للجراحين الذين يتعلمون كيفية القيام بذلك لمدة عشر سنوات.

ما يزعجني هو أنه في محاولة لتعليم جيل جديد من المطورين ، بالاعتماد على التنوع والشمولية ، نحن أيضًا نبني عوائق أمام أولئك الذين يريدون تعلم البرمجة. في الواقع ، من نواح عديدة ، فإن القواعد المحددة لـ Stack Overflow ليست سوى عقبة. ولكن الأسوأ هو إهمال وقح الوافدين الجدد إلى المنتديات.

انا قلق جدا بشأن هذا بصفتك مطورًا ، لديك فرصة غير مسبوقة لإنشاء سيناريوهات مستقبلية . والقيود التي يلقيها Stack Overflow في وجه المبرمجين الشباب لا تضرهم فقط ، ولكن نظام Stack Overflow نفسه يخيف الأعضاء المحتملين في المجتمع. البرمجة لا تخلو من المشاكل ؛ هدفنا هو تسهيل الأمر.

العام القادم نخطط للعمل بجد في هذا المجال. لا يمكننا تغيير الآخرين ، ونجعلهم أكثر لطفًا. ولكن أعتقد أنه يمكننا تحسين بعض جوانب واجهة مستخدم Stack Overflow التي ستحفز الناس على أن يكونوا أكثر ثقافًا ؛ على سبيل المثال ، يمكننا تعديل المطالبات في صفحة "طرح سؤال" أو العمل على الإشراف التفاعلي حتى يتمكن أفراد المجتمع أنفسهم من وضع علامة على التعليقات الوقحة والشكوى منها ، والتي لا تحدث في الوقت الحالي.

نحن نعمل أيضًا على ميزة جديدة ، والتي بفضلها يمكنك إرسال سؤالك إلى مجموعة صغيرة من الأشخاص من فريقك الخاص ، والتي قد تساعد في خلق جو ودي معين في مدينة ضخمة ، وهي Stack Overflow.

على الرغم من حقيقة أننا نسعى جاهدين لجعل Stack Overflow أكثر راحة ، كان هدفنا الرئيسي دائمًا هو إنشاء أفضل مورد في العالم لمطوري البرامج.

يتصل بنا مبرمج ثابت متوسط ​​340 مرة. هذه هي قوتنا. هناك مصادر أخرى للمعلومات حول كتابة البرامج ، ولكن لا يوجد سوى موقع واحد يثق به المطورون كثيرًا ويحتاجون إلى الاهتمام به - إنه يشبه مكتبة الكونغرس للمبرمجين.



صورة
تعرف على تفاصيل كيفية الحصول على مهنة مرغوبة من الصفر أو المستوى الأعلى في المهارات والراتب من خلال الحصول على دورات SkillFactory عبر الإنترنت:



اقرأ أكثر



All Articles