كنت قد شاركت أحد الروابط للمبرمجة 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 أنواع البيانات

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