Algorithmsمفهوم الخوارزميات

مفهوم الخوارزميات

ما هي الخوارزميات و لم يجب أن تتعلمها قبل أن تتعلم أي لغة برمجة؟

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


ما هي المشكلة التي يتعرض لها الجميع و تصبح سبب خوفهم من البرمجة؟

أغلب ألأشخاص الذين يحاولون أن يتعلموا البرمجة تراهم يذهبون مباشرةً في الإتجاه الخاطئ, فهم يبدؤون مباشرةً بدراسة لغة برمجة معينة مثل (Java, C, C++) دون أن يتعلموا مبادئ البرمجة الأساسية, و دون أن يقوموا بوضع الأفكار الأساسية للبرنامج ثم تحليلها و تأديتها واحدة تلو الأخرى.

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

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

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


كيف سأتعلم الخوارزميات؟

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


ماذا أفعل إن لم أستطع فهم إحدى الشروحات؟

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

أريد تعلم الخوارزميات و لكنني لا أريد تعلم لغة جافا

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

إذاَ في هذه الدورة أنت لن تتعلم لغة جافا, بل ستتعلم جزء بسيط جداً منها لا يتجاوز 1% مما شرحناه فيها في دورات جافا حيث أننا سنشرح لك فقط ما تحتاجه منها حتى تتمكن من تجربة الكود على الكمبيوتر.

لتصدق ما قلناه لك الآن, يمكنك إلقاء نظرة سريعة على دورة تمارين خوارزميات و هياكل البيانات التي قمنا فيها بوضع تمارين خوارزميات و معها الحل بخمس لغات برمجية هي بايثون, جافا, C, C++ و #C. من فضلك إطلع عليها فقط, لا تبدأ بها الآن لأنك غير مستعد لمستوى التحديات البرمجية الموضوعة فيها.

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

نصائح و إرشادات للمبرمج الجديد الذي يطمح للإحتراف


أولاً

يجب أن يكون لديك ميول نحو عالم المعلوماتية بشكل عام و تعرف كيف تستخدم الكمبيوتر و يستحسن أن تمتلك كمبيوتر خاص بك لتجربة ما تشاء دون أي قلق.


ثانياً

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


ثالثاً

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


رابعاً

المعرفة باللغة الإنجليزية أساسية في عالم البرمجة لأنك ستجد كل ما تريد تعلمه موجود في كتب باللغة الإنجليزية و هي مجانية و أكثر من رائعة و أي سؤال تطرحه باللغة الإنجليزية ستجد جوابه و تحل جميع مشاكلك.


خامساً

عندما تقرأ أي شيء بأي لغة كان مكتوب و لا تفهمه, يمكنك إستخدام المترجم المجاني google translate الذي أنشأته شركة google.


سادساً

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


سابعاً

عند دراسة أي لغة برمجة من كتاب, إبحث دائماً عن آخر إصدار للغة البرمجة التي تريد دراستها و آخر إصدار موجود للكتاب و إبحث عن الكتب الكبيرة التي قد يصل حجمها إلى أكثر من ١٠٠٠ صفحة, لأن هذه الكتب تكون مشروحة بأسلوب مبسط و سهل الفهم و غنية بالأمثلة و مشروحة بشكل مفصل, و إليك أهم موقع لتحميل كتب البرمجة الجديدة المجانية باللغة الإنجليزية it-ebooks.info و هذا موقع باللغة العربية kutub.info.
ننصحك دائماً بالكتب الأجنبية لأنه لا يوجد أي مؤلف عربي قام بإنشاء كتاب شامل حقاً أو أعاد النظر في الكود الذي كتبه منذ عدة سنوات, أي لن تجد في كتابه كل تقنيات الكود الجديدة التي ستجدها في الإصدارات الجديدة في الكتب الأجنبية لأن الكتب الأجنبية يقوم بكتابتها العديد من المبرمجين, و ليس مبرمج أو اثنين كما في حالتنا و هذا الذي يجعل كتبنا ضعيفة أو قديمة بعض الشيء.


ثامناً

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

  • أغنى رجل في العالم هو Bill Gates , و هو مبرمج و مؤسس شركة microsoft.

  • أغنى شاب في العالم هو Mark Zuckerberg , و هو مبرمج و مؤسس موقع facebook.

الطريقة المعتمدة في التعلم

الأسلوب الذي ستتعلم فيه الخوارزميات معنا هو نفس الأسلوب المعتمد من قبل المعاهد و الجامعات.


ملاحظة

الهدف إعطاءك فكرة عامة للأسلوب المتبع في الشرح, لا داعي لأن تفهم الكود المكتوب الآن لأنك ستفهمه في الدروس اللاحقة.


مثال

نقول لك على سبيل المثال: أكتب برنامج يطبع جملة "Hello World" عندما تقوم بتشغيله.

بعدها ستجد النتيجة التي نريد الحصول عليها عند تشغيل البرنامج.

نتيجة التشغيل

ثم ستجد الكود كخوارزمية و الذي يجب أن تكتبه على الورقة.

الخوارزمية

مقدمة حول الخوارزميات

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

كود الجافا

public class MyAlgorithm {
 
    public static void main (String[] args) {
          System.out.print("Hello world");
    }
 
}
		

ثم شرح كل جزء في كود الجافا بشكل مفصل, لكننا لن نقوم بشرح هذا الكود الآن لأننا سنشرحه في الدرس القادم.

الطريقة الصحيحة للتعلم و التي تنمي قدراتك التحليلية

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

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

دورات

أدوات

إخفاء الرسالة

من فضلك إسمح لنا بعرض الإعلانات

أي قم بإيقاف مانع الإعلانات (Ad Block) عن موقعنا

سبب عرض الإعلانات في الموقع

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

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

طريقة إيقاف مانع الإعلانات

إذا كنت لا تعرف كيف توقف مانع الإعلانات (Ad Block) إبحث في جوجل أو يوتيوب عن "How to disable adblock" و سيظهر لك خطوات بسيطة جداً لفعل ذلك.

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

إخفاء الرسالة