اذهب إلى المحتوى
  • 0

problem solving

فاطمة صالح2

السؤال

Recommended Posts

  • 0

مهارة حل المشاكل Problem Solving من أهم المهارات التي يجب على المبرمج (بل كل شخص في الحياة عامة) أن يتقنها،

والموضوع ليس صعبًا ولكن يتطلب عزيمة وصبرًا، لأنه يحتاج للتجربة أكثر من مرة فربما يصاب الإنسان باليأس.

في البداية، يجب معرفة أن حل المشاكل البرمجية مثلها مثل أي مشكلة أو مهمة تواجههنا في حياتنا اليومية، نعم، كلها تتشابه في أنهم جميعًا يحتاجون إلى خطوات معروفة ومرتبة حتى يتم حل هذه المهمة.

على سبيل المثال:

كلنا نذهب إلى العمل، هل تعلمون أن هذه إحدى المشاكل (المهام) التي تتطلب خطوات حل (خوارزميات)؟

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

نفس الشيء مع كل المشاكل (المهام) التي ستواجهها في البرمجة، ستكون صعبة جدًا في البداية، ولكن مع قراءة المشكلة مرة ثانية ثم تطبيق مهارات حل المشاكل ستبدأ بالوضوح شيئًا فشيئًا.

الآن وبعد أن عرفنا أنه يجب الصبر والعزيمة، ما هي مهارات حل المشاكل؟

1- اتقان مهارات لغة البرمجة المتعددة:

كلما تعرفنا على مهارات ومكتبات اللغة كلما وفرنا على أنفسنا جهدًا كبيرًا، لأنه ربما تضيع يومًا كاملاً ثم تكتشف أن هناك وظيفة تقوم بمثل ما كتبته أنت، وبالتالي هام جدًا التعرف على أنواع البيانات وهياكل البيانات data structure مثل القوائم والمصفوفات والقواميس list, dictionary, array والوظائف المدمجة built-in functions وما إلى ذلك لأنه سيجعلنا نتعرف على إمكانيات اللغة الرائعة.

2-تحليل المشكلة:

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

3- حل المشكلات بالورق:

قبل البدء في البرمجة، حاول حل المشكلة على ورق، اكتب الخطوات اللازمة لحل المشكلة وتحليلها (كتابة عادية وليست برمجة)، ويمكن استخدام مخططات التدفق flow chart

4- حل تحديات البرمجة:

قم بحل تحديات البرمجة والمشكلات باستمرار، يمكنك البدء بتحديات بسيطة وتدريجيًا الانتقال إلى مستوى أعلى.

مواقع مثل https://www.hackerrank.com/  و https://pynative.com/ توفر تمارين وتحديات متنوعة لتحسين مهاراتك في البرمجة.

5- تحسين القراءة والكتابة البرمجية:

هذه المهارة تتم عن طريق الاستعانة بخبرات الآخرين عن طريق قراءة الأكواد المكتوبة من قبل مطورين آخرين، سؤالهم عن كيفية حل المشكلة، طلب تقييم الشيفرات وطريقة الحل التي قمت أنت بها

الخلاصة:

هذه المهارة تتطلب محاولات متكررة وعزيمة وصبر وعدم يأس، وتطبيق النقاط السابقة.

بعض المقالات المفيدة في هذا المجال

https://academy.hsoub.com/programming/general/تعلم-البرمجة-r662/

https://academy.hsoub.com/programming/general/المبرمج-المحترف/

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يمكنكي تخصيص وقت معين من اليوم من ساعة إلى ساعة ونصف للتدريب على حل المسائل بلغة بايثون ويستحسن في بداية تعلمك البدء بمواقع تبدأ معك بمسائل بسيطة مثل
Edabit, Codewars
ويتم التدرج فيها للمستويات الأعلى والانتقال إلى مواقع أصعب في المسائل مثل 
Leetcode,CodeForces
للمزيد يمكنك الاطلاع على المقالات واجابات أسئلة سابقة.

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

مرحباً ,

يمكنك حل مسائل من عدة أنواع تعتمد على الخوارزميات , أيضاً هذه المهارة تأتي عند تنفيذ عدة مهام ومشاريع وتزيد خبرتك يوماً بعد يوم .

مثلاً هناك مسائل تتعلق بخوارزميات الفرز , مسائل أخرة تتعلق بالتفكير المنطقي , أو مسائل تتعلق بالمصفوفات والقوائم وغيره , أو مسائل تتعلق بالنجوم .

في بايثون , مثلاً قم بتنفيذ تابع تمرر له أبعاد مثلث ومن ثم تمرر كم مثلث بداخله , ويقوم التابع برسم هذا المثلث والمثلثات الأخرى بداخله بشكل منتظم , هذا يعتمد على تفكير برمجي واستخدام عدة امور في بايثون ومكتباتها .

إليك هذه الأسئلة والتعليقات تساعدك بشكل فعلي في تحسين مهارات Problem solving

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...