[اخر الاخبار][6]

برمجة
سيكيورتي
لينكس

web development ايه وليه وازاي ؟

 ايه الweb developing وليه منتشر؟

اعتقد ان من اشهر المصطلحات المعروفة في الsoftware engineering او ممكن تقول مجال الtechnology عموما ولو حبينا نعرفه مش هنلاقي احسن من تعريف wikipedia ليه 
هو مصطلح واسع للاعمال المشاركة في تطوير المواقع الالكترونية للشبكة العنكبوتية العالمية للانترنت او للإنترانت (الشبكة الخاصة) , تطوير الويب يتراوح ما بين تطوير صفحة ثابتة بسيطة بنص عادي إلى تطبيقات الإنترنت المعقدة والأعمال التجارية الإلكترونية وخدمات الشبكة الاجتماعية. 
مصطلح الweb development لاسباب كتير هنقول اولا اسباب انتشارها ما بين الناس اللي لسه بتبدأ تتعلم coding عموما:
  • الناس شافت start-ups كتير بتساوي مليارات حاليا ابتدت بمجرد website لشاب وطبعا facebook عندنا خير مثال علي كده 
  •  ظهور دروس كتير ودورات بالعربي في المجال دا واللي كان مشكلة كبيرة بسبب قلة المحتوي العربي جدا واللي لسه برده لحد دلوقتي قليل جدا 
  • السهولة -المزعومة- للمجال عموما ان كل واحد يقولك انا لو قفلت في وشي هذاكر شهرين واشتغل web developer وهنقول ليه مزعومة قدام

طيب ايه اسباب انتشار الweb developing في العموم وانتشارها بين الناس اللي شغالة في مجال الsoftware engineering وقبل ما نقول الاسباب خلينا نوضح شوية حاجات 

هندسة البرمجيات زيها بالظبط زي الهندسة المدني بتمشي بمراحل مش مجرد انك بتعمل برنامج وخلاص في مراحل كتير بتعملها قبل ما تبدأ تشتغل بتخطط للمشروع وبتعمل دراسة مادية للموضوع وايه نوع المستخدمين اللي هيتعاملوا مع البرنامج وخطوات تانية كتير والcoding مجرد خطوة متأخرة من الخطوات دي وعموما انت لما تيجي تعمل برنامج في انت هتعمله للاجهزة الموجودة حاليا للhardware الموجود في السوق والhardware حاليا بيتيح ليك 3 انواع من البرامج :
  • desktop application برنامج بيشتغل علي الكمبيوتر 
  • mobile application برنامج بيشتغل علي الموبايل
  • web application برنامج موجود علي سيرفير وانت بتشغلة عن طريق المتصفح بتاعك 
فا اسباب تفضيل الweb development حاليا علي النوعين التانين واسباب انتشارة هما عبارة عن سؤالين :
  • ليه تقيد المستخدم بتاعك ؟ عشان تعمل desktop application فا انت بتعمل تقييد لنفسك وللمستخدم بتاعك بحاجات معينة زي مثلا ان البرنامج بتاعك محتاج هاردوير معين يشتغل عليه. ومحتاج نظام تشغيل معين يشتغل عليه وعشان تعملة يشتغل علي كل الانظمة فا هتبذل مجهود اكتر 
  • ليه تخلي صيانة البرنامج بتاعك اصعب من المفروض ؟ لو عندك desktop application او mobile application وعايز تصلح حاجة معينة او حتي انك تعمل update للبرنامج بتاعك فا انت بتعمل التعديلات بتاعتك بعدها بتطلب من المستخدم بتاعك يحملها طيب المستخدمين اللي مبيحبوش يحملوا كل شوية ؟ هل جربت التغيير اللي انت عملته دا في كل انظمة التشغيل اللي انت بتدعمها ؟ طيب انت دلوقتي عندك اكتر من اصدار والمفروض انك تدعمهم كلهم هل دا سهل ؟ 

 ازاي تكون web developer ؟ 

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

الموضوع بينقسم لحاجتين : 
  • frontend ودا ازاي الموقع بيظهر للusers الاشكال والالوان وترتيب الحاجات جواة وهكذا..
  • backend دا ازاي الحاجات بتشتغل ازاي الداتا بتظهر عندي ازاي الموقع بيخليك تسجل عنده وهكذا..







 نبدأ بايه هي اساسيات  الfrontend :
  • HTML دي لغة ترميز او تشكيل هي لغة بتستخدم عشان تعمل الهيكل بتاع الصفحة زي مثلا وحاول تبني بيت الhtml دي الاساسات بتاعة البيت
  • CSS مش عارف بالظبط اشرحها ازاي من غير ما اقول مثال ليها! لو افترضنا انك عملت الاساسات الcss هي اللي هتقولك انت هتقسم البيت ازاي هتدي كل اوضة مقاسات اد ايه شكل الاوضه هيكون ازاي الالوان بتاعتها وكل دا
  • javascript دي بقي جزء اللوجيك عند المستخدم! لما تيجي تدخل علي موقع معين فا انت بتروح تحمل الصفحة دي من علي السيرفير اللي عليه الموقع عشان الصفحة تتعرضلك علي المتصفح بتاعك طيب بعد ما الصفحة بتحمل ؟ انا بقي عاوز حاجة تظهر للمستخدم بعد فترة معينه او عاوز حاجة تختفي من قدامة او عاوزة يتحول لصفحة تانية وهكذا كل دا javascript المسؤولة عنه
