0

مقابلات العمل عمليّة مهمّة وأساسيّة لبدء أي عمل جديد في أي شركة كانت، ولكن في مجال البرمجة والتقنيّة تأتي هذه المقابلات بالمزيد من التفاصيل، فنظرًا للتنافسيّة الشديدة في هذا المجال والتطوير المستمر له فغالبًا ما تطلب الشركات من المتقدمين إجراء اختبار يثبت قدراتهم ومعرفتهم وتسمّى هذه المقابلات بـ المقابلات التقنية (Technical Interviews).

وبما أنك تقرأ هذا المقال الآن، فأنت بالتأكيد تعرف بالفعل ما المقصود بالمقابلات التقنية، ولعلك ستقدم قريبًا في أحد الوظائف التي ترغب في الاستعداد لها جيدًا، لا تقلق فقد جئت للمكان الصحيح لتتعلم كيف تجتاز هذه المقابلات!

ما الذي تتضمّنه المقابلات التقنية؟

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

في غالب الأمر هناكَ بضع مراحل في عمليّة المقابلة والتي تنقسم إلى:

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

اقرأ أيضًا: كيف تبدأ في تعلم البرمجة؟

مراحل المقابلات التقنية

مرحلة المقابلة عن بعد

إن وصلتَ هذه المرحلة فهذا يعني أنّ سيرتك الذاتيّة وخبرتك كانت مثيرة للإعجاب، هنيئًا لك! الشيء الأهمّ في هذه المرحلة هو ترك انطباعٍ جيّد لدى الطرف الآخر، لذا كن صادقًا وودودًا قدر ما استطعت، وإن تمّ سؤالك عن آخر مشاريعك، فقم بعرضها ولا تكتفِ بالحديث فقط، والأهمّ من ذلك، قم بتوجيه أسئلتك إلى الطرف الآخر كلما سنحت لكَ الفرصة وأبدِ اهتمامك بالوظيفة والمجال بشكلٍ عام.

مرحلة الاختبار عن بعد

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

مرحلة المقابلة المباشرة

مبارك لك! لقد قطعتَ شوطًا طويلًا والآن حانَ الوقت للمقابلة وجهًا لوجه. في هذه المرحلة سيتم تقييمك بناءً على ثلاثة جوانب وهي: الجانب التقني، الجانب السلوكي، الجانب المنطقي. ومن المهمّ للغاية أن يتمّ الاستعداد بشكلٍ كامل ومتقن على جميع هذه الجوانب.

الجانب التقني

لعلّها أبرز الجوانب من المقابلة، ففي النهاية هي تدعى “مقابلة تقنية”، سيقومُ الشخص الذي يقابلك في نقطةٍ ما من اللقاء بتقديم مشكلة/تمرين برمجي وسؤالك عن كيفيّة حلّه، أو سيطلب منك أن تشرح له كيفَ تعمل خوارزميّة ما أو ما هو مبدأ هيكل بيانات معيّن، لذا وبطبيعة الحال يجبُ أن تكونَ مستعدًّا لجميع الأسئلة الممكنة، وأن تقومَ بالتدرّب على بعض الخوارزميات الهامّة والمستخدمة بكثرة ومن أهم هذه الخوارزميات ما يلي:

خوارزميات الـ Graph

  • Breadth First Search (BFS)
  • Depth First Search (DFS)
  • Dijkstra

خوارزميات البرمجة الديناميكيّة (Dynamic Programming)

  • أطول سلسلة جزئيّة مشتركة (Longest Common Subsequence)
  • أطول سلسلة جزئيّة متزايدة (Longest Increasing Subsequence)
  • مشكلة حقيبة الظهر 1/0 Knapsack Problem

خوارزميات البحث والترتيب (Sorting & Searching Algorithms)

  • البحث الثنائي (Binary Search)
  • الترتيب السريع (Quick Sort)
  • الترتيب الدمجي (Merge Sort)
  • خوارزمية نوث-برات-نوريس (Knuth-Morris-Pratt Algorithm)

هياكل البيانات (Data Structures)

  • شجرة فنويك/ الشجرة الثنائية (Fenwick tree/ Binary Tree)
  • الشجرة الإحصائية (Segment Tree)
  • المخطط (Graph)
  • جدول التجزئة (Hash Table)
  • المكدسات والأرتال (Stacks & Queues)

بالطبع، هناكَ المزيد والمزيد ولكنّني قمتُ بذكر أهمّها.

الجانب السلوكي

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

  • تحدّث عن مرّة فشلتَ بها وكيفَ قمتَ بالتعامل مع فشلك؟
  • كيفَ تبقي مهامك منظّمة؟
  • ما الذي من الممكن أن تفعلهُ إن اختلفتَ مع مديرك؟
  • من كانَ التأثير الأكبر في حياتك المهنيّة/ من قدوتك؟

كُن حسنَ المظهر واحترافيًّا في التعامل فالذي سيقابلك غالبًا ما سيقوم بالحكم عليك خلال أوّل عشر ثواني من اللقاء، لذا من المهمّ أن تكون بأفضل حالاتك عندَ إجراء المقابلة ولا تنسَ الابتسام!

الجانب المنطقي

