-
المساهمات
15380 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
403
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Mustafa Suleiman
-
ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم أسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل.
-
على العكس تمامًا فهي مُصممة بالأساس لتكون لغة الويب، أي ما تقوم بكتابته يظهر أثره في صفحة الويب، مثلاً عند الضغط على زر وتنفيذ أمر معين فذلك يتم من خلال جافاسكريبت كالمثال التالي: <!DOCTYPE html> <html> <head> </head> <body> <button onclick="showAlert()">اضغط هنا لإظهار التنبيه</button> <script> function showAlert() { alert("مرحباً بك! هذا تنبيه بسيط من جافاسكريبت."); } </script> </body> </html> أي اللغة لا تعمل بشكل مُنفصل عن المتصفح، بل كل ما تكتبه يؤثر على الموقع، حيث تتلاعب بالـ DOM لتغيير وحذف محتوى أو تغيير التنسيقات عند حدث معين وهكذا. وعامًة هناك بعض الأمور لا تظهر في المتصفح أتفهم ذلك، لكن تستطيع إظهارها في الكونسول في المتصفح وهي منطقة خاصة بالمطورين، حيث تستطيع طباعة أي شيء بها من خلال console.log() كالتالي: <!DOCTYPE html> <html> <head> </head> <body> <button onclick="showConsoleLog()">اضغط هنا لعرض رسالة في الكونسول</button> <script> function showConsoleLog() { console.log("مرحباً بالمطور! هذه رسالة تظهر في الكونسول فقط."); console.log("يمكنك استخدام console.log() لعرض قيم المتغيرات، رسائل التتبع، والأخطاء."); let myVariable = 123; console.log("قيمة المتغير myVariable هي:", myVariable); } </script> </body> </html> ما تحتاجه هو تعلم أساسيات جافاسكريبت بشكل صحيح، ثم توظيف ذلك في مشاريع مع التدرج في الصعوبة، ابحث على اليوتيوب عن مشاريع جافاسكريبت للمبتدئين وستجد الكثير. وإليك مصادر للتعلم:
-
لن تحتاج إلى تعلم شيء لدراستها، فهي تبدأ من الصفر، وكل ما تحتاجه موجود بالأكاديمية ويوجد دروس لتعلمه.
-
جميع الدورات في الأكاديمية ممنهجة على أساس ذلك، أي يتم إفتراض عدم علم الدارس بأي شيء يتعلق بمحتوى الدورة، بالتالي يتم البدء من نقطة الصفر إنطلاقًا نحو تعلم المجال الخاص بالدورة بشكل إحترافي. لكن في بعض الدورات ستحتاج إلى تعلم بعض الأمور قبل البدء بها، بمعنى دورة جافاسكريبت وبايثون يوجد بها تطبيقات عملية بحاجة إلى تعلم HTML و CSS وتستطيع تعلم ذلك من خلال المسار الأول من دورة تطوير واجهات المستخدم وهو متاح لك بشكل مجاني، كحال باقي المسارات الأولى من جميع الدورات بالأكاديمية عند الإشتراك في أحد الدورات. أيضًا هناك مساعدة من قبل المدربين للإجابة على استفساراتك في أي وقت، ففي حال واجهتك مشكلة أو تريد استيضاح أمر ما في الشرح فسيتم مساعدتك بالتفصيل.
-
حاول استخدام PageFormat بكتابة التالي PageFormat pageFormat = job.defaultPage() وتعيين الاتجاه العمودي من خلال pageFormat.setOrientation(PageFormat.PORTRAIT) وتمرير pageFormat كمعامل ثاني في setPrintable try { PrinterJob job = PrinterJob.getPrinterJob(); PageFormat pageFormat = job.defaultPage(); // هنا pageFormat.setOrientation(PageFormat.PORTRAIT); job.setPrintable((graphics, pf, pageIndex) -> { if (pageIndex > 0) return Printable.NO_SUCH_PAGE; graphics.setFont(new Font("Arial", Font.BOLD, 14)); graphics.drawString(textArea.getText(), 50, 50); return Printable.PAGE_EXISTS; }, pageFormat); if (job.printDialog()) { job.print(); } } catch (PrinterException e) { e.printStackTrace(); }
- 5 اجابة
-
- 1
-
-
أية مشاريع على الإنترنت هي مشاريع مستهلكة وغير مفيدة كمشروع تخرج بسبب تكرارها، لكن لو كانت الفكرة مفيدة وستقوم بحل مشكلة مجتمعية فهي مناسبة للتنفيذ، أي ليست مُطبقة في المُجتمع، بالتالي المفيد هو تنفيذ مشروع يقوم بحل مشكلة من حولك في مجتمعك أو مشكلة خاصة بمحيطك أنت بحيث يحقق المشروع فائدة محلية، أيًا كانت تلك المشكلة، وفي حال عدم الوصول لفكرة ومن الصعب ذلك، فمن الأفكار الجيدة منصة تعليمية تكيفية باستخدام التعلم التعزيزي Reinforcement Learning وذلك لحل مشكلة صعوبة توفير تجربة تعليمية شخصية لكل طالب، وذلك مفيد للطلبة في الأماكن النائية مثلاً. وحل المشكلة من خلال بناء نظام تكيفي يوفر محتوى الدروس حسب أداء الطالب كتحديد نقاط الضعف واقتراح تمارين، مع استخدام Reinforcement Learning لتحسين استراتيجية التكيف مع الوقت. والتقنيات هي تعلم تعزيزي RL وتحليل بيانات التعلم Learning Analytics.
- 4 اجابة
-
- 1
-
-
ذلك صحيح، لكن هناك توضيح خاص بدورة علوم الحاسوب، فهي دورة تأسيسية بمعنى ستتعلم من خلالها المنطق البرمجي وأساسيات البرمجة وأيضًا علوم الحاسوب المختلفة، وبعد دراستها سيصبح لديك دراية بمجال البرمجة بشكل عام واكتساب القدرة على إختيار التخصص البرمجي الذي تود دراسته، مثلاً مجال الواجهة الأمامية أو الخلفية أو تطوير التطبيقات أو تعلم الآلة وخلافه. أي هدفها تعريف المتعلمين بأساسيات علوم الحاسوب وتزويدهم بالمفاهيم والأدوات اللازمة للبدء في مجال البرمجة وتطوير البرمجيات، ويتم تغطية موضوعات متعددة تتضمن البرمجة، وأنظمة التشغيل، وقواعد البيانات، والشبكات والأمن والحماية. بالتالي الدورة في حد ذاتها ليست خاصة بتقنية معينة مطلوبة في سوق العمل، بل خاصة بتأهيلك لدخول مجال البرمجة وأن تصبح مبرمج أفضل وتسهيل عملية تعلم التقنيات البرمجية بعد الإنتهاء منها، ستجد تفصيل هنا بخصوص ذلك: بخصوص استرداد استثمارك والعمل فذلك موضوع أرجو مناقشته مع مركز المساعدة وسيتم تفصيل الأمر لك.
-
ما هي التقنيات التي سيتم استخدامها، وأيضًا ما هو مجال التخصص والمجال الخاص بمشروع التخرج؟
-
الطريقة المدمجة في Swing هي الأسهل لكنها محدودة في التخصيص كالهوامش والتنسيق المتقدم. وذلك من خلال الدالة print() الموجودة مباشرةً في مكونات Swing مثل JTable أو JTextArea، كالتالي: try { boolean printed = table.print(); if (printed) { System.out.println("تمت الطباعة بنجاح!"); } } catch (PrinterException e) { e.printStackTrace(); } ولتخصيص نافذة الطباعة فالمتاح هو إضافة عنوان أو تذييل للصفحة، وتحديد وضع الطباعة مثل ملاءمة الجدول مع عرض الصفحة والتحكم في الهوامش بشكل جزئي. try { boolean printed = table.print( JTable.PrintMode.FIT_WIDTH, " العنوان هنا", "الصفحة: {0}", true, null, true ); } catch (PrinterException e) { e.printStackTrace(); } العنوان والتذييل بإمكانك إضافة نص ثابت مثل التقرير الشهري أو صفحة {0}، ووضع الطباعة كتبت FIT_WIDTH لملاءمة الجدول مع عرض الصفحة. باقي الخيارات true الأولى هي لعرض نافذة الطباعة وnull لتحديد إعدادات الطابعة الافتراضية وtrue الثانية هي للطباعة تفاعليًا أي انتظار المستخدم. ولو أردت طباعة JTextArea مع خط أكبر أو هوامش مُعدة مسبقًا، ستحتاج إلى استخدام Java Print Service API، لأن الطريقة المدمجة لا تدعم ذلك، ولكن تستطيع استخدام الحل التالي كبديل: PrinterJob job = PrinterJob.getPrinterJob(); job.setPrintable((graphics, pageFormat, pageIndex) -> { if (pageIndex > 0) return Printable.NO_SUCH_PAGE; graphics.setFont(new Font("Arial", Font.BOLD, 14)); graphics.drawString(textArea.getText(), 50, 50); // هوامش: 50 نقطة return Printable.PAGE_EXISTS; }); if (job.printDialog()) { try { job.print(); } catch (PrinterException e) { e.printStackTrace(); } }
-
ما تحتاجه كمبرمج هو تعلم أشهر المنصات المستخدمة لنشر المشاريع عليها في السحابة cloud، والمستخدم في سوق العمل هما AWS التابعة لشركة أمازون و Azure التابعة لمايكروسوفت، الأفضل تعلم AWS فهي الأكثر إنتشارًا، لكن لو في حال العمل من خلال إطار .NET التابع لمايكروسوفت فالأفضل Azure حيث ستجد تكاملًا أفضل مع Azure عند العمل على DevOps، Visual Studio، SQL Server. وعامًة عند تعلم العمل من خلال أحد تلك المنصات سيسهل عليك التعامل مع باقي المنصات السحابية فهي تعمل من خلال نفس الآلية تقريبًا، فلكل منها واجهة مستخدم Console مختلفة، وأسماء وأدوات خاصة للخدمات كـ AWS Lambda وتقابلها Azure Functions. ابدأ بمنصة واحدة AWS أو Azure وركز على فهم المفاهيم الأساسية: إدارة الخوادم الافتراضية EC2 في AWS و VMs في Azure قواعد البيانات السحابية RDS في AWS و SQL Database في Azure خدمات serverless وستجدها باسم Lambda في AWS و Functions في Azure
-
أي مشروع يجب تنفيذ دراسة جدوى له وليس التنفيذ بشكل عشوائي، المشروع حساس قليلاً، فبعض الدول تمنع القيام بذلك إلا بشروط خاصة، من خلال بحث عن الوضع في دولة الأردن ما وجدته هو أنّ سوق الطاقة الشمسية تشهد تحولات جذرية مدفوعة بارتفاع أسعار الطاقة التقليدية والأزمات اللوجستية العالمية، حيث تتراوح تكلفة تركيب الأنظمة المنزلية بين 500-550 دينارًا أردنيًا للكيلوواط، مع توقعات بنمو الطلب بنسبة 15% سنويًا بسبب التوجه الحكومي نحو خفض الاعتماد على الاستيراد. وتُظهر البيانات أن العائد على الاستثمار يتحقق خلال 5-7 سنوات، مدعومًا بعمر تشغيلي يصل إلى 25 عامًا للألواح عالية الجودة، وذلك يجعل المشروع جذابًا اقتصادياً وبيئياً في ظل الدعم التشريعي ووفرة الإشعاع الشمسي الذي يبلغ 5.5 كيلوواط/م² يوميًا. وتشكل فاتورة الطاقة عبئًا على الاقتصاد الأردني، حيث تستورد المملكة 93% من احتياجات الطاقة، ودفعت الأزمة الحكومة إلى تبني استراتيجية طموحة لرفع مساهمة الطاقة المتجددة إلى 31% بحلول 2030، مع إعفاءات ضريبية للمشاريع الشمسية وتسهيلات تمويلية عبر صندوق الطاقة المتجددة، ووفقًا لبيانات قطاع الكهرباء، سجلت مشاريع الطاقة الشمسية المنزلية نموًا بنسبة 40% خلال 2023-2024، مدعومة بارتفاع أسعار الكهرباء التقليدية بنسبة 12% في نفس الفترة. وتختلف التكاليف الأولية حسب سعة النظام ونوعية المكونات، حيث يظهر تحليل عينات الأسعار لعام 2024-2025 ما يلي: الألواح أحادية البلورة (مونو): تتراوح تكلفة اللوح سعة 580 واط بين 90-110 دينارًا أردنيًا، مع كفاءة تصل إلى 22%. العواكس الشمسية: تشكل 15% من التكلفة الإجمالية، حيث يبلغ سعر العاكس 10 كيلوواط حوالي 1,200 دينار. الهياكل والتركيب: تبلغ تكلفة الهيكل المعدني المقاوم للصدأ 0.12 دينار/واط، بينما تصل مصاريف العمالة إلى 8% من إجمالي المشروع. بالتالي سعة 5 تكلفتها 2750 وفترة الاسترداد 4.3 سنوات، وسعة 10 تكلفتها 5200 مع استرداد خلال 5.1 سنوات، وسعة 15 تكلفتها 7450 مع فترة استرداد 5.8 سنوات. وأدت الهجمات على سفن الشحن في البحر الأحمر إلى ارتفاع تكاليف النقل البحري بنسبة 600%، مما رفع أسعار الألواح المستوردة بنسبة 3-5% خلال الربع الأول من 2025، ويتوقع خبراء الصناعة أن تؤدي تلك الأزمة إلى تحول السوق نحو الألواح عالية السعة 660+ واط لتعظيم الاستفادة من مساحات التركيب المحدود. وأظهرت دراسة 50 مشروعًا منزليًا في عمان أن متوسط التوفير الشهري يبلغ 85 دينارًا، مع معدل عائد داخلي IRR يصل إلى 18.7% عند حساب التكاليف على مدى 25 عامًا، وتعتمد الربحية على ثلاثة عوامل رئيسية: تؤدي الزيادة بنسبة 1% في الكفاءة إلى خفض فترة الاسترداد بمعدل 4 أشهر. يسمح ببيع الفائض إلى الشبكة الوطنية بسعر 0.12 دينار/كيلوواط ساعة، مما يرفع العائد السنوي بنسبة 23%. تخفض تكاليف الصيانة المنتظمة (0.5% من التكلفة السنوية) من معدل تدهور الأداء إلى 0.4% سنويًا مقابل 0.8% في الأنظمة غير الخاضعة للصيانة.
-
ستحدث مشاكل لو التقسيمات المُحددة مسبقًا غير مناسبة للبيانات، بمعنى PredefinedSplit مناسب للبيانات الزمنية كالتنبؤ بالأسهم، حيث يجب تجنب التقسيم العشوائي للحفاظ على التسلسل الزمني، وذلك لتحديد تقسيمات تمنع تسرب البيانات من المستقبل إلى الماضي، أو لو تريد فرض تقسيمات محددة مسبقًا كتقسيمات مستخدمة في أبحاث سابقة للمقارنة، أو الحفاظ على توزيع الفئات في كل تقسيم يدويًا. المشاكل تكمن لو تضمنت التقسيمات المُحددة تداخلًا بين بيانات التدريب والاختبار كتضمين عينات من الاختبار في التدريب، سيُبالغ النموذج في الأداء الوهمي Overfitting أي يحدث تسرب البيانات، ولو لم تكن التقسيمات تعكس التوزيع العام للبيانات مثل فصل عينات نادرة في مجموعة واحدة فقط، سيُقلل ذلك من قدرة النموذج على التعميم، أيضًا لو استخدمت تقسيمًا واحدًا فقط مثل train_test_split بدلًا من تقاطع K-Fold، فستحصل على تقدير غير مستقر لأداء النموذج. وكبدائل يتوفر KFold أو StratifiedKFold والتي توزع البيانات تلقائيًا بشكل عشوائي مع الحفاظ على التوازن، لكنها غير مناسبة للبيانات الزمنية أو الحالات التي تتطلب تحكم دقيقة، وفي البيانات الزمنية، الأفضل الإعتماد على TimeSeriesSplit لتقسيمات متزايدة تلقائيًا، بينما PredefinedSplit يعطيك تحكمًا كاملًا.
- 4 اجابة
-
- 1
-
-
لكن ما الحاجة إلى Django بالرغم من أنك تستخدم Next.js أتفهم أنك تستخدمها للواجهة الأمامية لكن هل قمت باستخدام getStaticProps لصفحات تحتوي على بيانات ثابتة نسبيًا مثل قوائم المستخدمين المُحدثة بشكل غير متكرر. واستخدام getServerSideProps في حال البيانات تتغير بشكل دقيق ويحتاج المستخدمون إلى تحديث فوري، أيضًا Incremental Static Regeneration (ISR) لتحديث الصفحات تلقائيًا دون إعادة بناء كامل الموقع. فما سبق هو الفائدة الحقيقية من استخدام Next.js في الواجهة الأمامية. تستطيع استخدامه أيضًا للواجهة الخلفية لتقليل تعقيد المشروع، لو هناك سبب وجيه فلا مشكلة. أيضًا في الواجهة الأمامية من الأفضل تنفيذ Pagination/Infinite Scroll أي قسم قائمة المستخدمين إلى صفحات أو أضف infinite scroll لتجنب تحميل آلاف السجلات مرة واحدة. وLazy Loading من خلال React.lazy() أو مكتبات مثل react-virtualized لتحميل المكونات والبيانات عند الحاجة فقط، وnext/dynamic لتحميل المكونات الثقيلة بشكل غير متزامن. ولتحسين تجربة المستخدم حاول إضافة خيارات تصفية متقدمة حسب الدولة، الوظيفة، الخبرة، وغيرهم، واستخدم debounce في شريط البحث لتقليل الطلبات إلى الخادم، أيضًا أظهر هيكلًا مؤقتًا skeleton UI أثناء انتظار تحميل البيانات، وتأكد من توافق التصميم مع جميع الأجهزة باستخدام Tailwind's responsive utilities. ولو استطعت استخدم TypeScript لتعريف أنواع البيانات كـ UserProfile لتجنب الأخطاء. بخصوص الواجهة الخلفية خزن النتائج الشائعة كقائمة المستخدمين في دولة معينة من خلال Django’s cache framework مع Redis أو Memcached، أيضًا استخدم Django REST Framework’s pagination لتقسيم النتائج مثل PageNumberPagination أو CursorPagination. وقلل عدد استعلامات قاعدة البيانات من خلال select_related (لـ ForeignKey) و prefetch_related (لـ ManyToMany)، ثم استخدم Celery أو Django Channels للمهام الثقيلة كإرسال إشعارات لجميع المستخدمين. وحدد عدد الطلبات المسموح بها لكل مستخدم بواسطة مكتبات مثل django-ratelimit. وبخصوص Socket.io لا ترسل تحديثات الوقت الحقيقي إلا عند حدوث تغيير مهم كإضافة مستخدم جديد، وقسم الاتصالات إلى غرف rooms حسب الدولة أو الوظيفة لتقليل الحمل، وحدد عدد الأحداث التي يمكن للمستخدم إرسالها/استقبالها في الثانية.
-
أرجو توضيح ما هي التقنيات التي تستخدمها لتقديم إجابة مفيدة وليس عامة.
-
pandas.isin تدعم أنواع بيانات متعددة ومختلطة وتتعامل مع البيانات المفقودة NaN, None وتدعم الفهارس Index والتسميات labels. أما numpy.isin تعمل بشكل أفضل مع الأنواع المتجانسة من البيانات ولا تتعامل جيداً مع البيانات المفقودة وتتعامل مع المصفوفات البسيطة فقط
- 5 اجابة
-
- 1
-
-
الأفضل الإعتماد على دوال pandas/numpy المدمجة بدلاً من list comprehension كالتالي: split_index = np.where(x_train.index.isin(x_dev.index), 0, -1) وذلك للاستفادة من vectorization في numpy/pandas بدلاً من loop صريح وأيضًا استخدام isin() المدمجة التي تعمل بشكل أسرع مع pandas Index، وسيقوم بالعملية في خطوة واحدة. وتقليل التعقيد الزمني من O(n*m) إلى O(n) حيث n حجم x_train و m حجم x_dev وتجنب التحقق العنصر بعنصر باستخدام عمليات مصفوفات مخصصة. بالتالي سيعمل بشكل جيد جدًا مع pandas Index/Series وذلك لو ستتعامل مع أعداد كبيرة من البيانات.
- 5 اجابة
-
- 1
-
-
الفكرة هي في معرفة ما تريد البحث عنه، البداية تكون من خلال البحث بشكل عام how to Fine-Tune LLM وستجد الكثير من النتائج، ستحتاج إلى تفقدها بالطبع ومن خلالها ستتفرع إلى نتائج وملعومات أخرى لتصل إلى ما تريد. وبالطبع بخصوص مجال الـ AI فالمصادر هي بالإنجليزية، ابحث عن التالي: Unsloth AI RAG LoRA | Low-rank adaptation https://github.com/hiyouga/LLaMA-Factory بعد ذلك تفقد التالي ستجد هنا قائمة ضخمة من المصادر التي تم تجميعها: https://github.com/Curated-Awesome-Lists/awesome-llms-fine-tuning أسهل طريقة لعمل Fine-Tune هي من خلال Unsloth AI ستحتاج إلى مشاهدة شرح عملي لذلك، ابحث عن "Fine Tune Llama 3.1 unsloth" على اليوتيوب. بخصوص تقنية LoRA ستحتاج إلى البحث عن How to fine-tune a model using LoRA حيث LoRA هي تقنية وليست نموذج، وستجد تفصيل هنا: https://huggingface.co/docs/diffusers/en/training/lora
-
وسائل الدفع المتاحة بالأكاديمية هي باي بال والبطاقة الإئتمانية، في حال كان هناك مشكلة بالإشتراك أرجو التواصل مع مركز المساعدة وسيتم مساعدتك. وللعلم بإمكانك شحن حسابك بالأكاديمية من خلال بطاقة الهدية والمتاح أن يشتريها شخص آخر لك، ثم استخدام ذلك الرصيد بالإشتراك.
-
الدورة مخصصة لمن ليس لديه أي دراية بالبرمجة وبطبيعة الحال هي مناسبة لك في حال كان لديك دراسة بسيطة في استخدام الحاسوب ويمكن مساعدتك بخصوص ذلك الشأن حيث يمكنك السؤال في التعليقات أسفل الدرس وشرح المشكلة وسيتم مساعدتك وإن تعذر الحل سيتم الإتصال بحاسوبك وحل المشكلة. ذكرت أنك مبتدأ في مجال البرمجة، لذا مهارة المنطق البرمجي لا تمتلكها، بالتالي يجب تعلم تلك المهارة بشكل بسيط من خلال أداة مثل سكراتش، وهي تحاكي منطق لغات البرمجة من خلال توفير "كتل أو لبنات" لبناء البرنامج وتنفيذ المنطق الذي تريده. حيث ستتعلم مفاهيم مثل المتغيرات وحلقات التكرار والجملة الشرطية، الدوال، القوائم وربط الكائنات ببعضها البعض وهو أمر مشابه للربط بين الملفات الملفات والوحدات في لغات البرمجة، وستتعلم ذلك بشكل أسهل من خلال سكراتش. أما في حال كان لديك خبرة برمجية مسبقة، أي لو تعلمت الأساسيات من خلال بايثون مثلاً، فلا حاجة للبدء من خلال سكراتش، تستطيع تجاهل ذلك المسار ودراسة المسارات الأخرى بدءًا من مسار أساسيات البرمجة. وفي المسارات التالية لن تواجه مشكلة في الفهم والاستيعاب وبالطبع الأمر بحاجة إلى مجهود: مدخل إلى علوم الحاسوب (سيتم به تعلم التفكير المنطقي من خلال تعلم تنفيذ ألعاب بواسطة سكراتش وأيضًا تعلم كتابة الخوارزميات قبل تنفيذ البرنامج). أساسيات البرمجة (ستتعلم أساسيات البرمجة من خلال لغة برمجة حقيقية من خلال بايثون وجافاسكريبت). أنظمة التشغيل ونظام لينكس (من المهم التعرض لنظام لينكس عند تعلم علوم الحاسب لإزالة الرهبة الغير ضرورية من استخدام لينكس وأيضًا التعود على استخدام منفذ الأوامر Terminal وهي الشاشة السوداء التي نكتب بها الأوامر). إلى عالم الويب (ستتعلم هنا ما الذي يحدث في مجال الويب في الواجهة الأمامية والخلفية). البرمجة كائنية التوجه (هنا ستتعلم مفهوم محوري في البرمجة وهي البرمجة الكائنية والتي لابد من تعلمها ولا مشكلة في حال لم تتفهمها بشكل كامل في البداية لكن حاول استيعاب 70% منها). أساسيات هندسة البرمجيات (ستتعلم هنا كيف يتم تطوير منتج برمجي وإدارة المشروع فيما يعرف باسم SDLC). والمسارات التالية ستواجه تحدي في استيعابها في البداية ولا مشكلة في ذلك ولا داعي للإحباط، حاول استيعابها بنسبة 50 إلى 70% وبعد التخصص في مجال برمجي ستعود إليها لمراجعتها مرة أخرى وستفهم مدى أهميتها: الخوارزميات وبنى المعطيات أنماط التصميم
-
تحليل البيانات وتعلم الآلة يعتمد على اللغة البرمجية بايثون، بالتالي يجب التعمق في اللغة قبل البدء في أي مجال منهم لفهم ما يحدث عن كتابة الكود ورؤية الشرح، لذا دورة بايثون ثم يليها دورة الذكاء الاصطناعي والتي سيتم بها شرح مكتبات TensorFlow، PyTorch، scikit-learn، وKeras وكل ما سبق يعتمد على بايثون. وعند الدراسة يجب التركيز على الأساسيات وبالأخص المتغيرات، الشروط، الحلقات، الدوال وهياكل البيانات (القوائم، القواميس، وغيرهم)، أيضًا تعلم أساسيات مكتبات NumPy للحسابات العلمية وPandas لتحليل البيانات وMatplotlib أو Seaborn لتصور البيانات. ولا يجب دراسة الأساسيات بدون تطبيق عملي، بل يوجد مشاريع عملية بالدورة يجب تنفيذها، والمسارات المناسبة هي: أساسيات لغة بايثون Python تطبيقات عملية باستخدام بايثون Python تطوير واجهة برمجية لتعديل الصور باستخدام فلاسك Flask بناء مدونة باستخدام فلاسك Flask دمج تقنيات الذكاء الاصطناعي مع تطبيقات بايثون تحليل البيانات أساسيات تعلم الآلة Machine Learning
- 2 اجابة
-
- 1
-
-
RandomizedSearchCV يختبر عددًا محددًا من التركيبات عشوائيًا من التوزيعات المُحددة ومناسب في حال المعلمات كثيرة أو تحتوي على نطاقات مستمرة، أو تريد تحسن سريع بموارد قليلة، بينما GridSearchCV يختبر جميع التركيبات الممكنة للمعلمات ومناسب في حال المعلمات قليلة وقيمها محدودة مع دضمان العثور على التركيبة الأمثل مهما كلف الأمر.
- 4 اجابة
-
- 1
-
-
التسريب يحدث في حال تأُثرت مجموعة التحقق أو الاختبار بالبيانات المُستخدمة في التدريب، وذلك يؤدي إلى تقييم غير واقعي للأداء، بالتالي لو تستخدم Cross-Validation، فيجب إنشاء مجموعة تحقق مستقلة داخل كل Fold، كاستخدام StratifiedKFold مع فصل التحقق عن التدريب في كل تكرار، ثم استخدام PredefinedSplit أو تقسيم يدوي مُخصص داخل كل Fold لضمان عدم تداخل البيانات. وفي حال لا تستخدم Cross-Validation فستقوم بتقسيم البيانات يدويًا إلى ثلاث مجموعات مستقلة كما ذكرت، وهنا يجب التأكد من أن مجموعة الاختبار لا تُستخدم مطلقًا في التدريب أو ضبط المعلمات.
- 6 اجابة
-
- 1
-
-
ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم أسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل.
-
الأفضل التركيز على ضبط مجموعة محددة من المعلمات الفائقة ذات الصلة للنموذج، فكلما زاد عدد المعلمات الفائقة والقيم المُختبرة، زادت التركيبات الممكنة بشكل كبير، وذلك يُعرف باسم مُشكلة لعنة الأبعاد - Curse of Dimensionality، وذلك يؤدي إلى استهلاك موارد حاسوبية كبيرة ووقت طويل دون فائدة في حال بعض المعلمات غير مؤثرة. أيضًا اختبار معلمات غير مهمة يؤدي إلى تخصيص النموذج بشكل مفرط لبيانات التدريب، خاصةً لو مجموعة البيانات صغيرة، والنماذج المُعقدة جداً تفشل في التعميم على بيانات جديدة. وفي حال المعلمات غير معروفة الأهمية، استخدم RandomizedSearchCV بدلاً من GridSearchCV لاستكشاف نطاق أوسع للمعلمات بكفاءة، أو أدوات مثل SHAP أو feature_importance لفهم تأثير المعلمات غير المعروفة.
- 4 اجابة
-
- 1
-