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

Mustafa Suleiman

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

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

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

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

    495

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

  1. في الشروحات ستجد أسماء تلك المفاهيم يتم استخدامها بشكل متبادل للدلالة على نفس المعنى، لكن للدقة المعاملات تعني المتغيرات التي يتم تعريفها بين أقواس الدالة عند إنشائها أي بمثابة أسماء رمزية أو خانات فارغة تحدد أنواع البيانات التي تتوقع الدالة استقبالها لكي تعمل بشكل صحيح. function calculateArea(length, width) { let area = length * width; console.log("مساحة المستطيل هي: " + area); } لاحظ length هو مُعامل Parameter وwidth أيضًا. وعند استدعاء الدالة نقوم بتمرير قيم لها تسمى الوسائط، وتلك القيم تملأ الخانات الفارغة التي حددتها المُعاملات. calculateArea(10, 5); القيمة 10 هي وسيط يُمرّر للمُعامل length، والقيمة 5 تُمرر لـ width. كما لاحظت يجب تمرير القيم بنفس ترتيب المعاملات عند تعريفها في الدالة، وتستطيع تمرير عدد من الوسائط أكثر أو أقل من عدد المُعاملات المحددة، لكن لو قمت باستخدام معامل داخل الدالة لم تمرر له قيمة سيحدث خطأ لأنه udefined. أيضًا تستطيع تحديد قيمة افتراضية لمُعامل في حال لم يتم تمرير وسيط له عند استدعاء الدالة. function calculateArea(length=1, width=1) { let area = length * width; console.log("مساحة المستطيل هي: " + area); } calculateArea()
  2. من خلال دالة input ستطلب من المستخدم كتابة اسم المدينة وتخزينه في متغير user_input. user_input = input("Please enter the city name: ") ثم بدلاً من الذهاب إلى رابط ثابت، عليك إنشاء رابط جديد في كل مرة بناءًا على مدخلات المستخدم، أي الرابط الخاص بالبحث في الموقع يكون بهذا الشكل لو أدخل المستخدم cairo https://www.timeanddate.com/worldclock/?query=cairo وتستطيع تكوين الرابط من خلال f-string لتسهيل دمج اسم المدينة في الرابط، لكن عليك استخدام وحدة urllib لتحويل المسافات لرمز + بمعنى New York يتم تحويلها إلى New+York. import urllib.parse query = urllib.parse.quote_plus(city_name) url = f"https://www.timeanddate.com/worldclock/?query={query}"
  3. منصة Kaggle وجوجل كولاب هي بيئة عمل جاهزة، لذا الاستقرار هو أهم عامل يتم التركيز عليه، فبيئة Kaggle Notebook تُعرف بـ Docker Image أي هي نظام متكامل ومعقد، ولا تحتوي فقط على مكتبة واحدة مثل pandas أو scikit-learn، بل تحتوي على مئات المكتبات التي تعتمد على بعضها البعض، بالإضافة إلى برامج تشغيل GPU مثل CUDA و cuDNN. وبتحديث مكتبة واحدة بشكل عشوائي إلى أحدث إصدار، فأحيانًا يكسر توافقها مع مكتبة أخرى، أي قد يتطلب إصدار جديد من TensorFlow نسخة أحدث من CUDA لا تدعمها بيئة Kaggle الحالية، أو يتعارض مع نسخة معينة من numpy. لذا يعمل فريق Kaggle على تجميع واختبار Image كاملة تحتوي على مجموعة من المكتبات التي تم التأكد من أنها تعمل معاً بشكل سليم ومستقر. أيضًا لا يعني وجود إصدار جديد من المكتبة أنه أفضل، بل أحيانًا يحدث العكس، لذا الأمر بحاجة إلى وقت لإختبار والتحقق من استقرار تلك الإصدارات.
  4. ليس دائمًا، فالدوال الجاهزة مثل image_dataset_from_directory مناسبة في الحالات العادية التي يتوفر بها هيكل بيانات اعتيادي، بمعنى مجلد لمجموعة البيانات ويحتوي بداخله على مجلدات أخرى وبها البيانات. ومن خلالها تستطيع تحميل مجموعة بيانات كاملة ببضعة أسطر فقط، وتلك الدوال ليست مجرد اختصار في TensorFlow، بل تقوم image_dataset_from_directory بإنشاء كائن tf.data.Dataset، وهو مصمم خصيصًا للأداء العالي، ويستخدم تقنيات مثل الجلب المسبق Prefetching لتحميل الدفعة التالية من البيانات في الخلفية بينما تتدرب الشبكة على الدفعة الحالية، لمنع اختناق وحدة معالجة الرسومات وانتظارها للبيانات، وتقنية التوازي Parallelism لقراءة ومعالجة عدة صور في نفس الوقت باستخدام أنوية المعالج المتعددة. أيضًا التخزين المؤقت لتخزين البيانات في الذاكرة بعد قراءتها لأول مرة لتسريع الوصول إليها في الدورات التدريبية Epochs التالية. والكائن الناتج منها يكون جاهز للاستخدام مباشرة مع model.fit() في Keras أو في حلقة التدريب المخصصة في PyTorch، دون الحاجة لتحويلات إضافية، أيضًا تقوم تلقائيًا باستنتاج أسماء الفئات Classes من أسماء المجلدات، وتوفر خيارات سهلة للتقسيم إلى دفعات Batching والخلط Shuffling. بينما الطريقة اليدوية أنسب عند الحاجة إلى مرونة وتحكم كامل، وفي حالات لا تغطيها الدوال الجاهزة، بمعنى هيكل مجلدات معقدة أو معالجة مسبقة متقدمة أو مخصصة أو تحكم دقيق في الذاكرة. صحيح من ناحيتين وقت المطور و وقت التنفيذ، فالأول كتابة بنية شبكة CNN باستخدام Keras أو PyTorch هي الجزء الأسرع والمباشر في المشروع، فهي عبارة عن تكديس طبقات فوق بعضها البعض (Conv2D, MaxPooling2D, Dense ). والثاني أثناء تدريب النموذج، خط أنابيب البيانات هو عنق الزجاجة في الأداء، وليس حسابات الشبكة العصبونية نفسها.
  5. ما الذي تقصده بمدينة ذكية؟ فلو تقصد محاكاة لمدينة ذكية، فالمشروع ليس مجرد نموذج ذكاء اصطناعي واحد، بل نظام من ضمن أنظمة مختلفة يتطلبها المشروع، في الدورة أنت تعلمت كيف تبني العقل الذكي وهو الذكاء الاصطناعي، وستحتاج لتعلم كيفية بناء الجسد الذي يربط العقل بالعالم الحقيقي ويجعله يتفاعل معه. بمعنى المدينة الذكية ترى وتشعر من خلال أجهزة الاستشعار، وذلك يتم من خلال مجال إنترنت الأشياء IoT، وتلك هي الطبقة الأولى لاستشعار وجمع البيانات (الحواس): ثم الطبقة الثانية أو النظام الثاني، وهي هندسة البيانات، حيث كمية البيانات التي تنتجها مدينة ضخمة (فيديو، قراءات مستشعرات، إلخ) هائلة وتحتاج إلى بنية تحتية قوية للتعامل معها. والطبقة الثالثة، هي تطبيق مهاراتك الحالية في الذكاء الاصطناعي، والرابعة تطوير الواجهات الخلفية وواجهات برمجة التطبيقات API's، والخامسة خيالبنية التحتية السحابية و DevOps، والسادسة: عرض البيانات والتفاعل (الواجهة) أي كيف سيرى المسؤولون في المدينة ما يحدث؟ من خلال لوحات المعلومات. لذا لن تستطيع القيام بذلك بمفردك، ما تستطيع تنفيذه هو بناء نموذج أولي Proof of Concept أي اختر مشكلة واحدة صغيرة جداً ولا تبدأ بالمدينة الذكية، بل بنظام ذكي لمراقبة امتلاء حاويات القمامة في حي واحد: اجمع صوراً لحاويات قمامة (ممتلئة، فارغة، نصف ممتلئة). ابنِ نموذج Computer Vision يصنف حالة الحاوية من الصورة. من خلال الـ IoT استخدم Raspberry Pi مع كاميرا لالتقاط صورة وإرسالها كل ساعة. ابنِ API بسيط باستخدام Flask يستقبل الصورة من الـ Raspberry Pi، يمررها للنموذج، ويخزن النتيجة مثلاً حاوية رقم 123 ممتلئة في قاعدة بيانات بسيطة. ابنِ لوحة تحكم بسيطة جداً باستخدام Streamlit أو Dash تعرض خريطة عليها نقاط تمثل الحاويات، ولون النقطة يتغير حسب حالتها. بعد نجاح المشروع، ستكون قد تعلمت أساسيات IoT، Backend، و Dashboards، وتستطيع الآن العمل على مشكلة أخرى أكبر قليلاً، مثل تحليل حركة المرور عند تقاطع واحد، وتطبيق نفس الخطوات. بالطبع ستحتاج إلى إنهاء الدورة بالكامل قبل العمل على المشروع فباقي المسارات أنت بحاجة إلى دراستها.
  6. المشكلات تنشأ بسبب طبيعة السحابة نفسها، حيث يتم تخزين البيانات وتشغيل التطبيقات على بنية تحتية يملكها ويديرها طرف ثالث مثل Amazon AWS, Microsoft Azure, Google Cloud. والخطر الأكبر، هو تمكن المهاجمون من الوصول إلى البنية التحتية السحابية، أي الإختراق وسرقة بيانات حساسة لآلاف أو ملايين العملاء، وذلك يحدث لأسباب عديدة منها ثغرات أمنية، أو إعدادات خاطئة، أو هجمات تصيد Phishing ناجحة، والخسائر هنا خسائر مالية فادحة، الإضرار بسمعة الشركة، وعقوبات قانونية. أو الإعدادات الخاطئة والتهيئة غير الآمنة، فهي أحد أكثر الأسباب شيوعًا للحوادث الأمنية في السحابة، وغالبًا ما يكون الخطأ من جانب العميل وليس من مزود الخدمة السحابية، بمعنى ترك قواعد بيانات أو وحدات تخزين مثل Amazon S3 buckets مفتوحة للجميع دون حماية، استخدام كلمات مرور ضعيفة أو افتراضية، أو عدم تفعيل جدران الحماية بشكل صحيح. أيضًأ واجهات برمجة التطبيقات غير الآمنة، بمعنى الـ APIs وهي الطريقة التي تتفاعل بها الخدمات والتطبيقات مع البيئة السحابية، فلو كانت الواجهات ضعيفة أمنيًا، سيتم استغلالها للتحكم في الخدمات السحابية وسرقة البيانات، سواء بسبب ضعف في آليات المصادقة Authentication أو السماح بصلاحيات أوسع من اللازم. ولو تمكن المهاجم من سرقة بيانات الإعتماد أي اسم مستخدم وكلمة مرور لمسؤول النظام، فيمكنه التحكم في جميع الموارد السحابية للشركة، وذلك بسبب هجمات التصيد، البرامج الضارة، أو استخدام كلمات مرور ضعيفة. وهناك مخاطر أخرى منها موظف يقوم بحذف البيانات أو سرقتها عمدًا، أو يرتكب خطأ بدون قصد، مثل حذف بيانات مهمة أو الوقوع ضحية للتصيد، أو هجمات حجب الخدمة DoS لكن تلك مشكلة مؤقتة ولا تُعرض البيانات للسرقة.
  7. بالضبط الإصدار هو 11 وهو قديم بالفعل، ومحتوى الدورات يتم تحديثه كل فترة، ويتم العمل على تحديث مختلف الدورات بالأكاديمية، وفي مسارات أخرى وهي: أساسيات TypeScript تطبيق تعلم اللغات باستخدام Next.js وتقنيات الذكاء الاصطناعي يتم استخدم الإصدار 13 والميزات الجديدة التي توفيرها في الإصدار 12 و13، حيث قدم Next.js 13 مفهوم App Router أي مجلد app كنظام جديد كليًا يعمل بالتوازي مع النظام القديم Pages Router، وعلى الرغم من أن النظام القديم لا يزال مدعوم، إلا أن App Router هو الأفضل لجميع المشاريع الجديدة.
  8. الفكرة الأساسية هي تجنب التطبيق بدون استيعاب، وحتى لو استوعبت الشرح وطبقت مع المدرب، فهناك أمور لن تتضح لك إلا عند التنفيذ بمفردك، بمعنى تقسيم الدرس إلى حصص في حال كان الدرس طويل، ثم التوقف والتطبيق على كل جزء بمفردك، أو مشاهدة الدرس بالكامل في حال كان بسيط ثم التطبيق. وفي حال واجهت صعوبة، حاول التذكر والتجربة بنفسك أولاً ثم العودة للدرس للمراجعة، أي لا تخف من التجربة والخطأ فهي أساس عملية التعلم. وبعد فترة من التعلم، حاول توظيف ما تعلمته في المشاريع التي تعمل عليها، أي لا تكتفي بما تم بالدرس فقط، مثال بسيط، عند تعلم أساسيات لغة برمجية فهناك تمارين بالدروس حول مفهوم الدرس فقط، قم بتطبيق ما تعلمته في الدروس السابقة في التمرين الخاص بالدرس أيضًا وهكذا. أيضًا لو أردت تنفيذ أمر ما ولم يتم شرحه بعد أو لم يتم ذكره في الدورة، قم بالبحث عن أو السؤال، ولا تكتفي بما يتم تقديمه لك، مثلاً أثناء تنفيذك للتمرين أردت تطبيق منطق معين ولكنك لا تعرف كيف؟ تفقد دروس الدورة في حال لم تجد شرح للمفهوم ابحث عنه على يوتيوب أو جوجل، أو قم بالسؤال وسيتم مساعدتك. ستجد هنا تفصيل أكثر:
  9. الأمر غير مؤكد في الوقت الحالي، سيتم الرجوع للفريق المختص بإعداد محتوى الدورات والعودة إليك للتوضيح، فالمسار تم نقله بالفعل للأرشيف، لو أردت دراسته لتعلم أساسيات Next.js فلا مشكلة.
  10. لا حاجة لتحديث المسار من أجل تلك النقطة، فمفاهيم React الأساسية لا تتغير، ستكتب نفس أكواد React (مكونات، Hooks، State، Props) سواء كان المشروع مبنيًا بـ CRA أو Vite. ما يختلف هو طريقة إنشاء المشروع ليس أكثر، أي بدلاً من: npx create-react-app my-app ستستخدم: npm create vite@latest my-react-app -- --template react وحاليًا الطريقة المُعتمدة هي من خلال vite بالفعل، فخادم التطوير يبدأ فورًا بفارق كبير في السرعة، والتعديلات تظهر في المتصفح بشكل لحظي، ويسهل تخصيص الإعدادات عبر ملف vite.config.js دون الحاجة لتعقيدات، والنسخة النهائية من المشروع عند عمل build أصغر حجمًا وأكثر كفاءة.
  11. المسار صحيح، ستقوم بتنفيذ المشاريع في دورة جافاسكريبت، لكن جزء الواجهة الأمامية فقط وتجاهل الدروس المتعلقة بالواجهة الخلفية.
  12. ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم أسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل.
  13. حاليًا يوجد عرض الإشتراك بدورتين بسعر دورة واحدة، هل قمتي بإختيار الدورة الثانية؟ https://academy.hsoub.com/offers/future-skills-2025/ عامًة في دورة الذكاء الاصطناعي يتم شرح أساسيات لغة بايثون، ثم شرح باقي المفاهيم المتعلقة بالدورة بالتدريج ولا يتم إفتراض أنك على علم بأي شيء، لكن مجال الدورة ليس بالسهل وبحاجة إلى مجهود وصبر
  14. ما هي البلد الخاصة بكِ؟ وما هي الميزانية بالتحديد بحد أقصى؟ وهل ستقومين بالتحرك باللابتوب خارج المنزل؟ ففي حال لا، الأفضل شراء حاسوب لكونه يوفر مواصفات أعلى بنفس السعر.
  15. ستحتاجين إذن إلى دراسة دورة علوم الحاسوب أولاً، هل قمتي بالإشتراك بها، أم ما زلتي لم تقرري بعد؟ عامًة الدورات هنا بالأكاديمية تم إعدادها على إفتراض أن الدارس لا يعلم أي شيء عن موضوع الدورة، لذا يتم البدء من الصفر
  16. البرمجة لا تحتاج إلى إلى مواصفات مرتفعة، فحاسوب أو لابتوب بمواصفات حديثة سيفي بالغرض، ما تحتاجين إلى التركيز عليه، هو رامات بحجم 16 جيجابايت على الأقل، وهارد Nvme بحجم 256 جيجابايت على الأقل، وبالنسبة للمعالج ركزي على معالج متعدد الأنوية. وفي حال الميزانية منخفضة تستطيعي شراء معالج من نوع APU والذي يوفر لك كرت شاشة مدمج لحين توفر ميزانية لشراء كرت شاشة خارجي مناسب، وذلك يتعلق بجهاز الكمبيوتر وليس اللابتوب حيث لا يوجد به APU. لكن لم تذكري ما هي الميزانية وما هي الاستخدامات الأخرى بجانب البرمجة.
  17. ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم أسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل.
  18. في الدورة ستتعلم ما يلي بخصوص Odoo: الجانب الوظيفي، لتستوعب كيفية استخدام أهم تطبيقات Odoo (المبيعات، المشتريات، المخزون، CRM، نقاط البيع، الموقع الإلكتروني)، وتلك ميزة كبيرة، لأن الكثير من المطورين يفتقرون إلى فهم لماذا يقومون بالبرمجة وما هي حاجة العمل الفعلية. أساسيات التطوير وهي الأهم، من خلال بناء موديول (تطبيق) جديد من الصفر، وذلك يشمل: كيفية إعداد Odoo للتطوير على أنظمة مختلفة واستخدام أدوات مثل PyCharm. بنية الموديول، حيث ستتعرف على ملفات __manifest__.py, models, views. طبقة النماذج أو البيانات الـ Model (ORM Layer) بإنشاء كائنات جديدة وإضافة حقول لها. طبقة العرض الـ View (Presentation Layer) من خلال بناء الواجهات باستخدام XML (نماذج Form، قوائم شجرية Tree أو List). الـ Action و Menu بشرح كيفية ربط الواجهات بالقوائم في النظام. بعد دراسة ما سبق واستيعابه بشكل جيد والتطبيق عليه، ستتجاوز مرحلة المبتدئ وتستطيع تنفيذ تعديلات أساسية وإنشاء تطبيقات بسيطة، وستحتاج إلى التعمق فيما يلي، وسأذكر لك المصطلحات بالإنجليزية للبحث عنها: 1- مفاهيم الـ ORM المتقدمة وهي الجزء الأهم في منطق العمل، فالدورة غطت الأساسيات، وبعدها تحتاج إلى دراسة: العلاقات بين النماذج Model Relationship وهي Many2one, One2many, Many2many، أساس أي نظام ERP، بمعنى كيف تربط أمر البيع بعميل واحد Many2one، وكيف يحتوي أمر البيع على عدة منتجات One2many. الحقول المحسوبة Computed Fields، وتعلمنا حساب السعر الإجمالي، عليك التعمق أكثر في @api.depends لحساب قيم بناءًا على تغير حقول أخرى. الدوال الشرطية والقيود Constraints و Onchange: @api.onchange لتغيير قيمة حقل بناءً على تغيير حقل آخر في نفس الواجهة بشكل فوري، مثلاً عند اختيار منتج، املأ سعره تلقائيًا. @api.constrains لوضع قيود على البيانات كالتأكد من أن تاريخ انتهاء الصلاحية دائمًا بعد تاريخ الإنتاج. وراثة النماذج Model Inheritance وهي أهم مفهوم للتعديل على تطبيقات Odoo الأساسية دون تغيير الكود المصدري، وستستخدمه في 90% من المشاريع لتضيف حقولًا أو تعدل على دوال موجودة مسبقًا في موديول المبيعات أو الفواتير. إعادة تعريف الدوال الأساسية Overriding Core Methods مثل create(), write(), unlink() لوضع منطق برمجي خاص عند إنشاء أو تعديل أو حذف سجل. 2- نظام التقارير QWeb Reports 3- صلاحيات المستخدمين والأمان Security Access Rights ففي أي شركة، لا يجب أن يرى كل الموظفين كل البيانات، ويجب أن تتعلم: ملف ir.model.access.csv لتحديد من (أي مجموعة مستخدمين) يمكنه القراءة، الكتابة، الإنشاء، أو الحذف. قواعد السجلات Record Rules لتطبيق صلاحيات أكثر تعقيدًا، مثلاً رجل المبيعات يرى فقط عملاءه وأوامر البيع الخاصة به. وتستطيع بعدها التقدم لمشاريع وأثناء ذلك اعمل على تطوير معرض أعمالك، أيضًا تعلم Odoo JS Framework
  19. مفهوم البرمجة الكائنية عام وليس خاص بقواعد البيانات فقط، فهو أحد أهم المفاهيم في البرمجة، بمعنى الـ OOP وقواعد البيانات ليستا بديلين لبعضهما البعض، بل أداتان تعملان معاً لحل مشكلتين مختلفتين، فالأخيرة وظيفتها الأساسية هي تخزين البيانات بشكل دائم، وضمان سلامتها، وتنظيمها، وتوفير طرق فعالة للاستعلام عنها، بالتالي تتعامل مع البيانات الخام وفقط دونّ أية إجراءات. بينما البرمجة الكائنية OOP تقوم بتنظيم وهيكلة منطق التطبيق، بمعنى تتعامل مع البيانات الحية داخل البرنامج، حيث لا تمثل البيانات مجرد قيم، بل كائنات لها خصائص Properties وسلوك Methods، وتسهيل التعامل مع قواعد البيانات من خلال النمذجة والتمثيل، فالكود أصبح لا يتعامل مع جداول و صفوف، بل يتعامل مع مفاهيم من العالم الحقيقي مثل طالب، منتج، فاتورة. وبدون OOP ستجلب البيانات من قاعدة البيانات كمجموعة من الصفوف والأعمدة، وللتعامل مع طالب، ستحتاج للوصول إلى row[0] للاسم، row[1] للعمر، وهكذا، لاحظ الكود صعب القراءة والتعديل. ومن خلال OOP ستقوم بإنشاء كلاس اسمه Student يمثل الطالب: public class Student { public int Id { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public DateTime DateOfBirth { get; set; } public int GetAge() { return DateTime.Today.Year - DateOfBirth.Year; } } وعند جلب بيانات طالب من قاعدة البيانات، ستحولها إلى كائن من نوع Student، وبعدها بإمكانك التعامل مع student.FirstName و student.GetAge(). أيضًا الـ OOP يسمح لك بفصل منطق التعامل مع البيانات عن بقية التطبيق. هذا يتم غالباً باستخدام نمط يسمى طبقة الوصول للبيانات Data Access Layer - DAL وذلك بالإعتماد على مباديء البرمجة الكائنية Encapsulation و Abstraction، فبدلاً من كتابة استعلامات SQL في كل مكان في الكود، تقوم بإنشاء كلاس متخصص مثلاً StudentRepository وظيفته الوحيدة هي التحدث مع قاعدة البيانات. لكن ما سبق لا يحدث في الواقع العملي، فنادراً ما نكتب استعلامات SQL بشكل يدوي، بل نستخدم أداة تسمى Object-Relational Mapper (ORM) وأشهرها في C# هو Entity Framework Core (EF Core)، فهو ما يقوم بكل العمل الشاق لتحويل الكائنات إلى صفوف في الجداول والعكس.
  20. ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم أسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل.
  21. أرجو توضيح السؤال وذكر المشكلة
  22. ليس تقليلاً منك أو تثبيط، الأمر ليس بتلك السهولة، لا تتوقع أن تستطيع الحصول على عمل بمجرد إنهاء 4 مسارات فقط، ستحتاج إلى المزيد من الدراسة والخبرة، ستحتاج إلى دراسة التالي طالما نويت التخصص كـ Back-End: أساسيات لغة بايثون Python تطبيقات عملية باستخدام بايثون Python أساسيات إطار العمل جانغو Django تطوير متجر إلكتروني باستخدام جانغو Django تطوير واجهة برمجية لتعديل الصور باستخدام فلاسك Flask بناء مدونة باستخدام فلاسك Flask دمج تقنيات الذكاء الاصطناعي مع تطبيقات بايثون بالنسبة لـ Flask وDjango قم بدراسة الجزء الخاص بالـ API فقط، أي الجزء الخاص بالخادم وقواعد البيانات وتجاهل الجزء الخاص بالواجهة الأمامية (القوالب). لكن في الوقت الحالي لا أنصحك بالتخصص فقط في الواجهة الخلفية، بل عليك أن تصبح Full-stack فأغلب الوظائف حاليًا تتطلب ذلك وبالأخص لمستوى Junior، وأيضًا من كلامك أرى أنك تنوي العمل على مواقع العمل الحر والمشاريع بها تتطلب Full-stack، أي عليك دراسة الواجهة الأمامية أيضًا.
  23. الصور لديك بها مشكلة، الأفضل حذفها ثم إعادة إضافتها، ومن أين حصلت عليها؟
×
×
  • أضف...