Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

تحديات برمجيةالطريقة الصحيحة للتمرن على حل المشاكل البرمجية

  • فكر بنفسك قبل النظر إلى الحل
  • تجربة إيجاد الحل بأكثر من لغة
  • نظرة على أقسام و دروس الدورة
  • هل سيتم شرح الكود الموضوع في الحل

فكر بنفسك قبل النظر إلى الحل

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

أيضاً، لا تحاول أن تحل أي تمرين قبل قراءة المطلوب فيه بهدوء تام لأنك إن لم تفهم المطلوب منك ستقوم بالتفكير بشكل خاطئ من الأساس.


متى أنظر للحل الموضوع تحت السؤال؟

في حال حاولت كثيراً و لم تصل للحل بنفسك، هنا يجب عندها أن تشاهد الحل الموضوع في الموقع, ثم تقوم بتجربته بنفسك, في الأخير يجب أن تدرسه لتفهم سبب كتابة كل حرف فيه.


إذا استطعت حل السؤال بنفسي, هل يجب أن أشاهد الحل الذي وضعتموه أنتم؟

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

تجربة إيجاد الحل بأكثر من لغة

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


لما وضعتم حلول التمارين بأكثر من لغة؟

هناك عدة أسباب لذلك, منها:

  • منها لتتأكد بنفسك أن المنطق البرمجي يطبق على جميع اللغات بكل سهولة.
  • حتى لا نجبرك على التعلم بلغة محددة. اللغة التي تعرفها طبّق عليها.
  • تحويل الكود من لغة لأخرى أمر سهل جداُ علينا حيث أننا نقوم أولاً بحل السؤال بلغة واحدة ثم نقوم بكتابة الحل المرادف له في اللغات الأخرى.

نظرة على أقسام و دروس الدورة

بعد تجربة كبيرة في شرح مادة الخوارزميات و هياكل البيانات لطلاب المعاهد و الجامعات وجدنا أن أفضل طريقة لتقسيم دروس الدورة هي التالية:

  • قسم خاص للتمارين التي يطلب فيها من الطالب رسم أشكال هندسية.
  • قسم خاص للتمارين التي يطلب فيها من الطالب التعامل مع الأرقام و النصوص.
  • قسم خاص للتمارين التي يطلب فيها من الطالب إجراء عمليات حسابية.
  • قسم خاص للتمارين التي يطلب فيها من الطالب التعامل مع المصفوفات.
  • قسم خاص للتمارين التي يطلب فيها من الطالب تقسيم كلاسات المشروع.
  • قسم خاص للخوارزميات المعروفة عالمياً و التي يطلب فيها من الطالب إجراء بحوث عنها.
  • قسم خاص ستتعلم فيه كيف تقيس أداء الخوارزميات.

إذاً في كل قسم ستركز على نوع محدد من التمارين و لكنك في النهاية ستتعلم كل شيء إن شاء الله.

هل سيتم شرح الكود الموضوع في الحل

على الأغلب كلا, لن نقوم بشرح الكود المكتوب لأننا سبق و علمناك بتفصيل ممل كيف تقوم بتحليل أي كود جاهز في دورة الخوارزميات.
من ناحية أخرى, إذا كنت قد درست أي لغة برمجة مثل جافا أو بايثون من موقعنا فكن على يقين أن كل دالة مستخدمة في الكود قد قمنا بشرحها بتفصيل شامل من قبل.

أيضاً, سنحاول دائماً وضع أسهل الحلول التي يمكن أن يفهمها الجميع و قد نضع أكثر من حل للتمرين الواحد إذا وجدنا أن ذلك سيكون مفيداً لكم.

في الدرس التالي ستبدأ بالتحدي الأول.