القائمة الرئيسية

الصفحات

نظرة عامة على لغة ++c والخوارزميات

++Cنظرة عامة على اللغة

هل أنا جاهز لتعلم لغة C++؟

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

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

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


الخوارزمياتنظرة عامة

  • مفهوم الخوارزميات
  • أريد تعلم الخوارزميات و لكنني لا أريد تعلم لغة جافا
  • نصائح و إرشادات للمبرمج الجديد الذي يطمح للإحتراف
  • الطريقة المعتمدة في التعلم
  • الطريقة الصحيحة للتعلم و التي تنمي قدراتك التحليلية

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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





ما هي لغة C++

C++ تكتب سي بلاس بلاس باللغة العربية و هي لغة برمجة تجميعية Compiled ) و كائنية Object Oriented ) تضم العديد من مميزات لغات البرمجة عالية المستوى High Level ) و منخفضة المستوى Low Level ) و هذا يعني أنك قادر على فعل ما تشاء بها.
هذه اللغة الرائعة مصممة لتعمل على جميع أنظمة التشغيل المعروفة مثل ويندوز, ماك, لينكس, إندرويد إلخ.. و هي تعتبر من أقوى و أشهر لغات البرمجة على الإطلاق و يطلق عليها "أم اللغات" نظراً لأنها لغة قوية و موجودة منذ زمن طويل.

تم بناء هذه اللغة بالأساس كتطوير للغة C من قبل Bjarne Stroustrup أثناء عمله في مختبرات Bell لتكون أطروحته في رسالة الدكتورا عام 1979.

من ذلك الحين و حتى وقتنا الحالي تم تطوير هذه اللغة بشكل مستمر و اخر إصدار رسمي لها هو C++ 17.

لا يوجد شعار رسمي للغة C++ و لكن في العادة و عند البحث عن دورات لتعلمها أونلاين فإنك تجدهم يستخدموا شعار يشبه التالي.


ماذا يمكنني ان أطور بلغة C++

لغة C++ تعتبر لغة عامة الهدف General Purpose ) مما يعني انها قادرة على بناء أي برنامج.
القوة الحقيقة لها تتجلى في المشاريع و البرامج الكبيرة مثل:

  • بناء و تطوير انظمة التشغيل ومن اشهر انظمة التشغيل المبنية بهذه اللغة Windows, Linux, MacOS, Android.
  • بناء و تطوير البرامج الكبيرة مثل برامج أدوبي ( مثل Photoshop و Premier ) و المتصفح Firefox.
  • بناء و تطوير الالعاب و من أشهر الألعاب التي طورت بهذه اللغة Counter Strike, MacOSDoom, Warcraft.


مميزات لغة C++ بالنسبة للمطورين

  1. لها شعبية هائلة و هناك الكثير من المراجع لمن يريد تعلمها.
  2. القدرة على التحكم باستخدام الذاكرة بشكل كبير.
  3. خفيفة و سريعة وتستهلك موارد نظام أقل مقارنة بلغات أخرى مثل جافا و بايثون.
  4. بالامكان تحويل كود مكتوب بلغة C لكود بلغة C++ بسهولة.

مميزات لغة C++ عن باقي لغات البرمجة

  1. مفتوحة المصدر
    لن تدفع أي مبلغ لتعمل على لغة C++, فهي مصدر مفتوح و مجانية و ستبقى مجانية مدى الحياة.

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

  3. البساطة
    تعلمها سهل جداً بعد أن تفهم برمجة الكائنات.

  4. سرعة الترجمة
    تتم ترجمة لغة C++ إلى أوامر يفهمها الجهاز بشكل سريع جداً.
  1. لغة كائنية Object Oriented )
    مع أن لغة C++ صممت لتكون قريبة من عتاد الجهاز و قريبة للغات منخفضة المستوى إلا أنها تتيح لمستخدمها بناء الكلاسات و التعامل معها بطرق منهجيات البرمجة الكائنية OOP ) مثل الوراثة و تعدد الأشكال و غيرها من المبادئ التي ستتعلمها لاحقاً في الدورة.

  2. متعددة النماذج
    تسمح لغة C++ لمستخدمها باختيار الطريقة المناسبة له لكتابة الكود البرمجي من بين عدة نماذج مختلفة مثل النموذج الهيكلي Structural ) الشبيهة بلغة C و النموذج الكائني Object Oriented ) الشبيه بلغة C++.
  1. الدعم الكبير
    لغة C++ من اللغات القديمة نسبيا و المنتشرة بشكل كبير مما جعل منها لغة ذات شعبية كبيرة و مصادر تعلم مختلفة و متعددة و دعم كبير من قبل مجتمع المطورين.

لمن تم إعداد هذا المرجع

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

في الدرس التالي سنرشدك لتحميل الأدوات التي سنستخدمها لبناء و تشغيل كود C++ على حاسوبك.





تعليقات