18

كل ما أعرفه مطورة للويب بدون شهادة (تلخيص بسيط)

كنت قد شاركت أحد الروابط للمبرمجة Tania Rascia تتحدث عن مسيرتها المهنية

طلب مني أحد الأخوة ترجمة المقال. وفي الحقيقة فترجمة هذا المقال غير مفيدة جدا؛ لأن الكاتبة تتحدث عن رحلتها في تطوير الويب وكتابتها مقالات عن ما تعلمته خلال هذا الرحلة والمقالات بالطبع كلها إنجليزية.

المهم في هذه الرحلة (لمن لا يعرف الإنجليزية) معرفة خارطة طريق لتطوير والويب وملء الفراغات في مهاراته.

سأذكر أهم المهارات التي ذكرتها الكاتبة على عجالة:

قبل البداية - ٢٠١٤

القليل من HTML و CSS

البداية ٢٠١٤ - ٢٠١٥

  • تعلم bootstrap

  • تعلم أساسيات التصميم المتجاوب بدون إطار عمل

  • أساسيات مكتبة jQuery

    • بعض الأعمال بهذه المكتبة tabs, accordions, dropdowns, modals
  • عمل عدة أنواع من الانتقالات دون الاعتماد على bootstrap مثل dropdown navigation bar, off-canvas navigation, full-screen navigation

  • كيفية استعمال flexbox في CSS

  • كيف تستخدم وتهيئ نظام الماك (أو نظامك المستخدم) ليكون بيئة تطوير مناسبة

  • تعلم سطر الأوامر

  • تعلم SASS وهو عبارة عن CSS preprocessor

  • تعلم Grunt , مشغل مهام tusk runner للجافاسكربت

  • تعلم Node.js و npm

  • تعلم مهارات البرمجة بجافاسكربت دون jQuery

  • تعلم GIT

مطورة ويب صغيرة - الوورد برس ٢٠١٥ - ٢٠١٧

  • تعلم تهيئة حزمة LAMP) Linux Apache MySQL PHP) لتطوير php
  • تعلم كيف تنصب Apache والاستضافات الافتراضية virtual hosts
  • تعلم cron jobs في لينكس
  • اساسيات PHP
  • تطوير قالب وورد برس من الصفر
  • التوغل في تطوير وورد برس pagination, comments, functions, & custom posts
  • الحقول المخصصة custom fields في وورد برس
  • JSON مع php و JavaScript
  • تعلم آجاكس AJAX
  • كيفية استخدام الواجهة البرمجية لخرائط جوجل Google Maps API
  • كيف تنصب TLS وشهادة SSL لتحصل على HTTPS
  • تعلم (AWS (Amazon Web Services وما يتعلق بها من
    • تعلم VPC , EC2, S3
    • تنصيب حزمة LAMP من الصفر
    • نقل مواقع من استضافة لأخرى
    • التعامل مع النطاقات DNS وإعدادها
    • توليد مفاتيح عامة / خاصة
  • تعلم الآلات الافتراضية بواسطة Vagrant و VirtualBox
  • تعلم مولدة المواقع الثابتة SSG Static Site Generators باستخدام Jekyll
    • عمل مدونة على github
  • تعلم PDO وهي واجهة برمجية للتعامل مع قواعد البيانات في PHP
  • تعلم إمكانية الوصول Accessibility وجعل المواقع قابلة للوصول للناس ذوي الإعاقة وتعلم معايير WCAG 2.0
  • مشروع جانبي: إطار عمل CSS بسيط وعمل عدة مواقع بإطار العمل هذا.
  • مشروع جانبي: قالب لمحررات الأكواد Visual Studio Code, Brackets, Sublime Text وأدوات تطوير جوجل. وتعلم إنشاء إضافات لهذا المحررات.
  • العمل كاتبة تقنية لDigitalOcean
    • كتابة العديد من المقالات عن جافاسكربت في موقع لDigitalOcean

الوظيفة الثانية - مطورة نظم خلفية بالPHP

  • عمل لعبة الذاكرة memory game بجافاسكربت
  • عمل فحوصات الوحدات البرمجية unit test والفحوصات البرمجية الآلية
    • unit test
    • integration test
    • end-to-end test
  • كيف تربط واجهة برمجية Representational State Transfer) REST) مع جافاسكربت وكيف يمكن لREST HTTP أن تقارن بعمليات CRUD Create Read Update Delete
  • التخزين المحلي لجافاسكربت وتخزين الجلسات session
  • كيف تتعامل مع الملفات ورفع الملفات بجافاسكربت وPHP
  • كيف تتعامل مع SVG ، المضلعات والمسارات
  • تعلم SQL وأوامرها المختلفة create , insert , update , delete , alter , constrains , join , group by , order by , limit , offset
  • استخدام أوامر Bash
  • تعلم CSS Shapes ;
  • مشروع جانبي: تطبيق PHP بنمط MVC Model View Controller بدون مكاتب أو أطر عمل وتعلم خلال هذا المشروع:
    • المصادقة Authentication: التسجيل، تسجيل الخروج، إعادة تعيين كلمة السر، وجود محتوى خاص مخفي عن المستخدمين غير المسجلين
    • الأمن والتحقق Security and validation: تشفير كلمة السر hashing، إضافة الوسطاء binding parameters لSQL بطريقة آمنة، التأكد من فرادة المستخدمين، التأكد من خلو السخّام spam أو المحتوى الفارغ، التأكد من ملائمة أحرف أسماء المستخدمين وكلمات مرورهم.
    • التوجيه Routing: إعادة توجيه الروابط، إنشاء ملفات تعريف عامة للمستخدمين على المجلد الجذر root directory، إنشاء صفحات آلية بحسب طلبات GET
    • البرمجة كائنية التوجه Object oriented programming، مفاهيم الوراثة inheritance والكلاس المجرد abstract class والمشيّدات constructors
    • مدير حزم Composer، استخدام كلاسات autoloading وإعدادها كما يجب
    • مخطط قاعدة البيانات Database schema، كيف تهيكل قاعدة بياناتك وتربط بين الجداول مثلا (القوائم مع روابطها والمستخدمين مع تعليقاتهم)
    • الجلسات والكعكات Sessions and Users، كيف تتعامل معها وتدير التعامل مع المستخدمين.

