أهم 50 سؤالاً وإجابة في مقابلات البرمجة يجب معرفتها
هل تبحث عن أفضل الأسئلة والأجوبة المتعلقة بالبرمجة لمساعدتك على اجتياز المقابلة بنجاح؟ إليك أفضل 50 سؤالاً وأجوبة.

تبحث شركات البرمجيات دائمًا عن مواهب برمجة جيدة، وغالبًا ما تحدد المقابلات الهاتفية وعبر الإنترنت مصيرك في بضع دقائق فقط.
يجب أن يكون المبرمج الجيد متعدد المهارات قدر الإمكان - من فهم الأنظمة إلى البرمجة العامة والمفاهيم المختلفة والتقنيات، بالإضافة إلى كونه على اطلاع بأحدث التطورات.
فيما يلي قائمة تضم 50 سؤالاً من أفضل أسئلة المقابلات في مجال البرمجة وإجاباتها. وهي تسلط الضوء على المفاهيم المتنوعة التي يجب على كل مبتدئ أن يعرفها ليتفوق.
1. ما هي برمجة الكمبيوتر؟
برمجة الكمبيوتر هي عملية ترميز العمليات المنطقية التي يجب أن ينفذها الكمبيوتر. يتم تحقيق ذلك باستخدام لغة الكمبيوتر التي تحتوي على التعليمات اللازمة.
يمكن تقسيم العملية إلى التصميم والترميز والتصحيح والتحديث.
2. ما هو التصحيح؟
تصحيح الأخطاء هو عملية اكتشاف الأخطاء في مصدر برمجيات برنامج الكمبيوتر والقضاء عليها. هناك العديد من الطرق للقيام بذلك، ولكن معظم بيئات التطوير تأتي مع مصحح أخطاء متكامل لتسهيل الأمور.
3. ما هو المترجم؟
المترجم هو برنامج يأخذ البرنامج المكتوب ويحوله إلى كود آلي يمكن للكمبيوتر فهمه.
ومع ذلك، تتكون حزمة المترجم النموذجية من معالج مسبق، والمترجم الرئيسي الذي يحول لغة الكمبيوتر إلى كود تجميع، ومجمع.
4. ما هو المعالج المسبق؟
المعالج المسبق هو برنامج يقوم بتحليل الكود المكتوب للكمبيوتر للعثور على تبعياته وتلبيتها، مثل المكتبات المطلوبة.
بعد أن يتأكد المعالج المسبق من أن كل شيء، بما في ذلك بيئة التنفيذ، على ما يرام، يمكن للمترجم بعد ذلك تحويل الكود إلى كود تجميع.
5. ما هو المجمع؟
المُجمِّع هو برنامج يأخذ أدنى مستوى من أكواد الكمبيوتر القابلة للقراءة بواسطة الإنسان والتي تسمى لغة التجميع ويحولها إلى أكواد الآلة التي يمكن للكمبيوتر العمل معها.
يتم إخراج لغة التجميع عادةً بواسطة مُجمِّع، على الرغم من أنه يمكن أيضًا كتابة التعليمات البرمجية مباشرةً. قد يتضمن برنامج التجميع تعليمات برمجية مثل:
MOV AH, 02H
ولكن عندما تقوم بتجميعه إلى كود آلي، فإنك تحصل فقط على الأصفار والواحدات (على سبيل المثال 0110011110101010).
6. كيف يتم تنفيذ البرنامج؟
أولاً، يقوم نظام التشغيل بتحميل البرنامج المحدد من وحدة تخزين القرص الصلب إلى ذاكرة النظام (RAM) ثم يسمح له بالتنفيذ من خلال توجيه وحدة المعالجة المركزية لمواصلة تنفيذها من عنوان الذاكرة الأول للبرنامج. تنفذ وحدة المعالجة المركزية أي أمر تراه، ثم تنتقل إلى الأمر التالي، وغالبًا ما تكرر هذه العملية ملايين المرات في الثانية.
تنفذ وحدات المعالجة المركزية ذات 32 بت تعليمات مكونة من 32 بت (4 بايت، كلمة مزدوجة) دفعة واحدة، بينما تنفذ وحدات المعالجة المركزية ذات 64 بت تعليمات مكونة من 64 بت (8 بايت، كلمة رباعية) دفعة واحدة. هذه التعليمات مدمجة في وحدة المعالجة المركزية والمجمع هو الذي يحول كود البرمجة إلى أرقام ثنائية تمثل عناوين أوامر وحدة المعالجة المركزية الأصلية.
7. حدد روتين
البرنامج الفرعي هو سلسلة من التعليمات في برنامج يمكن استدعاؤها وتنفيذها في أي وقت. بمعنى آخر، يمكن أن يكون البرنامج الفرعي دالة أو طريقة أو إجراءً يُستخدم لتنفيذ مهام محددة، مثل إرسال بريد إلكتروني أو فتح ملف أو اختراق صفحة تسجيل دخول باستخدام القوة الغاشمة.
8. تعريف كود الآلة
يُعد الكود الآلي عبارة عن سلسلة من الأرقام الثنائية التي تحتوي على تعليمات التنفيذ الخاصة بمعالج دقيق معين وعناوين الذاكرة المرتبطة به.
يتم إخراج الكود الآلي تقليديًا بواسطة مجمع مصمم لتلك العائلة المعينة من المعالجات الدقيقة.
9. اشرح اللغات المترجمة مقابل اللغات المفسرة
يجب تحويل لغة الكمبيوتر المترجمة إلى كود آلي قبل تنفيذها على الكمبيوتر، بينما لا تحتاج اللغة المفسرة إلى تجميع مسبق.
عند تنفيذ برنامج مُفسَّر، تتم معالجته أولاً بواسطة مُفسِّر، ثم يقوم بتجميعه وتنفيذه أثناء التنفيذ. هذه الخطوات الإضافية تجعل اللغات المُفسَّرة مثل Python أبطأ من اللغات المُجمَّعة مثل C.
10. ما هي الحلقة؟
الحلقة عبارة عن بنية كود يمكنها تكرار عبارات معينة حتى يتم تحقيق معيار محدد. يمكن أن يتضمن هذا المعيار عددًا ثابتًا من التكرارات أو تغيير متغير محدد.
11. قم بإدراج أنواع الحلقات الشائعة
ستفسر لغات الكمبيوتر المختلفة الحلقات بطرق مختلفة. ومع ذلك، تتضمن أنواع الحلقات الشائعة من عائلة C ما يلي:
- حلقة While() - يسمح بتنفيذ كود معين، طالما أن القيمة المنطقية بينما() تم استيفاء الشرط.
مثلا بينما (2>1) {طباعة ("ياهو!")};. - حلقة For(;;) - يحتوي على ثلاث تعبيرات (التهيئة؛ التقييم؛ التحديث) التي تحدد الشروط التي سيتم اختبارها، بالإضافة إلى طريقة مرنة لزيادة العدد. كما سيتم تنفيذ التعليمات البرمجية مرة واحدة على الأقل.
- حلقة Do{} While() - هذا النوع من الحلقة ينفذ يفعل{} قم بترميز الكود مرة واحدة على الأقل قبل تحديد ما إذا كان بينما() الحالة لا تزال صحيحة.
12. اشرح التكرار مقابل العودية
التكرار هو استخدام حلقة لتنفيذ نفس خطوات التعليمات البرمجية، في حين أن التكرار هو عملية استدعاء دالة لنفسها مرارًا وتكرارًا. ومع ذلك، تكمن المشكلة في التكرار في أنه لا يمكنك الوصول إلى عمق معين إلا عندما تواجه مشكلات في الذاكرة.
13. اشرح وظائف استراحة ومتابعة في حلقة مفرغة
A استراحة تنهي العبارة تنفيذ الحلقة وتستمر في تنفيذ بقية التعليمات البرمجية للكمبيوتر. استمر من ناحية أخرى، تستمر العبارة في تكرار الحلقة من البداية.
14. ما هو OOP؟
OOP تعني البرمجة الموجهة للكائنات وهي نموذج برمجة ينفذ تصميم البرمجيات حول البيانات والكائنات، بدلاً من الوظائف أو الإجراءات.
15. ما هي البرمجة الإجرائية؟
البرمجة الإجرائية هي نموذج برمجة ينظم التعليمات البرمجية للحاسوب حول تسلسلات أو خطوات التعليمات التي يتعين تنفيذها. وكما يوحي الاسم، فهي نهج من أعلى إلى أسفل يبدأ التعليمات البرمجية من المرحلة الأولية للأحداث وينتهي بالنهاية المتوقعة للأحداث.
16. شرح البرمجة الوظيفية
البرمجة الوظيفية هي نموذج برمجة حاسوبية يتناول تطوير البرمجيات من خلال تطبيق وظائف متسلسلة لا تقوم بتغيير الحالة أو البيانات الخاصة بالحجج المقدمة.
الهدف هو إنشاء برامج أكثر قوة تنتج النتائج المتوقعة دون آثار جانبية غير متوقعة.
17. اشرح اللغة عالية المستوى
لغة البرمجة عالية المستوى هي لغة كمبيوتر تستهدف الفهم البشري أكثر من تفاصيل أو طبيعة الكمبيوتر.
تعتبر لغات البرمجة عالية المستوى مثل C وPython سهلة الفهم، بينما قد تكون لغة التجميع منخفضة المستوى مربكة للغاية للمبتدئين.
18. قائمة الشعبية اللغات منخفضة المستوى
هناك لغتان برمجة منخفضتا المستوى فقط: لغة التجميع ولغة الكود الآلي.
19. تحديد هجوم حقن SQL
هجوم حقن SQL هو عملية إدخال عبارات SQL في حقول الإدخال مثل اسم المستخدم أو عنوان المدخلات، على أمل أن المطور لم يقم بتطهير المدخلات بشكل صحيح أثناء البرمجة. وعندما ينجح هذا الهجوم، فإنه يمكّن المهاجم من الحصول على حق الوصول إلى الخادم.
20. ما هو الجدول في SQL؟
يشير الجدول في SQL إلى مجموعة من البيانات المجمعة في أعمدة وصفوف. يحتوي كل عمود على نوع بيانات مميز ويمكنك الحصول على جداول متعددة في قاعدة بيانات واحدة. يمكنك أيضًا الاستعلام عن أكثر من جدول في وقت واحد.
يمكنك إنشاء جدول باستخدام:
إنشاء جدول table_name(نوع بيانات العمود 1، نوع بيانات العمود 2، نوع بيانات العمود 3، ...);
21. اشرح الفرق بين الكائن والفئة
الكائن هو مثال لفئة، بينما الفئة هي مخطط يتم إنشاء كائن منه. يمكن أن يحتوي الكائن على حالات وخصائص، مثل اللون والارتفاع والوزن والسرعة وما إلى ذلك.
يجب تعريف هذه الخصائص أو تهيئتها بالقيم الافتراضية على الأقل.
22. كم عدد البتات التي تشكل ميغا بايت واحد؟
يوجد 8,000,000 بت في 1 ميجا بايت لأن البايت الواحد هو 8 بت والميجا الواحد هو 10 بت6.
23. قم بتحديد نوع البيانات العائمة
العدد العائم هو نوع بيانات يمثل رقمًا بكسور عشرية. ويُستخدم في المواقف التي تتطلب مستوى أعلى من الدقة مقارنة بما يمكن أن توفره الأعداد الصحيحة القياسية. ومن الأمثلة على العدد العائم:
0.013
or
25.932
24. ماذا يعني HexaDecimal 0xFF؟
0xFF تعني الرقم العشري 255 أو الثنائي 11111111. 0x تعني الأساس 16 أو التدوين السداسي عشر، والذي يمتد من 1 إلى 9 ثم يستمر من A إلى F لتمثيل 15. لذا، فإن 0xF هو الرقم العشري 15، بينما 0xFF هو الرقم العشري 255.
25. اذكر أنواع الأخطاء في البرمجة
هناك ثلاثة أنواع رئيسية من الأخطاء في برامج الكمبيوتر، وهي:
- خطأ في بناء الجملة
- خطأ منطقي
- خطأ وقت التشغيل
26. ما هو خطأ بناء الجملة؟
يحدث خطأ في بناء الجملة عندما يكون هناك انحراف عن بناء الجملة الصارم في كثير من الأحيان في لغات البرمجة. وقد ينتج عن مجرد وضع خاطئ للأحرف في معلمات خاطئة يتم تمريرها إلى وظيفة. ستتضمن معظم برامج التجميع رقم سطر التعليمات البرمجية المصدر الذي حدث فيه الخطأ.
27. ما هو الخطأ المنطقي؟
الخطأ المنطقي هو خطأ ينشأ عن طريقة عمل البرنامج. لذا، على الرغم من أن البرنامج قد يعمل بشكل خالٍ من العيوب، إلا أنه يفشل في تحقيق غرضه. يمكن أن تحدث الأخطاء المنطقية بطرق عديدة وتكون ناجمة عن العديد من الأسباب.
28. ما هو خطأ وقت التشغيل؟
خطأ وقت التشغيل هو خطأ في برنامج الكمبيوتر يحدث أثناء تنفيذ البرنامج ونتيجة لظروف غير متوقعة. لذا، بينما يعمل البرنامج دون مشاكل، على سبيل المثال، يمكن أن تتسبب مشكلات الذاكرة والشبكة في حدوث خلل في البرنامج.
29. اشرح اللغات القوية واللغات الضعيفة
اللغة ذات النوع القوي صارمة بشأن أنواع البيانات المختلفة وكيفية تحويلها، في حين أن اللغة ذات النوع الضعيف تضع قيودًا أقل على أنواع البيانات وتعريفاتها.
ستقوم العديد من اللغات ذات النوع الضعيف بتحويل أنواع البيانات تلقائيًا، بينما غالبًا ما تتطلب اللغات ذات النوع القوي تحويلات صريحة.
30. ما هي هندسة MVC؟
يشير MVC إلى Model-View-Controller وهو نمط تطوير برمجي لواجهات المستخدم. ويفصل منطق البرنامج إلى ثلاثة أجزاء.
استخدم نموذج يتعامل الجزء مع منطق البيانات الأساسي للأشياء المعنية، بينما عرض يتولى عرض المعلومات للمستخدم، و مراقب يتولى إدارة تدفق البيانات بين العروض والنماذج. غالبًا ما يتم استخدام تصميم MVC مع البرمجة الموجهة للكائنات.
31. تعريف خوارزمية
الخوارزمية عبارة عن سلسلة من الإجراءات المصممة لحل مشكلة معينة. وعادة ما يتم تقسيم هذه الإجراءات إلى خطوات أصغر ويقوم الكمبيوتر بتنفيذها بنفس الطريقة تمامًا في كل مرة.
وتشمل أمثلة الخوارزميات التعرف على الوجه، والبحث في جوجل، والطريقة التي تربط بها حذائك، وترميز البيانات أو تشفيرها، وما إلى ذلك.
32. ما هو التعلم الآلي؟
التعلم الآلي أو ML هو أحد أقسام الذكاء الاصطناعي الذي يركز على مساعدة الأنظمة على تحديد الأنماط واتخاذ القرارات بنفسها من خلال استهلاك البيانات.
يؤدي هذا إلى تحسين أدائهم أو كفاءتهم. يمكن أن تكون أنظمة التعلم الآلي خاضعة للإشراف أو غير خاضعة للإشراف أو قائمة على التعزيز.
33. ماذا يكون التعابير العادية؟
التعبيرات العادية أو Regex عبارة عن سلسلة تستخدم لتحديد أنماط البحث في المستندات النصية. تنفذ لغات البرمجة المختلفة التعبيرات العادية أو تستخدم مكتبات التعبيرات العادية الشائعة. مثال على التعبيرات العادية التي تتطابق مع جميع الأحرف في النص:
(.*)
في حين أن ما يلي يطابق فقط ملفات mp3:
.+\.(mp3)$
34. ماذا يفعل عامل معامل (%)؟
عامل الوحدة % يأخذ متغيرين ويقسم المتغير الأول باستخدام المتغير الثاني. ثم يعيد باقي العملية كنتيجة.
يتم استخدامه غالبًا لاختبار الأعداد الزوجية والفردية عن طريق قسمة أي عدد صحيح على 2، حيث تعني النتيجة 0 عددًا زوجيًا و1 تعني عددًا فرديًا.
35. اشرح عملية التفرع
التشعب يأتي من فرع() وظيفة في أنظمة يونكس ولينكس يمكن استخدامها بواسطة عملية قيد التشغيل لإنشاء نسخة من نفسها. لذا، فإن تقسيم العملية هو تكرار عملية لإنشاء عمليتين متشابهتين يتم تنفيذهما في نفس الوقت.
يشير نوع إضافي من التفرع إلى أخذ الكود المصدر لمشروع مفتوح المصدر وإنشاء برنامج جديد تمامًا منه.
36. اشرح تفريخ الخيوط
إن إنشاء الخيوط هو عملية إنشاء خيط جديد في وحدة المعالجة المركزية لتشغيل عملية ما. وغالبًا ما تستخدم البرامج التي تتطلب عمليات حوسبة مكثفة عملية إنشاء الخيوط للاستفادة من قدرات تعدد الخيوط في المعالج، ويعتمد نجاحها على وحدة المعالجة المركزية التي تعمل عليها وعدد النوى التي تحتوي عليها وعدد الخيوط التي توفرها كل نواة.
37. ماذا تفعل الكلمات المحجوزة يعني؟
الكلمات المحجوزة هي مصطلحات لا يجوز لك استخدامها كمعرف في لغة برمجة. وهذا يشمل الوظائف والمتغيرات والعلامات. وهي محجوزة لأنها محددة بالفعل ولها معاني محددة.
38. قائمة الكلمات المحجوزة الشائعة
تختلف الكلمات المحجوزة في اللغات المختلفة بناءً على بناء الجملة. وفيما يلي الكلمات المحجوزة الأكثر شيوعًا في البرمجة:
- IF
- الحقيقة
- خاطئة
- سويتش
- الس
- الحالات
- BOOLEAN
- عودة
- FUNCTION
- إذابة
- GOTO
39. ما هي السلسلة؟
السلسلة عبارة عن سلسلة من الأحرف، غالبًا ما يتم الاحتفاظ بها في مصفوفة واستخدامها لتعريف بيانات نصية. السلسلة الأكثر شيوعًا هي "hello world".
40. ما هو المتغير؟
المتغير هو أي قيمة يمكن أن تتغير أثناء تنفيذ البرنامج. يمكن أن يكون المتغير من أي نوع بيانات، بما في ذلك السلاسل والأعداد الصحيحة. على سبيل المثال، يتم تهيئة البرنامج على النحو التالي:
int a = 0؛
كثافة العمليات ب = 1 ؛
ثم أثناء التنفيذ، يتم إجراء التغييرات:
ب = أ+ب؛ //ب قد تباينت
41. ما هو الثابت؟
الثابت هو متغير لا يُتوقع أن يتغير أثناء تنفيذ البرنامج. ومن الأمثلة الجيدة على ذلك سرعة الضوء أو الصوت. تتيح لك لغات البرمجة المختلفة تعريف الثوابت بطرق مختلفة. على سبيل المثال، في لغة C:
const float middle_c = 261.62; //المفتاح الأوسط c على البيانو هو 261.6255 هرتز
42. قم بتعريف المصفوفة
المصفوفة هي نوع من المتغيرات التي تستخدم لتخزين قيم متعددة في وقت واحد. تسمح لك العديد من اللغات بتخزين قيم من أنواع بيانات متشابهة فقط، بينما يمكن للغات أخرى التعامل مع المصفوفات ذات الأنواع المختلفة. يمكنك أيضًا الحصول على مصفوفات متعددة الأبعاد، وهي عبارة عن مصفوفات من المصفوفات وقد تصبح فوضوية.
إن تعريف المصفوفة في mql4 أمر بسيط من خلال:
سلسلة نصية TextArray[100]؛ //مجموعة من مئات السلاسل
43. ما هو التحميل الزائد للوظيفة؟
تعد عملية التحميل الزائد للوظائف طريقة تسمح للمطور بتعريف وظائف متعددة تشترك في نفس الاسم ولكنها تحتوي على وظائف مختلفة. ويتم تحقيق ذلك من خلال إنشاء إصدارات مختلفة من الوظائف بحجج مختلفة. ثم يعرف المترجم الوظيفة المطلوبة من خلال نوع وعدد الحجج المقدمة.
44. حدد الاتصال حسب المرجع
الاستدعاء بالإشارة هو طريقة لتمرير عنوان ذاكرة الوسيطات إلى دالة، على عكس الطريقة القياسية لتمرير نسخة من قيمة الوسيطة. والهدف من استدعاءات الإشارة هو تعديل الوسيطة بشكل مباشر بواسطة الدالة.
45. اشرح العمليات الحسابية
هذه هي الأحرف الخاصة التي تعمل على إجراء العمليات الحسابية في لغة البرمجة. تتضمن العمليات الحسابية ما يلي:
- الجمع أو الجمع الأحادي (+)
- الطرح أو الطرح الأحادي (-)
- عمليه الضرب (*)
- قسم (/)
- معامل (٪).
46. اشرح العوامل المنطقية
المشغلات المنطقية هي كلمات أو رموز تُستخدم لإجراء عمليات استنادًا إلى المنطق الشرطي. تحتوي معظم اللغات على ثلاثة مشغلات منطقية فقط:
- لأي لبس (&& في C، C++، JavaScript)
- OR (|| في C، C++، JavaScript)
- لا (! في C، C++، JavaScript)
47. منطقي 1 و 0 =؟
ستمنحك عملية منطقية 1 و 0 زائف لأن المتغير الثاني هو 0 وتحتاج إلى أن يكون كلا المتغيرين لعملية AND 1 أو TRUE للحصول على إخراج موجب.
48. منطقي NOT 1 =؟
ستمنحك عملية NOT 1 المنطقية زائف لأن عامل NOT ينفي كل ما تقدمه له، أي أنه يحول 1 إلى 0 و0 إلى 1. لذا، فإن إعطائه عامل 1 أو TRUE يؤدي إلى 0 أو FALSE.
49. منطقي 1 NAND 1 =؟
ستنتج عملية منطقية 1 NAND 1 زائف لأن كلا المتعاملين صحيحان ومشغل NAND ينفي دائمًا مدخلين متشابهين لإنتاج إخراج معاكس.
وهكذا، إذا كانت العملية 0 ناند 0, ثم سيكون الناتج 1 أو TRUE.
50. منطقي 1 XOR 1 =؟
ستنتج عملية منطقية 1 XOR 1 زائف لأنه في حين أن عملية OR العادية ستنتج TRUE على أي من المدخلات أو كليهما كونها TRUE، فإن عملية XOR (OR الحصري) تنتج TRUE فقط عندما يكون أحد المدخلين فقط وليس الآخر، هو TRUE.
الخاتمة
لقد وصلنا إلى نهاية هذه القائمة التي تضم أهم 50 سؤالاً يجب معرفتها في مقابلات البرمجة وإجاباتها. وكما ترى، فإن عالم البرمجة واسع ولكنه مثير.
لا يوجد مقابلتان متماثلتان. لذا، بينما تشير هذه القائمة إلى الاتجاهات الصحيحة للموضوع، يجب عليك أيضًا محاولة اكتساب فهم أفضل لكل قضية.





