
طريقتك في حل المسألة بتعكس تصرفك في حل مشكلة حقيقة في الشغل واللي ممكن متكونش قادر تحلها من أول لحظة لكن بالتفكير النقدي والتواصل الفعال مع الفريق بتقدر توصله وهو دا المطلوب. فهنا بعض الخطوات اللي مهم إنك وأنت بتتدرب علي حل المسائل تنتهجها وكذلك أثناء الانترفيوهات واللي هتتضمنلك تتقبل في الانترفيو حتي لو موصلتش للحل الصحيح للمسألة!
- اقرأ المسألة بشكل جيد
خطوة القراءة بتأني مهمة جدًا لأن عليها بيتبني فهمك للمسألة وبالتالي حلك لها.
- اسأل أسئلة توضيحية
بعد قراءة المسألة حاول توصل اللي فهمت إنه مطلوب كحل للمسألة بوضوح للانترفيور واتأكد أنه دا المطلوب وكمان اسأل أسئلة عن أي شي٫ مش واضح زي حجم أو شكل ال input أو أي constraints مطلوبة. الجزء دا مهم جدًا و الانترفيورز بيقيموا عليه لأن في الحياة الواقعية لازم تسأل أسئلة توضيحية كتير عن مشاريعك ومتعتمدش علي افتراضاتك.
- استخدم الأمثلة و اطلع بحل بسيط
حاول تمشي علي الأمثلة و توقع المشكلة والحل عليها و”تضيف أمثلة ال edge cases“ لو مش متاحة عشان تأكد فهمك . ومن هنا قدم حل بسيط جدًا للمشكلة ويكون بيعدي الأمثلة. المهم في الخطوة دي إنك تفكربصوت عالي وتتناقش مع الانترفيورز في ال trivial solution اللي قدمته وبعدين تقدر تقيم سوء الحل دا وتتناقش مع الانترفيور في ايه هي التحسينات عليه أو الطرق البديلة. ولما توصل للحل المناسب من حيث ال time and space constraints أو توصل لل most efficient solution بتسأل الانترفيور لو تقدر تبتدي في مرحلة كتابة الكود.
4. كتابة الكود
في مرحلة كتابة الكود مش محتاج تتكلم مع الانترفيور وتركيزك هنا هيكون علي كتابة كود نظيف ومرتب.
كود نظيف = استخدم أسماء متغيرات مناسبة وقسم الكود في functions مناسبة.
كود مرتب = أهتم ب ال indentations وشكل الكود في العموم.
طيب قابلت جزء من الحل مش قادر أكتبه في شكل كود ؟ حط بداله placeholder أو function call و اعمله implementation في الاخر عشان متعطلش وتستغل الوقت بشكل صحيح.
5. امشي علي الكود اللي كاتبه بمثال
بعد ما تخلص كتابة كود, استخدم واحد من الأمثلة بانك يدويًا تمشي بالقيم وتعوض في الكود بتاعك. الخطوة دي بتبين إنك فاهم الكود اللي انت كاتبه بيشتغل ازاي بالظبط ودي مهارة مهمة في تقييم عملك كمبرمج. كمان لو في Edge case ومشيت عليها بعد كدا هيكون مناسب جدًا.
6. تقدر تعمل Test cases Run
حاول تعمل ال Run و أنت شبه متأكد من حلك, لأنه لو failed run في مثال دا معناه إنك مكنتش عامل حسابه ودي نقطة سلبية ولكن بما إن دا لابد أن يحدث تقدر تحول الموقف دا لنقطة إيجابية بإنك تستخدم ال use case دي وتمشي عليها بشكل يدوي علي الكود وتتناقش في سبب المشكلة مع الانترفيور وتحله.