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

عبد الوهاب بومعراف

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

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

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

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

    2

كل منشورات العضو عبد الوهاب بومعراف

  1. الهدف من الدورة أساسا هو هدف تنمية مهارات التفكير وحل المشاكل و المهارات الأساسية في البرمجة وهذا ما يتيحه المسار الأول خاصة من خلال تطبيقاته العملية، فبما أنك متقن للغة جافا سكريبت ومتمكن يمكنك إما تخطي المسار الأول أو دراسته وتسريع الفيديو وستنهيه في أقرب وقت. أما عن شروط اجتياز الامتحان فهي كالآتي: إتمام أربعة مسارات تعليمية على الأقل التطبيق العملي مع المدرب، والاحتفاظ بالمشاريع العملية الناتجة لإرسالها للمراجعة رفع المشاريع على حسابك على GitHub أولًا بأول لمشاركتها معنا
  2. لم تخبرينا أي محرر أكواد تستخدمينه؟ لكن لا يختلف الأمر كثيرا فمادمت تعملين على وينداوز فسيكون الأمر مشابها ويمكنك حفظ أية أكواد تكتبينها وليس فقط أكواد html من خلال الضغط على: Ctrl + S أو يمكنك تفعيل خاصية الحفظ التلقائي في VsCode من خلال التوجه إلى File ثم في الأسفل تماما اضغطي على: Auto Save وهنا لن نحتاج لنعمل الحفظ يدويا وسيتكفل المحرر بذلك بنفسه.
  3. بالتأكيد يجب أن تسجل الدخول من خلال الحساب الرسمي الذي قمت بشراء الدورة من خلاله. وأما بخصوص كلمة السر فأرجو مراجعة هذا الفيديو ففيه جميع الخطوات مشروحة بالتفصيل لاستعادتها: أو يمكنك متابعة الخطوات كاملة من هنا: استعادة كلمة المرور وفي حال واجهتك أي مشكلة في الدخول يمكنك التواصل مباشرة مع مركز المساعدة.
  4. في JavaScript الوضع مختلف تماما عن Java وPHP ففي JavaScript التقليدي جميع الخصائص والدوال تكون public أي أنها عامة بشكل افتراضي بمعنى أنه يمكن الوصول إليها وتعديلها من أي مكان في الكود فلا نجد مثلا كلمات مفتاحية مثل private أو protected كما في اللغات الأخرى. هنا المطورون كانوا يستخدمون اتفاقيات تسمية مثل البدء بشرطة سفلية _property للإشارة إلى أن الخاصية خاصة مثلا لاحظ هنا: class Person { constructor(name, age) { this.name = name; this._age = age; } } const person = new Person("أحمد", 25); console.log(person.name); console.log(person._age); person._age = 30; هنا مع ES2022، تم إدخال الحقول الخاصة الحقيقية باستخدام الرمز # قبل اسم الخاصية، والتي تجعل الخاصية غير قابلة للوصول تماما من خارج الكلاس وهذا أقرب شيء ل private في اللغات الأخرى، لكن لا يوجد ما يعادل protected. class PersonModern { #privateAge; constructor(name, age) { this.name = name; this.#privateAge = age; } getAge() { return this.#privateAge; } } const person2 = new PersonModern("سارة", 28); console.log(person2.name); console.log(person2.getAge());
  5. وعليكم السلام ورحمة الله، ليس هنالك دورة مخصصة تعلم رياكت لكن بدلا من ذلك يتم تدريس رياكت من خلال مسار كامل مخصص لذلك في دورة تطوير التطبيقات باستخدام جافا سكريبت يمكنك الاطلاع على محاور الدورة ومساراتها من هنا:
  6. في الدورة استخدمنا أداة react-scripts وهي جزء من Create React App المعتمدة على Webpack لإعداد وتشغيل تطبيقات React، أما اليوم فتفضل غالبية المشاريع Vite لسرعته الفائقة في تشغيل الخادم وتجديد التغييرات بفضل وجود ال (Hot Module Replacement) عبر ES Modules وذلك من دون إعادة بناء الحزمة كاملة. كما أن ملف التهيئة في Vite (vite.config.js) ظاهر ويسمح بإضافة الإضافات (plugins) وضبط الإعدادات مباشرة، بينما في CRA تظل أغلب الإعدادات مخفية داخل الحزمة ما يستلزم npm run eject للتخصيص. يمكنك الاطلاع أكثر على هذه الميزات من خلال التوثيق الرسمي: CRA: https://create-react-app.dev/docs/getting-started/ وVite: https://vitejs.dev/guide/) لذا يفضل تعلمها.
  7. عنصر <select> في HTML يستخدم لإنشاء قائمة منسدلة تتيح للمستخدم اختيار خيار واحد أو أكثر إذا تم تمكين خاصية multiple من بين عدة خيارات محددة مسبقا. والسمة name تستخدم لتحديد اسم الحقل عند إرسال البيانات إلى الخادم، بينما السمة id تستخدم كمعرّف فريد للعنصر يمكن استخدامه بواسطة JavaScript للتفاعل مع العنصر أو بواسطة CSS لتطبيق أنماط محددة. وفي الشيفرة التي أرسلتها كانت هذه السمات فارغة، مما يجعلها أقل فائدة مثلا هنا لنفترض أن لديك نموذجا (form) يطلب من المستخدم اختيار مدينة الشحن المفضلة لديه: <form action="/submit-order" method="post"> <label for="city-selection">اختر مدينة الشحن:</label> <select name="shipping_city" id="city-selection"> <option value="">-- الرجاء اختيار مدينة --</option> <option value="makkah">مكة</option> <option value="gaza" selected>غزة</option> <option value="kudus">القدس</option> </select> <button type="submit">إرسال الطلب</button> </form> هنا قمنا بإنشاء قائمة منسدلة فعالة باستخدام عنصر <select> لتمكين المستخدم من اختيار مدينة الشحن لاحظ هنا السمة name="shipping_city" تعد أساسية، حيث تحدد المفتاح الذي ترسل تحته القيمة المختارة مثل shipping_city=makkah إلى الخادم للمعالجة عند إرسال النموذج. بالتوازي تستخدم السمة id="city-selection" كمعرف فريد يسمح بربط القائمة بالعنصر <label> لتحسين تجربة المستخدم وتسهيل التفاعل، كما يمكّن JavaScript من استهداف القائمة للتلاعب بها برمجيا. وداخل هذه القائمة يمثل كل عنصر <option> خيارا فرديا، حيث تشير السمة value مثل value="kudus" إلى القيمة الفعلية التي ترسل للخادم، بينما النص الظاهر مثل "غزة" هو ما يراه المستخدم. وأخيرا تضمن السمة selected، عند تطبيقها على أحد الخيارات مثل "القدس"، أن هذا الخيار سيكون هو المختار افتراضيا عند تحميل الصفحة.
  8. وعليكم السلام ورحمة الله، لا أرى أن الذكاء الاصطناعي سيحلّ محل المبرمجين بالكامل، وإنما يمكن أن يحدث تحولا في طبيعة عملهم ونوعية المهام التي يؤدونها. المبرمجون اليوم يطورون أدوات الذكاء الاصطناعي التي قد تؤثر على مهنتهم، لكن هذا ليس تناقضا بل استراتيجية ذكية تحكمها عدة اعتبارات منطقية ومهنية. فهم يدركون أن الذكاء الاصطناعي سيصبح أداة قوية تساعدهم في أتمتة المهام الروتينية والمتكررة، مما يحررهم للتركيز على المهام الأكثر تعقيدا وإبداعا. فبدلا من قضاء ساعات في كتابة كود أساسي، سيتمكنون من التركيز على تصميم الأنظمة المعقدة وحل المشكلات التقنية المتقدمة وابتكار حلول جديدة. هذا التطور يرفع من قيمة عملهم بدلاً من تقليلها. كما أن تطوير أنظمة الذكاء الاصطناعي يتطلب مبرمجين متخصصين لبنائها وصيانتها وتحسينها باستمرار وهذه الأنظمة ليست ذاتية التطوير، بل تحتاج إلى خبرة بشرية لتصميم الخوارزميات وتدريب النماذج وضبط المعاملات وحل المشكلات التقنية المعقدة. كما أن كل نظام ذكاء اصطناعي يحتاج إلى مراقبة مستمرة لضمان عمله بشكل صحيح وآمن، مما يعني أن الحاجة للمبرمجين المتخصصين ستزداد وليس العكس.
  9. وعليكم السلام ورحمة الله، حتى لو كنت تحبذ عرض مشاريعك وأعمالك على تلك المنصات فوجود معرض أعمال خاص بك أمر مهم للغاية وأنصحك به. ليس فقط في مجال علم البيانات ولكن في جميع المجالات فمعرض الأعمال ضروري جدا، والأهم هنا هو أن الفرق بين معرض الأعمال والنشر عبر المنصات هو أن معرض الأعمال يظهر تتبعا زمنيا وتطورا لمهاراتك وللمشاريع التي قمت بها. فهو ليس بموقع ثابت يمكنك حتما التحديث فيه متى رأيت ذلك مناسبا ووفقا لتطور مهاراتك، وهذا ما يجعل موقعك أكثر احترافية ومهنية وجذبا للعملاء.
  10. أعتقد أنك تقصد إضافة أيقونة favicon في علامة التبويب بالمتصفح وهي صورة صغيرة تظهر بجانب اسم الموقع في تبويب المتصفح، تعطي هوية بصرية للموقع يمكنك فعل ذلك من خلال إضافة هذا الوسم داخل <head> كالآتي: <link rel="icon" href="icon.png"> يمكن استخدام .ico أو .png وفي حال لو لم تظهر أرجو مسح cache المتصفح.
  11. بما أنك ترغب في أن تصبح مطور Full Stack مع تعميق معرفتك في الذكاء الاصطناعي، أنصحك باختيار دورة تطوير التطبيقات باستخدام لغة JavaScript، حيث أن هذه اللغة تعتبر العمود الفقري لتطوير الويب الحديث، سواء للواجهات الأمامية باستخدام React.js أو للواجهات الخلفية عبر Node.js. كما تستخدم حاليا في تطبيقات الذكاء الاصطناعي على الويب، مما يتيح لك دمج ما تتعلمه في الذكاء الاصطناعي مع تطوير الويب، و الدورة تشمل مشروعا عمليا باستخدام Next.js وتقنيات الذكاء الاصطناعي، وهو ما يتوافق مع اهتمامك.
  12. الأمر يسمح لك بتنزيل مشروع Github كاملا في مجلد جديد باسم المستودع. يجب أن يكون Git مثبتا على جهازك حتى يعمل هذا الأمر , يمكنك التحقق من تثبيت Git بكتابة: git --version
  13. ليس أربع دورات و إنما أربع مسارات، حيث كل دورة تتكون من عدة مسارات، وبالتالي للتقديم إلى الإمتحان يجب عليك إنهاء على الأقل أربع مسارات من تلك الدورة، كما أنه لكل دورة إمتحان محدد، يمكنك التقديم إلى الإمتحان عبر التواصل مع مركز المساعدة: https://support.academy.hsoub.com/conversations
  14. ال Stacking في NumPy هو عملية دمج عدة مصفوفات في مصفوفة واحدة جديدة، سواء بشكل أفقي أو عمودي، و تعتبر هذه العملية مفيدة عند التعامل مع بيانات متعددة الأبعاد، حيث تتيح لك تكوين هياكل بيانات أكثر تعقيدا بكفاءة، و في NumPy تنفذ هذه العملية عبر دوال مثل np.vstack() للدمج العمودي، وnp.hstack() للدمج الأفقي، بالإضافة إلى np.stack() الذي يسمح بالدمج على محور معين.
  15. نعم الأكاديمية ملتزمة بهذا الأمر، حيث سيتم مرافقتك من قبل فريق مختص لمساعدتك في إيجاد وظيفة في أقرب وقت ممكن و في حالة لم تجد خلال ستة أشهر سيتم إرجاع حقوق الدورة، يمكنك التواصل مع مركز المساعدة في حالة أي أسئلة أخرى: https://support.academy.hsoub.com/
  16. نعم متوفر دورة تطوير التطبيقات باستخدام لغة JavaScript حيث لا تحتاج إلى خبرة سابقة في المجال و تمون البداية من الصفر، و تشمل جميع الجوانب و الأمور التي تفيدك حتى تصبح مطور لمواقع الويب، و تحتوي على مسارات خاصة بتطوير تطبيقات ويب تفاعلية باستخدام مكتبة React.js و أيضا تطوير تطبيقات جوال Android و iOS أصيلة باستخدام React Native و غيرها، يمكنك الإطلاع على محتوى الدورة من الرابط المرفق.
  17. يمكنك ذلك من خلال الضغط على زر Ctrl + / و ذلك بعد تحديد الأسطر التي تريد وضعها على شكل كومنت بهذا الشكل: كما يمكنك إلغاء هذا الأمر بنفس الطريقة.
  18. CPython هو التطبيق الرسمي والأكثر استخداما لمفسر لغة Python، وهو مكتوب بلغة C، حيث عند تنزيل Python من موقعها الرسمي فإنك تحصل على CPython بشكل افتراضي، و يقوم هذا المفسر بتحويل كود Python إلى bytecode ثم ينفذه مباشرة، و يعتبر CPython الأساس الذي تعتمد عليه معظم التطبيقات الأخرى، وهو المرجع القياسي لتطور اللغة.
  19. اسم بايثون لا علاقة له بالثعبان، على الرغم من أن الكلمة نفسها قد تثير هذا الربط، لكن تم اختيار هذا الاسم للغة البرمجة استلهاما من البرنامج التلفزيوني البريطاني الكوميدي الشهير "Monty Python's Flying Circus"، الذي كان يعرض في السبعينات، مؤسس لغة بايثون كان من محبي هذا البرنامج، فاختار الاسم بناء على ذلك ليكون غير تقليدي ومرح.
  20. إذا كنت تريد العمل في مجال علم البيانات والذكاء الاصطناعي، فإن اختيارك بينهما يعتمد على عدة عوامل مثل بيئة العمل التي تستهدفها والأدوات المتاحة، بالنسبة ل Google Cloud يعتبر خيارا قويا في مجال الذكاء الاصطناعي والتعلم الآلي بسبب أدواته المتكاملة مثل TensorFlow وVertex AI، كما أنه يدعم بشكل جيد بيئات Jupyter Notebooks المشابهة لـ Kaggle، و من ناحية أخرى Azure يقدم حلول ممتازة أيضا، خاصة إذا كنت تعمل في شركات تعتمد على منتجات Microsoft، حيث يوفر Azure Machine Learning وخدمات Cognitive Services التي تسهل بناء نماذج الذكاء الاصطناعي. بالنسبة لـ Kaggle Notebooks، فهي بيئة مجانية مخصصة لتحليل البيانات، و لكن لا يمكن إعتبارها بديل مباشر عن Google Cloud أو Azure التي توفر موارد قوية و تسهيلات في هذا المجال، و لكن يمكنك البدء بـ Kaggle لاكتساب الخبرة، ثم الانتقال إلى إحدى المنصتين السحابيتين للتوسع في المشاريع الأكثر تعقيدا.
  21. لدينا tf.data.Dataset.list_files حيث تستخدم هذه الدالة لإنشاء كائن tf.data.Dataset يحتوي على قائمة بأسماء الملفات التي تتطابق مع النمط المحدد في pattern، و هذه الطريقة مفيدة عند العمل مع مجموعات بيانات كبيرة، حيث توفر وسيلة ديناميكية لتحميل الملفات دون الحاجة إلى تحديدها يدويا. أما tf.io.read_file فتعمل هذه الدالة على قراءة محتوى الملف المحدد كبيانات خام دون تفسيرها أو تحويلها إلى صيغة محددة، و تستخدم عادة كخطوة وسيطة عند التعامل مع الصور أو النصوص، حيث يتم تحميل البيانات من الملفات قبل معالجتها أو تحويلها إلى نوع بيانات قابل للاستخدام داخل TensorFlow. بالنسبة ل tf.image.decode_jpeg فتستخدم هذه الدالة لفك تشفير الصور المخزنة بصيغة JPEG وتحويلها إلى كائن Tensor، حيث تأخذ الدالة البيانات الخام التي تم تحميلها باستخدام tf.io.read_file، ثم تقوم بتحويلها إلى مصفوفة تمثل الصورة بالأبعاد، و يمكن تحديد عدد القنوات اللونية للصورة من خلال المعامل channels، حيث يمكن ضبطه إلى 3 للحصول على صورة ملونة أو 1 للحصول على صورة بتدرجات الرمادي، و هذه الدالة أساسية عند التعامل مع بيانات الصور في مشاريع تعلم الآلة ورؤية الحاسوب.
  22. المشكلة التي تواجهها هي أنك تحاول تحميل بيانات باستخدام pd.read_csv ولكنك تقدم مسارا لمجلد بدلا من ملف CSV، إذا كنت تريد تحميل الصور من هذا المجلد، فاستخدم مكتبة مثل os أو glob لقراءة أسماء الملفات وتحميل الصور باستخدام مكتبة مثل PIL أو cv2 بدلا من pandas.
  23. التلافيف هو العملية الأساسية التي يتم فيها تمرير مرشحات عبر الصورة لاستخراج الميزات المهمة مثل الحواف والأنماط، ثم يتم تطبيق التجميع Pooling لتقليل الأبعاد المكانية للصورة مع الاحتفاظ بأهم المعلومات، مما يقلل من الحسابات ويجعل النموذج أكثر كفاءة، و أكثر أنواع التجميع شيوعا هو التجميع الأعظمي، الذي يحتفظ بالقيم القصوى من كل منطقة مجمعة، وبعدها يتم تمرير الميزات المستخرجة عبر طبقة متصلة بالكاملFully Connected Layer، حيث يتم تحويلها إلى مصفوفة مسطحة تستخدم لاتخاذ القرارات النهائية، مثل تصنيف الصورة إلى الفئة الصحيحة.
  24. الدورة تغطي كلاهما حيث سيتم إستعمال نماذج موجودة أو مدربة سابقا و أيضا يتم إن شاء نماذج من الصفر، و يمكنك العثور على هذه الدروس في مسارات، تعلم الآلة، تطوير نماذج ذكاء اصطناعي لمتجر إلكتروني و تطبيقات عملية على نقل التعلم، و لكن من الأفضل أن تقوم بمشاهدة الدروس و المسارات كلها و بالترتيب، لأنها مترابطة و مكملة لبعضها و بسبب تخطيك لأحدها يمكن أن يفوتك معلومات مهمة في هذا المجال.
  25. الدورة تضعك على بداية الطريق، لكنها لا تعلمك تطوير الويب بالكامل، ما ستتعلمه في مسار مدخل إلى عالم الويب هو أنك ستأخذ مقدمة في بناء صفحات الويب، و أيضا ستتعلم أساسيات JavaScript، و هناك جزء عن الشبكات والخوادم، مما يعني أنك ستتعرف على كيفية تفاعل المتصفح مع السيرفرات، و أيضا ستتعرف على قواعد البيانات، مما يفيد في تطوير الويب.
×
×
  • أضف...