التفكير بصوت مسموع في جولة برمجة مباشرة
لا تُقيَّم على اشتغال الشيفرة، بل على ما يتعلّمه المُحاوِر عنك وأنت تكتبها.
جولة البرمجة المباشرة صيغة غريبة: تكتب شيفرة أسوأ مما تكتبه على مكتبك، أمام شخص، بلا توثيق ومع ساعة تجري. يعرف الجميع ذلك، والمُحاوِر منهم. وما يأخذون عيّنته في الحقيقة أضيق مما يبدو — أتستطيع أخذ مسألة ناقصة التحديد، وطرح أسئلة التوضيح الصحيحة، واختيار مقاربة معقولة، وإحراز تقدّم دون أن تتجمّد.
أنفق الدقائق الثلاث الأولى دون برمجة
أشهر إخفاق هو البدء بالكتابة فورًا. أعد صياغة المسألة بكلماتك، واسأل عن المدخلات، وسمِّ حالة واحدة على الأقل لا يغطّيها النصّ. «أيمكن أن يكون المدخل فارغًا؟ أيمكن أن يحوي تكرارًا؟ أهذه مرتّبة أم أفترض ترتيبًا اعتباطيًا؟». كل سؤال من هذه يُحتسب، والمرشّح الذي لا يسأل أيًّا منها يبدو كمن سيبني الشيء الخطأ بثقة.
قل الحلّ الساذج بصوت مسموع قبل أن تحسّنه
اذكر المقاربة البديهية وكلفتها — «القوة الغاشمة هنا فحص كل زوج، أي تربيعية؛ دعني أرى إن كنت أستطيع مقايضة ذاكرة بها» — ثم حسّن. يفعل هذا أمرين: يضمن أن لديك ما ترتدّ إليه، ويُظهر أنك تستطيع الاستدلال على الكلفة، وهو غالبًا الشيء المختبَر فعلًا.
واصل السرد، لكن أبقِه مفيدًا
- اسرد القرارات لا ضربات المفاتيح. «أستخدم خريطة هنا ليبقى البحث ثابتًا» مفيدة، و«الآن أكتب حلقة for» ضوضاء.
- حين تتعثّر، قل فيمَ تعثّرت. الصمت يبدو من الخارج متطابقًا سواء كنت تفكّر بعمق أو ضللت، ولا يستطيع المُحاوِر مساعدتك في النوع الأول.
- سمِّ المفاضلات وأنت تجريها. «هذا يعدّل المدخل، وهو ما أتجنّبه في الإنتاج، لكنه يُبقي الأمر بسيطًا — أأتركه؟» تحوّل اختصارًا إلى قرار مرئي.
- إن لمحت علّة في شيفرة كتبتها، فقلها وأصلحها. اقتناص خطئك بنفسك يُحتسب أفضل من شيفرة صحّت مصادفةً.
اختبر قبل أن يطلبوا
حين ينتهي التنفيذ، امشِ فيه بمدخل صغير بصوت مسموع، ثم قل ما الحالات الحديّة التي ستضيفها. المرشّحون الذين يعلنون «انتهيت» ويتّكئون يخسرون نقاطًا يحتفظ بها من يجد خطأ الانزياح بواحد عند نفسه. وإن توفّر وقت فشغّلها فعلًا.
وإن لم تُنهِ
كثير ممن يُوظَّفون لا يُنهون. وما يميّزهم أنهم يستطيعون قول موضعهم بدقة: «الحلقة الأساسية تعمل، والترتيب صحيح، والناقص حالة القائمة الفارغة وكنت سأعالجها هنا». هذه الجملة تساوي أكثر من عشرين سطرًا تُكتب في ذعر الدقيقة الأخيرة.
المُحاوِر لا يقرأ شيفرتك، بل ينصت إليك تفكّر ويستخدم الشيفرة دليلًا.