بشكل مشابه للجانب التقني، يتم عرض مشكلة ما ويُطلب من المتقدّم حلّها ولكن يتمّ التركيز هذه المرّة على القدرات الذهنية وذكاء المتقدّم، إذ تُفحص قدرته على حلّ المشاكل والتفكير خارج الصندوق (Out Of The Box).

ماذا الآن؟

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

أبقِ في ذهنك أنّ هذه الوظيفة ليست الأخيرة في مسيرتك المهنيّة، لذا حتى لو تمّ رفضك تقبّل الأمر وكُن فخورًا بنفسكَ؛ لأنّك قطعت كل هذا الشوط الطويل، واعتبرها بمثابة تمرين لمقابلاتك اللاحقة.

لفرصٍ أفضل، إليكَ بعضَ النصائح

  • قُم بأخذ بعض الوقت لكي تتزوّد بالمزيد من المعلومات عن الشركة سواءً من الإنترنت أو من معارف لك يعملون أو سبق وعملوا في الشركة، فمعرفتك بالشركة وجعل الشخص الذي يقابلك برى ذلك ستضيفُ لنتيجتك النهائية.
  • لا تكن كالروبوت، العديد من الأشخاص يتصرّفون في مقابلات العمل بشكل حازم وجدّي زيادةً عن اللزوم، دع الطرف الآخر يرى أنّك إنسان ودعه يرى بعضًا من شخصيّتك.
  • قم بتحضير مشاريعك السابقة التي قمتَ بإنجازها، فالمُقابل يرغب دائمًا في معرفة ما أنتَ قادر على فعله وما أنجزته.
  • إذا سألك المُقابل في نهاية اللقاء عن أي أسئلة تدور ببالك فهذه فرصتك، قُم بسؤاله عن بيئة العمل والشركة بشكل عام وأبدِ اهتمامًا واضحًا.
  • لا تهلع إن كانَ هناك سؤال أو مشكلة ما لم تعرف كيفَ تقوم بحلّها، قُم بمناقشة مراحل تفكيرك بالحلّ مع المُقابل (فكّر بصوت عالٍ) وقم باستبعاد الحلول غير الممكنة. وبالطّبع، تأكّد من فهمك التامّ والكامل للسؤال قبلَ محاولة الجواب عنه واستفسر عن السؤال قدرَ ما أمكنك.
  • لا تقُم باستخدام لهجة/لغة سلبيّة عند تحدّثك عن تجربة ماضية لك في مكان عمل أو مع أشخاص معيّنين، اكتفِ فقط بقول إنّ الأمور لم تجرِ بشكلٍ جيّد.
  • تدرّب تدرّب ثمّ تدرّب، البرمجة هي مهارة كمثل أي مهارة إن واظبت على التدريب والتمرّن ستصبح جيّدًا فيها ولكنّها تحتاج إلى الكثير من الوقت والجهد فكن صبورًا وجادًّا في عمليّة التدرّب.

مصادر ستساعدك على التدرّب على المقابلة التقنية

هناك العديد من المصادر الموجودة الآن على الإنترنت سواءً كانت مجانيّة أم مدفوعة وكِلا الخيارين يحتوي على مصادر عالية الجودة، سنقوم بعرض أبرزها:

  • (Coding Interviews University) وهو مستودع (Repository) على موقع GitHub يحوي أبرز المصادر بشكل منسّق ومرتّب من دورات تدريبيّة عن هياكل البيانات بالإضافة إلى أشياء تخصّصية وصولًا إلى بعض النصائح العامّة وكيفيّة الحصول على المقابلة والتحضير لها.
  • (System Design Primer)، إن كنتَ في مرحلة متقدّمة (أي ستلتحق بوظيفة ذات مسمّى وظيفي محدّد ومخصّص للغاية) فعلى الأغلب سيتخلّل المقابلة بعض الأسئلة عن تصميم النظم، هذا المستودع يشرح لك العمليّة ومبادئها من البداية إلى النهاية ومع المصادر المناسبة.
  • (Hiring Without Whiteboards)، يحتوي هذا المستودع على لائحة بالشركات التي تتميّز بعمليّة مقابلات واختيار مناسبة وغير مبالغ فيها.
  • (Pramp) اختصارًا لـ Practice Makes Perfect، هو موقع تفاعلي مجّاني يسمح لك بالتمرّن على أسئلة المقابلات التقنيّة المعتادة مع أصدقائك إذ يمكنكَ دعوة صديقك والانضمام إلى محادثة فيديو معه والتدرّب سويًّا بالإضافة لاحتوائه على العديد من الأدوات الأخرى المفيدة.
  • (InterviewCake)، موقع يقوم بإرسال تحدّي برمجي كلّ أسبوع تقريبًا مع حلّها على بريدك الإلكتروني ويقوم بتوفير دورات تدريبيّة لشرح مبدأ الحل والمزيد، إلّا أنّه غير مجاني.
  •  (InterviewBit)، موقع يعتمد مبدأ التلعيب (Gamification) لتدريب المستخدم على مجموعة من الأسئلة والتمارين بشكل مشابه لموقع SoloLearn.

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

0

شاركنا رأيك حول "إلى كل مبرمج.. دليلك إلى اجتياز المقابلات التقنية في أي شركة برمجية"