20

هل تفضل وجود دورة في الخوارزميات أم في أنماط التصميم (Design Patterns)؟

أفكر في خطة للصيف وفيها إنشاء دورة قصيرة عبارة عن فيدوهات على يوتيوب عن أحد موضوعين:

الموضوع الأول في تحليل وتصميم الخوارزميات تتحدث عن أساسيات تحليل خوارزمية ما من ناحية كفاءة الآداء واستخدام الذاكرة. ثم تتطرق إلى بعض المواضيع في هيكلة البيانات (Datat structure) ثم بعض المواضيع في تصميم الخوارزميات مثل الاستقراء (induction)، خوارزمية فرق تسد [1] (divide and conquer)، البرمجة الديناميكية [2] (dynamic progrmming) ... إلخ.

الموضوع الثاني عن أنماط التصميم في البرمجة بالكائنات [3] (Object-oriented design patterns). تتحدث عن كيفية استخدام أنماط جاهزة في التصميم _ربما مع التعديل عليها_ لجعل الكود منظم أكثر، وأسهل من ناحية الصيانة، أسهل من ناحية إضافة وظائف أكثر فيما بعد، وأسهل من ناحية المقروئية.

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

الموضوع الثاني جيد لكنه يتطلب ممن سيتابعه معرفة مسبقة بالبرمجة الكائنية، ولا أظن أنها مستخدمة بكثرة بين المبرمجين.

[1] خوارزمية فرق تسد

http://ar.wikipedia.org/wik...

[2] برمجة ديناميكية

http://ar.wikipedia.org/wik...

[3] نماذج التصميم (هندسة البرمجيات)

http://ar.wikipedia.org/wik...

الثانية Design Pattern

وهي مهمة جدا وأحد مساقات في الجامعة الاسلامية ...تدرس في خطة الماجستير - مطبقة علي الجافا كاحدي لغات البرمجة الكائنية

ولكن اين رابط قناتك عاليوتيوب

مشكور جداً مقدماً

فعلا مهمة ومستخدمة بكثرة في المشاريع الكبيرة (أحيانا حتى نستخدمها بدون وعي بذلك)

قناتي للأسف ليس عليها شيء حاليا، لكن حينما أبدأ سأنشر الرابط هنا بإذن الله.

العفو وشكرا لاهتمامك.