ليه الانترفيوز في كتير من الشركات بتكون problem solving؟ وإزاي الانترفيور ممكن يحدد حاجات كتير عن ال mindset بتاعتك في نص ساعة بس؟
في الثريد ده هحاول أوضح الإسقاط الفعلي للي بيحصل في الانترفيو ده علي حاجات تانية كتير ليها علاقة بالحياة العملية في الشغل في "سبع نقاط"
(١)
في الثريد ده هحاول أوضح الإسقاط الفعلي للي بيحصل في الانترفيو ده علي حاجات تانية كتير ليها علاقة بالحياة العملية في الشغل في "سبع نقاط"
(١)
أولاً: طبيعة الانترفيوز دي ان الانترفيور بيديك problem تحلها في حوالي نص ساعة (ممكن أقل أو أكتر) .. الانترفيور بيديك المسألة وممكن يقولها من غير تفاصيل كتير .. هنا بقي هو بيقيس إن لما تجيلك تاسك vague في الشغل فهل انت هتبدأ تفكر علي طول في الحل أو هتفترض حاجة، ولا أنت
(٢)
(٢)
هتاخد الطريق السليم وهو إنك تتأكد إنك فاهم التاسك صح وتسأل علي أي حاجة مش واضحة وتسأل علي التفاصيل ومتفترضش أي حاجة.. إنك تفترض حاجة في الشغل وتبدأ تشتغل علي أساسها وإفتراضك ده كان غلط .. ف التكلفة هتكون عالية أوي ساعتها؛ عشان كده دايمًا ابني علي تفاصيل واضحة
(٣)
(٣)
ثانيًا: في الانترفيو قبل ما بتبدأ تحل هل بتسأل عن ال constraints اللي عندك وال limitations ولا لأ.. لما بتسأل عن ال constraints بتاعة المسألة اللي عندك بحيث إنك تعرف أكتر time ممكن ياخده البروجرام أو أكبر memory space عندك .. ده ينعكس علي أرض الواقع بنفس الشكل ده بالإضافة انه
(٤)
(٤)
بيبين انك قبل ما تبدأ في تاسك معينة أو تشتغل علي service معينة فبتكون عارف ال scale بتاع الحاجة اللي شغال عليه وال scope من البداية؛ عشان تبني systems تكون scalable و stable من البداية، ومنجيش في نص الطريق ويتضح ان المفروض كنا نمشي في طريق تاني عشان نهندل علي مستوي أكبر
(٥)
(٥)
ثالثًا: هل الخطوة اللي بعد الحاجات اللي فاتت بتكون انك تكتب كود علي طول ولا بتعرف ال logic وبتلاقي solution الأول، وهل لما بتلاقي حل بتفكر انك تعملّه implementation علي طول ولا بتفكر في حلول تانية ب trade offs ممكن تكون more optimized.. حاجة زي كده علي أرض الواقع جدًا مهمة
(٦)
(٦)
رابعًا: في الانترفيو بعد ما وصلت لأكتر من حل، هل هتبدأ تكتب كود علي طول ولا هتناقش اللي عملته مع الانترفيور بحيث تعرف انكم دايمًا on the same page .. علي أرض الواقع ده مهم لأنه بيبين هل انت شخص بيتواصل مع الآخرين ولا منعزل ومبيعرفش يشتغل غير لوحده
(٧)
(٧)
خامسًا: لما تبدأ تكتب كود، هل وانت بتكتبه هيكون code واضح ب variables names واضحة بتقسيمة كل حاجة ليها وظيفة في function منفصلة ولا هتكتب spaghetti code مش مفهوم ومن غير comments. النقطة دي واضحة أهميتها علي أرض الواقع وبتقيس قدرتك علي كتابة clean code محترم
(٨)
(٨)
سادسًا: ولنفترض في أي خطوة وانت بتحاول تلاقي حل أو وانت بتكتب code ووقعت في حاجة معينة والانترفيور اداك hint، هل انت open minded كفاية وهتقدر تستغل الهينت دي ولا هتتجاهلها.. علي أرض الواقع وانت بتحل حاجة أو بتكتب كود و stuck في حاجة.. هتبدأ تسأل والحد اللي هتسأله هيساعدك ولكن
(٩)
(٩)
مش مضمون انه يفضل قاعد معاك خطوة بخطوة .. فهل هتقدر تاخد الكلمة أو ال resource اللي هيقولك عليه وتعرف تطلع منه بأكبر فايدة ولا مساعدته مش هتكون مهمة ليك وانت هتفضل تحرق وقت علي الفاضي أو هتفضل متعلق بأول حل جالك ومش هتكون عارف تفكر في غيره لعدم مرونتك!
(١٠)
(١٠)
سابعًا: دلوقتي خلصت الحل وكتبت الكود.. هل كده خلاص دورك انتهي في الانترفيو ولا هتبدأ ت test الكود بتاعك وتبدأ تفكر في cases مختلفة و edge cases .. علي أرض الواقع نفس الموضوع، لازم كل حاجة تكون tested كويس ومغطية كل الإحتمالات الممكنة وعارف بيها لتجنب ال bad scenarios
(١١)
(١١)
...
في الثريد ده حاولت أوضّح ال anatomy بتاع ال coding interview وليه النوع ده من الانترفيوز مهم وشركات كتير بتلجأله.. فيه نقط تانية الانترفيور ممكن يحددها تستحق الذكر زي ال time management ومعرفتك بال basics وغيره. كل حاجة في الثريد ده من وجهة نظري واللي شوفته ومريت بيه.
(١٢)
في الثريد ده حاولت أوضّح ال anatomy بتاع ال coding interview وليه النوع ده من الانترفيوز مهم وشركات كتير بتلجأله.. فيه نقط تانية الانترفيور ممكن يحددها تستحق الذكر زي ال time management ومعرفتك بال basics وغيره. كل حاجة في الثريد ده من وجهة نظري واللي شوفته ومريت بيه.
(١٢)
جاري تحميل الاقتراحات...