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

Abdulrahman Muhammad

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

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

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

كل منشورات العضو Abdulrahman Muhammad

  1. هذا شيء طبيعي ويحدث مع كثير من المتعلمين، خاصة في البرمجة لأن المعلومات فيها متداخلة وكثيرة. لكن يوجد بعض الحلول تساعدك على تثبيت المعلومات وعدم نسيانها بسهولة، ومنها: التكرار والمراجعة - التطبيق العملي - حل الأسئلة والتحديات - التلخيص بعد الدرس بإتباع هذه الحلول ستحل مشكلة النسيان بشكل كبير ، احرص على اتباعها وتطبيقها، ومع الاستمرار والممارسة. ستلاحظ أن المعلومات تثبت أكثر في ذهنك.
  2. أساسيات البرمجة تعني المفاهيم الأولية التي يحتاجها الشخص في بداية تعلم البرمجة، مثل: المتغيرات وأنواع البيانات - الجمل الشرطية (if - else) - الحلقات التكرارية (for - while) - الدوال (functions) - القوائم والمصفوفات بالنسبة لكورس الذكاء الاصطناعي، نعم، يشمل تعلم أساسيات البرمجة باستخدام لغة بايثون في البداية، قبل الإنتقال إلى مجال تحليل البيانات وتعلم الآلة. إذا مبتدأ في المجال سيكون مناسب لك وتقدر تبدأ بهذا الكورس لأنه يشرح الأساسيات أولًا.
  3. وعليكم السلام ورحمة الله، يوجد فرق بسيط في أسماء وأنواع البيانات بين جداول البيانات مثل Excel أو Google Sheets، وبين لغات البرمجة. في لغات البرمجة مثل Python، تكون التسميات أكثر دقة مثل: int للأعداد الصحيحة float للأعداد العشرية str للنصوص bool للقيم المنطقية (True / False) أما في جداول البيانات، تكون بشكل أبسط الأنواع إلى: رقم (Number): ويشمل الأعداد الصحيحة والعشرية معًا نص (Text): أي قيمة مكتوبة ككلام أو أحرف تاريخ (Date) ووقت (Time): تُعامل كأنواع خاصة أحيانًا قيمة منطقية (TRUE/FALSE) فلغات البرمجة تتعامل مع الأنواع بشكل أكثر دقة، أما جداول البيانات فتُعامل القيم بطريقة مرنة وأبسط.
  4. مرحباً، دالة map تُستخدم عندما تريد تمر على جميع عناصر المصفوفة وترجع مصفوفة جديدة فيها نفس عدد العناصر، لكن كل عنصر يكون بعد تعديل أو إجراء عملية معينة. مثال: const names = ["Ali", "Sara", "Omar"]; const greetings = names.map(name => `Hello ${name}`); // النتيجة: ["Hello Ali", "Hello Sara", "Hello Omar"] في هذا المثال قمنا باستخدام المصفوفة القديمة "names" لإنشاء مصفوفة جديدة "greetings" وإجراء عملية معينة في نفس الوقت. مر على كل العناصر وإجراء عملية معينة دون التأثير على المصفوفة الأساسية بالتوفيق
  5. مرحباً، يرحى كتابة تعليقك في صندوق التعليقات أسفل الفيديو، حتى يتمكن فريق الدعم أو المدرب من الرد عليك مباشرة، لأن هذا النوع من الأسئلة يخص محتوى الدورة وليس مناقشات عامة. شكراً
  6. وعليكم السلام ورحمة الله وبركاته نعم، يوجد فرق بين القيمتين في النوع من حيث integer أو float 0 و 1: هذه أعداد صحيحة (int). 0.0 و 1.0: هذه أعداد عشرية (float). من ناحية القيمة الحسابية، فهي متساوية (0 = 0.0)، لكن من ناحية النوع (type) يختلفان، وهذا قد يؤثر في بعض الحالات في تحليل البيانات أو في التدريب على نماذج تعلم الآلة.
  7. بالتأكيد يمكن تنفيذ فكرة الصفحة الواحدة (Single Page) باستخدام HTML وCSS فقط، خصوصًا في المشاريع البسيطة. لكن إذا كانت الصفحة تتطلب تفاعلات مثل التنقل بين الأقسام دون إعادة تحميل، فستحتاج إلى استخدام JavaScript، لأنه المسؤول عن التحكم في إظهار وإخفاء المحتوى. أما في المشاريع الكبيرة، فقد تحتاج إلى استخدام أطر العمل مثل React أو Vue، لأنها توفر أدوات قوية لتنظيم الكود وتسهيل بناء تطبيقات معقدة. ومع ذلك، الأساس دائمًا هو HTML وCSS وJavaScript.
  8. تحديد أي من الخيارين تعويض (ملء) القيم المفقودة، أم حذف القيم المفقودة يعتمد على طبيعة البيانات والمشكلة اللي تحاول تحلها. إذا كانت القيم المفقودة قليلة جدًا (مثلاً أقل من 5%)، ففي بعض الحالات يكون الحذف أفضل وأسهل، خاصة لو كانت الصفوف المفقودة غير مهمة أو عشوائية. لكن إذا كانت القيم المفقودة كثيرة، فالحذف ممكن يسبب خسارة في البيانات ويأثر على دقة النموذج، وهنا التعويض (مثل المتوسط أو التكرار) يكون أفضل. بخصوص الفرق بين بيانات التدريب والاختبار: نعم يوجد فرق بينهما في بيانات التدريب: تقوم بتحليل البيانات وتعويض القيم المفقودة. في بيانات الاختبار: تستخدم نفس طريقة التعويض التي تم استخدامها في التدريب (نفس المتوسط أو القيمة).
  9. وعليكم السلام ورحمة الله وبركاته، لا تحتاج فعلياً إلى خبرة مسبقة لبدء الدورة ، حيث ان أكادمية حاسوب تجهز لك دورات قوية تبدأ من "أساسيات تطوير الألعاب" حتى مرحلة إنشاء العديدة من المشاريع. لمن هذه الدورة؟ لمن لا يمتلك خبرة سابقة في تطوير الألعاب ويرغب في دخول هذا المجال الشيق لمن لديه معرفة بسيطة بتطوير الألعاب ويرغب في تحسين مهاراته للوصول إلى الاحتراف لمن يرغب باكتساب مهارات تطوير الألعاب لزيادة الدخل أو بدء مسار مهني جديد لمن يتقن البرمجة ويرغب في تعلم كيفية تطبيقها في تطوير الألعاب باستخدام Godot لمن يطمح لبدء مشاريعه الخاصة في تطوير الألعاب وإطلاقها للجميع لمزيد من التفاصيل يمكنك زيارة:
  10. تعلم كيفية استخدام CRUD (إنشاء، قراءة، تعديل، حذف) يُعد خطوة مهمة جدًا، لأنه يطوّر مهاراتك في التعامل مع البيانات وتنظيم الكود بشكل والتعامل مع الأخطاء وتجنبها. واستخدامك لـ DOM في البداية خيار ممتاز، لأنه يساعدك على فهم طريقة التفاعل مع عناصر الصفحة يدويًا، مما يمنحك أساسًا قويًا. أنصحك بالاستمرار في المشروع، وابدأ بخطوات بسيطة ثم قم بتطويره تدريجيًا.
  11. إذا تفضل بداية سهلة لدخول عالم مكتبات الواجهة الامامية ف React سيكون الأنسب لك، وسيساعدك على فهم مفاهيم مهمة مثل المكونات (Components)، إدارة الحالة (State Management)، والتعامل مع الواجهات. بعد التأسيس في React وفهم طريقة العمل بها، سيكون من السهل عليك الانتقال إلى Angular، لأنك ستكون قد كوّنت خلفية جيدة عن بناء التطبيقات التفاعلية. لكن أيضا هذا يعتمد على قابليتك للتعلم وإدارة وقتك، إن كان وقتك محدود فمن الأفضل أن تركز على تعلم مكتبة واحدة فقط وتتقنها جيدًا بدلاً من التشتت بين أكثر من خيار.
  12. كل منهما مكتبات تستخدم في مجال تطوير الواجهات الأمامية ولكل منهم مميزاته، و الأفضلية تعتمد على نوع المشروع وهدفك. React مكتبة خفيفة وسهلة البدء، مناسبة للمبتدئين وتمنحك حرية في اختيار الأدوات الأخرى التي تحتاجها. وفي سوق العمل تستخدم كثيرا في الشركات. Angular إطار متكامل يحتوي على كل شيء جاهز لبناء تطبيق كبير، يحتاج وقت أطول للتعلم لأنه يحتوي على مفاهيم أكثر. يُستخدم بكثرة الشركات الكبرى والتي تتطلب تنظيم دقيق. فتعلم Angular لكونه إطار متكامل، فهذا جيد، لكن امنح نفسك بعض الوقت وخطوات واضحة للتقدم في التعلم. أما إذا تفضل أسلوب أقل تعقيدا وأسهل يمكنك البدء ب React. والإختيار بينهم يعتمد على حسب حاجتك وهدفك.
  13. وعليكم السلام ورحمة الله وبركاته، بالنسبة لإنشاء صفحة الدفع (Payment) باستخدام React، نعم يمكنك ذلك ، فـ React تُستخدم كثيرًا في مثل هذه الصفحات. لكن ستحتاج إلى تحديد بوابة دفع مثل Stripe أو PayPal، وهي توفر مكتبات جاهزة وتقدملك كود يمكنك إضافته لتسهيل عملية الدمج مع React وتتعامل معها من الواجهة الأمامية. و بالنسبة لتسجيل الدخول باستخدام حساب Google أو Facebook، فبإمكانك استخدام مكتبات مثل: react-oauth/google لتسجيل الدخول بحساب Google react-facebook-login لتسجيل الدخول بحساب Facebook وبعد الحصول على بيانات المستخدم من Google أو Facebook، يمكنك إرسال هذه البيانات إلى الباك اند (Back-end) لمزيد من العمليات والتحقق من وجود الحساب أو إنشاء حساب جديد. يمكنك التطور في الأمر خطوة بخطوة سيكون الأمر سهل إن شاء الله.
  14. لا يمكن الجزم بالاعتماد على Vue بشكل كامل، لكنه إطار قوي وسهل التعلم وما زال قيد التطوير المستمر. يتميز بوجود مجتمع كبير ودعم من المطورين، وتستخدمه العديد من الشركات في بناء تطبيقات ويب تفاعلية. يحصل Vue على تحديثات متواصلة، ويحتوي على أدوات قوية مثل Vue Router وVuex وPinia، وإصدار Vue 3 أضاف تحسينات كبيرة في الأداء وتنظيم الكود. فإذا كنت تتقنه وتستطيع من خلاله تنفيذ أفكارك وتحويلها إلى مشاريع حقيقية، فلا مانع من الاعتماد عليه، فهو مناسب لمشاريع صغيرة وكبيرة، وله حضور في سوق العمل.
  15. الفرق بين Vue و Nuxt: Vue.js هو إطار عمل لبناء واجهات المستخدم، يمكنك استخدامه لإنشاء صفحات ومكونات (Components) تتفاعل مع المستخدم، وأنت مسؤول عن تنظيم المشروع بنفسك، وإضافة كل ميزة تحتاجها يدويًا (مثل التوجيه - routing، أو التعامل مع الخادم - SSR). Nuxt.js مبني على Vue، لكنه جاهز أكثر، يعني يوفر لك بيئة عمل منظمة فيها أشياء كثيرة مدمجة وجاهزة، مثل التوجيه (routing)، وتقنية (Server-Side Rendering)، تحسين الأداء، وغيرها. في حين المشاريع الصغيرة يمكنك استخدام Vue.js لأنه خفيف وسهل. في المشاريع الكبيرة التي تحتاج إلى أداء عالي يمكنك استخدام Nuxt.js لأنه يوفر لك مميزات كثيرة جاهزة.
  16. الفرق بين OOP وSoftware Design : OOP: هي أسلوب أو طريقة لكتابة الكود، تعتمد على فكرة الكائنات (objects) مثل "طالب"، "سيارة"، "منتج"، وتستخدم مفاهيم مثل الفئات (class)، الوراثة (inheritance). هدفها تنظيم الكود بشكل أوضح وأسهل للتعديل. Software Design: هو مرحلة التخطيط التي تسبق كتابة الكود، وفيها يتم تحديد شكل وهيكل البرنامج، وكيف ستتواصل الأجزاء المختلفة مع بعضها البعض، وما هي أفضل الطرق لتنفيذ الحل. التصميم قد يستخدم OOP أو غيرها من الأساليب حسب الحاجة. OOP طريقة لكتابة الكود، وSoftware Design هو التخطيط العام لشكل البرنامج وتنظيمه.
  17. OOP (Object-Oriented Programming) هي أسلوب برمجة يركز على تنظيم الكود من خلال استخدام الكائنات (Objects)، حيث يجمع كل كائن بين البيانات (المتغيرات) والوظائف (الدوال) الخاصة به. يُستخدم هذا الأسلوب بشكل أكبر في المشاريع الكبيرة أو المعقدة التي تحتوي على أنواع مختلفة من البيانات، وكل نوع له سلوك ووظائف خاصة. مثال: نظام لإدارة الحيوانات في حديقة حيوان. يمكنك استخدام OOP لتعريف كائن يمثل كل حيوان. class Animal { constructor(name, sound) { this.name = name; this.sound = sound; } makeSound() { console.log(`${this.name} says ${this.sound}`); } } const lion = new Animal("أسد", "زئير"); const bird = new Animal("عصفور", "زقزقة"); lion.makeSound(); في هذا المثال قمبنا ببناء كلاس مخصص لنوع "حيوان" Animal يحتوي على بعض الوظائف الخاصة بهذا الكلاس فيمكننا إعادة استخدامه مرة اخرى في اكثر من موضع الذي يخص هذا الكلاس.
  18. إذا كنت تواجهه صعوبة في بناء تطبيقات بسيطة من الأفضل أن تبدأ من الأساسيات وتراجع المفاهيم خطوة بخطوة. حاول تكتب الملاحظات وتطبّق بيدك كل مثال. ومع التكرار والتدرّج في المشاريع، ستلاحظ تحسن كبير مع الوقت. المهم لا تستعجل وتركّز على الفهم قبل الانتقال للخطوات التالية.
  19. يوجد بعض الطرق مجانية للحصول على كائنات أو خلفيات لمواقعك أو تطبيقاتك، استخدام مواقع توفر رسومات جاهزة ومجانية. مثلاً، موقع OpenGameArt.org فيه رسومات وأصوات للألعاب.و حصول على خلفيات أو صور حقيقية، يمكن استخدام مواقع مثل Pixabay أو Unsplash. يمكن ايضا بناء بعض التصميمات بذوقك الخاص مثل Canva أو Figma، وهي مجانية وسهلة الاستخدام.
  20. قد تشعر ببعض الصعوبة أو التشتت في بداية تعلم التقنيات الجديدة، لكن من المهم اتباع خطوات واضحة أثناء التعلم، مع التركيز على التطبيق العملي، ويفضّل البدء بمشاريع صغيرة تُسهّل عليك فهم المفاهيم وتُسرّع وتيرة التعلم. تقدّم مكتبة React أسلوبًا مختلفًا في بناء واجهات المستخدم، حيث تعتمد على مفاهيم مثل المكونات (Components) والحالة (State) والـ Virtual DOM، وهذه المفاهيم تحتاج إلى بعض الوقت والجهد لفهمها وإتقانها. وغالبًا ما تكون الصعوبة في البداية ناتجة عن عدم الاعتياد على طريقة التفكير التي تعتمدها React. أما بالنسبة للاستغناء عن React، فذلك يعتمد على طبيعة المشروع. إن كان المشروع بسيطًا أو صغيرًا، فقد يكون التعامل المباشر مع الـ DOM كافيًا. لكن في حال كان المشروع كبيرًا، ويحتوي على العديد من المكونات، وتفاعل مستمر بين الأجزاء، وتحديثات متكررة في البيانات، فإن استخدام React يصبح ضروريًا.
  21. نعم يمكنك فعل ذلك. بما أن الأعمدة النصّية لا تحتوي على قيم مفقودة، والنماذج مثل SimpleImputer وKNNImputer وIterativeImputer لا تعمل إلا على البيانات الرقمية، فمن الأفضل فصل الأعمدة الرقمية التي تحتوي على القيم المفقودة وتطبيق المعالجة عليها فقط. بعد الانتهاء من تعويض القيم المفقودة، يمكنك دمج الأعمدة النصية مرة أخرى مع البيانات المُعالَجة. هذه طريقة صحيحة وتُستخدم كثيرًا في التعامل مع البيانات المتتوعة.
  22. دورة تطوير التطبيقات باستخدام JavaScript تطور مهارات في استخدام هذه اللغة البرمجية وتساعدك ، لكن ذلك يعتمد على المسار الذي تختاره داخل الدورة ومدى فهمك وتطبيقك العملي لما تعلمته. الدورة عادة تغطي تقنيات مهمة مثل React وNode.js وMongoDB وExpress، وهي مطلوبة في سوق العمل خاصة لمطوري الـMERN Stack. ومع ذلك، من الأفضل أن تختار تخصصًا واضحًا مثل تطوير الواجهة الأمامية أو الخلفية أو أن تصبح مطور Full-Stack، وتُركّز عليه. أيضًا، لا يكفي التعلم النظري فقط، بل يجب بناء مشاريع حقيقية لتقوية مهاراتك.
  23. التحضير لمقابلة التوظيف هو أمر ضروري لكي تزيد من فرص قبولك في العمل. عادةً ما يبدأ الحديث بأسئلة شخصية لفهم خلفيتك، مثل: "حدّثنا عن نفسك"، أو "ما هي المشاريع التي عملت عليها؟". بعد ذلك، يتم الانتقال إلى الأسئلة التقنية، والتي تختلف حسب الوظيفة التي تقدّمت لها. مثلًا، إذا كانت الوظيفة تتطلب لغة معينة مثل JavaScript أو Python، فقد تُسأل عن أساسيات اللغة وكيف تستخدمها. غالبًا ما يتم طرح أسئلة لحل مشكلات برمجية تتعلق بالخوارزميات وهياكل البيانات مثل المصفوفات والقوائم، وذلك لمعرفة طريقة تفكيرك وحلّك للمشاكل. بعض الشركات تطلب منك كتابة كود مباشر أثناء المقابلة أو مراجعة كود معين. وقد تشمل الأسئلة أيضًا قواعد البيانات، أو بناء واجهات المستخدم، أو التعامل مع API. الهدف من هذه الأسئلة هو التأكد من أنك تفهم ما تقوم به وقادر على تطوير الحلول، لذلك من الأفضل أن تراجع مهاراتك وتتمرن جيدًا قبل المقابلة.
  24. بالتأكيد يمكنك منح كل مستخدم نطاقًا فرعيًا مثل: user.myapp.com. هذا يتم من خلال إعدادات الـ DNS وخادم الويب، حيث يُوجه كل نطاق فرعي لنفس التطبيق ويتم التمييز بين المستخدمين بالاسم. لا يوجد حد فعلي لعدد النطاقات الفرعية، لكن الأمر يعتمد على استضافة موقعك. بعض شركات الاستضافة تضع قيودًا، بينما أخرى تتيح عددًا غير محدود. من حيث التكلفة، النطاقات الفرعية عادة لا تُكلف مالًا إضافيًا، لأنها جزء من النطاق الأساسي. لكن إذا زاد عدد المستخدمين بشكل كبير، قد تحتاج إلى خطة استضافة أقوى لتحمل الضغط، وهنا تأتي التكلفة حسب الموارد المستخدمة.
  25. دورة تطوير واجهات المستخدم لا تعتمد فقط على استخدام أطر العمل مثل Bootstrap، بل تبدأ بتعليمك أساسيات HTML وCSS وJavaScript بشكل جيد، حتى تفهم كيف تُبنى الصفحات من الصفر. بعد ذلك، تُستخدم الأطر لتسهيل العمل وتسريعه، لكن بعد أن يكون عندك خلفية قوية. هذا الأسلوب يساعدك على فهم الكود وتعديله وقت الحاجة، ولا يجعلك معتمدًا فقط على القوالب الجاهزة.
×
×
  • أضف...