أسئلة وأجوبة مقابلة هندسة البرمجيات [للطلاب الجدد وذوي الخبرة]

نشرت: 2020-11-18

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

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

قبل أن ننتقل إلى الأسئلة والأجوبة ، دعنا أولاً نلقي نظرة على بعض تعيينات الوظائف التي يمكنك توليها في هذا المجال:

  • مصمم برمجيات
  • مطور كامل المكدس
  • برنامج حاسوبي
  • مدير مشروع تكنولوجيا المعلومات
  • مدير نظم المعلومات
  • عالم البيانات
  • مهندس تعلم الآلة
  • مهندس سحابي
  • مهندس الأمن السيبراني

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

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

تعلم دورات البرمجيات عبر الإنترنت من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.

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

قراءة: مهنة في تطوير البرمجيات

أسئلة وأجوبة مقابلة هندسة البرمجيات

1. ضع قائمة بأنواع البرامج المختلفة.

يمكن تصنيف برامج الكمبيوتر إلى الفئات التالية:

  • برنامج النظام
  • تطبيق البرمجيات
  • تطبيقات الويب
  • برنامج مدمج
  • برمجيات الذكاء الاصطناعي
  • البرمجيات العلمية

2. التفريق بين برنامج الكمبيوتر وبرامج الكمبيوتر.

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

3. شرح الخطوات الرئيسية لـ SDLC.

SDLC هو نموذج قصير من دورة حياة تطوير البرمجيات. وتتكون من عدة مراحل نذكر منها:

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

4. ضع قائمة ببعض نماذج ومنهجيات SDLC الأساسية. حسب رأيك ما هو الأفضل؟

تعتبر Waterfall و V-Model و Iterative و Spiral و Big-bag و Agile من أشهر طرازات SDLC.

بالنسبة للمنهجية الأفضل مرتبة ، لا توجد إجابة واحدة لأن الحل يعتمد على الحاجة إلى عملية تطوير البرمجيات. على سبيل المثال ، يعد نموذج الشلال مناسبًا للمشاريع طويلة الأجل حيث يفضل المرونة. يعمل النموذج V-Shaped بشكل جيد عندما تكون هناك متطلبات غير معروفة. يعتبر نموذج Spiral مثاليًا للمشاريع عالية التخصيص ، وما إلى ذلك.

5. ماذا تقصد بإعادة هندسة البرمجيات؟

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

6. حدد ما يلي في سياق تطوير البرمجيات: (1) التحقق (2) التحقق (3) التصحيح

(ط) يشمل التحقق أداء مجموعة من الأنشطة للتأكد من أن البرنامج يمكنه تنفيذ وظيفة معينة.

(2) تتعلق عملية التحقق من الصحة بتأكيد أن البرنامج يلبي احتياجات العملاء.

(3) التصحيح هو جزء من عملية الاختبار ، بما في ذلك إزالة الأخطاء.

7. كيف تتأكد من أن الكود الخاص بك سريع وآمن؟

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

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

8. ما هي متطلبات البرامج الوظيفية وغير الوظيفية؟

المتطلبات هي أوصاف نظام البرنامج والميزات المطلوبة والوظائف المستهدفة. يمكن تقسيمها إلى متطلبات وظيفية وغير وظيفية.

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

9. كيف يمكنك تتبع متطلبات البرامج؟

هناك مجموعة متنوعة من الأدوات المتاحة لجمع وإدارة متطلبات البرامج في السوق. تعد المتطلبات الحديثة و ReQtest و Jama Connect و Orcanos من أكثر برامج RM رواجًا بين الممارسين اليوم. يعتمد الاختيار على المنهجيات والأهداف ويختلف من مشروع إلى آخر. ومع ذلك ، فإن الخطوة الأولى في عملية التتبع هي سرد ​​المتطلبات وإنشاء ورقة Excel بتفاصيل مثل النوع والتبعية والأولوية وما إلى ذلك.

10. ماذا تعرف عن الوحدات والتماسك؟

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

11. ماذا يفعل مدير مشروع البرمجيات؟

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

12. ما هو نطاق البرمجيات؟

يشمل نطاق البرنامج جميع الأنشطة المطلوبة لتقديم منتج البرنامج. يحدد الجوانب التالية لتبسيط عملية التطوير:

  • ماذا سيفعل المنتج
  • ما هو ليس جزء من المشروع
  • تقدير المشروع (بمساعدة المستشارين أو الخبراء أو الصيغ)

