اذهب إلى المحتوى

Mustafa Suleiman

الأعضاء
  • المساهمات

    13210
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    365

كل منشورات العضو Mustafa Suleiman

  1. لا مشكلة فالكود متاح للجميع من أجل الأغراض التعليمية فقط، وليس الاستخدام التجاري، أي لا تقوم بنقل المشروع بالكامل واستخدامه بشكل تجاري، بل عليك التعديل عليه والتطوير. وإذا كان الكود بسيط أو جزء من المشروع فلا مشكلة تستطيع استخدامه في مشروعك.
  2. أغلبها موجود بالفعل، والبعض منها متقدم نسبيًا لذلك عليك بالبحث عنه على يوتيوب ودراسته لكن بعد إنتهاء الدورة عليك التركيز على ذلك. وفي الدورة لا يوجد مسار محدد للـ Back-End فقط، بل يتم شرح أساسيات Node.js وتنفيذ واجهة برمجية API لتقييم الأفلام للتطبيق على ما node.js وexpress.js. بعد ذلك يتم تنفيذ مشاريع كاملة Full-Stack من خلال React و Express.js، لذلك عليك دراسة الدورة بشكل كامل ثم التخصص في الواجهة الخلفية إذا أردت.
  3. حاول تعطيل مشاركة الملف ثم تفعيل المشاركة مرة أخرى على الجهاز الأساسي الذي يوجد به ملف، ثم تجربة تصفح الملف مرة أخرى من الحاسوب الذي به المشكلة لكن يجب إعادة تشغيله قبل ذلك. وإذا استمرت المشكلة، فمن الأسهل مشاركة الملف من خلال Google drive مثلاً من خلال خاصية Shared With Me، أو من خلال onedrive وهو أفضل لكونه من مايكروسوفت ومتوافق بشكل كامل مع ملفات الأوفيس.
  4. حاولي أولاً القيام بالتالي حيث يظهر لديك رسالة خطأ Error: pg_config executable not found: في ملف requirements.txt عليك استبدال مكتبة psycopg2 بالتالي: psycopg2-binary==2.8.5 وفي حال استمرار المشكلة عليك القيام بالتالي حيث أن سبب مشكلة Error: pg_config executable not found عند محاولة نشر مشروع على AWS هو أن ملف الإعدادات لقاعدة البيانات pg_config غير موجود في متغير البيئة $PATH من خلال الأمر التالي: python setup.py build_ext --pg-config /path/to/pg_config وعليك استبدال /path/to/pg_config بالمسار الصحيح لملف pg_config في مشروعك. حاولي إيجاد مسار الملف من خلال الأمر التالي: which pg_config ولحل هذه المشكلة بشكل دائم على Elastic Beanstalk، تستطيعي إنشاء ملف نصي يسمى 10_install_dependencies.sh في مجلد .platform/hooks/prebuild، وسيؤدي الملف إلى إضافة مجلد يحتوي على برنامج pg_config إلى متغير البيئة $PATH قبل إنشاء مكتبة psycopg2. #!/usr/bin/sh export PATH=$PATH:/path/to/pg_config python setup.py build_ext
  5. الأيقونة واسم الطالب سيكونون بداخل عنصر أب وضعنها له تنسيق ليصبح flexbox ثم بداخله نقوم بكتابة ما نريد وأيضًا وضع الأيقونة كالتالي: <div id="branding" style="flex-grow: 8"> <h1><a href="index.html"><i class="fa fa-user-circle"></i> صفحة <sapn class="highlight">اسم الطالب</sapn></a> </h1> </div> وخاصية flex-grow في CSS تستخدم لتحديد مدى توسع العناصر المرنة (flex items) داخل العنصر الأب (flex container) بالنسبة للمساحة المتاحة، والقيمة التي تم تعيينها لـ flex-grow تحدد النسبة المئوية للمساحة المتاحة التي ستستخدمها العناصر المرنة داخل العنصر الأب. حيث تم تعيين flex-grow: 8 لعنصر <div> الذي لديه id "branding"، مما يعني أن العنصر سيكون مستعدًا لاستخدام مساحة أكبر بنسبة 8 مرات من العناصر الأخرى داخل العنصر الأب إذا كان هناك مساحة إضافية متاحة. وبالنسبة لكيفية استخدام أيقونات Font Awesome فقد تم توضيح ذلك هنا:
  6. أتفهم القلق الذي تشعر به وهو أمر طبيعي لأنك ما زلت في بدايات تعلم البرمجة، وبإختصار لا داعي لما تشعر به من تخوف، الفكرة هي أن الذكاء الاصطناعي ما هو إلا مجرد أداة لتنفيذ مهام وأجزاء من المشروع الذي تعمل عليه أو مساعدتك في فهم واستيعاب أمرًا ما أو شرح كيفية تنفيذ أمرًا ما. لكن هل يعتمد عليه في تنفيذ مشروع كامل؟ الإجابة هي لا حتى الآن، والدراسات تشير إلى أنه سيتم أتمتة 70% من عملية تطوير الواجهة الأمامية بحلول 2027، لكن هل ذلك حقيقي؟ لا أحد يعلم حقيقة الأمر، فمن المفترض أن نمتلك بين أيدينا عربات طائرة حيث كان متوقع ذلك فيما سبق! وفي حال تحقق ذلك، ما عليك هو التركيز على الأساسيات وتعميق فهمك واستخدام كافة الأدوات التي تساعدك على الإنتاجية بشكل أفضل وتوفير جهدك وتركيزك للمهام الصعبة والتي تتطلب خبرة ومعرفة لا تمتلكها تلك الأدوات. والتجربة خير دليل، حاول تجربة إنشاء مشروع من خلال تلك الأدوات ولن تستطيع، وبالطبع أنا لا أتحدث عن منصات الـ no code أو Low code. وقد تم التفصيل هنا:
  7. المواقع الإلكترونية يمكن أن تتكون من صفحة html واحدة فقط، أو من عدة صفحات، ويعتمد ذلك على طبيعة الموقع وحجمه وأهدافه صفحة html الواحدة صفحة html الواحدة هي أبسط شكل للموقع الإلكتروني، وتتكون الصفحة من ملف واحد يحتوي على كل محتوى الموقع، بما في ذلك النصوص والصور والعناصر التفاعلية. وتستخدم مواقع html الواحدة للمواقع الصغيرة والبسيطة، مثل مواقع الويب الشخصية أو مواقع الشركات الصغيرة. عدة صفحات html .تتكون المواقع الإلكترونية الكبيرة من عدة صفحات html، وتسمح تلك الطريقة بتنظيم المحتوى بشكل أكثر كفاءة وسهولة في التصفح. حيث ترتبط صفحات الموقع الإلكتروني ببعضها البعض باستخدام روابط html، وعندما ينقر المستخدم على رابط، يتم تحميل الصفحة المرتبطة في المتصفح. وهناك عدة أسباب لإنشاء موقع إلكتروني من عدة صفحات، منها: تنظيم المحتوى حسب الموضوع أو الوظيفة، فقد يكون هناك صفحة رئيسية تحتوي على مقدمة عن الموقع، وصفحات أخرى تحتوي على معلومات حول المنتجات أو الخدمات أو الأخبار. استخدام صفحات متعددة لجعل الموقع الإلكتروني أكثر سهولة في التصفح كاستخدام روابط التنقل لمساعدة المستخدمين على الوصول إلى الصفحات التي يبحثون عنها. يمكن إضافة صفحات جديدة إلى الموقع بسهولة عند الحاجة. أما منصة مثل فيسبوك فهي منصة ضخمة يتم توليد صفحاتها ديناميكيًا حيث يتم استخدام التالي في الواجهة الأمامية: HTML: لغة تنسيق النص التي تحدد بنية الصفحات. CSS: لغة تنسيق النص التي تحدد مظهر الصفحات. JavaScript: لغة برمجة تفاعلية تسمح للمستخدمين بالتفاعل مع الصفحات. React: مكتبة JavaScript تستخدم لإنشاء تطبيقات ويب تفاعلية. React Native: مكتبة JavaScript تستخدم لإنشاء تطبيقات ويب وتطبيقات الهاتف المحمول. الواجهة الخلفية: PHP: لغة برمجة مفتوحة المصدر تستخدم لتطوير مواقع الويب وتطبيقات الويب. Python: لغة برمجة متعددة الأغراض تستخدم لتطوير مجموعة متنوعة من التطبيقات، بما في ذلك مواقع الويب وتطبيقات الويب وتطبيقات الأجهزة المحمولة. Java: لغة برمجة قوية تستخدم لتطوير مجموعة متنوعة من التطبيقات، بما في ذلك مواقع الويب وتطبيقات الويب وتطبيقات الأجهزة المحمولة. C++: لغة برمجة قوية تستخدم لتطوير تطبيقات عالية الأداء، مثل خوادم فيسبوك. المكونات الإضافية: Apache Hadoop: نظام إدارة قواعد بيانات مفتوح المصدر يستخدم لمعالجة البيانات الضخمة. Apache Hive: نظام إدارة قواعد بيانات مفتوح المصدر يستخدم لتحليل البيانات الضخمة. Apache Spark: منصة معالجة بيانات مفتوحة المصدر تستخدم لمعالجة البيانات الضخمة في الوقت الفعلي. Elasticsearch: نظام بحث مفتوح المصدر يستخدم لتحليل البيانات الضخمة. Amazon Web Services: مجموعة من خدمات الحوسبة السحابية التي تستخدمها فيسبوك لتشغيل صفحاتها وتطبيقاتها.
  8. بخصوص الكتب الخاصة بلغة PHP فقد تم شرح الأمر هنا وعليك بالبدء من خلال كتاب PHP & MySQL: Server-side Web Development by Jon Duckett في حال كنت ستتعلم من الصفر: وبخصوص الكتب الخاصة بهياكل البيانات والخوارزميات وأيضًا جافاسكريبت وقواعد البيانات وأفضل الممارسات لكتابة كود نظيف وتحسين التفكير المنطقي أثناء التطوير، ستجد ترشيحات ممتازة هنا: وتستطيع الإختيار من بين الكتب السابقة ما شئت لكن إذا أردت الأهم فهم: Grokking Algorithms Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin Head first OOAD Good code, bad code Head First design patterns
  9. تحتاج إلى معرفة جيدة باللغة البرمجية التي ترغب في تطوير مكتبتك بها، بالإضافة إلى فهم أساسي لبنية المكتبات البرمجية. فالمطور الذي يقوم بتطوير المكتبة هو بالأساس مبرمج محترف ومتمكن من لغة بايثون، لذلك عليك أولاً دراسة الأساسيات والتمكن منها بشكل جيد وتنفيذ المشاريع ثم التعمق في اللغة بشكل تدريجي. بعد ذلك ستصل للمرحلة التي تمكنك من إنشاء مكتبة سواء كانت صغيرة أم كبيرة ليستخدمها الآخرين. ولكن المكتبة مكتوبة بلغة C ولغات أخرى أيضًا فعند التوجه لمكتبة NumPy على GitHub ستجد أنه يتم استخدام اللغات التالية: Python 60.8% C 36.3% C++ 1.2% Cython 0.9% Meson 0.5% Fortran 0.2% Other 0.1% وسبب استخدام لغات أخرى في التطوير هو الأداء وأسباب أخرى، وبالطبع تستطيع تطوير المكتبة من خلال بايثون فقط، وأنت بحاجة إلى رؤية ذلك بشكل عملي من خلال البحث عن create python package على اليوتيوب.
  10. لغة SQL هي لغة برمجة خاصة بقواعد البيانات العلائقية، تستخدم لإنشاء وتعديل وإدارة قواعد البيانات، وهي لغة مستقلة عن أي لغة برمجة أو نظام تشغيل، مما يجعلها قابلة للاستخدام مع أي لغة برمجة أو نظام تشغيل يدعم قواعد البيانات العلائقية. مكبتة sqlite3 هي مكتبة برمجة مكتوبة بلغة C، توفر واجهة برمجة التطبيقات (API) لقاعدة بيانات SQLit أما SQLite هي قاعدة بيانات علائقية صغيرة الحجم، مستقلة عن النظام، تعتمد على الملفات. الفرق بين لغة SQL و مكبتة sqlite3 لغة SQL هي لغة برمجة، بينما مكبتة sqlite3 هي مكتبة برمجة. لغة SQL مستقلة عن أي لغة برمجة أو نظام تشغيل، بينما مكبتة sqlite3 مكتوبة بلغة C. لغة SQL تستخدم لإنشاء وتعديل وإدارة قواعد البيانات، بينما مكبتة sqlite3 توفر واجهة برمجة التطبيقات (API) لقاعدة بيانات SQLite. أوجه التشابه بين لغة SQL و مكبتة sqlite3 كلاهما يستخدم لإنشاء وتعديل وإدارة قواعد البيانات العلائقية. كلاهما يستخدم جمل SQL لإنشاء الجداول والسجلات والعلاقات. كلاهما يمكن استخدامه مع أي لغة برمجة تدعم قواعد البيانات العلائقية. المفاضلة بين لغة SQL و مكبتة sqlite3 في حال كنت بحاجة إلى قاعدة بيانات علائقية يمكن استخدامها مع أي لغة برمجة أو نظام تشغيل، فإن لغة SQL هي الخيار الأفضل. وإن كنت بحاجة إلى قاعدة بيانات علائقية صغيرة الحجم وسهلة الإدارة، فإن SQLite هي الخيار الأفضل. أمثلة على استخدام لغة SQL و مكبتة sqlite3 لغة SQL: نستخجم لغة SQL لإنشاء قاعدة بيانات لتطبيق ويب لتخزين بيانات المستخدمين. مكبتة sqlite3: نستخدم مكبتة sqlite3 لإنشاء قاعدة بيانات لتطبيق سطح المكتب لتخزين بيانات المبيعات.
  11. أولاً عليك بإنشاء حساب على موقع Paymob الإلكتروني، انتقلي إلى موقع Paymob الإلكتروني واتبعي الإرشادات لإنشاء حساب، وبمجرد إنشاء حسابك، ستحتاجين الحصول على رمز API الخاص بك. وللحصول على رمز API الخاص بك، انتقلي إلى لوحة تحكم Paymob واتبعي الإرشادات للحصول على api_key من خلال الرابط التالي: https://weaccept.readme.io/docs/profile وستجدي هنا شرح للخطوات من المستند الرسمي: https://docs.paymob.com/docs/accept-standard-redirect وهناك مكتبة بايثون باسم accept-paymob من أجل التعامل مع الـ Api الخاص بـ Paymob.
  12. هناك عدة أسباب محتملة لالمشكلة، بما في ذلك: خطأ في الكود الخاص بك يتسبب في حدوث خطأ أو إنهاء التشغيل بشكل غير متوقع، وتستطيع محاولة تشغيل الملف مرة أخرى في مترجم Python لتحديد ما إذا كان هناك أي أخطاء. مكتبة مطلوبة لتشغيل الملف الخاص بك مفقودة أو تالفة، حاول تثبيت المكتبة المطلوبة أو إعادة تثبيتها. قد يكون هناك إعدادات في نظامك تمنع تشغيل الملف الخاص بك بشكل صحيح، وبإمكانك تغيير تلك الإعدادات أو إعادة تعيين النظام إلى إعدادات المصنع الافتراضية. ربما قمت أنت بتحويل الكود إلى برنامج لكن بشكل غير صحيح حاول مراجعة الخطوات وهناك شرح مفصل:
  13. من الأفضل تعلم أساسيات البرمجة من خلال لغة شائعة الاستخدام مثل بايثون، والأفضل من ذلك هو تعلم الأساسيات من خلال C++ لكن أصعب بالطبع ولا مشكلة في التعلم من خلال بايثون. أما Dart فهي تستخدم بشكل أساسي في إطار Flutter الخاص بتطوير تطبيقات الهاتف، فإذا كنت مهتمًا بتطوير تطبيقات الجوال أو التطبيقات متعددة المنصات، فستكون Dart وFlutter خيارات جيدة. وعلي أي حال تستطيع تعلم أساسيات البرمجة من خلال أي لغة برمجة مشهورة، ولكن ذكرت لك الأفضل والأصح، حتى لا تضيع وقتك وأيضًا تستفاد بما تعلمته. حيث أن بايثون شائعة الاستخدام وستتعرض لها عاجلاً أم آجلاً خلال رحلة تعلم البرمجة، وC++ مستخدمة بكثرة أيضًا وستعمل على تأسيسك بشكل أفضل من بايثون. ولا يشترط تعلم بايثون أو أي لغة قبل دخول مجال الويب لكن تلك هي الطريقة الصحيحة لدخول مجال البرمجة، والبعض يتجه مباشرًة إلى تعلم HTML, CSS, JS ولا مشكلة في ذلك لكن المستوى لن يكون واحد بالطبع. وعليك بالتركيز على اللغات الأساسيات للويب السابقة الذكر، وعدم التسرع في تعلم مكتبات أو إطارات مثل React وAngular فستصاب بالإحباط أو سيكون مستواك ضعيفًا بدون داعي، واللغات الأساسية هي ما تؤهلك لتعلم أي شيء بعد ذلك.
  14. أولاً أنت تقوم بكتابة اسم المكتبة بشكل غير صحيح حيث تكتب openCV-python واسم المكتبة الصحيح هو opencv-python. و علي أي حال يجب تحديث إصدار pip لديك من خلال الأمر التالي: pip install --upgrade pip وذلك لأن المكتبة تتطلب إصدار 19.3 من pip على الأقل. ثم تثبيت المكتبة بعد ذلك بالاسم الصحيح كالتالي: pip install opencv-python وستجد الصفحة الرسمية للمكتبة على pypi هنا: https://pypi.org/project/opencv-python/
  15. دائمًا ما أنصح بتعلم مجال الويب في البداية في حال لم تستقري على مجال محدد لتعلمه، حيث أنه مجال أسهل نسبيًا وأيضًا سيؤهلك لتعلم مجالات برمجية أخرى وستنتقل الخبرات والمعلومات التي تعلمتيها معك إلى المجال الآخر ولن يضيع مجهودك هباءًا. في حال تعلمتي أساسيات الويب ولا تريدين التخصص في ذلك المجال، فعليك الإنتقال للمجال الآخر ولا مشكلة في ذلك، لكن للحكم على مجال معين عليك الاستمرار في تعلمه لمدة لا تقل عن شهر على الأقل وخاصًة في البداية فلن تمتلكي الخبرة الكافية للحكم على ما إذا كان المجال جيد لك أم لا إلا من خلال الاستمرارية وبذل المجهود لإتخاذ قرار سليم.
  16. بالطبع لا، فتعلم C++ الهدف منه هو تعلم أساسيات البرمجة من خلال لغة برمجة قوية وليس بها abstraction أو تجريد بنسبة كبيرة مقارنًة بلغة مثل جافاسكريبت أو بايثون، لكنها أصعب في التعلم بالطبع. وبخصوص العمل الحر في مجال البرمجة، فعليك بتعلم الغات والمهارات المطلوبة بكثرة سواء كان ذلك في مجال تطوير الويب أو تطوير تطبيقات الهاتف، ونظرة واحدة على المشاريع على موقع مثل مستقل أو خمسات كافية لمعرفة نوعية المشاريع المطلوبة والمهارات اللازمة لتنفيذ تلك المشاريع. وفي المواقع العربية ستجدي أن المطلوب بكثرة فيما يتعلق بتطوير الويب هي لغة PHP وإطار لارافل ووردبريس، بعد ذلك .NET ثم بعد ذلك MERN STACK أو React. وبخصوص تطوير تطبيقات الهاتف فستجدي Flutter ثم React Native. وقبل تعلم أي مجال عليك تحديد هل تريدي العمل على مواقع العمل الحر أي في شركة، ففي حال كنتي تريدين العمل في شركة عليك البحث عن الوظائف المطلوبة في بلدك بالنسبة لخبرة سنة مثلاً أي مستوى Junior سواء كان ذلك في مجال الويب أو تطبيقات الهاتف أو مجال آخر، وتعلم المهارات المطلوبة بكثرة بالنسبة لذلك المجال وسوق العمل لديك.
  17. تطبيق من ذلك النوع بحاجة إلى خبرة ليست بالقليلة، وعليك اكتساب ذلك من خلال تعلم كيف يتم إنشاء مثل تلك التطبيقات قبل قبول أي مشروع من عميل، ولتعلم ذلك عليك البحث على يوتيوب عن "Food Delivery App from SCRATCH in Android Studio". وستجد شرح لكيفية القيام بالأمر من خلال مشروع كامل، وستتعملين كيف يتم إنشاء لوحة التحكم وهي المكان الذي يمكن للمشرفين من خلاله إدارة التطبيق، مثل إضافة المطاعم والمنتجات وإدارة الطلبات، وتستطيعي إنشاء لوحة تحكم باستخدام Firebase أو أي نظام إدارة محتوى آخر. أيضًا تستطيعي دمج خدمات التوصيل، مثل DoorDash و Uber Eats أو وسيلة التوصيل المناسبة للعملاء، في تطبيقك، وسيساعدك ذلك في توصيل الطلبات إلى العملاء بشكل أسرع وأكثر كفاءة، مع دمج خدمات الدفع، مثل Stripe و PayPal، في تطبيقك. وبخصوص التصميم عليك البحث على اليوتيوب عن Food App Android Design وستجدين تصماميم جيدة جدًا، بالإَضافة إلى البحث عن تصماميم على: Pinterest Dribbble mobbin UX CRUSH Screen lane uplabs
  18. معرفة جيدة جدًا بـ Node.js/JavaScript ومعرفة ES5 و ES6 و ES2017 أي جافاسكريبت الحديثة. فهم جيد جدًا للـ non-blocking I/O و حلقة الأحداث، والدعوات المتزامنة وغير المتزامنة، ومفهوم واضح لـ first-tick و event handler. فهم ممتاز للتحكم في التدفق غير المتزامن asynchronous control flow وفهم لـ error-first callback، ومنع callback hell، والوعد، و promisify، و async/await، و generator-based co-routines، وما إلى ذلك. قواعد البيانات وخبرة عملية جيدة مع MongoDB وقاعدة بيانات SQL أخرى على الأقل، وبعد ذلك عندما يتطور مستواك إذا أردت عليك اكتساب خبرة في Redis، وتحسين الاستعلام، وقاعدة بيانات memcached، والفهرسة، و SQL، ونموذج العلاقة relational model. الشبكات ومعرفة أساسية بمعايير HTTP و WebSocket و REST ومعرفة جيدة جدًا بـ TCP/IP، و HTTP/HTTPS، و REST، و GraphQL، وما إلى ذلك. مهارات البرمجة ومعرفة قوية بـ data structures، و algorithms، ومفهوم واضح لـ OOP. مهارات Linux/DevOps وعلم بأساسيات أوامر Linux الأساسية، وبرمجة شل، ومعرفة بالافتراضية، والحاويات، والتنسيق والقدرة على النشر، ومعرفة بأحد مقدمي الخدمات السحابية AWS/Azure/GCloud، و Nginx/Apache/IIS/HAproxy يجب تعلمهم من قبل أي شخص، و Travis/Circle CI، EC2، وما إلى ذلك. معرفة أساسية بـ Git flow، و Git/SVN/Mercurial (أي شخص)، Git Rebase، و merge، وحل النزاعات، وسير العمل الجماعي، وكيفية إنشاء طلب سحب، وكيفية المساهمة في مشروع عام/مفتوح المصدر. إطار عمل Node.js مثل Express.js ملاحظات إضافية: كلما زادت خبرتك في Node.js، زادت فرصك في الحصول على وظيفة جيدة وحتى لو كنت مطورًا مبتدئًا، لا يزال بإمكانك الحصول على وظيفة إذا كان لديك فهم قوي للأساسيات واستعداد للتعلم. كن مستعدًا للإجابة على أسئلة حول خبرتك في Node.js، و JavaScript، والتقنيات ذات الصلة في مقابلة العمل.
  19. من خلال التنقيات التي قمت بتعلمها ستحتاج إلى أن تصبح مطور Full stack من خلال تعلم تقنيات MERN وعند البحث عن وظيفة MERN لمستوى Entry Level ستجد المطلوب هو التالي: (MongoDB, Express.js, React, Node.js) بالإضافة إلى NEXT JS وبالطبع يجب أن يكون لديك أساسيات جيدة في لغات الواجهة الأمامية وهي HTML, CSS, JS. ودراية أيضًا بكيفية استخدام GitHub ورفع المشاريع وعمل Pull request. بالطبع دراية باستخدام مكتبات وإطارات مثل Bootstrap أو Tailwind وAxios وغيرها من المكتبات والإطارات اللازمة لتنفيذ المشاريع. لكن ذلك كله ليس له أي أهمية بدون وجود خبرة، والخبرة تأتي من تنفيذ مشاريع حقيقية قريبة من سوق العمل، وفي دورات أكاديمية حسوب يتم تنفيذ ذلك، لكن عليك تنفيذ مشاريع وعدم الإكتفاء بمشروع أو اثنان، ستجد على يوتيوب مشاريع MERN ابحث فقط عن mern projects. ولكن قبل ذلك عليك بتنفيذ مشاريع لكل تخصص على حدى، بمعنى قم بتنفيذ مشاريع REACT وعندما تجد أريحية في استخدام مكتبة React انتقل للواجهة الخلفية لتنفيذ مشاريع من خلال Express.js وnode.js وعندما تجد أريحية واستيعاب بنسبة مقبولة، انتقل لتنفيذ مشاريع Full stack. وللحصول على وظيفة عليك إمتلاك معرض أعمال جيد وبه مشاريع حقيقية كما أخبرتك مع تصميم جيد لها، وتستطيع الحصول على تصميم جيد من هنا مثلاً: وبعد تخرجك ستحتاج إلى 6 أشهر من التدريب لأكون صريحًا معك فلن تكتسب خبرة بين ليلة وضحاها، فما تعلمته هو الأساسيات وعليك بعدها الإنتقال للتعلم بشكل متعمق أكثر واكتساب الخبرة من خلال تنفيذ المشاريع والتعلم من الأخطاء. وبخصوص ما يجب عليك تعلمه ستجد تفصيل هنا: وأيضًا سيفيديك النقاش التالي: ودائمًا قم بقراءة وصف الوظيفة التي تريد العمل بها على مواقع التوظيف مثل LinkedIn وIndeed وغيرهم ثم تعلم المهارات المطلوبة في الوصف بنسبة 80% مثلاً.
  20. رسالة الخطأ تعني أنك تحاول الوصول إلى مفتاح "id" في مصفوفة غير موجودة، وذلك يحدث هذا لعدة أسباب منها: المفتاح "id" غير موجود في المصفوفة التي تحاولين الوصول إليها. المفتاح "id" موجود في المصفوفة، ولكن قيمته فارغة. المفتاح "id" موجود في المصفوفة، ولكن قيمته ليست من النوع الصحيح. ومن المحتمل أن يكون سبب الخطأ هو أنك تحاولين الوصول إلى مفتاح "id" في مصفوفة بيانات غير موجودة، وتستطيعي التحقق من ذلك عن طريق التحقق من أن المصفوفة تحتوي على مفتاح "id"، من خلال استخدام وظيفة array_key_exists(). ولنفترض أنك تحاولين الوصول إلى مفتاح "id" في مصفوفة بيانات تسمى data، سيكون التحقق كالتالي: if (array_key_exists('id', $data)) { // المفتاح موجود } else { // المفتاح غير موجود } وإن كان المفتاح موجودًا، فيمكننا التحقق من قيمة المفتاح عن طريق استخدام وظيفة isset(). if (isset($data['id'])) { // قيمة المفتاح غير فارغة } else { // قيمة المفتاح فارغة } وفي حال كانت قيمة المفتاح فارغة، فيمكنك محاولة ملؤها بقيمة صالحة عن طريق استخدام وظيفة set(). $data['id'] = 1; وفي حال كانت قيمة المفتاح ليست من النوع الصحيح، فتستطيعي محاولة تحويلها إلى النوع الصحيح بواسطة وظيفة intval() أو floatval() أو strval(). $data['id'] = intval($data['id']);
  21. يمكنك ذلك من خلال الـ API الخاص بموقع ألف ياء وذلك هو المستند الرسمي: https://aliphia.com/api-docs/ والبداية من هنا عليك إنشاء حساب في حال إمتلاكك Aliphia BOX ثم تفعيل Aliphia API ثم نسخ API BASE URI والـ API يتبع بروتوكول RESTful HTTPS كما هو موضح في الخطوات التالية: https://aliphia.com/api-docs/#api-_footer
  22. إذا قمت بإضافة كود JS إلى صفحة واحدة فقط عن طريق المحرر، فتستطيع وضعه في أي مكان تريده في محتوى الصفحة. ولكن عندما تريد إضافة كود JS إلى جميع الصفحات أو إلى قالب أو وظيفة معينة، فأنت بحاجة إلى وضعه في مكان مناسب حتى يعمل بشكل صحيح. ولنفترض أنك تريد إضافة كود JS لتغيير سلوك زر، فأنت بحاجة إلى وضع الكود بعد عنصر الزر في محتوى الصفحة أي في نهاية الصفحة قبل نهاية عنصر body كالتالي: <!DOCTYPE html> <html lang="ar"> <head> <meta charset="UTF-8"> <title>عنوان الصفحة</title> </head> <body> <h1>عنوان الصفحة</h1> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script> // كود JavaScript الخاص بك </script> </body> </html> يمكنك أيضًا استخدام ملف JavaScript خارجي لإضافة كود JS إلى موقعك عن طريق تحميل الملف الخارجي إلى مجلد "js" في قالبك. ثم، تضمين الملف الخارجي في صفحاتك عن طريق إضافة رابط إلى الملف في عنصر script ووضعه في داخل عنصر head كالتالي: <!DOCTYPE html> <html lang="ar"> <head> <meta charset="UTF-8"> <title>عنوان الصفحة</title> <link rel="stylesheet" href="style.css"> <script src="js/script.js"></script> </head> <body> <h1>عنوان الصفحة</h1> </body> </html> ولتسهيل الأمر عليك من الأفضل استخدام إضافة WPCode وتستطيع البحث على اليوتيوب عن طريق استخدامها من أجل إضافة أكواد مخصصة في موقعك بكل سهولة وتحديد ما إذا كنت تريد تخصيص ذلك الكود ليعمل في صفحة أو مكان معين أو في الموقع ككل.
  23. أكاديمية حسوب تم إيجادها في المقام الأول من أجل توفير محتوى عربي في مجال البرمجة، حيث كان المحتوى العربي مبعثرًا ولا يغني ولا يسمن من جوع، الأمر الذي يصنع حاجز منيع بين من يريد تعلم البرمجة وبين المحتوى الذي كان متوفر باللغة الأجنبية فقط. لذلك تم إنشاء وإيجاد مشروع مثل موسوعة حسوب والتي تهدف ملتوفير توثيق عربي كامل وعالي الجودة، مدعّم بالأمثلة لمختلف لغات البرمجة وتقنيات تطوير الويب والجوال. وأيضًأ كتب لتعلم البرمجة باللغة العربية بالإضافة كم هائل من الدروس والمقالات باللغة العربية. لذلك كان حريًا توفير الدورات باللغة العربية ومحاولة تعريب المصطلحات وتقريبها للغة الأم ما أمكن ذلك، وقد يبدوا الأمر غريبًا بالفعل لمن اعتاد أو تعلم البرمجة من محتوى أجنبي لكن بعد فترة ستعتاد على ذلك وسيصبح الأمر أسهل بالنسبة لك، ويجب تعلم المصطلحات الإنجليزية أيضًا ويتم شرح ذلك لأن المستندات الرسمية باللغة الإنجليزية وأيضًا حتى تتمكن من البحث ولأن اللغة الإنجليزية هي لغة البرمجة في الأساس. وفي حال واجهتك مشكلة في فهم مصطلح معين تستطيع الإعتماد على موسوعة حسوب في فهمه وما الذي يعنيه باللغة الإنجليزية في حال لم يتم توضيح ذلك في الدورة، أو السؤال وسيتم توضيح الأمر لك.
  24. معنى Full Stack مصطلح Full Stack يعني مطور الويب الذي لديه القدرة على تطوير كل من الواجهة الأمامية (Front-End) والواجهة الخلفية (Back-End) لموقع الويب أو التطبيق. بمعنى آخر، يمكن للمطور Full Stack إنشاء كل ما يراه المستخدم على الشاشة (Front-End) وإنشاء كل ما يحدث خلف الكواليس (Back-End). معنى MERN Stack يعني مجموعة من التقنيات المستخدمة لتطوير مواقع الويب والتطبيقات باستخدام JavaScript. تتكون مجموعة MERN Stack من: MongoDB، وهي قاعدة بيانات NoSQL مفتوحة المصدر. Express.js، وهو إطار عمل ويب مفتوح المصدر يستند إلى Node.js. React.js، وهو إطار عمل واجهة أمامية مفتوح المصدر. Node.js، وهو منصة تطوير تطبيقات الويب وتطبيقات الأجهزة المحمولة المستندة إلى JavaScript. وستجد وظائف تتطلب مطور MEAN وحرف A هنا يشير إلى Angular بدلاً من React. معنى Back-End الواجهة الخلفية أو Back-End تعني الجزء من موقع الويب أو التطبيق الذي لا يراه المستخدم، ويشمل ذلك الخوادم والبيانات والبرامج التي تعالج الطلبات وترسل ردودًا للمستخدمين. معنى Front-End هو الجزء من موقع الويب أو التطبيق الذي يراه المستخدم، ويتضمن HTML وCSS وJavaScript، والتي يتم استخدامها لإنشاء الواجهة الرسومية للموقع أو التطبيق. الفرق بين Full Stack و MERN Stack يشير مصطلح Full Stack إلى مطور الويب، بينما يشير مصطلح MERN Stack إلى مجموعة من التقنيات المستخدمة لتطوير مواقع الويب والتطبيقات، وبالتالي، فإن الفرق الرئيسي بينهما هو أن Full Stack يشير إلى الشخص، بينما يشير MERN Stack إلى مجموعة التقنيات. الفرق بين Back-End و Front-End يعني مصطلح Back-End الجزء من موقع الويب أو التطبيق الذي لا يراه المستخدم، بينما يعني مصطلح Front-End الجزء من موقع الويب أو التطبيق الذي يراه المستخدم، وبالتالي، فإن الفرق الرئيسي بينهما هو أن Back-End يشير إلى الجزء الذي يعمل خلف الكواليس، بينما يشير Front-End إلى الجزء الذي يراه المستخدم. أمثلة: مطور Full Stack يمكنه إنشاء موقع ويب كامل، بما في ذلك الواجهة الأمامية التي يراها المستخدم والواجهة الخلفية التي تعالج الطلبات. MERN Stack يمكن استخدامه لتطوير موقع ويب أو تطبيق ويب ديناميكي. Back-End يمكن أن يشمل الخوادم وقواعد البيانات وتطبيقات الويب. Front-End يمكن أن يشمل HTML وCSS وJavaScript. وأنت بحاجة إلى مشاهدة الفيديو التالي لتفهم الأمر بشكل أوضح:
  25. أولاً عليك بتحديد المساحة التي تريد من الصورة أن تشغلها، ولتكن مثلاً 500px هنا يجب عليك إختيار صورة بمساحة 1000px حتى يتم عرضها بشكل سليم وواضح على الشاشات التي تعتمد على تنقية double pixels مثل شاشات Retina من آبل. وتستطيع تصغير مساحة الصورة في حال كانت كبيرة باستخدام موقع مثل https://squoosh.app أو باستخدام أحد برامج تحرير الصور مثل فوتوشوب. بعد ذلك عليك تحديد عرض وطول للعنصر الحاوي للصورة وليكن كالتالي: .container { width: 500px; height: 500px; } وللصورة عليك تحديد العرض فقط بنسبة 100% من مساحة العنصر الأب وذلك ليتم حساب النسبة بين الطول والعرض aspect ratio بشكل تلقائي وستظهر الصورة كما هي بدون مشكلة كالتالي: img { width: 100% } وفي حال كانت الصورة لا تظهر بالشكل الذي تريده فيمكنك استخدام خواص: background-image background-size object-fit object-position
×
×
  • أضف...