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

محمد عاطف25

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

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

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

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

    154

كل منشورات العضو محمد عاطف25

  1. وعليكم السلام ورحمة الله وبركاته. يمكنك العمل إن كمطور للواجهات الخلفيه فقط او كمطور للواجهات الأمامية فقط او الجمع بينهم معا والعمل ك Full Stack وأعتقد أن هذا ما تريده. ولكن يجب عليك اولا فهم ادوار كل منهم جيدا وتفهم الفرق بينهم ويمكنك في النهاية ان تقرر ما المجال الذي تريد أن تتعلمه : تطوير الواجهة الأمامية (Front End) : وهو بناء واجهة المستخدم والعناصر الرسومية لصفحة الويب. ويشمل كل ما يراه المستخدم ويتفاعل معه على الموقع أمامه.ويمكن أن يكون أي شيء بدءًا من أحجام الأزرار والألوان وحتى التخطيط والتصميم العام. ويتواصل مطور الواجهة الأمامية مع مطوري الواجهة الخلفية لجعل المواقع دايناميكية. ويتطلب التطوير الجيد للواجهة الأمامية فهمًا قويا للغات مثل HTML و CSS و JavaScript ومبادئ التصميم الجيد. بالإضافة إلى ذلك، يحتاج مطورو الواجهة الأمامية إلى فهم كيفية تفاعل المستخدمين مع مواقع الويب لإنشاء واجهة بديهية وسهلة الاستخدام. ويتميز تطوير الواجهات الأمامية بالتالي : التطوير السريع: عادة ما يكون تطوير الواجهة الأمامية أسرع من Full Stack والتطوير الواجهة الخلفيه. يوجد عدد أقل من الملفات التي يمكن العمل بها، وعادةً ما يكون الكود بسيطا. كود أبسط: عادة ما يكون كود الواجهة الأمامية أبسط من كود الواجهة الخلفية.و يمكنك فهمها بسهولة والبدء بتطوير الواجهة الأمامية إذا كنت جديدا في مجال البرمجة. تطوير الواجهه الخلفيه (Back End) : وهو إنشاء وإدارة التعليمات البرمجية والبنية التحتية التي تسمح لموقع الويب أو التطبيق بالعمل في الخلف. حيث يتضمن إنشاء قواعد البيانات وصيانتها وإنشاء طبقة منطق الأعمال وكتابة التعليمات البرمجية التي تتعامل مع إدخال المستخدم مثل إرسال النماذج وعرض الصفحات ديناميكيا وإستقبال الطلبات والرد عليها. ومن لغات البرمجة للواجهات الخلفية PHP و Ruby on Rails و Java و Node.js ومن أنظمة قواعد البيانات مثل MySQL وMongoDB. أما مطور (Full Stack) : فهو الشخص الذي يمتلك الخبرة والمعرفة في كل من تطوير الواجهة الخلفية والواجهة الأمامية معا ويعمل بهم ومن مزايا مطور ال (Full Stack) أنه لديه الخبرة في كلا الأمرين الواجهة الأمامية والواجهية الخلفية وهكذا لديه فرصة أكبر في الحصول على وظائف والعمل على مشاريع متنوعة ولكن من عيوبه أنه يأخذ وقتا أكثر للتعلم ويحتاج إلى الخبرة ومعرفة عميقة بالعديد من لغات البرمجة والأدوات . لذلك يمكنك أولا تحديد أى مجال تريد العمل فيه ومن ثم يمكنك البحث عن التقنية أو لغة البرمجة التي تريد العمل بها ومن ثم التعمق فيها وإنشاء مشاريع تطبيقية عليها . فمثلا إذا إخترت الواجهة الأمامية فيجب عليك تعلم اللغات الأساسية مثل: HTML لبناء هيكل الصفحة. CSS لتنسيق وتصميم الصفحة. JavaScript لإضافة التفاعل مثل الأزرار والقوائم المتحركة وتتبع المستخدم في الصفحة. أيضا ستحتاح إلى تقنيات وأطر متقدمة مثل React وهو إطار عمل خاص بالواجهة الأمامية ويساعدك في ربط الواجهة الأمامية بالخلفية وإنشاء مواقع ديناميكية . ولو إخترت الواجهة الخلفية فيجب عليك أولا تحديد لغة البرمجة التي تريد العمل عليها سواء PHP أو JavaScript (node.js) أو Python أو Ruby on Rails أو حتى Java . ويمكنك البحث عن تلك اللغات ومعرفة الفروقات بينهم ومدى صعوبة كل منهم لتستطيع الإختيار بشكل أفضل بالنسبة لك . وبعدها يجب تعلم قواعد البيانات لحفظ وتخزين البيانات والتعامل معها . وأخيرا يمكنك البحث عن أطر عمل بالنسبة للغة التي إخترتها والتي ستساعدك بشكل كبير في إنشاء مواقع الويب . فمثلا في PHP يوجد إطار عمل Laravel و في node.js يوجد إطار عمل Express و في Python يوجد لديك Django و Flask . وأخيرا كما وضحت لك يجب عليك تحديد المجال الذي تريد العمل فيه لو كنت تحب التصميم والتعامل مع العناصر والصفحات والمستخدم فالأفضل لك الواجهة الأمامية و أما إذا لم ترد التعامل مع التصميم وأردت التعامل مع البيانات وإنشاء الخوادم فالأفضل لك هو مجال الواجهة الخلفية . ولو أردت إنشاء مواقع كاملة أى واجهة أمامية وخلفية فيمكنك تعلمهم معا وتصبح full stack وأنصحك حينها أولا أن تبدأ بمجال الواجهة الخفلية ثم تعلم الواجهة الأمامية.
  2. في بداية تعلمك لا ينبغي عليك القلق أو الإهتمام بشأن سرعة الكود أو كفائته حيث في البداية لن تكون لديك الأدوات أو المعرفة لذلك ولهذا فإن البحث عن الكمال "perfectionism" في بداية التعلم هو أمر مضر لك أكثر مما هو مفيد حيث سيؤخر وقت التعلم الخاص بك وأيضا من الممكن أن يصيبك بالملل أو الإحباط، وينبغي عليك فقط الإهتمام بوضع المنطق الذي يحل المشكلة لك ومن ثم تنفيذ هذا المنطق وتحويله إلى كود . بعد ذلك عند إنتهاءك من الأساسيات وتقدم مستواك قليلا يمكنك دراسة هياكل البيانات والخوارزميات والتي ستعطيك نبذة كبيرة عن فهم الكود وكيفية تقيم سرعته وأداءه وأيضا ستساعدك في كتابة كود ذات كفاءة عالية وسريع .وبعد تعلم هياكل البيانات والخوارزميات أنصحك بالبدأ في تطوير مهارة حل المشكلات لديك من خلال الإشتراك في المسابقات و الدخول على المواقع التي توفر لك مشاكل ويمكنك حلها من خلال الكود والبحث عن أفضل طريقة وخوارزمية لحل تلك المشكلة بكفاءة ودقة عالية . ومن تلك المواقع هي : Hackerrank و LeetCode. PyBites. codeforces. Codewars. ويمكنك قراءة المقال التالي لتحسين مهارة حل المشكلات لديك :
  3. يوجد العديد من المواقع التي توفر لك كائنات و خلفيات و أصوات وأصول أخرى يمكنك استخدامها مباشرة في مشاريعك دون الحاجة للتصميم من الصفر. ومن أشهر تلك المواقع : OpenGameArt.org: وهو يقدم لك مكتبة ضخمة من الرسومات ثنائية وثلاثية الأبعاد و خلفيات و أصوات ومؤثرات مجانية للاستخدام في الألعاب والتطبيقات. Itch.io: وهو يحتوي على قسم خاص بأصول الألعاب المجانية (Game Assets). Kenney.nl: وهو يوفر حزم أصول عالية الجودة ومجانية لمصممي الألعاب. GameDevMarket.net: وهو يقدم موارد مجانية ومدفوعة. SuperGameAsset.com: يتيح تحميل أصول متنوعة مجانا. ويمكنك التعامل مع ادوات الذكاء الاصطناعي لتوليد الكائنات والخلفيات لك عن طريق وصف لها ما تريد ومن تلك الأدوات : Canva AI Character Generator: حيث يمكنك من خلال Canva توليد شخصيات أو خلفيات باستخدام الذكاء الاصطناعي فقط بوصف ما تريد بالكلام .وسيتم إنشاء صور تناسب ما تريده. والنسخة المجانية له تتيح عدد محدود لك لتوليد الصور ولكنها ستكون كافية لك للبدأ حاليا. أدوات مثل DALL-E أو Imagen متاحة عبر Canva أو منصات أخرى ويمكن استخدامها لتوليد صور مخصصة لمشاريعك. وإذا كنت تفضل وتحب أنت التصميم بنفسك للكائنات أو الخلفيات فهناك بعض البرامج التي ستساعدك مثل : Blender: وهو برنامج مجاني ومفتوح المصدر للنماذج ثلاثية الأبعاد و التحريك والرسم الرقمي ويستخدم أيضا لتصميم الخلفيات أو الكائنات ثنائيةوثلاثية الأبعاد للألعاب والمواقع. Godot: وهو محرك ألعاب مجاني يدعم تصميم الألعاب ثنائية وثلاثية الأبعاد ويوفر لك أدوات لرسم وتصميم الكائنات والمشاهد للألعاب والخلفيات. GIMP و Inkscape: برامج مجانية للرسم والتصميم ثنائي الأبعاد.
  4. لا تحتاج إلى أى معرفة برمجية مسبقة فكما تلاحظ في وصف الدورة فقد تم ذكر أنك ستتعلم "كل ما تحتاجه من لغة Python لتطبيقات الذكاء الاصطناعي" . والذكاء الإصطناعي يعتمد بشكل أساسي على الرياضيات والإحصائيات و بشكل عام يتم شرح كافة الأمور الرياضية التي لها أهمية في آلية العمل و لكن بالطبع من المفترض أن يكون لديك معرفة ببعض الأمور البسيطة مثل معادلة المستقيم. و لكن هذا لن يشكل حاجز يمنعك من متابعة الدورة، يمكنك بكل بساطة البدء بها و في حال كان هناك شيء لم تفهمه يمكنك البحث عنه. ولكن يفضل بما أنك ليس لديك أى خلفية مسبقة عن مجال التكنولوجيا عموما والبرمجة خصوصا فيمكنك أخذ دورة علوم الحاسوب . كان يوجد عرض "طور مهاراتك" وهذا العرض كان يمكنك من أخذ دورتين بسعر دورة واحدة لكن هذا العرض إنتهى منذ يومين . يمكنك إذا أردت شراء الدورتين حاليا أو الإنتظار لحين توفر العرض مرة أخرى حيث العرض يتم توفيره من وقت إلى وقت أخر .
  5. وعليكم السلام ورحمة الله وبركاته. الأداة الخاصة بفك الأزرار هي أفضل وأسهل وأسرع أداة لفعل ذلك . ولكن بدونها من الممكن أن تقوم بإتلاف الأزرار أو السويتشات التي أسفلها . يمكنك البحث في اليوتيوب عن كيفية فعل ذلك بدون تلك الأداة وستجد الكثير من الفيديوهات التي تستخدم "مفك" لفعل ذلك ولكن هذا الأمر يجب أن يتم بطريقة بسيطة حتى لا تقوم بكسر أى شئ . ويمكنك البحث بالتالي "how to remove button out from mechanical keyboard without any instruments" ومشاهدة الفيديوهات التي تظهر لك.
  6. في دورة الذكاء الإصطناعي يتم شرح أساسيات بايثون من البداية ويتم التركيز بشكل كبير على الأجزاء التي ستحتاجها في دراسة الذكاء الإصطناعي. إذا وجدت صعوبة ما في هذا الجزء أنصحك بدراسة المسار الأول من "أساسيات بايثون" في دورة " تطوير التطبيقات باستخدام لغة Python" حيث هنا في الأكاديمية يمكنك مشاهدة أول مسار بشكل مجاني في جميع الدورات الأخرى . حيث في دورة " تطوير التطبيقات باستخدام لغة Python" يتم التعمق بشكل أكبر في الأساسيات.
  7. هل يمكنك توضيح الدورة التي أنت مشترك بها ؟ إن في جميع الدورات هنا في الأكاديمية يتم التعامل على عدم وجود أى خبرة مسبقة ولهذا تجد أول مسار دائما هو مسار للأساسيات ويتم فيه شرح كل شئ من البداية تماما ويتم التطبيق العملي مع الشرح أيضا مع إعطاء تمارين في نهاية بعض الدورس . ويمكنك دائما إذا ما واجهت أى مشكلة في فهم بعض الدروس أو وجدت صعوبة في تمرين ما أو التطبيق مع المدرب أن تقوم بالسؤال أسفل هذا الدرس ويتوفر العديد من المدربين على مدار اليوم لمساعدة الطلاب في أى شئ يحتاجونه .
  8. حاليا لا يوجد أى ملخصات أو محتوى مكتوب للدورة وذلك للحفاظ على الدورات من السرقة ونشر محتواها بشكل مجاني. ولكن يوجد الكثير من المقالات والدروس هنا على موقع الأكاديمة ويمكنك العثور عليها من هنا : https://academy.hsoub.com/programming/ ويمكنك البحث من خلال الأقسام للوصول بشكل أسرع لما تريده. وأيضا يوجد موسوعة حسوب يوجد شرح كافي لكثير من لغات البرمجة : https://wiki.hsoub.com/الصفحة_الرئيسية
  9. هل تقصد مسار أساسيات php فقط ؟ إذا كان كذلك فالأمر سيكون صعب إذا تم تعلم أساسيات php فقط . أما إذا كنت تقصد الدورة . فنعم إذا أنهيت الدورة وتأكدت من فهم الأساسيات وتعلمت أساسيات إطار العمل Laravel وأيضا تعلمت wordpress وتعلمت كيفية إنشاء القوالب فالأمر بإذن الله سهل للحصول على وظيفة لا داعي للقلق . كل ما عليك التركيز عليه هو أن تكون على فهم تام بكل شئ تعلمته في الدورة وأيضا قمت بالتطبيق وتأكدت من فهم الأكواد التي إستخدمها والتقنيات التي تعلمناها حيث أول شئ سينبغي عليك قبل الحصول على وظيفة هو إجتياز مقابلة العمل . ولهذا سيتم سؤالك عن كل شئ بالتفصيل والتأكد من فهمك للأساسيات والأمور لتستطيع قبولك في تلك الوظيفة. ببساطة الأمر ليس كذلك . فليس هناك شخص قام مباشرة بالبدأ في مشاريع متقدمة وقوية كتلك بل الأمر يأتي على مراحل وفترات . وبتقدمك تجد أن إكتسبت خبرات ومهارات تؤهلك لإنشاء مشاريع متقدمة قليلا إلى أن تجد نفسك أنك تقوم مباشرة بإنشاء المشاريع بمفردك لهذا لا تتعجل هذا الأمر ولا داعي للقلق . لهذا يجب عليك حذف هذا الأمر من ذهنك وفقط عليك الإهتمام بالتطبيق وبناء المشاريع وفهم الأساسيات ويمكنك حينها التقديم على وظائف ك Junior php developer.
  10. لاحظ كما تعلمنا في React لا يتم وضع مسار الصورة مباشرة هكذا حيث هذا الأمر مقتصر على HTML والذي يقوم بإرسال طلب لإحضار الصورة ولكن في React نقوم بإستيرادها كملف . لهذا في ملف App.jsx يجب أن يكون كالتالي : import './App.css' import bg from './bg.jpg' function App() { return ( <div> <div className="navbar"> <h1>ZN99</h1> <nav> <a href="">Home</a> <a href="">About</a> <a href="">Project</a> <a href="">Contact</a> </nav> </div> <div className="hero"> <div className="image"> <img src={bg} alt="" /> </div> </div> </div> ) } export default App;
  11. وعليكم السلام ورحمة الله وبركاته. نعم صحيح حيث أن نماذج مثل: SimpleImputer عند استخدامه مع strategy='mean' أو median KNNImputer IterativeImputer كلها تتعامل فقط مع البيانات الرقمية ولا يمكنها معالجة الأعمدة النصية سواء كانت categorical أو string وذلك خصوصا عند اختيار طرق تعتمد على العمليات الحسابية مثل المتوسط أو أقرب الجيران(NearestNeighbors). ولهذا الصحيح هو فصل الأعمدة الرقمية عن الأعمدة النصية ومن ثم يمكنك معالجة القيم المفقودة في الأعمدة الرقمية وبعدها يمكنك إعادة دمج الاعمدة معا دون أى مشكلة.
  12. ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل.
  13. وعليكم السلام ورحمة الله وبركاته. هل قمت بالإشتراك بالفعل في دورة تطوير التطبيقات من خلال جافاسكريبت ؟ إذا كان كذلك فهنا في الأكاديمية يتم فتح أول مسار بشكل مجاني لجميع الدورات الأخرى وحينها يمكنك مشاهدة مسار أساسيات HTML وCSS بشكل مجاني من دورة واجهات المستخدم. وبالطبع يوجد فريق كامل لمساعدتك في أى مشكلة تواجهك و إرفاق مصادر لك حيث يمكنك أسفل أى درس دائما وضع سؤالك أو طلب توضيح تريده.
  14. وعليكم السلام ورحمة الله وبركاته. إذا كنتِ تريدين مشروع موجود بالفعل فلا يوجد مشروع جاهز حاليا ومحدد تماما كما تريدين لقطع فيديو آلة طارات وإدراج كيان افتراضي في مكانها بشكل مباشر . أما إذا كنتِ تقصدين أنكي تريدين إنشاء المشروع فيجب معرفة أن هذا الأمر ليس بالأمر البسيط أو السهل فيجب أولا عليكِ الحصول إو إنشاء نظام تعرّف على مكان الكائنا في الفيديو (Object Detection/Tracking) حيث ستحتاجين إلى إستخدام تقنيات الرؤية الحاسوبية مثل OpenCV أو مكتبات التعلم العميق مثل YOLO أو TensorFlow لتحديد موقع الكائنات في كل إطار من الفيديو. وستحتاجين باستخدام محركات الواقع المعزز مثل ARKit لنظام iOS أو ARCore لنظام Android أو أدوات مثل RealityKit أو Unity3D لإدراج الكائنات.
  15. نحن هنا في أكاديمية حسوب لا نقوم بالإجابة على أسئلة الإختبارات والتقيمات ولكن يمكننا إرشادك إلى الحل . تلك التمارين هي في الأساسيات لهذا يفضل أولا مذاكرة الأساسيات ومن ثم حل تلك التمارين . ستحتاجين أولا إلى دراسة القوائم list ويمكنكِ قراءة الدروس التالية على موسوعة حسوب لدارسة كل ما يخص القوائم : القوائم list في بايثون وهذه راوبط الدوال التي يتم طلب حل التمرين بها في القوائم : count sort reverse append insert remove pop أما بخصوص المجموعات set فيمكنك قراءة الدروس التالية : المجموعات set وهذه راوبط الدوال التي يتم طلب حل التمرين بها في المجموعات: add remove discard union difference symmetric_difference intersection والدرس التالي بخصوص بانية القوائم "List Comprehensions" : List_Comprehensions
  16. نعم بالطبع حيث الدورة تقوم بتعليمك لتصبح مطور MERN Stack أى تستخدم التقنيات : MongoDB قاعدة بيانات NoSQL تعتمد على تخزين البيانات في مستندات بتنسيق JSON. Express.js إطار عمل Back-end مبني على Node.js ويسهل إنشاء تطبيقات الويب. React مكتبة JavaScript لبناء واجهات المستخدم الدينامية والمتجاوبة. Node.js منصة تشغيل Back-end مبنية على JavaScript وتسمح بتنفيذ الكود على الخادم. أى بعد إنهاء هذه الدورة وبناء على المسارات التي أنهيتها تستطيع أن تكون مطور واجهات خلفية بلغة جافاسكريبت وتمكنك أيضا من ان تصبح مطور MERN stack وايضا تمكنك من تطوير تطبيقات الهاتف . أى يمكنك مباشرة العمل في أى مجال من تلك المجالات ولكن بالطبع يجب التأكد من إنهاء وفهم والتطبيق على المسارات لكل مجال . وهنا في الأكاديمية يوجد ضمان لإسترداد أموالك إذا لم تحصل على عمل في خلال ستة أشهر من حصولك على شهادة إتمام الدورة.
  17. أولا إذا كنت تقوم بتشغيل المتصفح من خلال sudo أو root فإن السحب والإفلات من مدير الملفات لن يعمل بسبب اختلاف صلاحيات المستخدم فيجب تشغيل المتصفح من المستخدم العادي وليس الجذر. من الممكن أن المشكلة في تثبيت المتصفح نفسه إذا كنت تعمل على Firefoxيمكنك تثبيته من خلال الأمر : sudo apt install firefox-esr ولو كنت تعمل على Chromium يمكنك تنزيله من خلال الأمر : sudo apt install chromium من الممكن أيضا أن يكون سبب المشكلة هو استخدام Wayland بدل من X11 قم بتسجيل الخروج ثم تسجيل الدخول بجلسة X11 حيث يجب اختيار "GNOME on X11" عند شاشة تسجيل الدخول.
  18. في الواقع يتم شرح الأساسيات في HTML أو CSS ويتم التطبيق على كل درس من الدروس لفهم طريقة وإستخدام كل من تلك اللغات ولكن لا يتم التعمق بالكامل فيها .وفي المسار الأول يوجد في نهايته تطبيق عملي بإستخدام HTML و CSS و JQuery فقط للتطبيق على ما تم دراسته. بعد ذلك في المسارات التالية يتم أولا شرح أساسيات Bootstrap وإستخدام مكتبات مثل webpack وأيضا التطرق للغة SASS ومن ثم التطبيق العملي لمشاريع متكاملة حقيقية يتم إستخدام كل ما تم تعلمه من أساسيات CSS و Bootstrap. أيضا لا يجب دائما الإعتماد بشكل كامل على الدورات حيث يتم تطوير كل شئ بشكل سريع فتظهر مكتبات وأطر عمل سريعة أخرى وأيضا يفضل التطبيق بعد الإنتهاء من الدورة بنفسك من خلال البحث عن تصاميم ومحاولة إنشاءها وهنا ستتعرف على كثير من الأشياء والأمور المتقدمة وإليك المواقع الجيدة لذلك في الإجابات التالية :
  19. أولا هذا يعتمد على الطريقة التي ستستخدمها . فمثلا لو إعتمدت على مزود الخدمة لديك (hosting) فهنا تفرض مزودين تلك الخدمة بعض القيود للعدد فمثلا : Namecheap: يسمح بما يصل إلى 150 نطاق فرعي على خطط BasicDNS/PremiumDNS/FreeDNS ولكن قد تكون هناك قيود إضافية إذا كنت تستخدم استضافة مشتركة. GoDaddy: لا يحدد عدد محدد للنطاقات الفرعية ولكنه يقتصر على إجمالي 500 سجل DNS للخطة العادية و 1500 للخطة المميزة. Cloudflare: لا يفرض حدود على عدد النطاقات الفرعية وخصوصا مع خطط مثل Cloudflare Pages ولكن قد تكون هناك قيود بناء على نوع الخطة التي أنت مشترك بها. لهذا يمكنك البحث عن الخطة التي أنت مشترك بها في ال (host) لديك وستعرف عدد النطاقات المسموح لك ولا توجد أى تكلفة زائدة للنطاقات فهي من ضمن الخطة التي أنت مشترك بها ولكن في تلك الطريقة إذا كنت تستخدم شهادة SSL سيتوجب عليك أيضا إضافة النطاقات لها لتعمل على جميع النطاقات الفرعية. ولكن بالطبع يمكنك إستخدام طريقة مجانية وعدد نطاقات غير محدود من خلا إنشاء سجل DNS من نوع Wildcard A Record أو CNAME مثل *.yourapp.com لتوجيه جميع النطاقات الفرعية إلى خادم التطبيق الخاص بك حيث يجب إضافة سجل Wildcard DNS من نوع A أو CNAME لتوجيه جميع النطاقات الفرعية إلى عنوان IP الخاص بخادمك. . بعد ذلك يمكنك تخصيص المشروع الخاص بك للتعامل مع تلك النطاقات وتوجيه المستخدم إلى الصفحة الصحيحة . فمثلا في laravel يمكنك بسهولة إستخدام ال Wildcard كالتالي : Route::group(['domain' => '{subdomain}.yourapp.com'], function () { Route::get('/', function ($subdomain) { $user = User::where('subdomain', $subdomain)->firstOrFail(); return view('user.profile', ['user' => $user]); })->name('user.profile'); }); فلاحظ كيف أنه يستطيع تلقائيا الحصول على النطاق الفرعي من العنوان من خلال تحديد ال {subdomain} وتستطيع بسهولة التعامل مع ذلك . ويمكنك البحث في اللغة التي تعمل عليها أو إطار العمل ومن الممكن أن تجد بالفعل أنها تدعم ذلك دون أى تكلفة إضافية.
  20. وعليكم السلام ورحمة الله وبركاته. الأمر يعتمد على طبيعة البيانات والمشكلة التي تعمل عليها ولكن بشكل عام فالأفضل هو معالجة القيم المفقودة أولا قبل استخراج الميزات. وإليك سبب معالجة القيم المفقودة أولا : جودة البيانات: حيث القيم المفقودة قد تؤثر بشكل كبير على عملية استخراج الميزات وإن العديد من خوارزميات استخراج الميزات مثل الخوارزميات التي تعتمد على الحسابات الرياضية تتطلب بيانات كاملة ونظيفة وإذا تم ترك القيم المفقودة دون معالجة قد تؤدي إلى نتائج غير دقيقة أو أخطاء في الخوارزميات. إذا قمت باستخراج الميزات قبل معالجة القيم المفقودة فقد تتسبب القيم المفقودة في إنشاء ميزات تحتوي على تحيز مما يؤثر على أداء النموذج. ومعالجة القيم المفقودة مثل الاستبدال بالمتوسط أو الوسيط أو استخدام خوارزميات مثل KNN Imputation تجعل البيانات جاهزة مباشرة لإستخراج الميزات وذلك يضمن لك أن الميزات المستخرجة تظهر الخصائص الحقيقية للبيانات. ولكن متى نستخرج الميزات أولا ؟ في حالات قليلة قد ترغب في استخراج الميزات قبل معالجة القيم المفقودة ولكن هذا الأمر يعتمد على المشكلة أو الشئ الذي تريد تحقيقه فإذا كانت الميزات المستخرجة لا تعتمد على القيم المفقودة مثلا لو كنت تستخرج ميزات من بيانات نصية أو من بيانات لا تتأثر بشكل مباشر بالقيم المفقودة. أو إذا كنت تستخدم خوارزميات معينة تتعامل مع القيم المفقودة تلقائيا فهناك بعض الخوارزميات مثل بعض نماذج الشجرة (Tree-based models) يمكنها التعامل مع القيم المفقودة بشكل داخلي مما قد يقلل من الحاجة إلى معالجتها أولا. ولذلك أولا يجب عليك فهم طبيعة القيم المفقودة لأن ذلك سيؤثر على طريقة المعالجة. وأيضا إذا كنت غير متأكد يمكنك تجربة الترتيبين معالجة القيم المفقودة أولا أو استخراج الميزات أولا وقارن أداء النموذج باستخدام مقاييس مثل الدقة أو F1-score.
  21. وعليكم السلام ورحمة الله وبركاته. فترة 7 أشهر هي فترة طويلة جدا للإنقطاع وحتى لو كنتِ سابقا بفهم الدروس جيدا فبالتأكيد ستكونين قد نسيتي الكثير من الأمور ولهذا من الأفضل مراجعة الدروس ولو سريعا وذلك فقط لنقوم بمراجعة وإستذكار ما قمتِ بمذاكرته سابقا. ولو لاحظتِ وجود درس قد نسيتينه تماما فهنا يمكنك مراجعة هذا الدرس والتطبيق عليه حتى تستطيعين تذكره وتثبيت المعلومة لديك . بعد المراجعة يمكنكِ البدأ من حيث توقفتِ . ولكن لو قمتي بالبدأ مباشرة دون المراجعة ستجدين صعوبة في فهم الدروس والتطبيق عليها لأن البرمجة معتمدة بشكل كبير على بعضها البعض.
  22. يمكنك تجربة الكود التالي بدلا من info : col_info = pd.DataFrame({ 'dtype': data_train.dtypes, 'missing': data_train.isna().sum() }) print(col_info)
  23. بما أنك وضحت أنك تعمل على Kaggle Notebook ودعني أوضح لك لما يعمل على Kaggle . إن head() تقوم بإعادة DataFrame، وبالتالي pandas تقوم بطباعة جدول كامل وفعلا إعداد display.max_columns = None يعمل هنا ويجعله يعرض كل الأعمدة مهما كان عددهم. أما في data_train.isna().sum() فالنتيجة هنا عبارة عن Series طويلة وليس DataFrame فحتى لو إستخدمت pd.set_option('display.max_columns', None) فهذا لن يؤثر على عدد الصفوف أو القيم في Series بل بيأثر على الأعمدة فقط. يمكنك تجربة الكود التالي ويجب أن يعمل معك إن شاء الله : import pandas as pd # عرض كل الأعمدة والصفوف pd.set_option('display.max_columns', None) pd.set_option('display.max_rows', None) #هنا لو أردت منع إختصار النصوص pd.set_option('display.width', None) pd.set_option('display.max_colwidth', None) print(data_train.isna().sum())
  24. لا هذه الطريقة لا تقتصر على head() فقط بل تعمل مع كل عمليات العرض في pandas حيث فكرة هذ السطر "أنك تخبر pandas أن تعرض كل الأعمدة لك مهما كان عددهم. هل يمكنك توضيح ما الذي ظهر لك عند إستخدام هذا الكود ؟
  25. وعليكم السلام ورحمة الله وبركاته. أعتقد أن تريد إظهار جميع الأعمدة وليس 5 فقط . حيث يشكل افتراضي pandas تقوم بتلخيص العرض ولا تقوم بعرض كل الأعمدة إذا كان عددها كبيرا كما لديك هنا . وتوجد العديد من الحلول يمكنك حاليا إستخدام هذا الحل : import pandas as pd # لعرض جميع الأعمدة بدون تقييد pd.set_option('display.max_columns', None) data_train.isna().sum() هنا قمنا بتغير إعدادات pandas لتعرض جميع الأعمدة.
×
×
  • أضف...