13. كيف ستحدد جدوى مشروعك؟

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

  • اقتصادية: تكلفة الميزات والأدوات الإضافية ، وتكاليف التدريب ، وتحليل التكلفة الإجمالية النهائية للمشروع
  • فني: ملاءمة الآلات وبرامج التشغيل ، بما في ذلك إمكانية تطوير النظام المقترح مع الدعم الفني والموارد البشرية المتاحة
  • التشغيل: القدرة على إجراء التعديلات ومواكبة المتطلبات وجدارة المشروع بالتكلفة المقدرة.

14. أذكر بعض تحليل البرمجيات وأدوات التصميم.

تساعد إجراءات تحليل وتصميم البرامج في ترجمة مواصفات المتطلبات إلى تنفيذ. فيما يلي بعض الأدوات القياسية:

  • مخططات تدفق البيانات
  • قاموس البيانات
  • المخططات الهيكلية
  • مخططات HIPO (إخراج عملية الإدخال الهرمي)
  • الرسوم التخطيطية لعلاقة الكيان أو ER
  • جداول القرار

15. ما هو الفرق بين اللغة الإنجليزية المهيكلة ورمز Psuedo؟

تُعرف اللغة الإنجليزية الأصلية المستخدمة في كتابة هيكل وحدة البرنامج بالإنجليزية المهيكلة. يتضمن كلمات لغة البرمجة.

في المقابل ، فإن منهجية Pseudo Code تشبه إلى حد كبير لغة البرمجة ولكن بدون أي بناء جملة محدد.

اقرأ أيضًا: أفكار مشاريع تطوير البرمجيات

16. كيف تجد حجم منتج البرمجيات؟

يمكنك حساب حجم البرنامج عن طريق حساب سطور التعليمات البرمجية المسلمة أو نقاط الوظيفة. تعتبر النقاط الوظيفية مقياسًا ذا صلة لأنها تمثل الميزات التي يوفرها منتج البرنامج.

17. ما هي مقاييس البرمجيات؟

تشير مقاييس البرنامج إلى قياسات المتطلبات والمنتج نفسه.

  • تتضمن مقاييس المتطلبات جوانب مثل الطول والاكتمال.
  • تتعلق مقاييس المنتج بعدد خطوط الترميز والتصميم ومقاييس الاختبار والمقاييس الموجهة للكائنات وما إلى ذلك.

18. ما هي بعض تقنيات تقدير المشروع المفيدة؟

تقدير المشروع هو جزء لا يتجزأ من التخطيط السليم لمشروع البرمجيات. فيما يلي بعض الطرق المستخدمة على نطاق واسع:

  • التحليل (تحجيم البرامج ، والتقنيات القائمة على المشكلات ، والمعتمدة على العمليات)
  • تجريبي (تحليل الانحدار ونموذج التكلفة البناء ومعادلة البرمجيات)

19. كيف تقيس تنفيذ المشروع؟

يستلزم استعراض تنفيذ البرنامج مراقبة النشاط ، وقوائم مراجعة المعالم ، وتقارير الحالة.

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

20. تحديد إدارة تكوين البرامج.

تدور إدارة التكوين حول تتبع التغييرات والتحكم فيها في مشروع برمجي. من الضروري الحفاظ على اتساق نظام البرنامج مع القواعد واللوائح التنظيمية.

21. ما هو الفرق بين ضمان الجودة ومراقبة الجودة؟

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

22. قارن البرمجة الموجهة نحو الواجهة ، والموجهة للكائنات ، والموجهة نحو الجانب.

برمجة الواجهة هي نمط معماري قائم على العقد يتم تطبيقه لتحقيق التصميم المعياري على مستوى المكونات.

تتعامل البرمجة الشيئية مع كتابة كائنات حبيبية ذات غرض واحد.

تهدف البرمجة الموجهة إلى الجانب إلى فصل الكود بحيث تحمل كائنات متعددة المهام الرئيسية وتتولى الكائنات المستقلة المهام الفرعية.

23. متى يتم التصريح بفصل ما كمجرد؟

لا يمكن إنشاء مثيل لفئة تحتوي على كلمة أساسية مجردة في إعلانها. من الأفضل إعلان فئة ما كمجردة في المواقف المذكورة أدناه.

  • عندما يتم التصريح عن طريقة واحدة على الأقل في الفصل بأنها مجردة.
  • عندما لا يزال الفصل الموروث من فئة مجردة يتضمن طرقًا مجردة.

