مقدمة من أكاديمية حسوب
دورة تطوير التطبيقات باستخدام لغة JavaScript
في هذه الدورة ستتعلم لغة جافا سكريبت, استخدام مكتبة React.js, بناء API الموقع بواسطة Node.js, تطوير تطبيق جوال باستخدام React Native, و في نهاية الدورة ستتعلم تطوير تطبيق محادثة شبيه بتطبيق WhatsApp.
دورة تطوير واجهات المستخدم
في هذه الدورة ستتعلم لغة HTML و لغة CSS و لغة JavaScript. من ناحية التطبيق العملي ستتعلم طريقة بناء واجهة متجر إلكتروني مكون من ست صفحات, تحويل خمسة تصاميم PSD إلى صفحات ويب, بناء واجهة مستخدم تشبه موقع يوتيوب, بناء لوحة تحكم إحترافية.
دورة تطوير تطبيقات الجوال باستخدام تقنيات الويب
في هذه الدورة ستتعلم أساسيات منصة كوردوفا و كيف تستخدمها لتطوير تطبيقات متعددة المنصات, بناء تطبيق لموقع Wordpress, تطوير تطبيق قائمة مهام, تطوير تطبيق حالة الطقس, تطوير تطبيق لمطعم باستخدام إطار العمل Ionic 4.
دورة تطوير تطبيقات الويب باستخدام لغة PHP
في هذه الدورة ستتعلم لغة PHP من الصفر, استخدام إطار العمل Laravel بشرح مفصّل و عملي, كيفية تطوير شبكة اجتماعية تشبه Instagram, بناء API لتطبيق جوال وفق أسلوب RESTful, تطوير موقع إعلانات مبوبة, تطوير نظام إدارة محتوى CMS كامل.
دورة تطوير تطبيقات الويب باستخدام لغة Ruby
في هذه الدورة ستتعلم البرمجة بلغة Ruby إنطلاقاً من أبسط المفاهيم وحتى بناء تطبيق حقيقي, إستخدام إطار العمل Ruby on Rails بشرح مفصّل و عملي, بناء تطبيق حقيقي عبارة عن شبكة اجتماعية تشبه تويتر, تطوير مجتمع الكتروني يشبه حسوب I/O.
دورة علوم الحاسوب
هذه الدورة معدة لتكون مدخل لعلوم الحاسوب و لغات البرمجة حيث ستتعرف فيها على أنظمة التشغيل و ستتعمق في نظام لينكس و في كيفية التعامل معه من خلال موجه الأوامر, بالإضافة إلى قواعد البيانات و أساسيات الشبكات و الخوادم و مبادئ الحماية والأمان في الويب.

البرمجة و الخوارزميات

هل البرمجة فعلاً صعبة؟

يرى البعض أن البرمجة معقدة و صعبة و هذا الأمر صحيح مئة في المئة إذا لم تُتقن أساسياتها مثل أي مجال آخر. البيت الذي لا أساس له سيُهدم عاجلاً أو آجلاً بعد معاناة من العيش فيه.

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

‏لكل برنامج فكرة، تُترجم هذه الفكرة على أرض الواقع ككود يحتوي عدة أوامر قد يصل عددها لآلاف أو حتى ملايين! و نحن كمبرمجين لا بد لنا أن نعرف وظيفة الأوامر التي نكتبها مهما كانت بسيطة أو معقدة.

إستخدام الأوامر بدون معرفة وظيفتها هو ما يجعل الشخص يرى البرمجة صعبة.

 

‏لماذا يجب معرفة وظيفة الكود؟

‏بصفتك مبرمج وترغب في تطوير برنامج, لعبة أو موقع فأنت ملزم بوجود تصوّر و معلومات و مخططات تستند عليها لتنفذ كافة المهام المطلوبة فيه, أي عليك أن تضع خطة مسبقة تضم كل ما يتعلق بالمشروع أو البرنامج المنوي تنفيذه من الألف إلى الياء (From A to Z).

و هنا تظهر لنا مشكلة أغلب المبرمجين: تحويل الفكرة أو المخطط الموضوع إلى برنامج متكامل!

و هنا تكمن أهمية الخوارميات 🙂 

 

ما هو إرتباط الخوارزميات بالبرمجة؟

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

لذلك من الأفضل لك أن تتعلم الخوارزميات قبل البرمجة فهي من الأساسيات المهمة, فهي تعلمك كيف ترتب و تنفّذ المهام وفق خطوات محددة و ممنهجة, و بمعنى آخر الخوارزميات تعلمك طريقة التفكير المنطقي الذي تحتاجه في البرمجة.

 

ما هو أفضل أسلوب شرح تتعلم منه الخوارزميات؟

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

وقد تجد آخر يشرحها بشكل مباشر بإستخدام لغة برمجة, ولا مشكلة في هذا الأسلوب طالما أنه يشرح عمل الكود البرمجي بدقة أيضاً.

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

 

هل الخوارزميات مرتبطة بلغات برمجيّة محددة؟

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

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

 

‏كيف أبدأ في تعلم الخوارزميات؟

‏برأيي، تنقسم الخوارزميات إلى قسمين:

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

2- خوارزميات لتبسيط و تسهيل تعاملك مع المشاريع و البرامج: ستبرمجها بنفسك ثم تطورها عند الحاجة.

 

كيف أطور قدراتي في الخوارزميات؟

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

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

معادلة بسيطة: كثرة التمارين و فهم كل ما كُتب سيزيد من قوة تحليلك.

 

‏من أين أتعلم الخوارزميات؟

في عالمنا اليوم و مع وجود المواقع و المنصات و غيرها نجد العديد من المصادر المتوفرة و بكثرة. أنصحك بهذه المصادر فهي مميّزة في تعليم الخوارزميات:

‏1- دورة مخصصة للمبتدئين:
harmash.com/algorithms

2- دورة مخصصة لمن درس المستوى السابق و درس بعده لغة برمجة حتى يطور نفسه بالخوارزميات و اللغة التي درسها:
harmash.com/algorithms-and-data-structure

3- مصادر أخرى (عربي + إنجليزي):
harmash.com/algorithms-and-data-structure/useful-resources

4- موقع إنجليزي يحتوي تمارين خوارزميات و هياكل البيانات:
Hackerrank.com

نبّهني عن
guest
3 تعليقات
الآراء المضمنة
شاهد جميع التعليقات
Saif Solo
Saif Solo
2 شهور سابقاً

بارك الله فيك استاذ 💙✌

يوسف
يوسف
2 شهور سابقاً

موضوع جيد

Almokashfy
Almokashfy
2 شهور سابقاً

شكرا جزيلا

جميع الحقوق محفوظة للموقع   ٢٠٢٠ - ٢٠١٤ ©
DMCA.com Protection Status

محتوى الموقع يخضع لرخصة (CC BY-NC-ND 4.0) التي لا تسمح باستخدام الشروحات لأغراض تجارية, إجراء تعديل عليها و نشرها في موقع آخر, وضع الشروحات في تطبيق أو في كتاب إلا في حال أخذ موافقة صريحة من إدارة الموقع.

© 2020 Harmash. All Content is licensed under CC BY-NC-ND 4.0 unless mentioned otherwise.