كيف تحل أي مشكلة في البرمجة
1. ما هو حل المشكلات؟
كمطورين ، قد تكون هناك أوقات يتعين عليك فيها أن تقرر تجنب المشكلة تمامًا واستبدالها بشيء جديد بدلاً من التعامل مع المشكلة ، لكن هذه المقالة تركز على تقنيات حل المشكلة وليس استبدالها أو تجنبها.
2. تقنية حل المشكلات
حل المشكلة هو مجموعة مهارات مختلفة وكبشر ، نحن جيدون بشكل طبيعي في حل المشكلة. أعني ، لقد بنينا العالم من حولنا من خلال حل مشكلة تلو الأخرى.
ما يعانيه المطورون غالبًا هو ربط مجموعة المهارات هذه. يجعلك حل مشكلات البرمجة أفضل في حل مشكلات العالم الحقيقي ، وإذا كنت جيدًا في حل مشكلات العالم الحقيقي ، فقد تأتيك البرمجة بشكل طبيعي.
لماذا لا توجد دورات كثيرة في هذا الشأن؟
- فقط لأنك تفهم الأدوات الموجودة في صندوق الأدوات لا يعني أنه يمكنك إصلاح السيارة ، ولكن معرفة مجموعة الأدوات واستراتيجية حل المشكلات والعقلية قد تسمح لك بإصلاح السيارة في النهاية.
- ما هي دروس الترميز الجيدة هو أن تعرض لك أكبر عدد ممكن من المشاكل والحلول كطريقة لتعليمك كيفية البرمجة.
- يميل المطورون إلى الفزع عندما لا يجدون الفيديو أو منشور المدونة بالإجابة وهذا هو سبب قيامهم بالنشر على المنتديات أو مواقع التواصل الاجتماعي مثل Reddit و Stack Overflow.
جعلت هذه الراحة على الإنترنت تعلم كيفية البرمجة أسهل ، وشيء لا يتعين عليك حتى الذهاب إلى المدرسة من أجله ، ولكن أيضًا غمرت الصناعة بالكثير من المطورين الذين يمكنهم البرمجة ولكن ليس لديهم عقلية استراتيجية حل المشكلات.
3. أخطاء حل المشكلات الشائعة
- في الواقع ليس خطأ أحد، إذا توقفت عن التفكير في الكيفية التي يتعلم بها الناس البرمجة في الوقت الحاضر ، فأنت تدرك أن ذلك أساسًا من خلال النقر على مقطع فيديو والحصول على الحل الدقيق الذي تحتاجه. بسذاجة ، قد تحاول أن تفعل الشيء نفسه عند محاولة حل المشاكل بنفسك.
- ما لا يكون واضحًا في كثير من الأحيان هو أنه من أجل تجميع مقطع فيديو تعليمي ، يمر المعلم غالبًا بعملية مدعومة بسنوات من الخبرة والتعرض للعديد من المشكلات والحلول التي تجعل من السهل عليه / لها إرشادك خلال الحل دون الحاجة إلى شرح كيف توصلوا إلى هذا الحل.
- الدروس ليست سيئة ويجب ألا تتوقف عن مشاهدة البرامج التعليمية أو البحث عن حلول في جوجل. حتى المطورين المحترفين يفعلون نفس الشيء. ما أحاول أن أجعلك تفهمه هو أنه يجب عليك تخصيص بعض الوقت والجهد لتعلم العملية والتخطيط للحل قبل الغوص بعمق في الترميز.
4. إذن كيف تحل المشاكل؟
- قد تتطلب منك بعض حلول المشكلات إنشاء أداة أو نظام خاص بك. لهذا السبب وُلدت الأطر والأدوات والأنظمة الكبيرة في الوظائف رفيعة المستوى وشركات التكنولوجيا. قدم Facebook React و GraphQl ، وأنشأ مطورو Google Angular و Dart ، وأعطتنا Microsoft Typecript ، وما إلى ذلك.
- وهذا يوضح أنه عندما تشارك بالفعل في حل مشكلة ما ، فقد يؤدي ذلك إلى أدوات أو أنظمة جديدة يمكن مشاركتها مع الآخرين.
- لكل شخص طريقة لحل المشكلات ، ودليل تفصيلي خطوة بخطوة للوصول إلى الحل ، وهذا ما تحتاج إلى التعرف عليه. في الواقع ، يعرف عقلك هذا بالفعل ولكنه يصل إلى الحلول بسرعة كبيرة لدرجة أنك لا تفكر في كثير من الأحيان في كيفية وصوله إلى هناك. لحل المشاكل تحتاج إلى إبطاء والتحكم في القلق للوصول إلى الحل بسرعة.
- يمكنك حل المشكلات باستخدام استراتيجية جيدة لنهج المشكلة من خلال التحليل والدراسة والتخطيط للحلول ، وأحيانًا حلول متعددة. قد يستغرق الأمر وقتًا ويتطلب الصبر. لذلك دعونا نكسرها.
5. افهم المشكلة
6. دائما خطط للحل أولا
- هذا هو الجزء الذي تقوم فيه بتحليل القيود والقواعد ، ووضع استراتيجيات لحل خطوة بخطوة والتوصل إلى اختبار البيانات أو الفرضيات لاختبارها مقابل ذلك.
- يمكنك القيام بذلك عن طريق كتابة التعليقات ، والرمز الزائف عالي المستوى ، والرسم البياني ، والمخطط الانسيابي ، والرسومات الأكثر تفصيلاً ، وما إلى ذلك. والغرض من مرحلة التخطيط هو رؤية الصورة الأكبر وتحديد جميع المشكلات الفرعية والخطوات وأجزاء المشكلة.
- قد تتغير خطتك أثناء تنفيذ الحل أو يتم استبدالها بشيء مختلف تمامًا كلما تقدمت. فكرة أن قضاء الوقت في خطة قد يتم خدشها لاحقًا قد تبدو مضيعة للوقت ، ولكن الخطوة البسيطة للتخطيط لشيء ما تمنحك فكرة عن الأمر برمته وتجعل من السهل التكيف أثناء الطيران لاحقًا.
- من المستحيل التنبؤ بالنتيجة الكاملة في خطة واحدة ولهذا السبب قد تتغير الخطط أو يتم التخلي عنها بمجرد أن تعمل على تنفيذها. بدون خطة ، أنت ببساطة تدحرج النرد وتأمل أن تكون محظوظًا. يؤدي عدم وجود خطة إلى صعوبة تفويض الأشخاص أو الترحيب بهم في الحل أيضًا.
7. ابدأ بما تعرفه
8. التعرف على الأنماط
- في بعض الأحيان ، تم حل مشكلة مماثلة بالفعل من قبل شخص آخر. يمكن للمشكلة مشاركة الأنماط مع البعض الآخر الأكثر بساطة.
- هذا هو المكان الذي يمكن أن يساعدك فيه البحث الجيد والخبرة في التعرف بسهولة على تفاصيل أو أجزاء من المشكلة التي تشبه شيئًا تم حله مسبقًا بواسطتك أو بواسطة مطور آخر.
- بمجرد تحديد الأنماط ، تكون قد قمت بحل المشكلة بالفعل. إذا كانت التغييرات مطلوبة ، فستكون لديك نقطة بداية للمتابعة منها.
9. ابدأ بمعظم القيود أولاً
هذا يعادل شراء منزل جديد. قم بإدراج جميع قيودك أولاً ؛ ما مقدار ما يمكنك وضعه ، وعدد غرف النوم والحمامات ، والمساحة ، والميزانية ، والحجم ، وما إلى ذلك.
بمجرد الانتهاء من جميع التفاصيل الخاصة بك ، يمكنك تضييق خياراتك مما يجعل الأمر أكثر وضوحًا لمعرفة ما يمكنك تحمله. إذا لم تكن راضيًا ، فسيكون من الواضح بنفس القدر ما تحتاج إلى العمل عليه لتغيير خياراتك.
10. قسّم المشكلة
بسّط المشكلة
- التبسيط يختلف عن قسمة مشكلة. التبسيط يعني تغيير القيود أو القواعد. في عالم التكنولوجيا ، غالبًا ما يشار إليه على أنه إيجاد حل MVP. أنت تقوم بتقليل نطاق المشكلة إلى حد كبير لجعل المشكلة أبسط.
- بمجرد أن يكون لديك حل لإصدار أبسط من المشكلة ، فإنه يوفر لنا ما يكفي من المعرفة والخبرة ووقت البحث لحل النسخة الأكبر منها لاحقًا.
11. التجربة.
- ستكون هناك أوقات تكون فيها تجربة الأشياء ومراقبة النتائج هي أفضل طريقة للتعامل مع حل المشكلة ، لكن لا يجب الخلط بينها وبين كتابة بعض التعليمات البرمجية على أمل أن تحصل على النتيجة الصحيحة. التجريب هو عملية خاضعة للرقابة تهدف إلى استكشاف المجهول أو جمع المعلومات.
- ربما توجد مكتبة يمكنها مساعدتك في حل المشكلة ولكنك لست على دراية بها. ربما كنت تتوقع نتيجة ولكنك حصلت على شيء مختلف تمامًا. التجريب طريقة رائعة بشكل خاص للتعامل مع إصلاحات الأخطاء.
- بشكل عام، يعد استكشاف مشكلة ما طريقة جيدة لمحاولة فهمها بشكل أكبر أو اختبار خيارات مختلفة لمقارنة أي منها يمكن أن يكون حلاً أفضل.
12. النسخ الاحتياطي وتحديد المشكلة
- إذا كنت تشعر بالإحباط ، فمن الأفضل أن تقوم بالرجوع ، والهدوء وإعادة طرح المشكلة.
- يجب ألا تقوم بتدوير عجلاتك على شيء يؤثر على حالتك المزاجية.
- بمجرد أن تشعر بالإحباط ، فإنك تميل إلى تعقيد الأمور أو الفشل أو اختيار حل معقد للمشكلة.
- ابتعد عن اليوم أو لساعات ، وخذ نفسًا عميقًا واشرح المشكلة لك بصوت عالٍ.
- ارسم ما يجري للتحقق من فهمك للمشكلة. يجب أن يكون حل المشكلات أمرًا منطقيًا وليس عاطفيًا.
13. الممارسة (حل المشكلة)
حل المشكلة يتعلق بتعريض نفسك لأكبر عدد ممكن من المواقف وممارسة هذه الاستراتيجيات مرارًا وتكراراً.
ومع مرور الوقت ، تصبح طبيعة ثانية وطريقة طبيعية للتعامل مع أي مشكلة بشكل عام كبيرة أو صغيرة ، ابدأ دائمًا بخطة ، واستخدم الاستراتيجيات الأخرى المذكورة هنا حتى تكون واثقًا ومستعدًا لكتابة الحل.
الخلاصة
أن تصبح قادرًا على حل المشكلات يستغرق وقتًا وممارسة. عندما يتعلق الأمر بالبرمجة، فإن فهم الأساسيات ، وهياكل البيانات ، والخوارزميات ، وأنماط التصميم ، وكيفية عمل الأشياء هو معرفة أكثر أهمية للحصول عليها حيث يمكن تطبيقها في أي لغة برمجة وبيئة.