24. اذكر الفرق الرئيسي بين: (1) التكديس مقابل قائمة الانتظار (2) التصميم الموجه للكائنات مقابل التصميم الموجه للمكونات (3) الخيط مقابل العملية (4) EXE مقابل DLL (v) العلامات والفروع

(1) Stack يتبع مبدأ Last In ، First Out (LIFO). حيث أن قائمة الانتظار تكون دائمًا ما يرد أولاً يصرف أولاً ، أي الوارد أولاً ثم يخرج أولاً.

(2) يمكن دمج التصميم الموجه للكائنات في التصميم القائم على المكونات إلى حد ما. ومع ذلك ، فإن العكس غير ممكن.

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

(4) كل من EXE و DLL عبارة عن برامج تتطلب مساحة تخزين للتشغيل. بينما EXE هو برنامج أساسي قابل للتنفيذ ، فإن DLL أكثر ديناميكية. إنه مستودع رموز خارجي يمكنك تحميله وتنفيذه ، وبالتالي يشغل مساحة أقل.

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

25. هل من الجيد استخدام المصيد (استثناء)؟

يجب استخدام Catch (استثناء) عندما تكون أنواع الاستثناء معروفة. إنها فكرة سيئة حيث لا يمكنك قراءة الاستثناء في حالة عدم تحديد متغير.

26. أيهما أفضل بين الاثنين: الكتابة القوية أم الكتابة الضعيفة؟

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

27. ما هو التصميم المهيكل؟

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

28. وصف البرمجة الوظيفية.

تتضمن طريقة البرمجة الوظيفية تطبيق المفاهيم الرياضية. يوفر طريقة لحساب الوظائف الرياضية ، وبالتالي توليد النتائج بغض النظر عن حالة البرنامج.

29. كيف تحدد أولويات المتطلبات؟

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

30. ماذا تعرف عن أدوات CASE؟

CASE هو المصطلح المختصر لهندسة البرمجيات بمساعدة الكمبيوتر. يتكون من مجموعة من تطبيقات البرامج الآلية التي تدعم أنشطة SDLC. يمكن لأدوات CASE تعزيز وتقوية مشاريع البرمجيات من خلال تقديم هذه الخدمات:

  • تحليل المتطلبات
  • تحليل الهيكل
  • رمز الجيل
  • توليد حالة الاختبار
  • إنتاج الوثائق
  • الهندسة العكسية

الوجبات الجاهزة

يتوقع مكتب إحصاءات العمل (الولايات المتحدة) أن ينمو الطلب على مطوري البرمجيات بنسبة 22 في المائة خلال العقد المقبل. ومن المرجح أن تواجه الهند نفس الارتفاع في الطلب.

وفقًا لـ "تقرير القوى العاملة للهند" الصادر عن LinkedIn ، كانت إعلانات الوظائف الشاغرة في مجال هندسة البرمجيات على منصتها هي الأعلى في العديد من الصناعات في النصف الأول من عام 2018. وبينما نمضي قدمًا ، فإن الفرص المتاحة في قطاعات بارزة مثل التعليم والقانون والتصميم تواصل الارتفاع. اقرأ عن راتب مطور البرامج في الهند.

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

  • C ++ ، C # ، جافا
  • HTML و CSS JavaScript
  • SQL ، Python ، Bootstrap
  • التصميم الكينوني
  • برامج التصحيح والاختبار
  • الترميز باللغات الحديثة (Ruby ، ​​Go ، R ، إلخ.)
  • معرفة مشاريع الذكاء الاصطناعي ، وما إلى ذلك

بصرف النظر عن هذه القدرات التقنية ، ستحتاج إلى إتقان فن تعدد المهام ، والتواصل ، وإدارة الوقت ، والاهتمام بالتفاصيل ، والعمل الجماعي.

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

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

يمكنك أيضًا الذهاب إلى برنامج Executive PG في تطوير البرامج - التخصص في تطوير Full Stack بواسطة IIIT-B أو شهادة PG المتخصصة ، اعتمادًا على اهتماماتك وتطلعاتك المهنية. هذه الشهادات لها مدة التزام أقصر مقارنة بدورات الماجستير والدبلوم. إنها تتيح لك إظهار مهاراتك في مجال معين ، مثل تطوير الواجهة الخلفية ، وتطوير الواجهة الأمامية ، والأمن السيبراني ، و DevOps ، والبيانات الضخمة ، والحوسبة السحابية.

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

انطلق في وظيفة أحلامك

تقدم بطلب للحصول على ماجستير العلوم في علوم الكمبيوتر