10 أشياء يجب أن تتعلمهم كمبرمج ويب
أحب برمجة الويب ﻷنها سهلة الإنتشار - عكس برمجة التطبيقات والبرامج - وﻷنها تهتم بالتحسينات على السرعة والحجم بشكل كبير. غالباً يكون استخدام المواقع أسهل من استخدام البرامج والتطبيقات ( ماعدا البرامج الضخمة مثل فوتوشوب ).
ولكن بسبب أهمية برمجة الويب، هناك الكثير من مبرمجى الويب والكثير من المبرمجين يبدأون حياتهم البرمجية من تعلم تقنيات الويب. لذلك أكتب لكم 10 أشياء يجب أن تتعلمه لتكون مبرمج ويب ناجح.
1. لغات HTML و CSS و Javascript 🔗
إن كنت تستخدم اطار عمل أو تعمل بدون إطار عمل، فلابد أن تتعلم اللغات الأساسية للويب أولاً. هذه اللغات هى:
لغة HTML وهى خاصة بتحديد عناصر الصفحة وتوصيف المعلومات والبيانات التى يتم عرضها. أما لغة CSS فهى خاصة بتصميم الصفحة من أحجام وألوان وأبعاد. أما لغة Javascript هى لغة برمجة تعمل على المتصفح. لذلك عليك أن تتعلم لغة جافاسكربت فى جميع الأحوال.
إن كنت تستخدم php أو nodejs أو c#.net أو go أو python أو Java لبرمجة الـ back end فلابد أن تتعلم أيضاً لغة جافاسكربت فى جميع الأحوال. ولكن الضرورى هو أساسيات اللغة فقط وكيف تتعامل مع الـ DOM وليس التفاصيل المعقدة والمتطورة للغة.
2. git و github 🔗
لكى تعمل بشكل منظم وسهل التعديل عليه ومراجعته لابد أن تستخدم version control system لكى يساعدك فى معرفة مَن غيّر وعدّل على الكود ومتى تم التغيير. استخدام هذا النظام سيوفر عليك التعب والمعاناه فى المشروعات الكبيرة فى الكود أو الكبيرة فى عدد المبرمجين المنضمين للمشروع.
نظام git هو أفضل نظام للـ version control حيث أن ليناس تورفالدس - Linus Torvalds - كتب هذا النظام لكى يستطيع إدارة كود نواة لينكس. هذا النظام يعمل بكفاءة رغم أن نواة لينكس هى أكبر مشروع برمجى مفتوح المصدر فى التاريخ.
أما github فهو عبارة عن موقع يطبق نظام إدارة النُسخ git وهو أشهر موقع للـ version control بسبب سهولة استخدامه وسهولة فهم طريقة عرض الكود عليه.
3. chrome dev tools أو firefox dev tools 🔗
استخدام أدوات المطور الموجودة فى المتصفح شئ ضرورى جداً لمتابعة الكود وإيجاد الغلطات وحل المشكلات وعمل debugging و optimization للموقع. يُمكنك استخدام أدوات المطور الموجودة فى متصفح جوجل كروم، أو متصفح فايرفوكس، أو أى متصفح آخر.
ولكنى أفضل أدوات المطورين الموجودة فى متصفح جوجل كروم ﻷنها قوية جداً ويتم تحديثها دائماً. ولكنى فى الواقع استخدم أدوات المطورين الموجودة فى كروم وفايرفوكس ﻹختبار الكود الذى أكتبه على أشهر متصفحين على الإطلاق (كروم وفايرفوكس).
4. استخدام API 🔗
لابد أن تبنى مشروع واحد على الأقل تستخدم فيه API وتتعلم كيف تستخدم الـ API وأنواع الرسائل التى تدل على http status وهكذا. تعلم الـ API ضرورة ﻷن كل المشاريع تعتمد على APIs بطريقة أو بأخرى. لذلك لابد أن تبنى خبرتك فى استخدام الـ API.
5. بناء REST API and CRUD 🔗
إن كنت مبرمج ويب باك إند، لابد أن تبنى Restful API وتتعلم تفاصيل بناء الـ API وكيف تربطة بقواعد البيانات وتجرى عمليات على قواعد البيانات - CRUD - ، حاول أن تستخدم قواعد بيانات متنوعة مثل SQL و Mongodb لكى يكون لديك خبرة فى التعامل مع قواعد البيانات الـ relational database والـ NoSQL.
6. Authentication 🔗
لابد أن تتعلم أيضاً كيف تتعرف على المستخدم لكى تظهر له طريقة التعديل على صفحته الشخصية وتظهر للمستخدم الذى سجل الدخول أشياء لا تظهرها للآخرين. يُمكنك أن تستخدم php session و OAuth وغيرها من طرق التعرف على المستخدم.
7. Model View Controller - MVC 🔗
أشهر طريقة لتنظيم الكود فى مشاريع الويب. لذلك لابد أن تتعلم MVC على الأقل لكى تفهم كيف تعمل المشاريع البرمجية وخاصةً الكبيرة. تعلم MVC يساعدك على فهم اطار العمل بشكل أفضل مثل laravel.
8. problem solving & searching 🔗
البحث على جوجل، وstackoverflow ، و github و يوتيوب هو طريقك الأول لحل أى مشكلة أو خطأ برمجى تواجهه أثناء كتابة وتجريب الكود.
حاول أن تتدرب وتتعلم كيفية البحث على الإنترنت بشكل قوى لكى تصل إلى حل مشكلتك بأسرع وقت ممكن. تكلمت من قبل عن تعلم طرق البحث على جوجل، يمكنك قراءة شرح طريقة البحث فى هذا الموضوع .
9. writing tests 🔗
كتابة اختبارات لأجزاء الكود المختلفة هام جداً رغم أنه يستهلك وقت أكثر. كتابة unit tests يجعلك تصل إلى كود متكامل صحيح وقوى بدون مشكلات كبيرة ولكن عدم عمل اختبارات للكود سيفاجأك عندما تنتهى من مشروعك بمشكلة لن تستطيع حلها بسبب كبر الكود الذى تختبره وعدم دقة أجزاء كثيرة من الكود.
أنا شخصياً فى بداية عملى فى مجال البرمجة لم أكن استخدم اختبارات للكود، ولكن بعد وقوعى فى كثير من المشكلات الضخمة التى أخذت منى أيام متتاليه لحلها. وجدت أن المشكلة الأساسية هى أنى لم اختبر أجزاء من الكود ولكنها ظهرت فى البداية وكأنها صحيحة ولكن عندما استخدمت كل الإحتمالات الممكنه فى البرنامج/الموقع حدثت المشاكل. لذلك أن ألتزم حالياً بكتابة اختبارات للكود لكى لا أصل إلى مشكلة كبيرة!!!
10. DevOps & Deployment 🔗
بعد أن تكتب الكود لابد أن تثبته على السيرفر عن طريق deployment عادية أو تقوم بإستخدام أدوات الـ DevOps لمتابعة الـ Continuous Integration - CI والـ Development Cycle - DC لكى تسهل على المبرمجين وتقلل مشكلات ووقت التثبيت.
عليك كمبرمج أن تتعلم أساسيات الـ deployment والـ DevOps لكى تفهم كيف تسير الأمور فى البرمجة عموماً وبرمجة الويب خصوصاً.
انتهينا من الحديث عن أهم 10 أشياء لابد أن يتعلمها كل مبرمجى الويب وخاصة الـ full stack wed developers. سنتحدّث فيما بعد عن كل نقطة من هذه النقاط بشكل أكثر تفصيلاً إن شاء الله. إن أردت متابعة الموضوعات الجديدة انضم لقناة تيليجرام .