الوظيفة الثالثة: مطورة واجهات ٢٠١٨ - ٢٠١٩

  • تعلم الهيكلية الجديدة لجافاسكربت ES6+
  • كيف تستخدم React
  • كيف تستخدم React Hooks وغيرها من مكونات React
  • كيف تستخدم مكتبة Semantic UI React لعمل النماذج الأولية بسرعة وفعالية
  • الفهم العميق لREST و REST APIs
  • كيفية عمل خادم Server بـ Node.js باستخدام وحدة HTTP أو إطار عمل Express
  • كيف تتصل بقاعدة بيانات MySQL عن طريق Node.js
  • تعلم مفهوم البرمجة غير المتزامنة asynchronous programming والوعود promises و async/await.
  • تعلم كتابة شيفرة برمجية بNode.js، عمل سكربت يوّلد JSON من ورقة عمل Google Sheets/Excel CSV لتستخدم في تطبيق برمجي.
  • كيف تنصب مشروعا بـWebpack مع hot reloading.
  • كيف تستخدم Git مع فريق واستخدام الأوامر merging, rebasing, fixing merge conflicts, stashing والعمل على الفروع branches.
  • معالجة الأخطاء Error handling.
  • مشروع جانبي: محاكي الرقاقة-٨ بNode.js وتعلم من خلاله
    • أنظمة العد المختلفة: الثنائي والثماني والسادس عشري
    • الترميز بالbit وbytes و ASCII
    • معاملات & | ^ >> <<
    • استخدام أمر fs في Node.js
    • وغيرها من المفاهيم القريبة من الآلة
    • أهمية فحص الوحدات unit test

أشياء لا أعرفها (ومن المفترض أن أتعلمها)

  • GraphQL

  • Redux/MobX

  • Docker نسخة أفضل من Vagrant

  • Electron لعمل تطبيقات سطح مكتب بجافاسكربت

  • React Native لعمل تطبيقات جوال بجافاسكربت

  • Vim محرر نصوص معقد وعالي التخصيص

  • Algorithms الخوارزميات

  • Data structures هياكل البينات

  • Calculating time complexity حساب تعقيد الأوامر البرمجية بحسب الوقت

  • Algebra, الجبر

  • Sockets

  • Networking الشبكات

  • CI/CD

  • Types أنواع البيانات

أعتذر عن أي ركاكة في التلخيص، أما بالنسبة لكثرة المصطلحات البرمجية الإنجليزية؛ لمعرفة تعلمها والبحث عنها.


اعتقد انها ارتكبت اخطأ لاتغتفر

قبل البداية - ٢٠١٤ القليل من HTML و CSS

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

أساسيات مكتبة jQuery

هل تستطيع تعلم laravel قبل php ؟

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

على العموم ساعطيك مثالا للاشخاص الذين لم يركزو على عملهم الخاص بالطريقة الصحيحه

الاخ @mjxp7‍ ‍  وموقعة

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

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

انا لااقلل من اهمية البوت ستراب لكن اكاد اجزم ان سبب هذا العمل الغير متناسق سببه العجلة في التعلم سواء العجلة في تعلم البوت ستراب ك حسونة اكاديمي او العجلة في تعلم html/css كما هو الحال مع الاخ @mjxp7‍ 

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

علقت كمجهول احتراما للاخوه ولانني لست افضل من اي شخص ، وغايتي انتقاد الاسلوب السائد وليس الاشخاص ، اكرر احترامي لجميع الاعضاء

الكاتبة أصلحت خطأها بسرعة وتعلمت الأساسيات بدون مكاتب جاهزة.

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

ما يؤدي لسوء التصميم هو سوء الحس التصميمي أكثر من المكتبة.

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

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

لم يعجبني نقدك التشهيري لموقع الأخ.

في الأخير نتمنى جميعا الارتقاء بالمطورين.

إذا كنت حقاً تريد انتقاد الأسلوب.كان بإمكانك عدم ذكر أشخاص أو مواقع بيعنهم.

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

تحياتي ،

المجهول

لقد قرأت ردك بأهتمام , أرى أنك محق بقولك في تعلم المكتبات قبل الأساسيات.

كنت أتمنى أن تضع خطة للمبتدئين تدرج لهم تطوير الويب بداية من HTML/CSS إلى أن يستطيع الطالب بنفسه الغوص في أعماق هذا المجال و معرفة ما هو الصالح له, أرجوا أن تحقق أمنيتي هذه :)

هذا موجود في خارطة مطور الويب التي نشرتها سابقا.

هل بالإمكان تزويدي برابط الخارطة ؟

كل ما أستطيع التعليق عليه بخصوص الخريطة هو كلمة واو ....

عمل رائع جدا بصراحة ويشرح للمبتدئين اللعبة بأكملها

كلام مبرمجين - كيف يتعلم المبرمج عن قناعة ؟

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

أم انا المخطاء !؟

كلام مبرمجين - لماذا العجلة ؟

أما هذا أعجبني جدا , كلام صحيح 100%.