حل المشاكل البرمجية
- مفهوم المشاكل البرمجية
- أهمية حل المشاكل البرمجية
- مدة التحديات
- مواقع عربية للتمرن على حل المشاكل البرمجية
- مواقع أجنبية للتمرن على حل المشاكل البرمجية
مفهوم المشاكل البرمجية
المشاكل البرمجية ( Problems Solving ) هي تحديات و تمارين برمجية الهدف منها تطوير قدراتك في التحليل و حل المشاكل البرمجية. لذلك حين تتمرن على حل هذه التحديات فأنت بذلك تكون تطور قدراتك في البرمجة بحد ذاتها.
تحديات المشاكل البرمجية تكون بمستويات مختلفة، هناك تمارين تكون متشابهة و هناك تمارين تكون مختلفة و تجعلك مجبر على التفكير بطرق إبداعية لإجاد حلول لها.
يُعرف حل المشاكل البرمجية بمصطلح آخر هو البرمجة التنافسية ( Competitive programming ).
في هذا المقال سنتحدث عن أهمية حل المشاكل البرمجية و أهم المصادر العربية و الأجنبية المتاحة للتمرن عليها.
أهمية حل المشاكل البرمجية
يعتقد بعض الطلبة أن دراسة الخوارزميات و هياكل البيانات يؤهلهم للدخول في المجال الذي يريدونه، لكن من وجهة نظري الشخصية فإن الخطوة الأفضل قبل أن تغوص بمجال محدد أن تقوم بحل المشاكل البرمجية و هذا ما نقصد به ( Problems Solving ).
حل المشاكل البرمجية يساعدك في تنمية مستواك في التفكير و رفع مستوى ذكائك و زيادة ثقتك بنفسك و زيادة قدرتك ببحثك دائماً عن أفضل الحلول، أبسطها و أسرعها، كما أنه بمجرد فهمهك لهذه المشاكل سيصبح تطوير التطبيقات، المواقع أو أي مجال أو تمرين متعلق بالبرمجة أمر سهل بالنسبة لك.
حل المشاكل البرمجية لا يساعدك فقط في البرمجة و إنما يساعدك بشتى ميادين الحياة على حل المشاكل التي تواجهك.
مدة التحديات
لن تستطيع الإنتهاء من حل المشاكل بين ليلة و ضحاها، بل ستأخذ كغيرها من الأشياء الجديدة الكثير من الوقت حتى تتقنها و لربما أكثر.
سأحدثك عن تجربتي الشخصية فأنا و منذ ثلاث سنوات على التوالي أتابع هذه التحديات و أقوم بحلها، إنتقلت إليها بعدما إنتهيت من دراسة أساسيات لغة بايثون و قد أخذت هذه المرحلة مني 6 أشهر أو أكثر، أروي لك هذه القصة حتى ترى التفاوت في الوقت فأساسيات لغة البرمجة أخدت 6 أشهر مني بينما هذه التحديات إلى الآن ما زلت أمارسها، و للأمانة أنا لم أملل إلى الآن منها لأنها متجددة بإستمرار و غريبة، فدائماً ستصادف أفكار جديدة ، هل تعلم أنني أصبحت من عشاق حل هذه التمارين و أفضلها على أي مجال آخر.
مدة تعلم و تمرس هذه التحديات تختلف من شخص لآخر بحسب إستيعابك و قدرتك على المتابعة فلا تجعل همك الفوز بهذه التحديات فقط بل إعمل على تحفيز دماغك و خوض هذه المتاهة للإستفادة منها. تابع و ثابر و اصبر لتصل في النهاية للإحترافية.
نصيحة: لا تترك البرمجة لوقت طويل لأن هذا سينسيك ما تعلمته في الفترة الماضية، و ستعود لدراسة نفس الأشياء من جديد.
مواقع عربية للتمرن على حل المشاكل البرمجية
- دورة الخوارزميات و هياكل البيانات من موقع هرمش
- قناتي في يوتيوب اضع فيها طريقة حل تحديات موقع LeetCode