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

Hassan Hedr

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

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

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

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

    38

كل منشورات العضو Hassan Hedr

  1. يبدو أنك تدفع التغييرات إلى الفرع master، بينما الفرع الافتراضي الذي يظهر على Github هو main، يمكنك مشاهدة الفرع master من مستودعك ولاحظ كيف أن الملفات موجودة، يمكنك لتجنب هذه المشكلة الدفع إلى الفرع main دومًا بتنفيذ الأمر كالتالي: git push origin master:main
  2. نعم بالتأكيد المدربون موجودون دومًا لإرشادك ومساعدتك، لكن حاول دومًا البحث عن المشكلة بنفسك أولًا ولو أخذت منك وقتًا، فالمهم تطوير مهارة البحث وحل المشكلات أكثر من تعلم طريقة التطوير
  3. تأكد من إضافة الملفات الجديد التي أنشأتها أولًا بتنفيذ الأمر التالي: git add . git commit -m 'رسالة الإضافة' بعدها يمكن دفع التغييرات إلى المستودع البعيد على Github كالتالي: git push origin master بذلك ستلاحظ وجود الملفات الجديدة ضمن المستودع، حيث أن git لا يرفع سوى الملفات التي تم تأكيدها commit
  4. يجب التأكد من حفظ الملف بعد تطبيق أي تعديلات عليه، إضافة إلى تحديث الصفحة حتى تعايني الصفحة الجديدة وليس القديمة، لتوضيح ذلك أكثر ضمن عملية تطوير يمكن إضافة محتوى ما ضمن الصفحة مثلا كالتالي: <h1>مرحبًا</h1> وعند حدوث مثل هذه المشكلة وللتأكد من أننا نعاين الصفحة بمحتواها الحالي الجديد نُغير المحتوى ونعاين الصفحة مثلًا كالتالي: <h1>2 مرحبًا</h1> في حال لا زال يظهر المحتوى القديم هذا يدل إما على عدم تحديث الصفحة أو عدم حفظ الملف وبالتالي نحدد المشكلة
  5. يمكن وضع الصورة بوسم img منفصل وتحديد حجمها وتموضعها بالشكل المناسب، ثم التحكم بشفافيتها بشكل منفصل، لأن CSS لا يوفر خاصية شفافية للخلفية فقط بل سيؤثر ذلك على العنصر كاملًا مع أبناءه، لتكون الشيفرة كالتالي: <div class="landing"> <img src="../images/dd.jpg" > ... </div> والتنسيق لها كالتالي: .landing { position: relative; } .landing img { opacity: 0.6; position: absolute; left: 0; top: 0; width: 100%; height: auto; }
  6. دورات علوم الحاسوب تغطي أفكار عديدة عن عمل الحاسوب وأجزاءه والذاكرة والخوارزميات وغيرها، وهي موجهة للمبتدئين في هذا المجال فتعطي صورة عامة شاملة عن مجال علوم الحاسوب، في حال كان الهدف من الدراسة هو التحضير لتعلم لغة برمجة معينة فالأكفئ هو البدء بتعلم تلك اللغة مباشرة والتركيز عليها، يمكنك الاستفادة من قراءة المقال التالي فهو يشرح العديد من جوانب تعلم البرمجة وما يخص علوم الحاسوب ويشرح عنها بالتفصيل
  7. ما تمر به طبيعي، والنقاط التي ذكرتها تدل على حاجة في التمرن أكثر لوحدك، وليس التطبيق فقط مع الدروس، ابدأ بأحد المشاريع التي نفذتها ضمن الدورة وحاول إعادة تنفيذها أو ما يشابهها بنفسك، ستجد الكثير من المشاكل بالتأكيد لكن هذا طبيعي ويجب أن تتعلم طريقة البحث عن حلول لمشاكلك والقراءة ضمن المراجع مثل موسوعة حسوب والتوثيقات الرسمية للمكتبات، وحتى قراءة المقالات أو أجوبة على مشاكل مشابهة، استمر في التدريب لوحدك وستجد مع الوقت مهاراتك تتطور، الدورات متكاملة وأفكارها مترابطة لذا يفضل عدم ترك أي فكرة، احضر الدروس مجددًا واسأل عن أي تفصيل تحتاج شرح له أو اقرأ عنه بنفسك، لكن لا تتجاوز الدروس أو الأفكار فهي كلها تصب في مجالك التمرين العملي والمرور بمشكلات متنوعة ومختلفة واكتشاف حلولها بنفسك هو ما يطور مهاراتك مع الوقت ويكسبك خبرة، كل ما تمر به حله التمرين العملي لذا حاول التركيز على هذا الجانب ولا تعتمد فقط على التطبيق خلف المدرب، المدرب ضمن الدرس هو مرشد لك،
  8. لا يوجد مدة محددة للدورات، ولكل شخص طريقته وقدرته على إكمال الدورة وإنهائها والتدرب، لكل شخص أوقات فراغ وتدريب مختلفة، وحتى قدرة على التعلم، فلا يمكنك القياس سوى على تطور مهاراتك مع الوقت وكم تحتاج لتستطيع إتمام مشروع كامل بنفسك، الدورات لا وقت محدد لها يمكنك إتمامها كما يناسبك المهم هو تطور قدرتك العملية وتستطيع الوصول للدروس متى تشاء، يمكنك الاستفادة من قراءة المقال التالي الذي يشرح كافة الجوانب المتعلقة بتعلم البرمجة للمبتدئين:
  9. يمكنك استخدام كائن مكتبة momment لمعرفة ما إذا كان التاريخ في المستقبل باستخدام التابع isAfter، والذي يُمرر إليه عادة تاريخ أخر للمقارنة بينهما، لكن إذا لم نمرر أي معاملات له سيقارن التاريخ ما إذا كان في المستقبل كالتالي: const inFuture = momment(datetime).isAfter() // يساوي const inFuture = momment(datetime).isAfter(momment()) // ^^^^^^^^^ // الآن
  10. يمكن إنشاء كائنين من نوع Date لكل من التاريخين لديك، ثم حساب فرق التوقيت بينهما رياضيًا، والذي يكون بوحدة الميلي ثانية بتقسيم هذا الفرق على عدد الميلي ثانية في اليوم الواحد لتكون الشيفرة كالتالي: const date1 = "1/1/2022"; const date2 = "1/1/2023"; const numberOfDays = (new Date(date2) - new Date(date1)) / 86_400_000; // ^^^^^^^^^^ // ميلي ثانية في اليوم إذا كانت القيم معلومة تأكد من طرح التاريخ الأكبر من التاريخ الأصغر للحصول على نتيجة موجبة، أو يمكنك حساب القيمة المطلقة للنتيجة في حال لم تكن المدخلات معلومة دومًا ليكون الحساب كالتالي: const numberOfDays = Math.abs(new Date(date2) - new Date(date1)) / 86_400_000; يمكنك التعرف على الكائن Date في جافاسكربت أكثر من المقال التالي:
  11. ملفات المشروع النهائية الناتجة عن عملية البناء موجودة ضمن المجلد build الذي تم إنشاءه، محتويات هذا الملف هي ما يمكنك رفعها على استضافة لكي تعمل، ولا يمكنك تشغيلها محليًا مباشرةً، لاختبار ذلك دون استضافة محليًا يجب الوصول لتلك الملفات عن طريق خادم محلي، لذلك يمكنك الاستفادة من مكتبة serve بتثبيتها أولًا كالتالي: npm install -g serve ثم تنفيذ الأمر التالي ضمن المجلد الجذر للمشروع لديك لتخديم الملفات عن طريق خادم محلي: serve -s build سيظهر ضمن نتيجة التنفيذ رابط للوصول إلى تلك الملفات عن طريق هذا الخادم يمكنك الوصول إليه من المتصفح لمعاينة المشروع من ملفات البناء النهائية
  12. يوجد تابع عام مخصص لذلك بالاسم isNaN يعيد قيمة منطقية تدل فيما إذا كانت القيمة المُمررة NaN أم لا كالتالي: isNaN(+"hi") // true أو يمكنك استخدام تابع مشابه له متوفر ضمن الصنف Number بنفس الاسم كالتالي: Number.isNaN(+"hi") // true
  13. دورة أساسيات علوم الحاسوب هدفها تعريفك بالمجال من الصفر، أي بعد إنهاءها تكون مُلمًا بأغلب ما يتعلق بعلوم الحاسوب من مجالاته ومصطلحاته وطرق عمل الحاسوب والشبكات وهيكلة البرامج وغيرها، بما أنك أنهيت الدورة بعد استعدادك تقدم إلى الامتحان، بعد نجاحك به سيقدم لك توجيهات ونصائح لزيادة فرص حصولك على أول عمل، وستشمل المجال الذي ستبدأ العمل به ويمكنك عندها الاستفسار أكثر من المرشدين وسيوضحون لك كل ما يلزم لذلك، يمكنك الاستفادة من قراءة المقال التالي، فهو يشرح كل مجال والدورات المقابلة له المتوفرة ومجالات العمل لها بما فيها دورة علوم الحاسوب:
  14. المصفوفات ليست من أنواع البيانات Data Types الأساسية في جافاسكربت، بل تعتبر من نوع كائن Object كغيرها من الأصناف، لذا للتحقق من أن قيمة ما هي من نوع مصفوفة يمكن استخدام الكلمة المحجوزة instanceof والتحقق ما إذا كانت القيمة نسخة من نوع Array كالتالي: [] instanceof Array // true 5 instanceof Array // false {} instanceof Array // false "Emad" instanceof Array // false أو لجعل الشيفرة أكثر وضوحًا يمكن الاستعانة بالتابع الثابت static ضمن الصنف Array نفسه بالاسم isArray، حيث يعيد قيمة منطقية تدل فيما إذا كانت القيمة الممررة له هي مصفوفة كالتالي: Array.isArray([]) // true Array.isArray(5) // false Array.isArray({}) // false Array.isArray("Emad") // false
  15. هل يمكنك إرفاق صورة لقسم التعليقات في الأسفل، في نهاية التعليقات ستجدين مربع إدخال للتعليق الجديد، في حال كان غير مفعل أو لا يظهر يرجى إرفاق صورة توضح ماذا يظهر لك
  16. في حال كانت عملية التبديل متعلقة بقيمة العنصر، فيجب المرور على كل عناصر المصفوفة لفحصها وتبديل القيم المطلوبة بالقيم الجديدة، بدلًا من المرور على العناصر باستخدام الحلقات مثل for و foreach يمكن االاستفادة من التابع map الذي توفره المصفوفات، حيث تمرر له تابعًا سيستدعى لكل عنصر من عناصر المصفوفة وستحسب داخلة القيمة الجديدة لذلك العنصر، مثلًا في حال أردت تبديل القيم 102 بالقيمة 555 تكون الشيفرة كالتالي: myArr.map(function (item){ if(item === 102) return 555; // تبديل بقيمة مختلفة return item; // إرجاع القيمة نفسها })
  17. ما الدورة المشتركة بها، وما المسار والدرس الذي تحاولين التعليق أسفله
  18. في حال كنت تقصدين أحد فيديو الدورات المشتركة بها يرجى التعليق أسفل الفيديو مباشرة وشرح مشكلتك وعرض صورة عن رسالة الخطأ أو المشكلة التي تظهر لك، وسيتابع معك فريق المدربين المشكلة ويدلك على الحل
  19. قد يُضاف مستقبلًا دورة لتعليم تطوير الألعاب، الدورات التي توفرها الأكاديمية تعتمد على الطلب في السوق، لتؤهل من يرغب بالعمل كمبرمج من دخول سوق العمل مباشرة واكتسابه مهارات متقدمة في أحدث التقنيات المستخدمة في مجاله، توفر الأكاديمية حاليًا المقالات التالية عن صناعة الألعاب ضمن المتصفح، وسلسلة مقالات عن تطوير الألعاب باستخدام محرك Unity:
  20. تأكدي من وجود حقل بالاسم "Admin_Name" ضمن الجدول "admin-login" ضمن قاعدة البيانات التي تتصلين بها ضمن تطبيقك، يجب أن يطابق اسم هذا الحقل ذكره ضمن الاستعلام وتحديدًا ضمن الجملة الشرطية Where، وتأكدي أن أسماء الحقول تتطابق تمامًا مع ذكرها ضمن الاستعلام حتى مع حالة الأحرف لها تجنبًا لحدوث مشاكل في ذلك
  21. لاحظ اللاحقة min.js في نهاية الملف، وهي تدل أن الشيفرة داخل هذا الملف هي نتيجة عملية تقليص وتعمية لشيفرة جافاسكربت أخرى أصلية، يمكنك تجميل تنسيق الشيفرة مجددًا أي إلغاء مفعول التقليص عبر أدوات مخصصة لذلك مثل موقع beautifier.io فقط انسخ تلك الشيفرة إلى الحقل المخصص لها ضمن الموقع ونفذ عملية التجميل، وانسخ النتيجة مجددًا إلى الملف الخاص بك وعدل ما تريد، لكن ستلاحظ أن أسماء المتغيرات والتوابع لا معنى لها ويصعب فهم الشيفرة، هذا بسبب عملية التعمية التي مرت بها تلك الشيفرة لتقليصها إلى أكبر درجة ممكنة، وللأسف لا يمكن تعديل ذلك سوى يدويًا عبر إعادة تسمية المتغيرات التي تحتاجها وقد تقع في خطأ بذلك وينصح بتجنب تلك العملية، يمكنك الاستفادة من قراءة المقال التالي للتعرف على فائدة عملية التصغير:
  22. لا يمكن تعريف محرف فارغ في ++C، بما أن الغرض من عملي الإسناد تلك هو حذف محرف في المكان الحالي، فيمكنك استخدام التابع erase لمسح محرف ما بالطريق التالية: for (int i = 0; i <= 4; i++) { sss.erase(i, 1); .. }
  23. الهدف من إتاحة وصولك إلى أول مسار من كل دورة هو اطلاعك عليها في حال رغبت لاحقًا بالاشتراك في دورة أخرى لتأخذ فكرة عن تلك الدورة، الامتحان النهائي يكون ضمن تخصص الدورة التي اشتركت بها فقط، أي دورة علوم الحاسوب، ولا علاقة لباقي الدورات في ذلك، إذا رغبت اتطلع على دروسها عند الانتهاء من دورتك الحالية قد ترغب في الاشتراك بإحداها لاحقًا لتعلم اختصاص جديد
  24. يبدو أنه لا يوجد أي من الحقول المستخرجة توافق الشروط ما ينتج عنه استعلام خاطئ، تأكد من البيانات المرسلة مع الطلب ويمكنك إضافة فحص لذلك قبل تحضير الاستعلام لتجنب الخطأ كالتالي: $validated = []; if($name !== null) $validated['name'] = $name; if($ExtraData !== null) $validated['ExtraData'] = $ExtraData; if($IDColors !== null) $validated['IDColors'] = $IDColors; if(empty($validated)){ // لم ترسل أي حقول throw new Error('No fields received, please send one of `name`, `ExtraData`, `IDColors` fields.'); } وفي حال واجهت ذلك الخطأ حاول طباعة محتوى POST_$ وتأكد من البيانات التي تصل إلى الخادم
×
×
  • أضف...