السلام عليكم
اريد ان أتعلم البرمجة وتصميم المواقع .. هل ابدأ في كورس cs50 وبعد كده php ؟ وشكراً
التعليقات
لا يمكن تعلم البرمجة بشكل عام ما لم تحدد هدف/مجال معين لتعلمه، ومن الجيد أنك قمت بعمل هذه الخطوة وإخترت تعلم برمجة وتطوير المواقع. مجال تطوير المواقع ينقسم إلى قسمين رئيسيين وهما تطوير واجهات المستخدم Frontend وتطوير الواجهات الخلفية Backend، وهنا شرح مبسط عن كلٍ منهما:
- تطوير واجهات المستخدم Frontend: يهدف إلى برمجة كل ما يراه المستخدم في المتصفح من أزرار ونصوص وصور ونماذج .. إلخ، وتستخدم في هذا القسم لغات مثل HTML و CSS و JavaScript، وقد تستعين ببعض إطارات العمل والمكتبات لكي تسهل عليك العمل مثل Bootstrap و jQuery و React.js .. إلخ.
- تطوير الواجهات الخلفية backend: ويهدف هذا القسم إلى برمجة الجزء الخفي من الموقع مثل التعامل مع قواعد البيانات والخوادم وإدارة المستخدم والحماية .. إلخ، ويتم ذلك من خلال لغات مثل PHP أو JavaScript (مع Node.js) أو Ruby أو Python، ويمكنك أيضًا أن تستعين بأحد إطارات العمل الجاهزة التي توفر عليك العمل مثل Laravel أو Express.js أو Django ..إلخ.
لذلك يجب أن تتعلم بعض التقنيات أولًا لكي تستطيع تعلم برمجة وتطوير المواقع، مثل HTML و CSS و JavaScript (إن أردت أن تكمل تعمل تطوير واجهات المستخدم Frontend)، ثم يمكنك أن تنتقل إلى تطوير الواجهات الخلفية من خلال أحد اللغات فقط (ليس عليك سوى تعلم أحد اللغات لتطوير الواجهات الخلفية على عكس تطوير واجهات المستخدم).
مطور واجهات المستخدم يسمى Frontend Developer بينما مطور الواجهات الخلفية يسمى Backend Developer، كما يمكنك تعلم كلا المجالين وحينها يكون المسمى الوظيفي لك هو Full-Stack Developer أي أنك تجيد التعامل مع المجالين.
بالنسبة لمصادر التعلم، فيمكنك أن تبدأ بدورة CS50X المجانية ولاحظ أنها تحتوي على نفس محتويات دورة CS50 المدفوعة لكن الفرق يكمن في الشهادة في النهاية، وهذه الدورة سوف تعطيك لمحة عن أغلب ما ستحتاجه في مجال البرمجة بشكل عام وتطوير المواقع بشكل خاص، لكن لاحظ أنك لن تبدأ في تطوير مواقع في هذه الدورة سوى في الأسبوع الثامن (تحتوي الدورة على عشر أسابيع)، وبعد الإنتهاء من الدورة أنصحك بالتعمق في اللغات والتقنيات الخاصة بالويب مرة أخرى، وذلك لأن هذه الدورة تعطيك لمحة فقط عن البرمجة بشكل عام، ولا تتعمق في كثير من التفاصيل.
ملاحظة: إن كنت تواجهة مشكلة يف اللغة الإنجليزية أو تريد دورة مشابهة باللغة العربية، فيمكنك أن تبحث عن "CS50 بالعربي" في اليوتيوب حيث يقوم الكثير من الأشخاص بشرح نفس محتوى الدورة ولكن باللغة العربية، وإن مصدر مدفوع أكثر إحترافية وباللغة العربية فأنصحك بدورة علوم الحاسوب المقدمة من أكاديمية حسوب:
بعد تعلم الأساسيات السابقة (سواء من دورة CS50 أو من اليوتيوب أو من دورة علوم الحاسوب)، يمكنك الإنتقال إلى تطوير الواجهات الخلفية وتعلم أحد اللغات (إن أخترت Python أو JavaScript فسوف يكون لديك خلفية مسبقة لأنك سوف تتعلم كلا اللغتين في دورة CS50 أو دورة علوم الحاسوب)، ثم الإنتقال لتعلم أحد إطارات العمل الخاص بهذه اللغة مثل إطار Laravel الخاص بلغة PHP أو Express.js الخاص بلغة JavaScript أو Django الخاص بلغة بايثون .. إلخ.
أنصحك أيضًا بعمل مشروع ولو صغير في كل مرحلة من المراحل السابقة لأن هذا الأمر سوف يقوي من إتقانك للتقنيات واللغات وسوف يرسخ المعلومات التي تحصل عليها من الدورات، بالإضافة لمعرفة فائدة بعض العناصر التي قد تبدو مجهولة الفائدة للوهلة الأولى.
إن أردت معلومات مفصلة أكثر ومزيد من الشرح عن كل مجالات البرمجة بشكل عام أو تطوير الويب بشكل خاص، فيمكنك الإطلاع على دليل حسوب الشامل لتعلم البرمجة: