الـ Full Stack مش معناها إنك تعرف كل حاجة.
معناها إنك تقدر تبني المشروع من أوله لآخره: الشاشة اللي المستخدم بيشوفها، والسيرفر اللي شغال وراها وبيرد عليها. والترتيب: HTML و CSS، وبعدها JavaScript، وبعدها React، وبعدين Node.js، وبعدها قاعدة بيانات زي PostgreSQL، وفي الآخر الـ Deployment.
علّم على كل حاجة تخلصها وانت ماشي، علشان تعرف انت فين، وترجع تكمّل من نفس المكان.
قبل ما تبدأ
- ذاكر كل يوم، حتى لو شوية. المدد هنا محسوبة على ساعتين في اليوم. لو وقتك أقل هتاخد وقت أطول، وده عادي.
- المدد تقريبية. في ناس هتخلص أسرع وناس أبطأ. عدّي المرحلة لما تبقى جاهز فعلًا، مش لما الوقت يخلص.
- كل مرحلة فيها مشروع. متعديش للمرحلة اللي بعدها قبل ما تعمله بإيدك. ومن مرحلة React، هتفضل تكبّر نفس المشروع لحد ما يبقى أونلاين.
المرحلة 1 من 6
HTML و CSSهيكل الصفحة وشكلها
المدة: 3 لـ 4 أسابيع
HTML هي هيكل الصفحة، و CSS هي شكلها. ودول أول حاجة، علشان أي مشروع Full Stack في الآخر هو شاشات بيستخدمها ناس.
متقعدش فيهم شهور. خد الأساس اللي هنا، ولو عايز تفاصيل أكتر، فيه خطة الـ Frontend لوحدها.
هتتعلم إيه
0 من 9اعمل بإيدك
Landing Page لمنتج. header فيه لوجو ولينكات، وعنوان كبير وزرار، و3 كروت مميزات، وفورم «اشترك» في الآخر. وتبان مظبوطة على الموبايل والكمبيوتر.
تعدّي للمرحلة اللي بعدها لما
- تقدر تحوّل صورة تصميم بسيط لصفحة شبهها بـ Flexbox أو Grid
- صفحتك مفيهاش scroll بالعرض على الموبايل
- بتعمل commit بعد كل خطوة شغالة
المرحلة 2 من 6
JavaScriptحركة الصفحة
المدة: 6 لـ 8 أسابيع
JavaScript هي حركة الصفحة: اللي بيخليها ترد عليك لما تدوس أو تكتب. ودي أهم مرحلة في الخطة دي بالذات، علشان هتكتب بيها الناحيتين: الشاشة والسيرفر.
كل اللي جاي، React و Node.js، هو JavaScript في الآخر. فخد وقتك هنا ومتستعجلش.
هتتعلم إيه
0 من 11اعمل بإيدك
تطبيق طقس. تكتب اسم مدينة، وتجيب الطقس بتاعها من API مجاني زي Open-Meteo، وتعرض حالة التحميل، ورسالة واضحة لو حصل error. وآخر 5 مدن دورت عليهم يتحفظوا بـ localStorage.
تعدّي للمرحلة اللي بعدها لما
- تقدر تعمل صفحة تفاعلية من الصفر: تاخد من المستخدم، وتجيب بيانات، وتغيّر الصفحة
- بتكتب
mapوfilterوasyncوawaitمن غير ما تبص على شرح - عملت 3 مشاريع صغيرة على الأقل بـ JavaScript لوحدها
المرحلة 3 من 6
Reactالشاشات الكبيرة من قطع صغيرة
المدة: 5 لـ 6 أسابيع
React بتبني بيها الشاشات الكبيرة من قطع صغيرة اسمها components: كارت، وزرار، وقايمة. وتستخدم القطعة الواحدة أكتر من مرة.
ادخلها لما تبقى مرتاح في JavaScript. لو JavaScript عندك ضعيفة، React هتبان صعبة، مش علشان هي صعبة، علشان هي JavaScript في الآخر.
هتتعلم إيه
0 من 10اعمل بإيدك
لوحة مهام بـ React. مهام مقسمة على 3 أعمدة: لسه، وشغال، وخلص. تضيف مهمة، وتنقلها بين الأعمدة، وتمسحها. البيانات لسه في الـ state و localStorage، وفي المرحلة الجاية هتيجي من سيرفر انت كاتبه.
تعدّي للمرحلة اللي بعدها لما
- تقدر تبني شاشة كاملة من components صغيرة، وتنقل البيانات بينهم بالـ props
- بتعرف تحط الـ state في المكان الصح
- بتجيب بيانات من API وتعرض التحميل والـ error من غير ما تبص على شرح
المرحلة 4 من 6
Node.jsالسيرفر بنفس الـ JavaScript
المدة: 4 لـ 6 أسابيع
Node.js بتخليك تكتب السيرفر بنفس الـ JavaScript اللي اتعلمتها. يعني مش محتاج لغة جديدة، محتاج تفهم السيرفر بيستقبل الطلب ويرد عليه إزاي.
وهنا هتستخدم Express، وده framework بسيط ومشهور لـ Node.js. ولو حابب تتعمق في الناحية دي، فيه خطة الـ Backend لوحدها.
هتتعلم إيه
0 من 10اعمل بإيدك
API للوحة المهام. سيرفر Express فيه endpoints تضيف وتعرض وتعدّل وتمسح مهمة، وكلها بترجّع JSON و status codes صح. البيانات لسه في array جوه السيرفر. وبعدين خلي تطبيق React يكلم السيرفر ده بـ fetch بدل localStorage.
تعدّي للمرحلة اللي بعدها لما
- تقدر تعمل CRUD كامل في Express من ملف فاضي
- تطبيق React بتاعك بيكلم السيرفر بتاعك، وانت فاهم الطلب ماشي إزاي من الزرار للسيرفر ورجوع
- لما طلب يفشل، بتعرف المشكلة في الشاشة ولا في السيرفر
المرحلة 5 من 6
PostgreSQLتحفظ بيانات المستخدمين
المدة: 4 لـ 5 أسابيع
قاعدة البيانات هي اللي بتحفظ بيانات المستخدمين: حساباتهم، والحاجات اللي بيضيفوها. من غيرها، أول ما السيرفر يقف كل حاجة تضيع.
و PostgreSQL داتا بيز Relational، يعني البيانات في جداول مربوطة ببعض. ولو فهمت SQL هنا، هتعرف تتعامل مع أي داتا بيز تانية. وبما إنك بتحفظ مستخدمين، هنا كمان هتعمل تسجيل الدخول.
هتتعلم إيه
0 من 11اعمل بإيدك
لوحة المهام بمستخدمين. انقل المهام من الـ array للداتا بيز، وضيف تسجيل حساب ودخول. كل مستخدم يشوف مهامه هو بس، والمهام تفضل موجودة لو السيرفر وقف واشتغل تاني.
تعدّي للمرحلة اللي بعدها لما
- بتصمم جدولين مربوطين وتكتب
JOINمن غير ما تبص على شرح - الباسوردات عندك hashed، وجربت تفتح مهام مستخدم تاني واترفضت
- المشروع كله شغال على جهازك: React بيكلم Express، و Express بيكلم PostgreSQL
المرحلة 6 من 6
Deploymentيفتحه أي حد من النت
المدة: 2 لـ 3 أسابيع
الـ Deployment إنك ترفع المشروع على سيرفر حقيقي، يفتحه أي حد من النت. طول ما المشروع على جهازك بس، محدش هيشوفه غيرك.
ودي أكتر مرحلة ناس بتأجلها، مع إنها هي اللي بتحوّل الكود لحاجة الناس تستخدمها. متستناش مشروع كبير علشان ترفعه: ارفع أول نسخة شغالة، حتى لو صغيرة.
هتتعلم إيه
0 من 10اعمل بإيدك
لوحة المهام أونلاين. ارفع التلات أجزاء: React، والسيرفر، والداتا بيز. وابعت اللينك لصاحبك، وخليه يعمل حساب ويضيف مهام من موبايله. لو اشتغل عنده، يبقى سلّمت أول مشروع Full Stack.
تعدّي للمرحلة اللي بعدها لما
- المشروع شغال على لينك حقيقي، وأي حد يقدر يعمل حساب ويستخدمه
- مفيش ولا secret في الكود اللي على GitHub
- لما حاجة تقع، بتفتح الـ logs وتعرف السبب
سلم المشاريع
المشاريع هي اللي بتعلمك بجد، وهي اللي هتوريها لأي حد عايز يشغّلك. أول 4 عملتهم في المراحل فوق، ولوحة المهام فيهم بتكبر معاك لحد ما تبقى أونلاين. والخامس هو اللي بيقفل الخطة.
Landing Page
HTML و CSS
صفحة منتج شغالة على الموبايل والكمبيوتر. هنا بتتعلم تنقل تصميم بالظبط.
تطبيق طقس
JavaScript و fetch و API
أول مرة تجيب بيانات من سيرفر حد تاني، وتتعامل مع التحميل والـ error.
لوحة مهام
React
شاشة من components صغيرة، والـ state في مكانه الصح.
لوحة مهام بسيرفر وداتا بيز
React و Node.js و PostgreSQL
نفس اللوحة، بس بمستخدمين، وبيانات محفوظة في داتا بيز، وسيرفر انت كاتبه، وكلها أونلاين.
مشروع الـ portfolio: مشروع كامل أونلاين
React و Node.js و PostgreSQL و Deployment
مثلًا موقع حجز مواعيد لعيادة أو صالون: صفحة حجز للزباين، ولوحة أدمن بتشوف الحجوزات، ومينفعش اتنين يحجزوا نفس المعاد. صغير، بس كامل ومرفوع وأي حد يقدر يستخدمه. حط اللينك ولينك الكود في الـ CV بتاعك.
مصادر مجانية
كل دول مجانيين أو فيهم جزء مجاني كبير. متجمعش مصادر كتير: اختار مصدر أساسي واحد لكل مرحلة وكمّل بيه، والباقي ارجعله لما تقف في حتة.
كورسات من الأول للآخر
- The Odin Project: Full Stack JavaScript (بيفتح في تاب جديدة)مسار كامل من HTML لحد Node.js والداتا بيز، بيعتمد على إنك تقرا وتبني مشاريع على جهازك.
- Full Stack Open (بيفتح في تاب جديدة)كورس من University of Helsinki بيعلمك React و Node.js، وبتبني فيه تطبيقات كاملة بإيدك.
- freeCodeCamp (بيفتح في تاب جديدة)تمارين جوه المتصفح لـ HTML و CSS و JavaScript، ومشاريع تعملها بنفسك.
HTML و CSS و JavaScript
- MDN Web Docs (بيفتح في تاب جديدة)المرجع الأساسي لـ HTML و CSS و JavaScript، وفيه قسم للمبتدئين خطوة بخطوة.
- javascript.info (بيفتح في تاب جديدة)شرح JavaScript بالتفصيل من الأساسيات للمواضيع المتقدمة، ومع أغلب الدروس تمارين.
- JavaScript من Elzero (بيفتح في تاب جديدة)كورس JavaScript بالعربي على يوتيوب، من الصفر.
React
- react.dev (بيفتح في تاب جديدة)الشرح الرسمي لـ React، مكتوب للمبتدئين وفيه تمارين تفاعلية. ابدأ بيه قبل أي كورس.
- Vite (بيفتح في تاب جديدة)الأداة اللي هتعمل بيها مشروع React جديد.
Node.js و Express
- Learn Node.js (بيفتح في تاب جديدة)الشرح الرسمي لـ Node.js من الأول.
- Express (بيفتح في تاب جديدة)الـ docs الرسمية لـ Express: الـ routing والـ middleware.
- MDN: Express و Node.js (بيفتح في تاب جديدة)شرح خطوة بخطوة بيبني موقع كامل بـ Express.
PostgreSQL
- SQLBolt (بيفتح في تاب جديدة)دروس SQL قصيرة، وكل درس فيه تمرين بتحله في المتصفح.
- PostgreSQL Tutorial (بيفتح في تاب جديدة)الشرح الرسمي من PostgreSQL نفسها.
- Prisma Docs (بيفتح في تاب جديدة)لو اخترت ORM، دي الـ docs الرسمية لـ Prisma.
Deployment
- Vercel Docs (بيفتح في تاب جديدة)إزاي تنشر تطبيق React من GitHub.
- Render Docs (بيفتح في تاب جديدة)إزاي ترفع سيرفر Node.js وتظبط الـ Environment Variables.
- Neon Docs (بيفتح في تاب جديدة)داتا بيز PostgreSQL أونلاين توصل بيها السيرفر بتاعك.
أكتر الأخطاء اللي بشوفها
- إنك تجمع أدوات كتير من غير ما تسلّم مشروع واحد كامل. الـ Full Stack الحقيقي في رأيي مش اللي عارف أدوات كتير، ده اللي سلّم مشروع كامل شغال، حتى لو صغير. مشروع واحد مرفوع وأي حد يقدر يستخدمه، أحسن من 10 كورسات خلصتهم.
- إنك تفتكر Full Stack يعني تعرف كل حاجة. مش محتاج 5 لغات و3 frameworks. JavaScript واحدة بتكتب بيها الناحيتين، وداتا بيز واحدة، وكفاية جدًا في الأول.
- إنك تبدأ بـ React أو Node.js قبل ما تبقى مرتاح في JavaScript. الاتنين JavaScript في الآخر. لو هي ضعيفة، هتحس إن كل حاجة بعدها صعبة ومش مفهومة.
- إنك تأجل الـ Deployment لآخر المشروع. أول مرة ترفع فيها هيطلعلك مشاكل مكنتش شايفها على جهازك. ارفع بدري، وارفع كتير.
- إنك تنسخ كود من AI أو tutorial من غير ما تفهمه. وانت لسه بتتعلم، خلي الـ AI يشرحلك، مش يكتب بدالك. ده في السيرفر أخطر، لأن الكود اللي مش فاهمه ممكن يبقى ثغرة.
بعد كده
لما تخلص الخطة دي وتعمل مشروع الـ portfolio، دي الخطوات اللي بعدها:
- TypeScript: هي JavaScript بس بأنواع (types)، فبتمسك أخطاء كتير قبل ما تشغّل الكود، في الشاشة وفي السيرفر.
- Next.js: framework مبني على React، بيخليك تكتب الشاشات وجزء من السيرفر في مشروع واحد.
- Testing و Docker: تكتب كود بيتأكد إن مشروعك شغال، و Docker بيخلي المشروع يشتغل بنفس الشكل على جهازك وعلى السيرفر.
احفظ الصفحة دي، وارجعلها كل ما تخلص حاجة وعلّم عليها. ولو وقفت في مرحلة ومش فاهم، ارجع للي قبلها، غالبًا المشكلة هناك.