تريد أن تصبح مطور ويب ؟

قرار جيد وإذا كنت في البداية فانك حتما تتسائل عن الطريق الصحيح .

كيف أبدا من اين ابدا مالذي يجب ان أتعلمه كتب أدوات لغات برمجة ... الخ .

كلنا مررنا بهذه المرحلة أتكلم عن نفسي كمطور ويب وكنت في اشد الحاجة الي احدهم يتكلم لغتي وسبقني الي هذا المجال ليرشدني الي الطريق الصحيح او يقدم لي نصائح مجانية

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

ما احتاجه منك يا صديقي هو القرأه  بعناية والتركيز لتستوعب الفكرة وبعدها التنفيذ والصبر الطويل لتكمل الطريق لوحدك والذي سياخذ منك اشهر وربما سنوات ولكنها ستكون ممتعة جدا بحيث  

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

انا شخصيا افعل ذلك واخصص من وقتي اسبوعيا ان لم اقل يوميا لاقرا كتاب ما او اتابع مدونات وكتابات مطورين محترفين اغلبهم او كلهم اجانب .

في البداية ماهو مطور الويب وما دوره ؟

لكي نكون واضحين من البداية مطور ويب هنا اقصد به غير ما ستجدة في المواقع والشركات المتخصصة واعني به هنا ان تقوم بانشا وتطوير مواقع ويب بنفسك من اول خطوة الي اخر خطوة ولكن قبلها دعنا نسرد المسميات الخاصة بالعمل في مجال تطوير وتصميم مواقع الويب .

في الشركات الكبيرة وبشكل عام في مجال الويب الدقيق فان هناك عدة ادوار وعدة وظائف ومهام يزاولها عدة اشخاص بالتناسق وحسب قواعد معينة ليقومو بتطوير موقع معين

هذا يتم في الشركات المتخصصة وفي الفرق المتخصصة التي تطور مواقع كبيرة وتعمل كفريق وحسب قواعد عمل معينة

ولكي تفهم الفكرة اكثر دعنا نقرب مفهوم صناعة موقع ويب ونمثل بة صناعة شي اخر مثلا

لو اعتبرنا ان عملية تصميم موقع ويب شبيهة بعملية تصنيع سيارة مثلا

فاننا يمكن ان نقرب المفهوم كالتالي

ينقسم العمل  بشكل عام في مجال تطوير وتصميم الويب الي جزئين

- الاول يسمي BackEnd Development

بالمعني الحرفي يكون التطوير الخلفي او تطوير الواجهة الخلفية  ولا تروقني هذة التسمية لكن بكلمات اوضح يعني تطوير وكتابة الكود البرمجي او الجز البرمجي الخاص بالموقع والذي يختص بعمليات حفظ البيانات واسترجاعها والتعامل مع قواعد البيانات وغيرة من العمليات البرمجية بعيدا عن واجهات الموقع وشكلة الخارجي فقط العمليات الداخلية ما ورا الواجهات

وفي مجال صناعة السيارة يمكن ان يكون هذا الجز هو صناعة وتطوير وتصميم محرك السيارة والاجزا الداخلية لها من التروس الخاصة بالسيارة الي الية الفرامل والتحكم والسيطرة وغيرها من الاجزا الداخلية بعيدا عن الشكل الخارجي للسيارة

-الثاني يسمى  FrontEnd Development

ويعني كما هو واضح من اسمه المعاكس للاول انة يهتم بتصميم الجز الأمامي للموقع او الجز  الواضح للمستخدم من الموقع الواجهات وشكل الموقع وكل ما يظهر للمستخدم او للزائر من شكل والوان الموقع وغيرة  

يمكنك ان تعتبرة في مجال صناعة السيارة الجز او المهمة التي يتم فيها صناعة وتصميم الشكل الخارجي واطار السيارة وداخلها من الزجاجات الي الشكل الخاص بالسيارة والاثاث الخاص بها  اي انة عملية فنية اقرب منها الي التقنية


التقسيم اعلاة هو اعم التقسيمات والذي يقول ان تصميم الويب له مهمتين اساسيتين


 الاولي برمجية تتطلب معرفة ومهارة برمجية باحدى لغات البرمجة الخاص بالويب ويتم فيها انشا الكود البرمجي وقواعد البيانات الكلاسات الخاصة بالتعامل مع قواعد البيانات وارجاع المعلومات منها وحفظها اليها . هذة المهمة يا صديقي لا تفرق كثيرا عن تطوير الكود لاي تطبيق اخر بمعني ان هناك بعض لغات البرمجة ومنصات التطوير حين تتعامل معها وحين تكون في هذا الجز فانك تطور كود عام يمكن ان تستخدمه في موقع ويب او في تطبيق ويندوز اتكلم هنا تحديدا عن الدوت نت وسيفهمني من يطور بها او سبق له العمل بها فالكود الناتج من هذة الخطوة هو كود c# خالص او فيجول بيسك دوت نت حسب اللغة المستخدمة .

المهمة الثانية هي تطوير وتصميم واجهات الموقع وربطها مع العمل الناتج في الخطوة الاولي بالطبع من يتعامل مع هذة المرحلة يحتاج الي دارية ولو قليلة بالعمل بالمرحلة الاولي لكي يتمكن من  الربط والاستفادة من الكود الناتج في الخطوة الاولي اي انه يحتاج ان يصمم واجهات الموقع ويظهر فيها البيانات فاذا كان الموقع مثلا موقع تجاري فانة سيعرض المنتجات وصورها والتي سوف يجلبها من المكتبة او الكود البرمجي الخاص بالمنتجات فقط هو سيتعامل مع الكود عن طريق وظائف معينة او واجهات واقصد بها هنا مفهوم الـ interface  الشائعة في مجال البرمجيات



الي هنا التقسيم بسيط وهذا هو الاغلب لكن في المشاريع الكبيرة والشركات المتخصصة فان الادوار تختلف وتنقسم بدورها الي ادوار فرعية


مثلا هناك المصمم او مصمم الويب عملة ومجاله يختص فقط بانشا وتصميم واجهات المواقع وعناصره دون ان يتدخل في الجز البرمجي او قواعد البيانات او اي شي اخر

وهناك مطور الويب او مبرمج الويب ويقصد بة غالبا انشا الكود البرمجي وقد يكون عملة محددا ضمن مجال معين

وهناك محلل النظام يهتم برسم وتخطيط النظام او المشروع المراد تطويرة في اول خطوة ليصمم مخططات تفصيلية ورسومات هندسية بلغة معينة مثل UML تشرح وتوصف النظام من منظور عام بغض النظر كيف وباي لغة سيتم تطبيق هذا النظام

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

وهناك المختصين بوظائف اهميتها تختلف حسب اهمية الموقع وحجمة مثل مدخلي البيانات او مطوري المحتوى والاشخاص المختصين بالاشهار والتاكد من توافق الموقع مع قواعد واساسيات الاشهار .


حسنا هنا سنتوقف عن التركيز عن الادوار ولا تفزع صديقي فقط كن علي اطلاع ولتتضح لك الصورة واستعد للخطوة التالية .

انت كلهم   حين تقرر ان تصبح مطور ويب حر او محترف لتعمل لحسابك .

ستحتاج لبعض المهارات لتتعلمها وتتقنها بقوة وبعضها ستقرا عنها انت بنفسك فيما بعد ولن تحتاج اليها ولديك اكثر من طريق واكثر من خيار لتحقق هدفك

بعض الادوار لن تحتاجها فقط ستحتاج الاتي في مهمتك .

- يحب ان يكون لن دراية ولو قليلة بكيفية تحليل وتصميم تصور كلي للنظم او للموقع

الاغلب انك تملك هذة الخطوة مسبقا لان اغلبنا قادمين من كليات وجامعات ومعاهد تخصصو فيها بعلوم الحاسب او الشبكات او التقنية بشكل عام كل ما هو قريب للحاسوب يدرس فية مواد مثل تحليل النظام او هندسة البرمجيات او تحليل قواعد البيانات . هي مهارات تنمو معك مع الوقت ومع عملك المستمر هي مهارة ذهنية اكثر من اي شي اخر تتعلق بكيف تنظر لنظام قائم او كيف ترسم صورة كلية لمشروع تريدة او موقع تحب ان تبرمجة وتضع الخطط لما سيحتويه وكيف ستخزن بياناته . بيانات المستخدمين ,   المنتجات المشتركين المشتريات السيارات المقالات ... الخ


- يجب ان تكون علي دراية باساسيات البرمجة او ما يسمي Programming 101


وهذة ايضا يتم اخذها في الجامعات او المعهد الذي اتيت منه او مازلت تدرس فية يعني ان يكون لك ولو دراية بسيطة بكيفة عمل البرامج والاكواد كيفت تكتب وحدة برمجية بسيطة تجمع عددين  تطبع ملف معين تخزن بيانات معينة تجري عليها عمليات معينة كيف تعمل الدوارات التكرارية وجمل التحكم  if statement , for loops  بغض النظر عن اللغة التي اخذتها . احيانا يتم تدريس كل هذة المفاهيم بمواد حاسبوية غير متعلقة بلغة برمجية محددة  مثل الخوارزميات وهذا شي اجمل لانها تعطيك مفهوم عام تعمل علية كافة لغات البرمجة .


- يفضل ان يكون لديك معرفة بكيفية عمل شبكة الانترنت ولو من باب الثقافة


وماهي البرتوكولات الخاصة بشبكة الانترنت ماهو الويب ومفاهيم بسيطة ماهو السرفر ومن هو العميل في مفهوم الشبكات وكيف يتم استظافة المواقع وماهي الدومينات وكيف تعمل ومن يهتم بحفظها والية عمل الويب بشكل عام والمتصفحات وغيرة .



- حبذا لو عندك ثافة عامة عن ادوات التطوير وبرمجيات العمل علي الويب مما تتكون صفحة الويب العادية ماهي HTML & CSS وماذا نعني بنظم ادارة المحتوي وماهي لغات البرمجة الخاصة بالويب PHP ASP.NET وغيرها .



سنتوقف هنا في هذا الجز .

واعرف ان الموضوع سيترك في راسك علامات استفهام كثيرة ولكن هذا ما اريدة في البداية .

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

في الجز القادم سيتم التركيز علي الادوات واللغات والمهارات التي تحتاجها في طريقك لتصبح مطور ويب وسنتناولها باسهاب انشالله ومنها ما تم ذكرها هنا وتركها بدون توضيح .