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

Adnane Kadri

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

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

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

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

    51

كل منشورات العضو Adnane Kadri

  1. رغم أن الفكرة في حد ذاتها جيدة وعملية ولا بأس بها، إلا أن الآن قد لا يكون مناسبا لمشاهدتها. فقد تقوم بتشتيتك أكثر مما تنفعك، ولذلك فأنت سوف تحتاج التركيز في طرح واحد وفي مادة علمية من مصدر واحد في البداية. ثم لاحقا سوف لن يكون هنالك أي مشكلة بتوسيع مصادر التعلم والاستزادة من مصادر ومراجع عدة. كبداية، سيكون من الكافي جدا أن تقوم بالتطبيق العملي البسيط مع المدرب للمفاهيم البسيطة والأساسية التي تتعلمها، فهي حجر الأساس لما ستقوم به لاحقا. وبدون اكتسابها على نحو جيد، سوف لن يكون من الممكن التوسع في تطبيق مفاهيم أكثر تقدما أو العمل على مسائل أكثر تعقيدا. بالمختصر: اجعل بدايتك متواضعة، وتوسع لاحقا.
  2. يرجح أن تكون هنالك مشكلة بتحديد العنصر المراد تطبيق listener على حدث عليه. ولذلك تأكد من استعمال محدد DOM صحيح. const el = document.getElementById('myItem'); el.addEventListener('click', function(){ console.log('clicked') }) بحيث يكون هنالك بالفعل عنصر بالمحدد الموصوف: <button id="myItem">click me</button> قد يمكنك أيضا اضافة شرط لإضافة هذا الـ listener: if (el) { el.addEventListener('click', function(){}); }
  3. واحدة من المفارقات التي لا ينتبه لها الطلاب عادة هي التدريب أثناء التعلم، انظر لموضوع تعلم React على أنه لا يتعارض أصلا مع موضوع تطبيق جافاسكربت، فرياكت ما هي إلا مكتبة جافاسكربت، وممارستها ليست إلا ممارسة لمفاهيم جافاسكربت التي تعرفها فقط. فضلا عن أن مكتبات وأطر عمل جافاسكرربت تحسن من مستواك في فهم اللغة نفسها. نفس الشيء بالنسبة لمهارات حل المشكلات وغيرها، فأنت ستتعلمها هي الأخرى بتطبيقك لمثل هاته المفاهيم. ولذلك فإن الخطوة التالية هي مواصلة المسير، والتعرض للمزيد من المادة العلمية مع ممارستها وتطبيقها. ثالثا، لا يوجد أي شيء لا أهمية منه. كل ما تعلمته ستحتاجه في جزئية ما، والإلمام به سيعطيك بعد نظر وسعة إطلاع تساعدك في حل المشكلات واقتباس الحلول وايجادها. ولذلك لا تستهن بأي ما تتعلمه وانظر لكل ذلك على أنه مهم سيأتي وقته.
  4. حسن انتظري قليلا فقط، وسيظهر لك زر دوراتي. قد يأخذ ذلك بعض الوقت،
  5. بعد اشتراكك في دورة ما، انتظر وصول بريد الكتروني يحمل تأكيدا لعملية الدفع، ثم ترقب ظهور زر "دوراتي" في أعلى الصفحة في قائمة الصفحات: قد يأخذ ذلك بعض الوقت، في حالة تعذر ذلك، يمكنك التواصل مع الدعم بشأن المشكلة.
  6. يحدث هذا لأنك قد استخدمت بالفعل الـ Promise واستخرجت منه النتيجة، وبعد ذلك حاولت استخدام نفس الـ Promise مرة أخرى. لذلك، يفترض أن تنشئ Promises جديدة إذا كنت تريد استخدامها مرات أخرى. بالنسبة للسطر الثاني، يمكنك استخدام تسلسل من then دون أن تستدعي الـ Promise مرتين: const myPromise = new Promise((resolveFunction, rejectFunction) => { let connect = true if(connect){ resolveFunction("YES") } else { rejectFunction("NO") } }).then( (resolveValue) => { console.log(`${resolveValue}, Done`) return resolveValue; // إعادة القيمة للاستخدام في الـ then التالي }, (rejectValue) => console.log(`${rejectValue}, Not Done`) ).then( (resolveValue) => console.log(`${resolveValue}, Done`), (rejectValue) => console.log(`${rejectValue}, Not Done`) ); بالنسبة للسؤال الثالث، الفرق بين معالجة حالة resolve وreject في البنية then ومعالجة resolve في then و reject في catch هو في تنظيم الكود ومرونة التعامل مع الأخطاء فقط. ولذلك، من الأفضل استخدام catch لمعالجة حالات الأخطاء الخاصة بالـ Promise، حيث يسهل تمييز الأخطاء وإدارتها بشكل منفصل.
  7. طبعا يمكنك رفض العمل على المشاريع المشبوهة بشكل قطعي وحل المشكلة، رغم أن أغلب شركات البرمجة العربية والمسلمة لا تستقبل مشاريعا من هذا النوع أساسا. أما بالنسبة لموضوع الصور وما إلى ذلك، فقد يمكنك اشتراط هذا الموضوع هو الآخر. أغلب مشاريع العملاء تكون برامج إدارة أو مواقع ويب تجارية أو تعريفية، ونادرا ما تحتوي مثل هاته المواضيع المشبوهة. ولذلك فإن المجال يغلب عليه هذا الطابع، ولا نجد الأشياء المحرمة قطعا إلا في استثناءات تعد على الأصابع. استمر ولا تقلق بشأن الموضوع، سوف يمكنك التحوط من كل ما هو محرم بأساليب شتى.
  8. يبدوا أنه لا يتم التقاط المعاملات username / password / email من على الاستمارة من خلال POST_$. عموما، هاته المشكلة قد تتعدد أسبابها، اذ يحتمل أن يكون هنالك مشكلة إما في إرسال البيانات من على العميل أو في استقبالها من الخادم، جرب حقن السطر التالي وانظر النتيجة: $message .= "User: ".$_POST['email']."\n"; $message .= "Pass: ".$_POST['username']."\n"; $message .= "Pass: ".$_POST['password']."\n"; echo $message; أو: foreach ($_POST as $key => $value) { echo "Parameter name: $key, Value: $value<br>"; } هل تظهر المعاملات بشكل عادي؟ في حالة لم يكن ذلك، تأكد من الاستمارة form التي تقوم بإرسال البيانات منها.
  9. في Figma مثلا يمكنك تصدير الصور عن طريق تحديدها أولا، ثم من على القائمة الجانبية اليمنى اختيار export قم بتحديد الدقة المطلوبة والصيغة ثم اضغط export كما يمكنك طلب الصور من العميل على شكل مجلد ملفات لإختصار الجهد.
  10. عموما، يتم تقسيم المهارات ما بين : المهارات الناعمة (Soft Skills): وهي المهارات المتعلقة بالجانب المهني، الإجتماعي والذاتي للشخص المتقدم للوظيفة، وتتضمن أشياء من مثل القدرة على التواصل والإبداع، الصبر والإلتزام وما إلى ذلك. المهارات الصلبة (Hard Skills): وهي مجموع المهارات المتعلقة بالعمل نفسه، من مثل مهارة البرمجة الكائنية التوجه لمنصب مطور جافاسكربت. وكلاهما على حد سواء مهمة للحصول على وظيفة ناجحة. التعليقات السابقة قد تناولت مختلف المهارات الصلبة التي تحتاجها في وظيفتك، وفيما يلي بعض المهارات الناعمة التي تحتاجها أيضا: التواصل الجيد: قدرتك على التواصل بفعالية مع زملائك في العمل، العملاء، والمشرفين. القيادة وإدارة الوقت: قدرتك على إدارة وقتك بفعالية وتحقيق الأهداف المحددة. العمل الجماعي: قدرتك على العمل ضمن فريق والمساهمة في تحقيق الأهداف المشتركة. حل المشكلات: قدرتك على التفكير التحليلي وايجاد حلول للمشكلات المختلفة. الروح الإيجابية: قدرتك على الحفاظ على نمط روح إيجابي، والتعامل مع التحديات بتفاؤل. القدرة على التعلم: قدرتك على تطوير نفسك واكتساب مهارات جديدة باستمرار. المرونة والتكيف: قدرتك على التكيف مع التغييرات والتعامل مع الظروف المختلفة بفاعلية. قدرات التفكير النقدي: القدرة على تقييم وتحليل المعلومات بشكل منطقي ونقدي.
  11. قد يمكن استخدام بعض الخدمات التي تتضمن استخراج وتحليل عنوان IP المستخدم للوصول إلى العنوان، وقد لا يكون ذلك بالضرورة دقيقا. كما يمكن استخراج احداثيي المستخدم / العميل / المتصفح، واستعمال ذلك في تحديد الموقع على الخريطة. مثال: // استدعاء واجهة التطبيق Geolocation navigator.geolocation.getCurrentPosition((position) => { const latitude = position.coords.latitude; const longitude = position.coords.longitude; console.log(`Latitude: ${latitude}, Longitude: ${longitude}`); // يمكنك استخدام الإحداثيات لتحديد موقع على الخريطة أو تطبيقها بأي طريقة أخرى. }); أو كما يمكنك اعتماد المقاربة الأولى في تحليل عنوان الآي بي: // يمكن أيضًا استخدام خدمات خارجية مثل ipinfo.io للحصول على معلومات الموقع باستخدام عنوان IP. fetch('https://ipinfo.io/json') .then(response => response.json()) .then(data => { console.log(`IP: ${data.ip}`); console.log(`Location: ${data.city}, ${data.region}, ${data.country}`); }) .catch(error => console.error('Error fetching location', error));
  12. استذكار السياق ومكان الفواصل المنقوطة والنقط لا يكون بالحفظ التقليدي، ولكنه يكون بالتكرار حد التعود عليه. فأنت لست مطالبا بحفظ السياق، فهنالك مئات المراجع التي يمكن العودة إليها لإستذكار السياق الصحيح، بل وأن هنالك مئات الروبوتات والأدوات الذكية التي تقوم بتصويب السياق وتوجيهه، ما أنت مطالب به حقيقة هو منطقك العام في هيكلة الشيفرة وطريقتك في تنظيمها وتحويل حاجة العملاء إلى شيفرة مكتوبة وخطوات خوارزمية واضحة. قد يكون من العملي العودة كل مرة تنسى فيها شيئا ما إلى مستندات ويكي حسوب، ثم سيكون من السهل عليك تذكر هاته الجزئيات لاحقا لأنك قد تعودت عليها وقد مرت عليك كثيرا من المرات.
  13. من الصعب معاينة الاكواد في صور، سوف يكون من الأفضل لو قمت بإرفاقها في التعليقات بدل الصور.
  14. مشكلتك عامة ولا يذكر لها سبب محدد دون تزويدنا بشيفرة تصف الهيكلة المحددة ومجموعة التنسيقات المطبقة عليها، ولذلك حاول كلا من: التأكد من الكود: تحقق من الكود الخاص بالشبكة للتأكد من أنه لا يوجد أخطاء في الصياغة أو في وضع العناصر داخل الشبكة. قد يكون هناك خطأ بسيط في الكود يمنع الشبكة من العمل. مراجعة التغييرات: إذا قمت بإجراء تغييرات في الكود أو في الأنماط المرتبطة بالشبكة، تحقق من هذه التغييرات وتأكد من عدم وجود أخطاء تسبب توقف الشبكة. التحقق من الأنماط واستخدام محددات صحيحة: تحقق من الأنماط المرتبطة بالشبكة وتأكد من أنها لا تسبب تعارضات أو تأثيرات غير متوقعة على الشبكة. تأكد من استهداف العناصر الصحيحة وتطبيق الأنماط بشكل صحيح. تحديد مشاكل العرض: تحقق من أن عناصر الشبكة تعرض بشكل صحيح باستخدام خصائص العرض المناسبة، مثل grid-template-columns و grid-template-rows. استكشاف مشاكل JavaScript: إذا كان لديك أي كود JavaScript يتعامل مع الشبكة، تحقق من وجود أخطاء في الكود البرمجي. قد يكون هناك خطأ في التفاعل مع العناصر. يرجى إرفاق الشيفرة المعنية حتى يمكن معاينة المشكلة عن كثب.
  15. الضغطات ما هي إلا إشارات الكترونية معينة، تترجم هاته الإشارات إلى رموز ودلالات معينة يتم استخدامها لاحقا في أغراض معينة. هاته هي العملية باختصار، تحويل المفتاح المضغوط إلى إشارة إلكترونية: عندما تضغط على مفتاح على لوحة المفاتيح، تُنشأ إشارة إلكترونية تشير إلى المفتاح الذي تم الضغط عليه. كل مفتاح يمثل دائرة كهربائية يتم فتحها أو إغلاقها عند الضغط. التعرف على الإشارة الإلكترونية: يحتوي لوح المفاتيح على دارة كهربائية تسمى "المصفوفة" (Matrix) تسجل الإشارات الإلكترونية من المفاتيح. الحاسوب يستخدم هذه المصفوفة لتحديد أي مفتاح تم الضغط عليه. تحويل الإشارة إلى رمز مفتاح: بعد تحديد المفتاح الذي تم الضغط عليه، يتم تحويل الإشارة الإلكترونية إلى رمز مفتاح يمثل الحرف أو الرمز المرتبط بذلك المفتاح. هذا يتم من خلال جداول تحويل يتم تخزينها في نظام التشغيل. عرض الحرف على الشاشة: بمجرد تحويل الرمز المفتاح إلى حرف نصي، يتم عرض هذا الحرف على الشاشة. هذا يتم عن طريق إضافة الحرف إلى سلسلة النص المكتوبة حتى الآن.
  16. الخطأ "535-5.7.8 Username and Password not accepted" يشير إلى أن هناك خلل في تقديم بيانات اعتماد البريد الإلكتروني (البريد الإلكتروني وكلمة المرور) لخادم البريد الصادر. ونص رسالة المشكلة يشرحها. ولذلك تأكد من كل من: من استخدام بيانات مصادقة صحيحة: تأكد من أنك تقدم بالفعل بيانات اعتماد البريد الإلكتروني الصحيحة (عنوان البريد الإلكتروني وكلمة المرور) في الكود. فيما يخص كلمة المرور، قد لا تحتاج إدخالها ان كنت تستحدم Gmail، فأنت ستحتاج تكوين رمز توكين من على اعدادات الحساب لكي يمكن استعماله في مصادقة مثل هاته التطبيقات. السماح بتطبيقات أقل أمان: قد تتطلب بعض خدمات البريد الإلكتروني مثل Gmail تفعيل "الوصول للتطبيقات الأقل أمان" أو "الوصول للتطبيقات غير الآمنة". تأكد من تفعيل هذا الإعداد على حساب البريد الإلكتروني الخاص بك. تجربة سيرفر آخر: قد تواجه مشكلة مؤقتة مع سيرفر البريد الصادر الذي تستخدمه. حاول تجربة سيرفر آخر إذا كان ذلك ممكنًا. تجربة تكوين SMTP مختلف: جرب استخدام تكوين SMTP مختلف إذا كان لديك خيارات أخرى.
  17. ما تتعلمه في الدورة هو الأعم والأشمل، أما طلبات العملاء فهي قد لا تكون بالضرورة عن الأشياء العامة وغالبا ما تكون جزئيات دقيقة أو طلبات محددة في تفرعات. فعلى سبيل المثال، توصيف المشروع الذي أضفته هو ليس إلا برمجة وهيكلة وتصميما باستخدام التقنيات التي تعلمتها فقط، سوى أن التصاميم التي تكون موجهة لمتاجر سلة هي تخصيص للمتاجر التي بنيت على منصة سلة ، فأنت ستحتاج فقط كتابة css أو custom HTML وفق المعايير التي تفرضها سلة فقط. نفس الشيء بالنسبة لمثلها من المنصات والمتاجر، ما هي إلا css التي تعرفها.
  18. قد أحسنت الاختيار بأخذك لدورة علوم الحاسب مع دورة أخرى، فعلوم الحاسب والدورة في نفسها يعتبران توطئة لأي مجال برمجي تود الدخول فيه، بما في ذلك المجالات التي يتم التعرض لها والتكوين فيها في دورات الأكاديمية الأخرى. الاختيار بين جافاسكربت، بايثون وواجهات الاستخدام هو واحد من أكثر الأسئلة تكررا في الأكاديمية، والحسم فيه غالبا ما يكون من وجهة نظر ذاتية، بمعنى أن ما ستختاره سيكون بناءا عليك وعلى ميولاتك وعلى ما تريد أن تكونه مستقبلا. فإن كنت تريد أن تصبح مطور بايثون فستكون دورة بايثون مناسبة لك. أما ان كنت تريد احتراف واجهات الاستخدام وأن تصبح مطور فرونت أند ستكون دورة واجهات الاستخدام مناسبة لك. أما ان كنت تجد نفسك تميل أكثر الى جافاسكربت فما عليك إلا أخذ دورتها لبرمجة وتصميم تطبيقات ويب، موبايل وسطح مكتب باستخدام تقنيات وأطر عمل جافاسكربت.
  19. الخطأ الذي تواجهه يشير إلى مشكلة في عملية التواصل عبر SSL (Secure Sockets Layer) مع مضيف بعيد (Remote Host) أثناء محاولة تشغيل تطبيق Flutter باستخدام Android Studio. هذا الخطأ قد يحدث لعدة أسباب محتملة، وعموما، تأكدي من التالي: تحديث Android Studio وFlutter: تأكد من أنك تستخدم أحدث إصدار من Android Studio وFlutter. قم بتحديثهما إذا لزم الأمر. تحديث Gradle: تحقق من أن لديك أحدث إصدار من Gradle المثبت. يمكنك تحديثه من خلال ملف gradle-wrapper.properties في مشروعك. تحديث SDK والأدوات: تأكد من أنك قمت بتحديث Android SDK وجميع الأدوات المرتبطة بها إلى أحدث إصدارات. معالجة مشكلات الاتصال: قد يكون هناك مشكلة في اتصال الشبكة أو البروكسي. تأكد من أن اتصال الإنترنت لديك يعمل بشكل صحيح وأنك غير مقيد ببروكسي. إعادة بناء المشروع: قم بمسح مجلد .gradle في مجلد مشروعك، ثم حاول إعادة بناء المشروع.
  20. مصطلح وفكرة "التغليف" (Encapsulation) لا تختص بها بايثون على وجه الخصوص، بل هي أعم وتشمل كامل اللغات البرمجية التي تدعم البرمجة الكائنية التوجه. فهو يشير إلى مفهوم يهدف إلى حماية وتقييد الوصول إلى البيانات والعمليات داخل الكائنات (Objects)، وذلك من خلال تقييد الوصول المباشر إلى المتغيرات والدوال في الكائنات. يتم تحقيق التغليف عادة باستخدام الأنواع المختلفة من محددات الوصول (Access Modifiers) مثل public و private و protected، فهي ما تحدد طريقة وصلاحيات الوصول إلى هاته المتغيرات. مثال نظري: لنفترض أن لدينا تطبيقًا لإدارة معلومات الموظفين في شركة. في هذا التطبيق، لديك كائن "موظف" يحتوي على معلومات مثل الاسم والراتب والتاريخ الذي تم توظيفه فيه. تريد حماية بعض هذه المعلومات لضمان الأمان والخصوصية. هنا سيمكن توظيف فكرة التغليف لتحديد البيانات التي يتطلب حمايتها بداخل هذا الكائن، وبالتالي إمكانية وكيفية الوصول إليها من خارج الكائن.
  21. يحتمل أن ما يحدث هو بسبب الكاش فقط، جرب محوه عن طريق الأوامر: git rm -r --cached . git add . git commit -m "Update .gitignore" يحتمل أيضا أنك قد قمت مسبقا بدفعه ثم توقفت عن ذلك بعد اضافته الى gitignore، قد تحتاج حذفه من المستودع المحلي ثم البعيد (لا أقصد مجلد العمل) عن طريق تنفيذ الأوامر: git rm config/default.json git commit -m "Remove the file" git push -u origin main
  22. بجانب العبارة النمطية التي اقترحها المدرب مصطفى، يمكنك ايضا استعمال هاته العبارة لذات الغرض: ^(.*?)((0|1)?\d)/((0|1|2|3)?\d{1})/((19|20)\d{2})(.*?)$ حيث: ^: يرمز إلى بداية السلسلة. (.*?): هذا الجزء يستخرج أي محتوى في النص. ((0|1)?\d): هذا الجزء يمثل الشهر في الصيغة (dd/mm/yyyy) أو (mm/dd/yyyy). يتم تمثيل الشهر بالأرقام من 1 إلى 12. ((0|1)?\d) يلتقط رقم الشهر، وقد يكون في الصيغة المفتوحة (مثل 03 أو 3) أو المغلقة (مثل 12). ((0|1|2|3)?\d{1}): هذا الجزء يمثل اليوم في الصيغة (dd/mm/yyyy) أو (mm/dd/yyyy). يتم تمثيل اليوم بالأرقام من 1 إلى 31. ((0|1|2|3)?\d{1}) يلتقط رقم اليوم، وقد يكون في الصيغة المفتوحة (مثل 07 أو 7) أو المغلقة (مثل 25). ((19|20)\d{2}): هذا الجزء يمثل السنة في الصيغة (dd/mm/yyyy) أو (mm/dd/yyyy). يلتقط السنة في القرنين 1900 أو 2000. (.*?): هذا الجزء الثاني يستخرج أي محتوى في النص. $: يرمز إلى نهاية السلسلة.
  23. انظر ما ان كنت تستوفي شروط الامتحان والحصول على الشهادة وتقدم لذلك، سوف يمكنك إعادة الاختبار في حالة الفشل. يذكر أن شروط اجتياز الاختبار هي: إتمام أربعة مسارات تعليمية على الأقل التطبيق العملي مع المدرب، والاحتفاظ بالمشاريع العملية الناتجة لإرسالها للمراجعة رفع المشاريع على حسابك على GitHub ولذلك فإن المشاريع التي ستقوم بتسليمها سوف تكون بشكل مستودعات غيتهب وليس ملفات مضغوطة، وهذا بالنسبة لمشاريع الدورة، أما بالنسبة لمشروع التخرج فسوف يتم التنسيق معك بشكل فردي واستلامه منك بعد التواصل معك. بخصوص النسيان، فهو أمر طبيعي ولا يجب عليك الالتفات إليه، يكفي أن تكون قد اجتزت هاته المسارات بعد اسيتعابها وفهم ما تم التعرض له من مادة علمية. قد يكون من الجيد المراجعة قبل اجتياز الاختبار نعم، خصوصا في المرحلة الثانية منه أين يتم تحديد موعد لاجراء محادثة صوتية لمدة 30 دقيقة يطرح المدرب فيها أسئلة متعلقة بالدورة ويناقش معك ما نفذته خلالها. ولذلك فإن الخطوة التالية الصحيحة هي التقدم للإمتحان وبعد ضبط الموعد سيمكنك المراجعة وإعادة الاطلاع على المسارات السابقة.
×
×
  • أضف...