خارطة طريق C++ 2025: من الصفر إلى الاحتراف في عام واحد

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

لماذا لا تزال لغة C++ ذات صلة وما الذي تغير في عام 2025؟

\n\n

في كل عام، يدفن البعض لغة C++. "معقدة جدًا"، "قديمة"، "لماذا نتعلمها إذا كان هناك Rust؟" — نسمع هذا. لكن في عام 2025، لا تزال C++ حية ومزدهرة. تعمل عليها محركات الألعاب (Unreal Engine)، والأنظمة المالية، والمتصفحات (Chrome, Firefox)، وقواعد البيانات (MongoDB, ClickHouse)، وحتى المركبات الفضائية التابعة لناسا.

\n\n

لماذا؟ لأن C++ تقدم ما لا تقدمه اللغات الأخرى: التحكم الكامل في الذاكرة + التجريد دون تكاليف إضافية. إذا كنت بحاجة إلى استخراج 100% من أداء العتاد، فستختار C++.

\n\n

لكن في عام 2025، لم تعد C++ كما كانت في عام 1998. ظهرت الوحدات (modules)، والمفاهيم (concepts)، والروتينات المشاركة (coroutines)، والنطاقات (ranges). يجب أن تأخذ خارطة طريق C++ 2025 هذه التغييرات في الاعتبار. لن نضيع الوقت على الممارسات القديمة — فقط ما هو مطلوب الآن.

\n\n

المرحلة 1: الأساسيات (الأسابيع 1–4)

\n\n

لا يمكنك التقدم بدون أساس. لكننا سنتعلم بطريقة حديثة.

\n\n

ما يجب إتقانه

\n
    \n
  • القواعد الأساسية: المتغيرات، الأنواع، الحلقات، الشروط
  • \n
  • الدوال: التحميل الزائد، المراجع، الثبات (const)
  • المؤشرات والمراجع — يجب فهمها جيدًا
  • الفئات: المنشئات، المدمرات، this
  • المتجهات والسلاسل النصية (std::vector, std::string)
\n\n

مثال على الكود الذي يجب أن تكتبه في الأسبوع الأول:

\n\n
#include <iostream>\n#include <vector>\n#include <string>\n\nvoid print_names(const std::vector<std::string>& names) {\n    for (const auto& name : names) {\n        std::cout << name << "\\n";\n    }\n}\n\nint main() {\n    std::vector<std::string> students = {"آنا", "إيفان", "ماريا"};\n    print_names(students);\n    return 0;\n}\n
\n\n

هام: لا تكتب using namespace std; في المشاريع الحقيقية — فهذا أسلوب سيء. تعوّد على std:: من اليوم الأول.

\n\n

موارد المرحلة 1

\n
    \n
  • كتاب "Programming: Principles and Practice Using C++" (ستراوستروب) — أفضل بداية
  • LearnCPP.com — دليل تفاعلي مجاني
  • YouTube: The Cherno (سلسلة C++) — يشرح المؤشرات بشكل ممتاز
\n\n

المرحلة 2: C++ المتقدم (الأسابيع 5–10)

\n\n

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

\n\n

موضوعات للدراسة

\n
    \n
  • RAII (اكتساب الموارد هو التهيئة) — النمط الرئيسي في C++
  • المؤشرات الذكية: std::unique_ptr, std::shared_ptr, std::weak_ptr
  • دلالات النقل (Move semantics) و std::move
  • التحميل الزائد للمشغلات
  • الوراثة، الدوال الافتراضية، تعدد الأشكال
  • الاستثناءات: try, catch, throw
\n\n

مثال يوضح قوة دلالات النقل:

\n\n
#include <iostream>\n#include <vector>\n#include <string>\n\nclass BigData {\npublic:\n    BigData(size_t size) : data_(new int[size]), size_(size) {\n        std::cout << "Constructor\\n";\n    }\n    \n    // Move constructor\n    BigData(BigData&& other) noexcept \n        : data_(other.data_), size_(other.size_) {\n        other.data_ = nullptr;\n        other.size_ = 0;\n        std::cout << "Move constructor\\n";\n    }\n    \n    ~BigData() { delete[] data_; }\n    \nprivate:\n    int* data_;\n    size_t size_;\n};\n\nint main() {\n    std::vector<BigData> vec;\n    vec.push_back(BigData(1000));  // Move, not copy!\n    return 0;\n}\n
\n\n

نصيحة: لا تحاول حفظ كل شيء. ركز على RAII والمؤشرات الذكية — فهي تمثل 80% من النجاح في C++ الحديثة.

\n\n

المرحلة 3: C++ الحديث (C++17/20/23) — الأسابيع 11–16

\n\n

هنا ننفصل عن C++98 وندخل إلى عام 2025. تعلم خارطة طريق C++ 2025 يجب أن يتضمن هذه الميزات.

\n\n

ما يجب إتقانه بالتأكيد

\n