أهم الأسئلة في مقابلات توظيف بايثون

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

السؤال الأول

ماهو بايثون ؟ يمكن مقارنة بايثون مع تكنولوجيا أو لغات أخرى في إجابتك .

الجواب 

 

تفضل بعض النقاط الأساسية : بايثون عبارة عن لغة تفسيرية وهذا يعني أنها عكس لغة سي حيث أنها ا تحتاج الى مترجم لتنفيذ التعليمات البرمجية ومن بين اللغات التفسيرية الأخرى PHP و Ruby.

  • بايثون عبارة عن لغة دينامكية وهذا يعني أنك لست بحاجة إلى تعريف نوع المتغببرات عند تعيينها أي يمكنك القيام ب x=111 أو x="aaa" بدون مشاكل.
  • بايثون مناسبة للبرمجة كائنة التوجه وهي تسمح بتعيين الكلاسات بدون أي إلتزام مثل الوراثة أو الكائنات المركبة كما أن بايثون لا تحتوي على ما يسمى الوصول المحدد (العام او الخاص) مثل  سي++ لأن بايثون تعمل بمبدأ نحن كلنا بالغون هنا .
  • ان كتابة أكواد بايثون يتم بشكل سريع ولكن تشغيلها بطيء بالمقارنة بلغات المترجمة ولكن و لحسن الحظ تدعم بايثون تضمين أكواد مبينة على لغة سي وأفضل دليل على هذا مكتبة Numpy وهي تمتاز بسرعتها لانها تحتوي على أكواد لغة سي.
  • يمكن توظيف بايثون في عدة مجالات من بينها تطوير الويب ، العلوم ، الألعاب ، الشبكات ومعالجة البيانات الكبيرة  والكثير من الأمور .
  • يمكن لبايثون أن تجعل من الأمور المعقدة بسيطة حتى يستطيع المبرمجون التركيز على تجاوز الخوارزميات وهياكل البيانات بدلا من التفاصيل الصغيرة .

السؤال الثاني 

أكمل الكود التالي :


def print_directory_contents(sPath):
"""
مهمة هذه الدالة عرض محتويات الدليل المطلوب

وإذا كان هناك دليل أخر يجب عرض محتواه وهكذا
"""

الحل

def print_directory_contents(sPath):
 import os 
 for sChild in os.listdir(sPath): 
 sChildPath = os.path.join(sPath,sChild)
 if os.path.isdir(sChildPath):
 print_directory_contents(sChildPath)
 else:
 print sChildPath
    • يجب أن تكون تسميات المتغييرات والدوال معبرة عن ماتقوم به .
    • قمنا بإستدعاء وحدة osللتفاعل مع النظام وتفادي مشكلة عدم عمل الكود عند تغيير نوع النظام.
    • الإلمام بالوحدات القياسية جدير بالإهتمام ولكن لا تحاول حفظ أي شيء فمحرك البحث هو صديقك في مكان العمل
    • لا حرج في طرح سؤال في حالة عدم فهمك ما المطلوب من الكود.

السؤال الثالث 

هل تستخدم البيئات الإفتراضية ؟

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

السؤال الرابع

هل يمكن جمع جميع محتويات قائمة ما ؟


# الطريقة الأساسية
s = 0
for x in range(10):
s += x

# الطريقة الصحيحة
s = sum(range(10))

السؤال الخامس 

ماهو الفرق بين القوائم والصفوف ؟

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

السؤال السادس 

ماهو الفرق بين بايثون 2 و بايثون 3 ؟

هناك عدة أجوبة لهذا السؤال ولكن بالنسبة لي إن أهم التغييرات التي طرأت على بايثون 3 هي كالتالي :

  • جميع السلاسل عبارة عن يونيكود.
  • print أصبحت دالة .

السؤال السابع

ماهو ملف __init__.py؟

يستخدم هذا الملف لإستدعاء وحدة من الدليل .

إذا كان لدينا وحدة موجودة في الدليل التالي dir1/dir2/mod.py ونريد إستدعائها الى برنامجنا فنحن بحاجة الى وضع ملف __init__.py في كل دليل حتى يمكننا إستدعاء الوحدة عن طريق السطر التالي :


import dir1.dir2.mod

عادة مايكون مف __init__.py فارغ وهو يساعدنا في تنظيم ملفات المشاريع الكبيرة

السؤال الثامن 

ماهي أنواع البيانات التي تدعمها بايثون ؟

  • الأرقام
  • السلاسل
  • القوائم
  • الصفوف
  • القواميس

السؤال التاسع 

كيف تقوم بتخزين قائمة أسماء وألقاب المستخدمين؟

يمكننا تخزين أسماء وألقاب المستخدمين بإستخدام القواميس بالصيغة التالية :


{‘first_name’:’Abdelkader’,’last_name’:’Maarouf’}

السؤال العاشر 

ماهو التشريح في بايثون ؟

هو الية لتحديد مجموعة من العناصر من خلال السلاسل المختلفة سواء كانت سلاسل نصية أو عددية ،قوائم ،صفوف ألخ


>>> l=[1,2,3,4,5]
>>> l[1:3]
[2, 3]
>>> l[1:-2]
[2, 3]
>>> l[-3:-1]
[3, 4]

>>> s="Hello World"
>>> s[1:3]
'el'
>>> s[:-5]
'Hello '
>>> s[-5:]
'World'

السؤال الحادي عشر 

كيف يمكن تحويل سلسلة إلى عدد؟


print int("1") + 1  # = 2

هناك دالة مدمجة في بايثون يمكنها القيام بهذه المهمة وهي int() حيث تقوم بتحويل قيمة السلسلة الى عدد

السؤال الثاني عشر 

حدد بعض الأخطاء الموجودة في بايثون

1. IOError
2. IndexError
3. KeyError
4. NameError
5. SyntaxError
6. ValueError
7. TypeError

السؤال الثالث عشر 

ماهو الفرق بين input() و raw_input()

الفرق ينهما هو أنraw_input() كانت تستعمل في بايثون 2 وتم إستبدالها في بايثون 3 ب input()

السؤال الرابع عشر

كيف يتم التعامل مع الإستثناءات في بايثون

تحدث الإستثناءات في بايثون عندما تحدث الأخطاء عندما يكون البرنامج قيد التشغيل ويتم تفعيل الإستثناءات من خلال كلمة Try ، فعندما تشك في إحدى العبارات والتي يمكن ان تسبب أي أخطاء نضعها داخل كتلة Try

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

أرجوا أن تقوم بدعمنا عبر نشرك والاعجاب بالموقع

2 من التعليقات على موضوع “أهم الأسئلة في مقابلات توظيف بايثون

  1. شكرا لك على هذا الموضوع الرائع

  2. محمد أحمد في 14 أغسطس، 2016 at 7:27 م قال:

    وشكرا لك

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

Post Navigation