أسئلة مقابلة بايثون
بقلم Aaron Cao · آخر تحديث
توقع ثلاث طبقات: آليات اللغة مثل قابلية التغيير (mutability) والمولدات (generators) والمزخرفات (decorators)؛ وسلوك وقت التشغيل مثل GIL؛ والبرمجة التطبيقية على هياكل البيانات. معظم حالات الرفض تنتج عن شرح سطحي لسبب حدوث الأمر، وليس عن خطأ في بنية الكود.
الأسئلة التي تستمر في العودة
مراجعة قائمة من مئتي سؤال عن بايثون تبدو منتجة لكنها نادرًا ما تغيّر نتيجة المقابلة. يضيّق هذا القسم النطاق إلى مجموعة صغيرة من الأسئلة التي تتكرر في المكالمات الهاتفية الأولية والجولات التقنية، ويوضح ما تحتويه الإجابة القوية. عدد صغير من ميزات اللغة يحمل معظم الإشارة.
- الوسائط الافتراضية القابلة للتغيير. لماذا تتراكم القيم في
def f(x=[])بين الاستدعاءات؟ يتم تقييم القيم الافتراضية مرة واحدة فقط، عند تعريف الدالة، وليس في كل استدعاء. - المولدات مقابل القوائم. متى تتفوق
yieldعلى بناء list؟ عندما يكون التسلسل كبيرًا، أو عندما قد تتوقف عن القراءة مبكرًا. - المزخرفات. ماذا يُعيد المزخرف (decorator) فعليًا، ولماذا يحتاج الـ wrapper إلى
functools.wraps؟ - GIL. لماذا لا تتوسع الخيوط المرتبطة بالمعالج في CPython، وماذا تستخدم بدلاً من ذلك؟
- النسخ السطحي مقابل النسخ العميق. ما الذي يتعطل عندما يتم نسخ بنية متداخلة باستخدام slice؟
- الهوية مقابل التساوي. لماذا يعطيك اختبار
isعلى أعداد صحيحة صغيرة في shell نتيجة مضللة.
ما الذي يفصل بين النجاح والفشل
يمكن لمرشحين اثنين تقديم نفس التعريف الصحيح لـ GIL، ولا يتقدم سوى واحد منهما فقط. يكمن الفرق عادةً في الجملة الثانية.
سُئل مهندس backend كان يجري مقابلة لوظيفة بمستوى L5 لدى مزوّد سحابة عامة كبير عن سبب تباطؤ خدمتهم تحت الحِمل. ذكر GIL، ثم تابع: كان المسار الأكثر ازدحامًا هو تحليل JSON، لذا كانت الخيوط الأداة الخاطئة، ونقل تلك المرحلة إلى process pool أعاد الإنتاجية إلى طبيعتها. ذكر القيد حصل على نقاط جزئية. ربطه بقرار فعلي فاز بالجولة.
ابنِ كل إجابة في ثلاث خطوات: ماذا تفعل الميزة، ولماذا توجد، ومتى قد تتجنبها. الخطوة الثالثة هي التي يتخطاها معظم المرشحين، وهي التي تُظهر الحكمة العملية. الصفحات الأخرى حول جولات coding والسلوكية وتصميم الأنظمة مجمّعة تحت أنواع المقابلات.
كيف تستعد دون الحفظ عن ظهر قلب
قراءة إجابة وقول إجابة مهارتان مختلفتان، ولا يُختبر سوى واحدة منهما. تدرّب بصوت عالٍ، بضبط الوقت، بنفس الكلمات التي ستستخدمها أثناء المكالمة.
- اكتب إجابتك على كل سؤال متكرر في ثلاث جمل، ثم قلها دون النظر.
- اختر ميزتين تستخدمهما يوميًا وحضّر قيدًا صادقًا لكل منهما. القدرة على انتقاد أدواتك الخاصة تُقرأ كخبرة.
- أحضر قصة تصحيح أخطاء حقيقية واحدة حيث فاجأك سلوك بايثون واكتشفت السبب.
- تدرّب على الجزء التطبيقي بشكل منفصل: القواميس، المجموعات، الترتيب باستخدام key function، ومعالجة النصوص تغطي جزءًا كبيرًا من المقابلات الأولية.
إذا كنت تريد جولة محددة بوقت أمام محاور AI قبل المقابلة الحقيقية، فهي موجودة في صفحة mock interview.
أين يناسب المساعد المباشر، وأين لا يناسب
SubcueAI هو تطبيق سطح مكتب أصلي لنظامي macOS وWindows. يلتقط طرفي المكالمة، ويحوّلها إلى نص في الوقت الفعلي، ويعرض هيكلًا للإجابة على طبقة عائمة (overlay) تبقى محلية على جهازك، لذا فهو لا ينضم إلى الاجتماع كمشارك أو bot. بالنسبة لجولة بايثون، الناتج المفيد هو موجّه بنيوي، وليس إجابة جاهزة: يجب أن تكون التفاصيل من صنعك أنت، لأن السؤال التالي سيدور حول الكود الذي وصفته للتو.
الحدود الصادقة أهم من القدرة. إذا شاركت شاشتك، فكل ما هو موجود على تلك الشاشة يُشارك. إذا كانت الجولة تجري على منصة تقييم تخضع للمراقبة، أو على جهاز تديره الشركة، فإن المساعد يقع خارج النطاق المسموح به. الإعداد والأذونات موضحة في صفحة tutorial.