-
المساهمات
6972 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
13
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو عبدالباسط ابراهيم
-
وعليكم السلام ورحمة الله وبركاته. بالإضافة للنصائح القيمة في التعليقات السابقة فإنه من أهم النصائح أيضاً هو التطبيق بمفردك بمعنى محاولة تحدى نفسك بكتابة الكود بدون الإطلاع على الحل أو الأكواد التي يقوم المدرب بكتابتها وإليك بعض الطرق لتطبيق هذا المبدأ بعد مشاهدة الدرس، أغلق الفيديو وحاول إعادة بناء ما شاهدته بنفسك. بعد حل التمرين أو المشاريع الموجودة بالدورة حاول تغيير متطلباته قليلاً، ثم حاول تنفيذه بنفسك. والعديد من الطرق التي تساعدك على اكتشاف الثغرات في فهمك وستدفعك للبحث عن الحلول بنفسك، وهو ما سيعزز ثقتك ومهاراتك بشكل أسرع بكثير من مجرد النسخ واللصق.
-
كما يبدو فإن تعلم أساسيات الرياضيات ضرورية لفهم الأسس العميقة للذكاء الاصطناعي مثل الجبر الخطي، الحساب التفاضلي، والإحصاء. ولكن يمكنك للبدء في تعلم الذكاء الإصطناعي دون حاجة إلى تعلم أساسيات الرياضيات، وبالتزامن مع تعلمك الذكاء الإصطناعي يمكنك بناء بعض المهارات تدريجيًا في الرياضيات ويمكن تعلمها بطرق ممتعة من منصات مثل Khan Academy والتي تقدم دروسًا مجانية ومنظمة تبدأ من الحساب الأساسي إلى الجبر والحساب التفاضلي، مع تمارين تفاعلية.
- 4 اجابة
-
- 1
-
-
كما بالتعليقات السابقة فإنه يمكن برمجة تطبيقات الجوال باستخدام لغة بايثون، ولكنها ليست الخيار الأكثر شيوعًا أو الأساسي مقارنة بلغات مثل Swift لنظام iOS أو Kotlin لنظام Android. ولكن إذا كنت تريد تعلم لغة تشبه بايثون ومناسبة لتطوير تطبيقات الجوال، فهناك خيارات قريبة من حيث البساطة والوضوح لغة Dart فهي تُستخدم مع إطار العمل Flutter لتطوير تطبيقات تعمل على Android وiOS. تشبه بايثون في بعض الجوانب مثل بناء الجملة البسيط والوضوح، مما يجعلها سهلة التعلم لمن لديهم خلفية في بايثون. JavaScript مع أطر عمل مثل React Native، يمكن استخدامها لتطوير تطبيقات الجوال. أو يمكنك الذهاب لمسار آخر وهو تطوير التطبيقات الأصلية كالتالي لغة kotlin وهي تستخدم لتطوير تطبيقات Android، وتتميز بالبساطة والوضوح، وهي قريبة نسبيًا من أسلوب بايثون مقارنة بلغات أخرى مثل Java. أو لنظام iOS فقط يمكنك استخدام اللغة swift لتطوير تطبيقات iOS. من بين هذه الخيارات، Dart قد تكون الأقرب لمتعلمي بايثون بسبب بساطتها وتركيزها على تطوير تطبيقات متعددة المنصات باستخدام Flutter.
-
وعليكم السلام ورحمة الله وبركاته، أولاً مقاييس WTFs لجودة الكود هي في الغالب مقاييس فكاهية. وهو رد فعل قد يظهر عندما يواجه المبرمج جزءًا غير واضح أو مربك أو خاطئ في الكود. بمعنى آخر يُشير المقياس إلى عدد المرات التي يشعر فيها المبرمج بالارتباك أثناء قراءة الكود أو مراجعته. فكلما زاد عدد الأجزاء غير الواضحة أو المربكة في الكود، كلما كانت جودة الكود أقل، لأن الكود الجيد يجب أن يكون واضحًا وسهل الفهم للمبرمجين الآخرين. وليس مقياسًا دقيقًا أو علميًا مثل المقاييس الرسمية التي تُستخدم في تقييم جودة الكود. وبالتالي هذا المقياس يشجع المبرمجين على كتابة كود أكثر وضوحًا وبساطة وقابلية للقراءة والصيانة، ويفيد بأن الكود يُكتب ليقرأه البشر أولاً .
- 3 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله وبركاته. بالفعل مع تطور الذكاء الاصطناعي، ظهر مصطلح "vibe coding" كطريقة جديدة لتطوير البرمجيات، حيث يمكن للمبرمجين إنشاء برامج كاملة باستخدام تعليمات باللغة الطبيعية بدلاً من كتابة الكود يدويًا. وهنا ليس مشكلة حيث أنه يحتاج لشخص يفهم أساسيات البرمجة وهمدسة البرمجيات حتى يخرج بنتيجة مرضية في حالة العمل على مشاريع متوسطة أو معقدة . ولكن المشكلة تكمن في استخدام أدوات الذكاء الإصطناعي بدون خبرة عملية في تطوير البرمجيات والتي ينتج عن ذلك الكثير من المشكلات وبالأخير لن يتعدى مستوى معين من التطبيقات التي يمكن الحصول عليها. حالياً الشركات بدأت باستخدام أدوات الذكاء الإصطناعي أو مثل "vibe coding" لزيادة الكفاءة، مما قد يقلل من الحاجة إلى مبرمجين للمهام البسيطة. ولكن ماذا عليك فعله هو تعلم الأساسيات وهندسة البرمجيات أكثر من أي وقت مضى بمعنى عدم الإعتماد على تعلم لغة البرمجة أو التكويد فقط. وتعلم كيفية استخدام أدوات الذكاء الاصطناعي لتعزيز إنتاجيتك. والتركيز على تطوير مهارات حل المشكلات والإبداع، وكن مستعدًا للتعلم المستمر لمواكبة التطورات التقنية.
- 1 جواب
-
- 1
-
-
Godot Engine يتميز بمرونته وسهولة استخدامه، لكنه قد لا يكون مثاليًا للألعاب الكبيرة ذات الرسومات فائقة الجودة. ولذلك إذا كنت مبتدأ وتحاول تعلم تطوير الألعاب فإن Godot يستحق التجربة بالتأكيد فمثلاً كمبتدئ، ستقضي وقتاً طويلاً في تعلم أساسيات تطوير الألعاب قبل أن تصل إلى حدود إمكانيات Godot. وبحلول ذلك الوقت، من المحتمل أن يكون المحرك قد تطور ليلبي احتياجاتك المتقدمة. Godot يتطور بسرعة كبيرة. على سبيل المثال، الانتقال من الإصدار 3 إلى الإصدار 4 جلب تحسينات هائلة في الرسوميات ثلاثية الأبعاد والفيزياء والأداء العام. للتوضيح أكثر يمكننا إعتبار التحديات عند استخدام Godot تصبح كبيرة ومن الصعب حلها عندما تواجه الرسوميات عالية الواقعية وتأثيرات الإضاءة المتقدمة مثل تتبع الأشعة في الوقت الفعلي وخرائط ضخمة بمساحات شاسعة واللعب الجماعي واسع النطاق وما إلى ذلك. وبالطبع ألعاب عالية الميزانية مثل Call of Duty أو Assassin's Creed تتجاوز حدود Godot الحالية بكثير.
-
أولاً سيتكون الاختبار من محادثة صوتية حيث يطرح المدرب عليك أسئلة متعلقة بالدورة التدريبية والمشاريع التي نفّذتها خلالها بمعنى أوضح ستكون الأسئلة على المفاهيم التي تم شرحها والخطوات التي قمت بها لبناء المشاريع . ثانياً يفضل التطبيق على كامل الدورة التعليمية وبالتأكيد هناك محتوى نظري لا يحتاج للتطبيق العملي وإذا كنت تسأل عن التطبيق للحصول على الشهادة فيكفي التطبيقات والمشاريع التي تقوم ببناءه مع المدرب مثل المسارات التي تحتوي على تطبيق عملي. وأخيراً ليس مطلوباً حفظ كل التفاصيل النظرية. الهدف هو فهم المفاهيم وكيفية تطبيقها عملياً. لذلك لا تقلق فإن الطبيق العملي ومتابعة المدرب في التدريبات العملية هي الطريقة الصحيحة لتعلم البرمجة وحفظها بطريقة تجعلكقادر على التطبيق بمفردك والرجوع إلى التوثيقات في حالة تريد تذكر شيئاً ما
- 2 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله وبركاته. الـ Stacking هو عملية دمج مصفوفات متعددة لإنشاء مصفوفة واحدة جديدة. وهذه العملية تتيح لك تجميع البيانات من مصفوفات مختلفة بطرق متنوعة، سواء كان ذلك رأسيًا أو أفقيًا أو حتى على طول أبعاد جديدة، حسب احتياجاتك. والـ Stacking مفيد في مجالات مثل معالجة البيانات وتحضيرها للتحليل أو لتدريب نماذج التعلم الآلي. فهو يسمح لك بتنظيم البيانات بطريقة مرنة ومناسبة لاحتياجاتك. وإليك بعض الأمثلة لتوضيح المفهوم import numpy as np # إنشاء مصفوفات أحادية البعد a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) # التكديس العمودي (vstack) v_stacked = np.vstack((a, b)) # النتيجة: # array([[1, 2, 3], # [4, 5, 6]]) # التكديس الأفقي (hstack) h_stacked = np.hstack((a, b)) # النتيجة: # array([1, 2, 3, 4, 5, 6]) # دالة stack مع تحديد المحور stacked_axis0 = np.stack((a, b), axis=0) # نفس نتيجة vstack stacked_axis1 = np.stack((a, b), axis=1) # النتيجة: # array([[1, 4], # [2, 5], # [3, 6]])
- 4 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله وبركاته. يعتمدالإختيار بين الطريقتين على أسلوبك الشخصي في التعلم وخبرتك السابقة. بما أنك متعلم بالفعل عدة لغات برمجية مثل HTML، CSS، JS، C++، PHP، وأنك محترف في حل المشكلات على Codeforces ومتقن لعدد جيد من الخوارزميات وهياكل البيانات، فأنت في وضع جيد لاتخاذ هذا الخطوة. فمثلاً بالنسبة لشخص مبتدأ فيكون من الصعب جداً الإعتماد على التوثيقات أو الكتب فهو يحتاج للشرح العملي والمرئي للفهم بشكل أفضل. وبالنسبة لجودة التعلم فيمكن تحقيق جودة عالية بالقراءة، خاصة مع خبرتك السابقة. فمثلاً التوثيق الرسمي لـ Laravel، يوفر تفاصيل شاملة تغطي كل جانب من جوانب الإطار. كما يمكنك الاعتماد على التوثيق الرسمي وخطط التعلم المتاحة لتحديد ترتيب المحتوى. ولذلك بالنسبة لك وخبرتك الحالية يبدو أنك في وضع جيدفيمكنك الاستفادة من القراءة كمصدر رئيسي، مع استخدام الفيديوهات للمواضيع التي تحتاج إلى توضيح بصري أو نصائح عملية. على سبيل المثال، قد تجد فيديوهات حول إعداد بيئة العمل أو تصميم API ، بينما يمكن أن تكون القراءة كافية لفهم مفاهيم مثل Middleware أو Eloquent.
-
ما هي المشكلة التي تظهر لك وهل جميع الدروس لا تعمل معك؟ فربما هناك مشكلة في خادم مشغل الفيديوهات ولذلك يرجى التجربة بعد عدة دقائق وإذا لم يتم حل المشكلة قم بالضغط على Ctrl + shift + r لتحميل الصفحة مع حذف الكاش ومحاولة استخدام متصفح آخر إذا لم تحل المشكلةز
-
الأن أعتقد أنه سيتم ظهور التحديثات عندما تكون متاحة لك. وبالنسبة ل "تم تحديث ويندوز11 قبل دقيقة مثلا" فيمكنك إعادة تشغيل الحاسوب وسيتم حل المشكلة
- 9 اجابة
-
- 1
-
-
يمكنك التجربة والإنتقال للتحديثات وستجد أنها تعمل ويظهر لك الزر resume update
-
لا يوجد حاجه لحذف ولكن الملفات التي تقوم بحذفها في المسار التالي وليس الموجود بالصورة في التعليق السابق HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\SettingsCOPY
- 9 اجابة
-
- 1
-
-
من المفترض أن يوجد زر لاستئناف التحديثات resume updates ولكن ربما حديث مشكلة أدت لعدموجود هذا الزر أو ربما هناك مشكلة بنظام التشغيل. ولذلك يمكنك تجربة الحل التالي أولاً قم بالبحث عن regedit في شريط البحث لديك ثم إنتقل للعنوان التالي كما بالصورة HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UpdatePolicy\Settings ثانياً اضغط على PausedFeatureDate وستفتح لك قائمة ستجد خانة تسمى value قم بإفراغها وبالمثل ل PausedQualityDate ثالثاً اذهب إلى HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\SettingsCOPY ثم قم بحذف الملفات التالية PauseFeatureUpdatesEndTime PauseFeatureUpdatesStartTime PauseQualityUpdatesEndTime PauseQualityUpdatesStartTime PauseUpdatesExpiryTime وبعد الإنتهاء أغلق البرنامج Registry Editor وستجد أن التحديثات ظهرت
- 9 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله وبركاته. بالفعل صممت بايثون لتكون بسيطة وسهلة القراءة، مما يسمح للمبرمجين بالتركيز على المنطق وحل المشكلة بدلاً من التعامل مع تعقيد لغوي أو أكواد زائدة. ومع أن لغة بايثون تُظهر مزايا واضحة في سهولة القراءة والكتابة، إذ تُتيح كتابة الأكواد بطريقة تشبه الجمل الطبيعية، مما يسهل فهمها في بعض الحالات. ومع ذلك، هناك بعض الصعوبات مثل استخدام المسافات (الـ indents) كوسيلة لتحديد الكتل البرمجية، حيث يمكن أن يحدث خلط أثناء نقل أو لصق الكود بسرعة مما يؤدي إلى تغيير البنية المتوقعة. بالمقابل، لغات مثل Java تستخدم الأقواس لتحديد الكتل البرمجية، مما يقلل من احتمال حدوث مثل هذه المشاكل. ولكن بالأخير تُركز لغة بايثون على حل المشكلات بأقل تعقيد ممكن في اللغة
- 5 اجابة
-
- 1
-
-
نعم، يمكنك الحصول على شهادة إتمام الدورة حتى لو لم تكمل جميع المسارات بمعنى أنه من ضمن الشروط إتمام 4 مسارات كحد أدنى. والشهادة ستكون للدورة كاملة بالطبع فليس هناك شهادة على جزء من الدورة . ويمكنك التأكد من ذلك من خلال التحدث مع مركز المساعدة في أي تفاصيل أخرى من خلال الرابط التالي. https://support.academy.hsoub.com/conversations
-
إذا كنت تقصد بناء المشاريع الموجود في الدورة فيجب عليك الدريب على التمارين الموجودة بالدروس والتطبيق مع المدرب في بناء التطبيقات العملية حيث أنه من شروط التقدم للإمتحان والحصول على الشهادة بناء التطبيقات العملية الموجودة بالدورة. ولكن إذا كنت تقصد فرص العمل بعد الإنتهاء من الدورة كما مكتوب في الدورة؟ فيمكنك الإطلاع على الإجابات التالية حيث تشرح لك ما يمكن للأكاديمية مساعدتك فيه بعد الإنتهاء من الدورة حيث لا توفر لك الأكاديمية وظيفة بل تساعدك في العثور على وظيفة بعد الإنتهاء من الدورة والحصول على الشهادة،
-
وعليكم السلام ورحمة الله وبركاته، مدير المنتجات الرقمية له علاقة بالتسويق، ولكن ليس بشكل مباشر. يتمحور دور مدير المنتجات الرقمية حول تطوير وإدارة المنتجات الرقمية مثل التطبيقات أو المواقع الإلكترونية، بينما يركز التسويق على الترويج لهذه المنتجات وجذب العملاء. ومع ذلك، هناك تداخل بين الدورين في بعض الجوانب فمثلاً مدير المنتجات الرقمية يحتاج إلى معرفة ما يريده العملاء وتفضيلاتهم لتصميم منتج ناجح. هذه المعلومات غالبًا ما تأتي من أبحاث السوق التي يجريها فريق التسويق. مثال آخر قد يعمل مدير المنتجات الرقمية مع فريق التسويق للتأكد من أن المنتج يتم تسويقه بطريقة صحيحة ويصل إلى الجمهور المستهدف. ولذلك بشكل عام، مدير المنتجات الرقمية والتسويق يعملان معًا لضمان نجاح المنتج.
- 2 اجابة
-
- 1
-
-
كما وضح لك محمد في التعليق السابق فإنه تحتاج لتعلم أساسيات لغة JavaScript أساسيات React.js أساسيات TypeScript وبالإضافة لماسبق فيفضل تعلم Node.js لأن Next.js ليس مجرد إطار عمل للواجهة الأمامية، بل يحتوي أيضًا على إمكانيات للبرمجة الخلفية (Back-end)، فمن الضروري تعلم Node.js قبل الانتقال إلى Next.js. ولذلك إذا كنت تريد تعلم nextjs فالأفضل هو تعلم الدورة كاملة باستثناء المسارات تطوير تطبيق جوال باستخدام React Native تطوير تطبيق سطح مكتب باستخدام Electron.js تطوير تطبيق جوال للتواصل الاجتماعي باستخدام Ionic
- 5 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله وبركاته. الفرق الأساسي بينهما هو أن yield تُستخدم في تعريف الدوال المولدة (generators). وعندما تستخدم yield داخل دالة، فإنها تُرجع قيمة وتُحفظ حالة الدالة بحيث يمكن استئناف التنفيذ منها لاحقاً عند طلب القيمة التالية. هذا يعني أن الدالة لا تنتهي بالكامل بعد تنفيذ yield، بل تنتظر حتى يُطلب منها العنصر التالي. بينما return تقوم بإرجاع قيمة واحدة وتنهي عمل الدالة بالكامل، بحيث لا يمكن استئنافها بعد ذلك. وإليك المثال التالي للتوضيح def generate_numbers(): for i in range(5): yield i gen = generate_numbers() for number in gen: print(number) # ستتم طباعة الأرقام من 0 إلى 4 تدريجياً بينما باستخدام return def return_number(): for i in range(5): return i # ستعيد القيمة 0 وتنهي الدالة فوراً print(return_number()) # سيطبع 0 فقط
- 7 اجابة
-
- 1
-
-
لم تحل المشكلة حتى بعد تغيير اسم الملف لأنّ Git سيحتفظ بسجل الملفات الكبيرة التي سبق رفعها أو إضافتها ل commit حتى لو تجاهلتها لاحقًا. ولذلك فيمكننا حل هذه المشكلة من خلال تنفيذ الأمر التالي git rm --cached path/to/giant_file مع استبدال الكلمة path/to/giant_file بالمسار للملف الذي يسبب المشكلة ثم عمل commit مع --amend من خلال تنفيذ الأمر التالي git commit --amend وبعدها يمكنك تجربة دفع الملفات للمستودع البعيد
- 6 اجابة
-
- 1
-
-
أيضاً بعد تفعيل قائمة "Develop" بالذهاب إلى Safari ثم Settings ثم Advanced، ثم تحديد خيار Show features for web developers كما تم التوضيح بالتعليق السابق . يمكنك استخدام الاختصار (Command + Option + I) لفتح أداة "Web Inspector" مباشرة والبدء في فحص العناصر على صفحات الويب ولاحظ أنه بدون تفعيل قائمة developلن يعمل الإختصار.
-
يمكنك تعريف ال Convolution Layer بشكل أبسط كالتالي: هي الطبقة المسؤولة عن استخراج الميزات من الصورة المدخلة، مثل الحواف، الألوان، أو الأشكال. تستخدم مرشحات (filters) تمر على الصورة لتوليد خرائط ميزات (feature maps) تُظهر المناطق التي تحتوي على أنماط معينة. وبالنسبة لPooling Layer فهي تُستخدم لتقليل الأبعاد المكانية لخرائط الميزات، مما يقلل من كمية الحسابات ويجعل الشبكة أكثر كفاءة. مثال على ذلك التجميع الأقصى (max pooling) الذي يأخذ القيمة الأكبر من كل منطقة في خريطة الميزات. وأخيراً ال Fully Connected Layer تأتي عادةً في نهاية الشبكة وتُستخدم لتصنيف الميزات التي تم استخراجها. و تسمح بدمج المعلومات لاتخاذ قرار نهائي، مثل تحديد ما إذا كانت الصورة تحتوي على قطة أو كلب.
- 5 اجابة
-
- 1
-
