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

Mustafa Suleiman

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

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

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

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

    295

كل منشورات العضو Mustafa Suleiman

  1. ليس المقصود إلتقاط صورة للشاشة وحفظ الكود بتلك الطريقة، بل المقصود هو التطبيق مع الشرح مرة مع المدرب ومرة بمفردك ثم الإحتفاظ بالملف الذي به الكود في مجلد خاص بالدورة. وذلك للتطبيقات العملية البسيطة التي تتكون من ملف واحد أو ملفين مثلاً، أي نقوم بإنشاء مجلد للدورة ثم بداخل المجلد نقوم بتقسيمه إلى مجلدات فرعية بحيث يصبح لكل مسار مجلد ثم نضع داخل مجلد التطبيقات العملية الخاصة بالمسار، ثم نرفع مجلد الدورة بالكامل بالمجلدات التي بداخله على مستودع GitHub. لكن المشاريع الكبيرة الكاملة نقوم بإنشاء مجلد منفصل لها ونرفعها على مستودع GitHub خاص بها بشكل مستقل.
  2. كنصيحة لا تحكمي على أي دورة في أي مكان بعدد الساعات الخاصة بها، فالأهم هو محتوى، فالساعات الطويلة لا تعني محتوى جيد والعكس صحيح لا تعني الساعات القصيرة محتوى سيء، لذا الأهم هو ثراء المحتوى ودسامته مع عدم الإخلال بالأساسيات. وعدد ساعات دورة بايثون هي 67 ساعة، وعدد ساعات دورة تطوير واجهات المستخدم هي 72 ساعة، لذا الفرق 5 ساعات فقط. وأول مسارين هما الأساسيات في دورة بايثون يستحوذان على نسبة كبيرة حيث يحتوي مسار أساسيات لغة بايثو على 11 ساعة من المحتوى، ومسار تطبيقات عملية باستخدام بايثون على 15 ساعة. والمطلوب للتقدم للإمتحان هو إنهاء 4 مسارات على الأقل، ولا يشترط مسارات معينة، لكن من الأفضل إنهاء كامل مسارات الدورة لتحقيق استفادة.
  3. ستجدd أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم الأسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس. بالنسبة لسؤالك، بالطبع يكفي وحتى ما بعد الأساسيات لا مشكلة به، وبإختصار إذا كنتي تفضل بيئة تطوير بسيطة ومخصصة لتطوير Python وترغبين في التوسع في استخدام الإضافات وتخصيص البيئة الخاصة بك فاستخدمي VSCode لكونه code editor. ، أما إن كنتي بحاجة إلى ميزات متقدمة مدمجة مثل محلل ومصحح Python قوي ودعم كبير لإطارات العمل الخاصة ببايثون، فبيئة التطوير PyCharm هي الخيار الأفضل بالنسبة لك وذلك لكونه IDE أي بيئة تطوير ومتكاملة مخصصة للغة برمجية معينة. بمعنى أن VSCode بحاجة إلى تخصيصه فيما بعد مثل تثبيت إضافة خاصة بإطار بجانغو وفلاسك من أجل إظهار الكود بشكل جيد ومثل تلك الأمور ستتكرر لذلك ذكرت أن عليك تخصيصه بما يتناسب مع استخدامك، أما PyCharm فيدعم ذلك بشكل إفتراضي. لكن في البداية من الأفضل استخدام vscode لكونه بسيط وسهل الاستخدام.
  4. الدروس تعمل بشكل طبيعي، لكنها شكوى متكررة بالفعل، أرجو تحديث الصفحة من خلال الضغط على CTRL + F5 لحذف الملفات المؤقتة، ثم التجربة إن استمرت المشكلة أرجو استخدام متصفح آخر بدون إضافات والتجربة لمعرفة أين المشكلة، وإخبارنا إن تم حل المشكلة. وبخصوص المُلخصات، فلا يوجد تلخيصات نصية للدروس للأسف، يمكنك الإعتماد على موسوعة حسوب كمرجع لك: https://wiki.hsoub.com/الصفحة_الرئيسية
  5. أنت بحاجة إلى تفعيل نسخة الويندوز وذلك بشراء كود للتفعيل بطريقة قانونية وستجد تفصيل هنا: ولا مشكلة في تركها بدون تفعيل، فالقيود التي يتم فرضها للنسخ الغير مفعلة ليست مؤثرة على عمل النظام، حيث سيتم منعك من التالي: ستظهر علامة مائية مزعجة على سطح المكتب تُشير إلى عدم تفعيل النسخة. لن تتمكن من تغيير لون خلفية سطح المكتب أو شاشة القفل أو غيرها من العناصر الشخصية. ستظهر لك إشعارات منتظمة تُذكّرك بتفعيل النسخة. تتوقف بعض التحديثات الأمنية المهمة عن العمل. لن تتمكن من استخدام بعض الميزات المتقدمة مثل "Hyper-V" و "Windows Defender Device Guard".
  6. المشكلة لديك هي في محاولة عرض كائن التاريخ كما هو بالشكل التالي في مكون Note: <small>{date}</small> لاحظ أنك تقوم بتمرير كائن new Date() ولا يمكن عمل render للكائن بدون تحويله إلى تاريخ نصي، وذلك ممكن من خلال دالة toDateString، كالتالي: <small>{date.toDateString()}</small>
  7. سأكون صريحًا معك، مجال تعلم الآلة بحاجة إلى الأقل عامان من الدراسة وليس مجرد استخدام نماذج جاهزة عن طريق الـ API، بل ستحتاج إلى العودة الأساسيات ودراسة الرياضيات وذلك ستجده هنا: وأنت كمبتدأ لست بحاجة إلى معرفة كيف تم اشتقاق تلك الخوارزميات وكيف تم بنائها، كل ما تحتاجه هو أساسيات الرياضيات وهي الجبر الخطي والتفاضل والتكامل ولإحتمالات والتحليل الرياضي. وليس من الضروري أن يكون مستواك مرتفع في الرياضيات لتعلم الذكاء الاصطناعي بل يكفي تعلم الأساسيات ثم الاستزادة فيما بعد، وبالطبع كلما ارتفع مستواك في الرياضيات تطور مستواك وقدرتك على التعلم في مجال الذكاء الاصطناعي. ثم تعلم لغة بايثون والمكتبات الهامة في ذلك المجال مثل numpy و pandas وتعلم لغة SQL ثم تعلم الخوارزميات وهياكل البيانات، ثم تعلم تحليل البيانات ، ثم التعملق العميق والـ Transformers. ستجد هنا خريطة طريق جيدة: https://roadmap.sh/ai-data-scientist
  8. بالطبع ذلك مطلوب في مواقع العمل الحر، حيث المطلوب تنفيذ المهام بواقع خبرة سابقة أو على الأقل الإلمام بنسبة 70%، لكن إذا أردت العمل في شركة فستجد وظائف معروضة لمستوى Junior ابحث عن ذلك، لكن يجب وجود معرض أعمال جيد وبمستوى مرتفع نسبيًا يظهر مستوى مهارات ليست بسيطة. فمثلاً لمجال الواجهة الخلفية، لا يكفي أن تتعلم Node.js وexpress.js وبناء مشروع من خلالهم فقط، بل هناك مهارات أخرى ستجدها في وصف الوظيفة ابحث عن back-end developer على مواقع مثل LinkedIn و indeed و Bayt. والخبرة تأتي من تنفيذ مشاريع أقرب إلى المطلوب في الواقع مثل المشاريع التي يتم عرضها على مستقل مثلاً، ثم تطوير مهاراتك لتنفيذ مشاريع أعقد وستكتشف ذلك أثناء عملك على المشاريع حيث ستحتاج إلى البحث وتعلم أمرًا ما لتستطيع تنفيذ ما تريد.
  9. عليك حذف مجلد node_modules ثم تثبيت الحزم بنفس الإصدارات التي تم تطوير المشروع بها لكي لا يحدث تعارض وذلك من خلال الأمر: npm ci حيث يتم الإعتماد على ملف package-lock.json من خلال ذلك الأمر، وسيتم التثبيت بدون مشكلة. بعد ذلك عليك تثبيت الحزم الأخرى بواسطة composer من خلال الأمر: composer install ثم تعديل اسم ملف .env.example إلى .env ثم تنفيذ الأمر التالي: php artisan key:generate ثم تنفيذ أمر npm run dev ثم إنشاء قاعدة بيانات باسم instagram_clone كما في ملف .env ثم تنفيذ أمر التهجير: php artisan migrate:fresh --seed ثم تشغيل المشروع
  10. ستجد على اليوتيوب شروحات بالعربية بالفعل، ابحث عن " شرح SQLAlchemy "، ويوجد بالأكاديمية مقالات تشرح الأمر:
  11. المشكلة غير واضحة بعض الشيء، تقصد أنك لم تتمكن من نشر المشروع على github pages؟ ستحتاج إلى الذهاب إلى إعدادات المستودع Settings ثم ستجد تبويب باسم pages قم بالضغط عليه ثم اختر الفرع الذي به المشروع بالمستودع وغالبًا هو root كالتالي: بعد ذلك اضغط على save ثم انتظر قليلاً وسيتم النشر وسيظهر لك رابط في المستودع أو في صفحة pages في الإعدادات. وستجد شرح هنا بالفيديو:
  12. ما هو المستوى الذي وصلت إليه، أي ما هي التقنيات التي تعلمتها من البداية وحتى الآن مع ذكر اللغات التي تعلمتها فهي الأساس وليس التقنيات، ثم ما المشاريع التي قمت بها وما هو المسار البرمجي الذي تنوي التخصص به؟
  13. دخولاً في لُب الموضوع، لن يساعدك أحد ما لم تساعد نفسك، تلك قاعدة تذكرها دائمًا، إذا انتظرت الوقت الذي ستصبح به جاهز 100% نفسيًا وماديًا وإمتلاك الوقت فلن تحقق ما تريد ببساطة. عليك الإنعزال تمامًا عن أي مصدر للدوبامين السريع مثل السوشيال ميديا والمقاطع القصيرة مثل التيك توك فهي تؤثر على عقلك ولن تساعدك وتقلل من تركيزك وتضيع وقتك. وتذكر أنك لو بدأت منذ عام لكنت وصلت لما تريد بنسبة كبيرة وقطعت شوطًا بدلاً من إنتظار طوق النجاة الذي لن يصل إليك من السماء بدون مجهود وتضحية، تريد تنفيذ أمرًا ما إذن ابدء الآن وبأي إمكانيات لديك، ليس كافية؟ هل لديك حل آخر؟ إذن ذلك أفضل من لا شيء، صحيح؟ ستجد تعب ومشقة وملل بلا شك لا تنتظر جرعات سريعة من الدوبامين، لا يوجد شيء في تلك الحياة ذو قيمة يمكن تحقيقة بسرعة وسهولة.
  14. ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم الأسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس وذلك لمساعدتك بشكل أفضل.
  15. لاحظ أنك في نظام ويندوز وتحاول تنفيذ أمر تثبيت حزمة خاص بنظام لينكس، أيضًا تقوم بتنفيذ الأمر داخل مترجم بايثون وذلك غير صحيح. ما الذي تريد تنفيذه؟
  16. تستطيع تنفيذ الأمر بأكثر من منطق، والأسهل من خلال حلقة تكرار for بحيث يتم التكرار على المصفوفة وفحص الأرقام بناءًا على شرط معين وهو باقي القسمة، حيث أنّ الأعداد الزوجية باقي القسمة على 2 هو صفر بينما الأعداد الفردية ليس صفر. numbers = [1, 4, 2, 3, 7, 12, 16, 23, 24] even_numbers = [] for number in numbers: if number % 2 == 0: even_numbers.append(number) print("الأعداد الزوجية:", even_numbers) odd_numbers = [] for number in numbers: if number % 2 != 0: odd_numbers.append(number) print("الأعداد الفردية:", odd_numbers)
  17. جميع المشاريع العملية التي تم تنفيذها بالدورة مطلوبة منك، وحتى التطبيقات البسيطة قم بتجميعها في مجلد واحد ثم رفعها في مستودع منفصل في حال تم سؤالك عنها. والمشاريع الكاملة يتم رفعها بمستودع GitHub خاص بها أي مستودع لكل مشروع، وذلك على حسابك في GitHub. ثم التحدث لمركز المساعدة وإخبارهم بأنك تريد التقدم للإختبار، لكن يجب إنهاء 4 مسارات على الأقل ومن الأفضل إنهاء كامل الدورة.
  18. المطلوب منك هو تنفيذ المشاريع التي تم تنفيذها بالدورة ثم رفعها على مستودع GitHub وسيتم سؤالك في مدى استيعابك لم تم شرحه بالدورة، واسناد مشروع إليك لتقوم بتنفيذه بمفردك من أجل التخرج. إذا أردت التأكد، من الأفضل إعادة تنفيذ المشاريع مرة أخرى بمفردك، ففي المرة الأولى لن تستوعب ما تم بصورة كاملة وعند التنفيذ بمفردك ستجد أنك بحاجة إلى مراجعة بعض الأمور.
  19. بالطبع الأمر عرضة للإختراق، لكن ليس من خلال كود لغة بايثون نفسه حيث يتم مراجعة الكود الخاص باللغات البرمجية بدقة، لكن في بعض الأحيان هناك ثغرات في الكود غير مقصودة يتم استغلالها. أيضًا في المكتبات والإطارات مفتوحة المصدر، في حال كان يتم الإعتماد عليها في مشروعك فأنت عرضة للإختراق بلا شك ولكن بنسبة ضئيلة. ففي عام 2014، تم اختراق مكتبة Heartbleed OpenSSL، وهي مكتبة مفتوحة المصدر تُستخدم لتوفير التشفير لخدمات الويب، وأدى الاختراق إلى تعرض بيانات ملايين الأشخاص للخطر. وفي 2017، تم اختراق مكتبة Equifax Log4j، وهي مكتبة تُستخدم لتسجيل الأحداث في تطبيقات Java. وفي شهر مارس 2024، ثغرة CVE-2024-20383 في مكتبة Exim مفتوحة المصدر لنقل البريد الإلكتروني. سمحت هذه الثغرة للمهاجمين بتنفيذ التعليمات البرمجية عن بُعد على خوادم البريد الإلكتروني المصابة. وغيرهم من الثغرات والإختراقات التي تحدث بشكل متكرر، لذا لا يوجد شيء آمن بنسبة 100% على الإنترنت.
  20. لحذف Test WhatsApp Business Account توجه إلى لوحة التحكم App Dashboard ثم اختر WhatsApp Product ثم Configuration ثم قم بالحذف من الخيار أسفل الصفحة.
  21. الطبقة السوداء هي طبقة من الايبوكسي لحماية الشريحة وأيضًا لتشتيت الحرارة، وأسفلها يوجد شريحة مضمنة embedded chip وتلك الشريحة متصلة باللوحة عن طريق سلوك دقيقة جدًا، ولا تستطيع التعديل عليها، حيث يتم تركيبها لمرة واحدة وعند إزالتها لن تتمكن من تركيبها مرة أخرى حيث يتم ذلك من خلال الشركة المُصنعة. إليك صورة شفافة للشريحة: وبخصوص البرمجة ابحث عن embedded systems، ويتم برمجتها من خلال لغة برمجة مثل C أو ++C أو Python، وتتكون تلك الأنظمة من جزئين Hardware و Software وفي كثير من الأحيان يتم إستعمال لوحات جاهزة مثل راسبيري باي أو أردينو في عمل هذه الأنظمة ويتم التحكم في هذه اللوحات من خلال لغات البرمجة التي أشرت إليها سابقًا.
  22. ما المشكلة التي تواجهك أثناء عملية الـ deploy
  23. يوجد مشكلة في التنقل بين الصفحات في تطبيقك، وغالبًا ما تحدث بسبب تغيير مسار الصفحة بطريقة غير متوقعة من قبل Flutter. هل تستخدم Navigator.pushNamed() مع اسم صفحة غير موجود في التطبيق؟ أيضًا استخدام Navigator.pop() دون دفع الصفحة الحالية حيث يجب دفع الصفحة الحالية قبل محاولة إخراجها. أو استخدام Navigator.pushReplacement() مع مسار خاطئ، فيجب أن يكون المسار صحيح. وحاول تجربة الحل التالي: Future.delayed(Duration.zero, () { Navigator.pop(context) });
  24. ما المشكلة بالكود، فالكود المشار إليه لا يوجد به مشكلة، وأيضًا لا تحتاج إلى استخدام prefixes بالنسبة لخاصية Box-sizing فهي مدعومة بنسبة 98.5% من قبل جميع إصدارات المتصفحات، لذا نستخدم التالي فقط: * { box-sizing: border-box; } وهل قمت بربط ملف التنسيقات بملف HTML؟
×
×
  • أضف...