كيفية البدء في تعلم البرمجة و Web3
لبدء تعلم تطوير Web3 ستحتاج إلى بعض المعرفة الاساسية للـ Web2. سواء كنت مهتمًا بإنشاء عقود ذكية أو أدوات التطوير أو تطوير البروتوكولات أو توليد صور AI أو أي شيء آخر - فهناك العديد من الموضوعات التي كانت موجودة منذ عقود والتي لا تزال ذات صلة وفائدة كبيرة.
في هذا الدرس سنقوم بتوضيح بعض المصطلحات الرئيسية التي ستقابلها بالتأكيد في بداية رحلتك، ولكن الأهم من ذلك التحدث عن العقلية التي يجب أن تكون لديك كمطور يبدأ للتو في هذه الرحلة.
تقنيات Frontend
الواجهة الأمامية هي الواجهة التي يتفاعل معها المستخدم. في الويب تشير الواجهة الأمامية إلى موقع ويب الذي يمكنك تصفحه، والنقر فوق الأشياء، وربما حتى كتابة أشياء. تعد تطبيقات الهاتف المحمول وتطبيقات سطح المكتب أيضًا أمثلة على الواجهة الأمامية.
هل سبق لك أن فكرت في أنه بغض النظر عن متصفح الويب الذي تستخدمه - Chrome او Firefox او Safari او Edge وما إلى ذلك - فإن موقع الويب يبدو متماثلًا تمامًا على كل منهم؟
يحدث هذا بسبب معايير الويب. تقوم منظمة تعرف باسم W3C (اتحاد شبكة الويب العالمية) بوضع المعايير، وهي مجموعة من القواعد الصريحة، التي يجب على جميع الشركات مثل Google و Microsoft و Mozilla و Apple، وغيرهم.. اتباعها عند إنشاء متصفحات ويب عبر أجهزة/أنظمة التشغيل مختلفة.
على وجه الخصوص يتم وضع هذه المعايير حول الأشياء الثلاثة الأساسية التي يحتاج كل مطور ويب إلى الإلمام بها - HTML و CSS و JavaScript.
لغة HTML هي اللغة المستخدمة لوضع العناصر بشكل مرئي على شاشتك. أشياء مثل هذه الفقرة التي تقرأها الآن، أشياء مثل الأزرار، وأشياء مثل القائمة المنسدلة. يمكنك باستخدام HTML وضع العناصر بشكل مرئي على الشاشة .
لغة CSS هي لغة تصميم تُستخدم لإضافة الأنماط والذوق المخصص الخاص بك إلى هذه العناصر. بشكل افتراضي، تبدو عناصر HTML مملة وعادية. هل تتذكر مواقع التسعينات القديمة تلك؟ نعم، كان ذلك HTML عاديًا. يتيح لك CSS تخصيص الأشياء المتعلقة بعناصر HTML. مثل جعل الزر مستديرًا بدلاً من المستطيل، أو تغيير خط الفقرة، أو إضافة نص غامق أو نص تحته خط، وما إلى ذلك.
وأخيرًا لربط كل ذلك معًا يأتي JavaScript. يمكننا القول إن JavaScript هي الجانب الأكثر أهمية في البناء على تقنيات الويب. إنها لغة برمجة كاملة تُستخدم لإضافة دوال حقيقية إلى موقع الويب الخاص بك.
باستخدام HTML و CSS، يمكنك وضع العناصر على الشاشة وجعلها تبدو جميلة - لكنها لن تفعل أي شيء في الواقع. لن يفعل الزر الخاص بك أي شيء في الواقع إذا قمت بالنقر فوقه، ولن يتم تحميل المزيد من المنشورات على Instagram أثناء استمرارك في التمرير لأسفل، وما إلى ذلك.
تتيح لك JavaScript إضافة تفاعل ووظائف حقيقية إلى مواقع الويب الخاصة بك. إنها بلا شك لغة الويب - وستجد أن معظم الدروس الموجودة هنا على Web3Arabs ستستخدم JavaScript بطريقة أو بأخرى. لا يحتوي موقع الويب اي قيمة إذا كان لا يحتوي على JavaScript سوى السماح لك بالنظر إلى الأشياء بطريقة معينة ولكن لن تستطيع التفاعل معها.
على أي حال، بالعودة إلى W3C - تضع W3C معايير حول كيفية فهم متصفح الويب مثل Chrome وتشغيله وعرض التعليمات البرمجية التي يكتبها مطور الويب باستخدام HTML و CSS و JavaScript. وبسبب هذه المعايير، تعمل جميع المتصفحات عبر جميع الأجهزة وجميع أنظمة التشغيل بشكل مماثل ولا داعي للقلق بشأن ذلك. هذه هي قوة البناء على تقنيات الويب. على عكس إنشاء تطبيقات الهاتف المحمول، حيث يختلف نظام iOS وAndroid كثيرًا عن بعضهما البعض، أو كيف يختلف التصميم لنظام التشغيل Windows تمامًا عن البناء لنظام التشغيل macOS أو البناء لنظام التشغيل Linux - يتيح لك الويب كتابة التعليمات البرمجية الخاصة بك مرة واحدة، وجعلها تعمل في كل مكان.
تقنيات Backend
تشير الواجهة الخلفية (Backend) إلى ذلك الجزء من البرنامج الذي يسمح له بالعمل ولا يمكن للمستخدم الوصول إليه مباشرة او رؤيته. تحدث معظم البيانات الخاصة ومنطق الأعمال ومعالجة البيانات وما إلى ذلك في الواجهة الخلفية، والواجهة الأمامية هي توفير تمثيل مرئي لتلك البيانات.
على سبيل المثال، خذ بعين الاعتبار Instagram - يحتوي Instagram على مليارات ومليارات من الصور ومقاطع الفيديو على نظامه الأساسي. يتم نشر بعض هذه الصور بواسطة حسابات خاصة، وهي صور لا يمكن رؤيتها إلا للأشخاص الذين يتابعون هذا الحساب الخاص ولا يستطيع أي شخص آخر رؤيتها. تتم تصفية الصور المطلوبة لـ Instagram ليُظهر لك خلاصتك على المخطط الزمني مقابل ما هو متاح لهم بالفعل، وذلك على الواجهة الخلفية الخاصة بهم. من المهم ألا يتمكن المستخدمون من الوصول مباشرة إلى الواجهة الخلفية لأنه بخلاف ذلك قد يتم تسريب البيانات الخاصة.
إذا سبق لك أن قرأت أخبارًا عن اختراق بعض مواقع الويب وتسريب المعلومات الخاصة للمستخدم - عناوينهم وأسمائهم وبطاقات الائتمان وما إلى ذلك - فذلك بسبب وجود بعض الأخطاء في الواجهة الخلفية الخاصة بهم والتي سمحت لمخترق ضار بالوصول مباشرة إليها.
يمكن بناء الواجهات الخلفية بمجموعة متنوعة من لغات البرمجة - JavaScript او Rust او Go او Python او C# وغيرها الكثير. ومع ذلك، عندما تبدأ رحلتك، وبما أنك ستتعلم JavaScript للواجهة الأمامية على أي حال، فقد تستخدم JavaScript أيضًا للواجهة الخلفية. على الرغم من أن كل لغة برمجة لها إيجابياتها وسلبياتها، إلا أنها ليست كافية للمبتدئين لمحاولة إتقان عدة لغات ونماذج مختلفة في وقت واحد. أوصي بشدة إذا كنت ترغب في البناء على تقنيات الويب، أن تختار JavaScript لأنها تعمل على طرفي حزمة التكنولوجيا وتمتلك شعبية كبيرة للغاية.
تحضيرك للنجاح
عليك أن تدرك أن تعلم البرمجة وأن تصبح مبرمجًا جيدًا هي رحلة. علوم الكمبيوتر ليست من المواضيع الذي يمكن حفظها. على سبيل المثال، عندما كنت في المدرسة تتلقى درسًا في التاريخ، فمن المحتمل أنك حفظت الكثير من الحقائق. ومع ذلك، عندما كنت تدرس الرياضيات، فمن المحتمل ألا يكون النهج مشابهًا. لا يمكنك حقًا حفظ الرياضيات بما يتجاوز بعض المبادئ الأساسية. عليك أن تتدرب، عليك أن تفهم ذلك نوعًا ما، عليك أن تعرف المفاهيم.
علوم الكمبيوتر هي مجال مماثل. لا يمكنك حفظ لغة برمجة، ولا يمكنك حفظ كيفية حل المشكلات الصعبة، ولا يمكنك حفظ كيفية إصلاح الأخطاء - فأنت بحاجة إلى الممارسة، وتحتاج إلى معرفة العديد من المفاهيم، وتحتاج إلى التعلم بإستمرار.
لقد قابلت أشخاصًا حفظوا كل وظيفة متوفرة في لغة برمجة JavaScript - ومع ذلك فشلوا في حل حتى أبسط أسئلة البرمجة. هذا لأنك لو كنت قد حفظت للتو 1 + 1 = 2 دون أن تفهم فعليًا كيفية إجراء عملية الجمع، فلن تتمكن من القول إن 47 + 25 = 72. يمكنني أن أطلب منك إضافة أي رقمين، رقمين ربما لم يسبق لك جمعهما ربما قد واجهتها كمشكلة جمع من قبل في حياتك، ولكن مع مرور الوقت ستتمكن من جمعهم معًا. ليس هناك فرصة أنك حفظت هذا الجمع، لقد فهمت الجمع. خذ نفس النهج مع البرمجة.
ثانيا، لا تضع جدولا زمنيا. لا تطرح أسئلة مثل "كيف يمكنني أن أصبح خبيرًا في XYZ خلال 6 أشهر؟" - هذا سؤال مستحيل الإجابة عليه. ليس لدى الآخرين أي فكرة عن مقدار الوقت الذي تقضيه في التعلم كل يوم، وكم من الوقت تقضيه في ممارسة البرمجة، وما هي خلفيتك السابقة، وطريقة الفهم الخاصة بك، وما إلى ذلك. إن تحديد موعد نهائي يضيف ضغطًا غير ضروري إلى رحلة التعلم التي يجب الإعجاب بها واتخاذ كل خطوة ببطء لتقدير جمالها. سيأتي يوم ستفهم فيه حقًا كيف تحول البشر من القدرة على توليد الكهرباء في أسلاك مادية، إلى تمثيل تلك الكهرباء على شكل 0 و 1، ثم القدرة على تخزين 0 و 1 على المغناطيس، حتى يصبحوا قادرين على ذلك لإنشاء ألعاب فيديو واقعية للغاية بسعة 200 جيجابايت، وسوف تنظر إلى الوراء وتفكر "يا إلهي، هذا رائع جدًا" بينما تعلم أيضًا "هناك الكثير الذي ما زلت لا أعرفه!".
التعلم هو عملية لا تنتهي أبدا. إنها في الواقع واحدة من الأشياء القليلة التي يفعلها البشر طوال حياتهم. طارد المعرفة وطارد التعلم لتحسين نفسك. كن فضولى. العبث بالأشياء. جرب أشياء جديدة. خذ بعض المخاطر، كبيرة كانت أم صغيرة. اشعر بالأدرينالين.
كما هو الحال دائمًا، إذا كانت لديك أي أسئلة أو شعرت بالتعثر أو أردت فقط أن تقول مرحبًا، فقم بالإنضمام على Telegram او Discord وسنكون أكثر من سعداء لمساعدتك!