تاني حاجة هي اساسيات الbackend :  
  • لغة برمجة : في لغات برمجة كتير مفيش حاجة احسن من حاجة فيهم كل واحده فيهم ليها مميزاتها وعيوبها ودول ابرزهم
    • php
    • python with django
    • node.js
    • ruby on rails
    • c# with asp.net
  •  DBMS (database management system) نظام ادارة قواعد البيانات : وزي الاسم ما مبين دا عبارة عن الحاجة اللي بتدير الداتا بتاعتك ازاي تحتفظ بيها ازاي ترجعها وبرده في منهم كتير ومفيش حاجة مفضلة بس التفضيل بيكون علي حسب لغة البرمجةبتاعتك يعني مثلا في لغات برمجة بتقدم دعم افضل لداتابيز معينة وهكذا ودي برده ابرز الانواع
    • oracle mysql
    • mariadb
    • MongoDB
    • microsoft sql
دي كدة الاساسات بتاعتهم بس هل كدة انت خلصت ؟ هل كدة انت مؤهل لسوق العمل ؟ في الاجابة لا لسه!

ازاي تبقي مؤهل لسوق العمل ؟

هنا بقي بتيجي المعضلة اللي بدأت تبعد ناس كتير عن انها تتعلم تكون web developers ليه ؟ لان عدد الناس اللي بتتعلم الاساسيات دي بيزيد كل يوم فا بالتالي المتطلبات اللي اصحاب الشغل بيطلبوها بتبدأ تعلي والمتطلبات دي بتتغير كل فترة صغير اسرع من سرعة الناس علي التعلم! 
بس لو حاولنا نحصر ايه الحاجات اللي تعملها عشان تكون مؤهل لسوق العمل هتكون كالأتي :
  • اتعلم الframeworks للاساسيات اللي اتعلمتها; الframeworks علي الرغم من ان الموضوع هيكون رخم ليك انك فاعد تتعلم حاجات كتير ورا بعض لكن مستقبلا الframeworks هتسهل عليك جدا بعد كدة وهتلاقي نفسك بتوفر وقت كتير زي ايه بقي ؟
     
    • bootstrap دا framework للhtml و css عبارة عن شوية كلاسات جاهزة لكل حاجة هتحتاجها وانت بتصمم الموقع وبكذا شكل وكمان بيساعدك علي تقسيم الصفحة بسهولة وطريقة عرضها باكتر من مقاس عشان تناسب الاجهزة المختلفة زي الموبايلات وهكذا. وفي حاجات تانية غيرة بتأدي نفس المهام بتاعته زي : foundation,Ink,zimit
    • angularJs or reactJs or vuejs دول عبارة عن عن frameworks للjs  والمقارنة ما بينهم كبيرة واكبر من الscope بتاع المقال بس ممكن تشوف المقارنة من هنا
    • laravel or cakephp or code igniter  دول frameworks للphp وتقدر تشوف الفرق بينهم برضه من هنا وانا بفضل laravel حاليا
       
  • اتعلم design patterns : الdesign patterns عبارة عن تقسيمة للكود بتاعك في حالات معينة زي مثلا في حالة انك عاوز تعمل موقع بيكون فيه notification مثلا فا فيه ناس لقوا ان انسب طريقة انك تعمله بطريقة معينة  وقايلينلك ازاي واستخدمها ايه
    كتاب head first design patters
  • اتعلم git : دا عبارة عن version control عبارة عن حاجة بتخليك تقدر تشتغل انت وتيم علي نفس المشروع تقدروا تعدلوا مع بعض عادي وفي كل مرة بتعمل تعديل بيبقي عبارة عن كأنة نسخة جديدة من البرنامج وتقدر ترجع للنسخة اللي قبلها لو حصل اي غلط ومن اشهر الhosting للgit repositories هما gitlab و github دا سورس كويس ممكن تبدأ منه codeAcademy
  • اتعلم لينكس : لما تيجي تعمل موقع فا انت بتحطه علي سيرفير عشان تقدر الناس تدخل عليه بعد كدة واكتر من 95% من السيرفرات حوالين العالم شغالين بلينكس فا انك تتعلم ازاي تستعمله هيكون اضافة كبيرة ليك
  • pratice makes perfect كل الكلام اللي فوق دا ملوش اي لازمة لو انت مشتغلتش بايدك وعملت مواقع بايدك شوف اصحابك لو محتاجين موقع اعملهم لو في شركة جنبك اعملها حتي لو بدون مقابل! انت اكتر حد هيستفيد انت بتستسمر في نفسك

إبدء الكتابة للبحث ثم أنقر enter