لو بتفكر تتعلم البرمجة ومش عارف تبدأ منين، فالمقال ده ليك. ناس كتير بتضيع شهور بين فيديوهات متفرقة ولغات مختلفة، والسبب مش إنهم مش أذكياء، السبب إنه مفيش خريطة واضحة بتمشي عليها.
- المقال ده لمين؟
- الخطوة 1: اختار لغة واحدة وكمّل فيها
- الخطوة 2: افهم الأساسيات الأول
- الخطوة 3: ابدأ تحل مسائل بدري
- الخطوة 4: هياكل البيانات (Data Structures)
- الخطوة 5: الخوارزميات الأساسية
- الخطوة 6: الرياضيات في البرمجة
- الخطوة 7: جهّز نفسك للانترفيو
- جدول زمني تقريبي لمرحلة الأساسيات والـ Problem Solving
- إيه اللي بعد الأساسيات والـ Problem Solving؟
- أسئلة شائعة
في المقال ده هنمشي خطوة بخطوة من أول مرة تفتح فيها محرر الكود، لحد ما تبقى قادر تحل مسائل وتجهز لمقابلات الشغل. ومش محتاج أي خلفية سابقة.
المقال ده لمين؟
- مبتدئ عمره ما كتب كود قبل كده.
- طالب في كلية حاسبات أو هندسة عايز يبدأ صح.
- حد جرب كذا كورس وحس إنه مش بيفهم.
- حد عايز يدخل البرمجة التنافسية أو يجهز للانترفيوهات.
الخطوة 1: اختار لغة واحدة وكمّل فيها
تقدر تبدأ بـ Python لأنها سهلة، أو بـ C++ لأنها أقرب لفهم طريقة شغل الحاسوب وأسرع في التنفيذ، وهي كمان اللغة الأكتر استخدامًا في مسابقات البرمجة، وفيها مكتبة STL قوية.
الأهم من اللغة نفسها إنك متغيّرهاش كل أسبوعين. المنطق اللي هتتعلمه (المتغيرات والشروط والتكرار) واحد في كل اللغات. في مسارنا بنبدأ بـ C++ عشان تتأسس صح وتكمل للـ Problem Solving من غير ما تبدأ من الأول تاني.
الخطوة 2: افهم الأساسيات الأول
قبل أي حاجة متقدمة، لازم تبقى متمكن من:
- المتغيرات وأنواع البيانات.
- الشروط
ifوelse. - التكرار
forوwhile. - الدوال (Functions).
- المصفوفات (Arrays) والنصوص (Strings).
الخطوة 3: ابدأ تحل مسائل بدري
متستناش لما تخلّص كل حاجة عشان تحل مسائل. بعد ما تفهم الأساسيات، حل مسألة كل يوم حتى لو سهلة. ابدأ بموقع LeetCode: فيه مسائل متدرجة، وابدأ بالمسائل المصنّفة Easy، دي اللي بتحوّل المعلومة لمهارة.

الخطوة 4: هياكل البيانات (Data Structures)
دي المرحلة اللي بتفرّق بين مبتدئ ومبرمج محترف. هتتعلم الـ vector والـ set والـ map والـ stack والـ queue، وإزاي تختار الهيكل المناسب لكل مشكلة. اختيار الهيكل الصح ممكن يفرق بين حل بيشتغل في ثانية وحل بياخد دقايق.
الخطوة 5: الخوارزميات الأساسية
هنا بتبدأ تفكر زي المبرمجين. المواضيع الأساسية:
- البحث والترتيب.
- الـ Recursion والـ Backtracking.
- الـ Greedy.
- البرمجة الديناميكية (Dynamic Programming).
الخطوة 6: الرياضيات في البرمجة
لما تحب تدخل البرمجة التنافسية، هتحتاج حاجات زي نظرية الأعداد والـ Geometry والـ Combinatorics. متقلقش، بتتعلمها تدريجي ومن خلال المسائل، ومش لازم تكون شاطر رياضة من الأول.
الخطوة 7: جهّز نفسك للانترفيو
مقابلات الشغل بتعتمد على أنماط مسائل متكررة. الأفضل إنك تتدرب على مجموعة متنوعة ومرتبة من المسائل تغطي الأنماط الأساسية، بدل ما تحل عشوائي.
جدول زمني تقريبي لمرحلة الأساسيات والـ Problem Solving
| المرحلة | المحتوى | المدة التقريبية |
|---|---|---|
| الأساسيات | لغة البرمجة والمفاهيم الأولى | 4 إلى 6 أسابيع |
| هياكل البيانات | STL وهياكل أساسية | 3 إلى 4 أسابيع |
| الخوارزميات | Recursion و Greedy و DP | 2 إلى 3 شهور |
| المتقدم والانترفيو | رياضيات ومسائل مقابلات | حسب هدفك |
إيه اللي بعد الأساسيات والـ Problem Solving؟
المقال ده مخصص لمرحلة الأساسيات والـ Problem Solving بس. بعد ما تبني الأساس ده (لغة + هياكل بيانات + خوارزميات) هتلاقي مجالات تانية كتير تكمل فيها حسب هدفك:
- قواعد البيانات (Databases): الـ SQL وتصميم الجداول والـ Joins.
- البرمجة كائنية التوجه (OOP) وتصميم البرمجيات.
- Git و GitHub للشغل مع فريق.
- تطوير الويب (Frontend و Backend) أو تطبيقات الموبايل.
- أساسيات نظم التشغيل والشبكات.
- مشاريع عملية تبني بها ملف أعمال (Portfolio).
أسئلة شائعة
هل المقال ده بيغطي كل حاجة في البرمجة؟
لأ. ده مسار الأساسيات والـ Problem Solving، وهو الأساس، وبعده بتختار مجال زي الويب أو قواعد البيانات حسب هدفك.\n!faq هل لازم أكون شاطر في الرياضيات؟ | لأ. في البداية محتاج حساب بسيط ومنطق بس. الرياضيات بتتعلمها تدريجي مع المسائل.
هل الـ C++ صعبة على المبتدئ؟
فيها تفاصيل أكتر من Python، لكن لو اتعلمتها بالترتيب مش صعبة، وبتديك أساس أقوى في فهم البرمجة.
محتاج كمبيوتر قوي؟
لأ. أي لابتوب عادي كفاية للتعلم وحل المسائل.
أبدأ بكورس مجاني ولا مدفوع؟
ابدأ بالمجاني عشان تعرف أسلوب الشرح وتحدد مستواك، وبعدها كمّل بالمستوى المناسب ليك.

وتقدر كمان تتابع الشرح فيديو على قناة Mr Algorithms على يوتيوب.