كل مرة بتسجل دخول في أي تطبيق، فيه كود شغال ورا الشاشة انت مش شايفه. ده الـ Backend.
الـ Backend هو الجزء اللي بيستلم الطلب لما تدوس «دخول» أو «اطلب»: يتأكد من بياناتك، ويحفظها في الداتا بيز، ويرجّعلك الرد. وعلشان تتعلمه صح فيه ترتيب: لغة برمجة واحدة، وبعدها الداتا بيز و SQL، وبعدها الـ API، وبعدين الـ Authentication، و Git معاك من أول يوم.
علّم على كل حاجة تخلصها وانت ماشي، علشان تعرف انت فين، وترجع تكمّل من نفس المكان.
قبل ما تبدأ
- ذاكر كل يوم، حتى لو شوية. المدد هنا محسوبة على ساعتين في اليوم. لو وقتك أقل هتاخد وقت أطول، وده عادي.
- المدد تقريبية. في ناس هتخلص أسرع وناس أبطأ. عدّي المرحلة لما تبقى جاهز فعلًا، مش لما الوقت يخلص.
- كل مرحلة فيها مشروع، والمشروع بيكبر معاك. هتبدأ ببرنامج مصاريف صغير، وكل مرحلة تزوّد عليه حاجة. متعديش للمرحلة اللي بعدها قبل ما تعمله بإيدك.
المرحلة 1 من 5
Python أو JavaScriptلغة واحدة بس، ومتلفش
المدة: 6 لـ 10 أسابيع
ابدأ بلغة واحدة بس، زي Python أو JavaScript. الاتنين ينفعوا للـ Backend، فمتقعدش أسابيع تختار. لو ناوي تتعلم Frontend كمان، JavaScript هتوفر عليك لغة. غير كده، اختار أي واحدة فيهم وكمّل.
ومتلفش بين اللغات. يعني متبدأش Python أسبوعين، وبعدين تسيبها علشان شفت فيديو بيقول إن لغة تانية أحسن. كل لغة جديدة بترجعك للصفر، والأساسيات اللي هنا هي هي في كل اللغات.
هتتعلم إيه
0 من 12اعمل بإيدك
برنامج مصاريف في الـ terminal. تضيف مصروف بمبلغه ونوعه وتاريخه، وتعرض كل المصاريف، وتحسب المجموع لكل نوع، وتمسح مصروف. والبيانات تتحفظ في ملف JSON، فتفضل موجودة لما تقفل البرنامج وتفتحه تاني.
تعدّي للمرحلة اللي بعدها لما
- تقدر تكتب برنامج صغير من ملف فاضي من غير ما تنسخ من حد
- بتستخدم الـ lists والـ dictionaries والـ functions من غير ما تبص على شرح
- لما الكود يضرب error، بتقرا الرسالة وتدوّر على السبب بنفسك
المرحلة 2 من 5
Database و SQLالمخزن اللي فيه البيانات
المدة: 3 لـ 4 أسابيع
الداتا بيز هي المخزن اللي فيه بيانات التطبيق: المستخدمين، والطلبات، والرسايل. و SQL هي اللغة اللي بتكلم بيها الداتا بيز، علشان تحفظ البيانات وترجعها وقت ما تحتاجها.
ابدأ بـ SQL وداتا بيز Relational زي PostgreSQL. لو فهمت الجداول والعلاقات اللي بينها، أي داتا بيز تانية هتبقى سهلة عليك.
هتتعلم إيه
0 من 12اعمل بإيدك
انقل برنامج المصاريف للداتا بيز. جدول للمصاريف وجدول للأنواع وبينهم علاقة. واكتب queries بتجاوب على أسئلة حقيقية: صرفت كام الشهر ده؟ وإيه أكتر نوع صرفت عليه؟ وإيه آخر 10 مصاريف؟ وخلي البرنامج يقرا ويكتب في الداتا بيز بدل ملف الـ JSON.
تعدّي للمرحلة اللي بعدها لما
- تقدر تصمم جداول لفكرة بسيطة، وتعرف كل جدول مربوط بالتاني إزاي
- بتكتب
JOINوGROUP BYمن غير ما تبص على شرح - الكود بتاعك بيكلم الداتا بيز بـ parameters، مش بنصوص ملزوقة في الـ query
المرحلة 3 من 5
APIالجرسون بين التطبيق والمطبخ
المدة: 4 لـ 6 أسابيع
الـ API زي الجرسون: بياخد الطلب من التطبيق، ويوديه المطبخ، ويرجعله بالرد. التطبيق مش بيكلم الداتا بيز مباشرة، بيكلم الـ API، والـ API هو اللي يقرر يعمل إيه.
هنا هتستخدم أول framework ليك. ولو اللغة والـ SQL عندك كويسين، هتلاقيه بيسهّل عليك حاجات انت فاهمها أصلًا، مش سحر.
هتتعلم إيه
0 من 12اعمل بإيدك
API للمصاريف. حوّل البرنامج لـ API: endpoints تضيف وتعرض وتعدّل وتمسح مصروف، و endpoint بيرجّع المجموع لكل نوع. وكله بيرجّع JSON و status codes صح، ومجرّب بـ Postman. ولو حابب تشوفه شغال قدامك، اربطه بصفحة HTML بسيطة بـ fetch.
تعدّي للمرحلة اللي بعدها لما
- تقدر تعمل CRUD كامل على جدول من الصفر، من غير ما تنسخ من tutorial
- البيانات الغلط بترجع
400برسالة واضحة، مش500 - تقدر تشرح إيه اللي بيحصل من ساعة ما الـ request يوصل لحد ما الرد يرجع
المرحلة 4 من 5
Authenticationالسيستم يعرف انت مين
المدة: 2 لـ 3 أسابيع
الـ Authentication يعني السيستم يعرف انت مين، ومسموحلك تعمل إيه. ده اللي بيحصل كل مرة بتسجل دخول، وده اللي بيمنع أي حد يشوف بيانات حد تاني.
ودي أكتر مرحلة الغلط فيها بيكلّف، لأن الغلطة هنا معناها بيانات ناس بتتسرق. فمتخترعش طريقتك: امشي على الطرق المعروفة، واستخدم مكتبات مجرّبة.
هتتعلم إيه
0 من 12اعمل بإيدك
ضيف مستخدمين للـ API. تسجيل حساب، ودخول، وخروج. كل مستخدم يشوف ويعدّل مصاريفه هو بس، ولو حاول يفتح مصروف حد تاني ياخد 403. وباسورد الداتا بيز والـ secret في .env، مش في الكود.
تعدّي للمرحلة اللي بعدها لما
- الباسوردات في الداتا بيز عندك hashed، ومفيش ولا واحد مكتوب كنص
- جربت تفتح بيانات مستخدم تاني وانت داخل بمستخدم عادي، واترفضت
- تقدر تشرح الفرق بين الـ session والـ JWT بكلامك
المرحلة 5 من 5
Gitمعاك من أول يوم
المدة: أسبوع، وبعدها كل يوم
Git بيحفظ كل نسخة من الكود بتاعك، علشان لو حاجة باظت ترجع لورا. و GitHub موقع بترفع عليه الكود ده، فأي حد تبعتله اللينك يشوف شغلك.
حطيته آخر مرحلة علشان تقف عنده وتتعلمه صح، بس هو المفروض يبقى معاك من أول يوم. ابدأ تستخدمه من أول برنامج تكتبه في المرحلة الأولى، حتى لو بـ 3 أوامر بس.
هتتعلم إيه
0 من 9اعمل بإيدك
الـ API بتاعك على GitHub. ارفع مشروع المصاريف في repository، وخلي تاريخ الـ commits يحكي المشروع اتبنى إزاي خطوة بخطوة. ومعاه README فيه الـ endpoints وإزاي حد يشغّله، وملف .env.example من غير أي أسرار حقيقية.
تعدّي للمرحلة اللي بعدها لما
- بتعمل commit بعد كل خطوة شغالة من غير ما تفكر
- لو بوّظت حاجة، بتعرف ترجع لآخر نسخة سليمة
- مفيش ولا باسورد ولا secret في أي repository عندك
سلم المشاريع
المشاريع هي اللي بتعلمك بجد، وهي اللي هتوريها لأي حد عايز يشغّلك. أول 4 مشاريع هم نفس برنامج المصاريف وهو بيكبر معاك في كل مرحلة، والخامس هو اللي بيقفل الخطة.
برنامج المصاريف
Python أو JavaScript و JSON
برنامج في الـ terminal بيحفظ في ملف. أول مرة تفكر البيانات هتتحفظ فين وإزاي.
المصاريف في داتا بيز
PostgreSQL و SQL
جداول مربوطة ببعض، و queries بتجاوب على أسئلة حقيقية عن فلوسك.
API للمصاريف
Express أو FastAPI و PostgreSQL
CRUD كامل بـ status codes صح، ومجرّب بـ Postman قبل أي Frontend.
API بمستخدمين
Authentication و Git
كل مستخدم بياناته ليه هو بس، والأسرار برة الكود، والمشروع كله على GitHub بـ README.
مشروع الـ portfolio: API لحجز المواعيد
API و SQL و Authentication و Git
مثلًا سيستم حجز لعيادة أو صالون: مستخدمين وأدمن، ومواعيد متاحة، ومينفعش اتنين يحجزوا نفس المعاد (هنا الـ Transactions بتفرق)، وصفحة docs للـ API. حط لينك الكود في الـ CV بتاعك، واكتب في الـ README إزاي حد يجربه.
مصادر مجانية
كل دول مجانيين أو فيهم جزء مجاني كبير. متجمعش مصادر كتير: اختار مصدر أساسي واحد لكل مرحلة وكمّل بيه، والباقي ارجعله لما تقف في حتة.
اللغة: Python
- The Python Tutorial (بيفتح في تاب جديدة)الشرح الرسمي لـ Python من الأساسيات، وهتفضل ترجعله طول الوقت.
- CS50P من Harvard (بيفتح في تاب جديدة)كورس Python للمبتدئين، فيه محاضرات وتمارين ومشروع في الآخر.
- Mastering Python من Elzero (بيفتح في تاب جديدة)كورس Python بالعربي على يوتيوب، من الصفر.
- موسوعة حسوب: Python (بيفتح في تاب جديدة)مرجع بالعربي لـ Python، لو حابب تقرا الشرح بالعربي.
اللغة: JavaScript و Node.js
- javascript.info (بيفتح في تاب جديدة)شرح JavaScript بالتفصيل من الأساسيات للمواضيع المتقدمة، ومع أغلب الدروس تمارين.
- Learn Node.js (بيفتح في تاب جديدة)الشرح الرسمي لـ Node.js: تشغّل JavaScript برة المتصفح، و
npm، والملفات.
Database و SQL
- SQLBolt (بيفتح في تاب جديدة)دروس SQL قصيرة، وكل درس فيه تمرين بتحله في المتصفح.
- PostgreSQL Tutorial (بيفتح في تاب جديدة)الشرح الرسمي من PostgreSQL نفسها: الجداول، والـ queries، والـ JOIN، والـ Transactions.
- موسوعة حسوب: SQL (بيفتح في تاب جديدة)مرجع SQL بالعربي.
API
- MDN: HTTP (بيفتح في تاب جديدة)شرح الـ HTTP من الأساس: الـ request والـ response والـ headers.
- MDN: HTTP status codes (بيفتح في تاب جديدة)كل الـ status codes ومعنى كل واحد، ارجعله كل ما تحتار.
- Express (بيفتح في تاب جديدة)الـ framework لو اخترت JavaScript، والـ docs الرسمية بتاعته.
- FastAPI Tutorial (بيفتح في تاب جديدة)الشرح الرسمي لـ FastAPI لو اخترت Python، خطوة بخطوة.
- Postman (بيفتح في تاب جديدة)أداة تجرب بيها الـ API بتاعك من غير ما تكتب Frontend.
Authentication
- OWASP: Authentication Cheat Sheet (بيفتح في تاب جديدة)إزاي تعمل تسجيل دخول صح، والغلطات اللي بتعمل ثغرات.
- OWASP: Password Storage Cheat Sheet (بيفتح في تاب جديدة)إزاي تحفظ الباسوردات، والـ hashing المناسب ليها.
- MDN: HTTP cookies (بيفتح في تاب جديدة)الـ cookies بتشتغل إزاي، وإعداداتها زي
HttpOnlyوSecure. - JWT Introduction (بيفتح في تاب جديدة)شرح الـ JWT: شكله، وأجزاؤه، وإمتى يتستخدم.
Git
- Pro Git (بيفتح في تاب جديدة)الكتاب الرسمي لـ Git، ببلاش. أول 3 فصول كفاية جدًا في الأول.
- Learn Git Branching (بيفتح في تاب جديدة)تمارين تفاعلية بترسملك الـ branches قدامك وانت بتكتب الأوامر.
أكتر الأخطاء اللي بشوفها
- إنك تحفظ أداة بدل ما تفهم البيانات ماشية إزاي. الـ Backend مش إنك تحفظ framework معين. الـ Backend إنك تفهم الطلب بيوصل إزاي، والبيانات بتتحفظ فين، وبترجع إزاي. لو فهمت ده، هتنقل لأي لغة بسهولة. فقبل أي مشروع، ارسم على ورقة البيانات ماشية منين لفين.
- إنك تلف بين اللغات. Python أسبوعين، وبعدين Go علشان سمعت إنها أسرع، وبعدين Java. كل مرة بتبدأ من الصفر. خلّص الخطة كلها بلغة واحدة، والتانية هتبقى أسهل بكتير لما تحتاجها.
- إنك تبدأ بـ framework قبل ما تعرف اللغة. Django أو Express من أول أسبوع، فتلاقي نفسك بتنسخ كود مش فاهمه. اللغة الأول، وبعدها الـ SQL، وبعدين الـ framework.
- إنك تعمل تسجيل الدخول بطريقتك، أو تحفظ الباسورد كنص. الغلطة هنا مش زرار شكله وحش، دي بيانات ناس بتتسرق. استخدم hashing ومكتبات مجرّبة، وامشي على OWASP.
- إنك تنسخ كود من AI أو tutorial من غير ما تفهمه. في الـ Backend الكود اللي مش فاهمه ممكن يبقى ثغرة. خلي الـ AI يشرحلك، مش يكتب بدالك.
بعد كده
لما تخلص الخطة دي وتعمل مشروع الـ portfolio، دي الخطوات اللي بعدها:
- Deployment و Docker: ترفع الـ API على سيرفر حقيقي يفتحه أي حد. و Docker بيخلي المشروع يشتغل بنفس الشكل على جهازك وعلى السيرفر.
- Testing: تكتب كود بيجرب الـ endpoints بتاعتك لوحده، بأدوات زي pytest لـ Python أو Jest لـ JavaScript.
- Caching: تحفظ النتايج اللي بتتطلب كتير في مكان أسرع من الداتا بيز، زي Redis، علشان الـ API يرد أسرع.
احفظ الصفحة دي، وارجعلها كل ما تخلص حاجة وعلّم عليها. ولو وقفت في مرحلة ومش فاهم، ارجع للي قبلها، غالبًا المشكلة هناك.