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

محمد عاطف17

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

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

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

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

    29

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

  1. وعليكم السلام ورحمة الله وبركاته. itertools هي وحدة (module) مدمجة في بايثون وليس مكتبة منفصلة . حيث تُستخدم لتوليد تكرارات وتركيبات من العناصر. توفر itertools مجموعة من الدوالللعمل مع التكرارات مثل الدوال التي تسمح بإنشاء التكرارات المختلفة مثل combinations وpermutations وproduct بالإضافة إلى العديد من الدوال الأخرى. وإليك بعض الأمثلة عليها : count(start=0, step=1): تستخدم دالة count لإنشاء سلسلة من الأعداد التي تبدأ من start وتزداد بـ step مثل: import itertools counter = itertools.count(start=0, step=2) print(next(counter)) # 0 print(next(counter)) # 2 cycle(iterable): تستخدم دالة cycle لتكرار العناصر في قائمة أو سلسلة بشكل دائري. مثل: cyclic = itertools.cycle(['A', 'B', 'C']) print(next(cyclic)) # 'A' print(next(cyclic)) # 'B' وإليك التوثيق الرسمي الخاص بها : https://docs.python.org/3/library/itertools.html
  2. وعليكم السلام ورحمة الله وبركاته. نعم بالطبع الخوارزميات مهمة في جميع مجالات التقنية عموما سواء البرمجة أو تحليل البيانات وغيرها. و وهياكل البيانات ايضا مهمة جدا لتنظيم البيانات لديك بالطريقة المناسبة والتي توفر السرعة والفعالية في حفظ والتعامل مع البيانات. وإليك مزايا الخوارزميات وهياكل البيانات : تساعد الخوارزميات الفعالة والجيدة على معالجة كميات كبيرة من البيانات بسرعة و كفاءة كبيرة والتي تساعد المحللين من استخراج المعلومات بشكل أسرع دون الإنتظار لفترات طويلة. توفر هياكل البيانات طرقا منظمة وفعالة لتخزين البيانات مما يسهل الوصول إليها وإجراء العمليات المختلفة عليها وتطبيق الخوارزميات عليها. استخدام الخوارزميات المناسبة يمكن أن يقلل من استهلاك الموارد (كالذاكرة والوقت) ويزيد من فعالية التحليل. اختيار الخوارزمية الصحيحة (مثل الفرز والبحث) وهيكل البيانات المناسب (مثل المصفوفات، القوائم، الأشجار) يمكن أن يسهل العثور على الأنماط والاتجاهات داخل البيانات بشكل أسرع . التعامل مع البيانات وتنظيفها يتطلب فهما قويا لهياكل البيانات المناسبة للتعامل مع بيانات غير مرتبة أو ذات ترتيبات معقدة. العديد من تقنيات تحليل البيانات تعتمد على خوارزميات رياضية وإحصائية مثل خوارزميات التعلم الآلي التي تحتاج إلى هياكل بيانات مناسبة للتدريب والتحليل. عموما تعلم الخورزميات وهياكل البيانات مهمين لمحلل البيانات والتي ستعطيه أفضلية في تحليل البيانات والتعامل معها.
  3. يبدا التطبيقات مباشرة في أخر وحدة في مسار الأساسيات حيث ستجد تطبيق عملى عن بناء موقع شخصي حيث سيتم إستخدام جميع الأساسيات التي تم دراستها في المسار حيث ستقوم بإستخدام HTML و CSS و JS و Jquery . وبعد ذلك ستبدا جميع المسارات التالية هي مشاريع عملية . لا يتم التطبيق مباشرة في كل وحدة حيث لن تكون مفيدة حيث لا يجب أن يتم HTML فقط دون تنسيقات يجب أن يتم دمج الإثنين معا . ولذلك تم تأخير التطبيق لأخر وحدة في المسار حتي يتم دمج جميع الأساسيات التي تعلمتها معا.
  4. هذا الأمر يتم فقط من خلال الكود . كل ما يمكنك فعله في قاعدة البيانات هو جعل العمود unique أي فريد ولن يتم تكرار أي قيمة ولو حاولت تكرارها سيظهر خطأ ولن يسمح لك بإضافتها. ولكن لتفعل ذلك سيتوجب حذف القيم المكررة أولا لديك. ولكن ما تريد تنفيذه هو من خلال الكود وليس قاعدة البيانات . فعند إضافة المدخلات يجب الأول التأكد هل هي موجودة في الجدول أم لا . إذا كانت موجودة لا يقوم بإضافتها وإذا لم تكن فعندها يقوم بإضافتها.
  5. هذه مشكلة لديك في تصميم قاعدة البيانات . يجب أن يكون جدول lessons يحوي فقط lesson_id و lesson_name ويجب أن يكون الإسم فريد. بعد ذلك يجب أن يكون هناك جدول للطلاب والدروس وليكن students_lessons وهذا الجدول يحتوي على id و student_id و lesson_id . وهكذا عند إضافة مادة للطالب يتم وضعه في هذا الجدول . أما جدول lessons يتم وضع فقط المواد به .
  6. السؤال غير واضح قليلا . هل تقصد بالجدول هو ملف excel أم ما هو الجدول الذي تقصده ؟ ثانيا الجدول هذا ما هي الأعمدة التي يحتويها ؟ إذا كنت تقوم بحفظ كل طالب مع المادة التي سجل بها أو درجات المواد فهنا يجب أن تتكرر . حيث ستكون بجوار كل مادة في الجدول المرفق هو إسم الطالب أو الدرجة الخاصة به لهذا سيتكرر . أما إذا كنت تقصد أنك تريد الحصول على عمود المواد غير مكرر فنعم بالطبع يمكن ذلك عن طريق إستخراج القيم الفريدة unique من هذا الجدول ولمساعدتك يجب أن اعرف ما هو الجدول أو الكود الذي تستخدمه
  7. أعتقد الخطأ في سطر 42 حيث لم تقم بوضع قيمة إبتدائية للمتغير لهذا حينما تحاول إستخدام += يضع undefined ويضع بعضه النص . لهذا قم بوضع قيمة فارغة للمتغير لذلك يرجى وضع السطر التالي : let table="";
  8. أولا يجب تثبيت تحميل بايثون من الموقع الرسمي لها وإختيار الإصدار المناسب : https://www.python.org/downloads/ يفضل تحميل إصدار 3.12 حاليا حيث إصدار 3.13 قد تم إصداره حديثا فمن الممكن أن تكون به مشاكل أو ان سيحدث تعارضات مع الحزم التي لم يتم تحديثها مؤخرا. وأثناء التثبيت يجب التأكد من اختيار "Add Python to PATH" ليتم إضافة بايثون إلى متغيرات البيئة. بعد ذلك يجب تحميل محرر أكواد IDE ويوجد العديد من محررات الأكواد وأشهرها : VS Code: يمكن تنزيله من خلال الرابط التالي https://code.visualstudio.com/ وهو من أشهر ال IDE المجانية والتي تتوافر بها أيضا الكثير من الإضافات التي تساعد في بيئة التطوير. PyCharm: يمكنك تنزيله من https://www.jetbrains.com/pycharm/ بعد تنفيذ الخطوات السابقة يمكن الآن البدأ في كتابة برامج بايثون .
  9. مجال التكنولوجيا عموما و كلية علوم الحاسب خصوصا متشعبة وكثيرة وهناك الكثير من الوظائف التي يمكنك الحصول عليها بعد دراسة المتطلبات الرئيسية لها . مطور برمجيات (Software Developer) : مهام مطور البرمجيات هي تصميم وتطوير البرمجيات والتطبيقات. مطور ويب (Web Developer) : مهام مطور الويب هو إنشاء وصيانة المواقع الإلكترونية. مطور تطبيقات موبايل (Mobile App Developer) : مهام مطور تطبيقات موبايل هي تصميم وتطوير تطبيقات الهواتف الذكية. عالم بيانات (Data Scientist) : مهام عالم البيانات هي تحليل البيانات واستخراج الرؤية والتوقعات والتنبؤات منها باستخدام التقنيات الإحصائية وتعلم الآلة. مهندس الشبكات (Network Engineer) : مهام مهندس الشبكات هي تصميم وإدارة الشبكات الحاسوبية والأجهزة والخوادم. مدير قواعد بيانات (Database Administrator) : مهام مدري قواعد البيانات هي إدارة وتصميم وإنشاء وصيانة قواعد البيانات. مختبر البرمجيات (Software Tester) : مهام مختبر البرمجيات هي اختبار البرمجيات لضمان جودتها قبل الإصدار والتأكد من عدم وجود أخطاء أو مشاكل فيها. مطور ألعاب (Game Developer) : مهما مطور الألعاب هي تصميم وتطوير ألعاب الفيديو. مهندس ذكاء اصطناعي (AI Engineer) : مهام مهندس الذكاء الإصطناعي هي تطوير أنظمة ذكاء اصطناعي وتعلم آلة. خبير أمن معلومات (Information Security Analyst) : مهام خبير أمن المعلومات هي حماية البيانات والأنظمة من الاختراقات والتأكد من خلوها من الثغرات وإكتشافها والتأكد من إصلاحها. والكثير من الوظائف الأخرى المتاحه والتي لا يمكن حصرها جميعها . لذلك يمكنك إختيار المجال الذي تحبه أو تود العمل به والتعمق فيه والبحث عنه .
  10. وعليكم السلام ورحمة الله وبركاته. في إستعلامات SQL كلا الرمزين <> و != يستخدمان للتعبير عن عدم المساواة. <>: هو الرمز القياسي في SQL لعدم المساواة وهو الذي يستخدم بكثرة في معايير SQL. !=: هو اختصار لعدم المساواة أيضا ويشبه الإختصار في لغات البرمجة ويستخدم في بعض أنظمة قواعد البيانات الحديثة ولذلك قد يكون غير مدعوم في بعض أنظمة SQL القديمة. إختصارا لما سبق الإثنين لهما نفس الإستخدام وهو عدم المساواة ولكن <> هو ال standard في SQL
  11. وعليكم السلام ورحمة الله وبركاته. الجداول المؤقتة (Temporary Tables) في قواعد البيانات هي جداول يتم إنشاءها مؤقتا وتستخدم لتخزين بيانات مؤقتة خلال جلسة واحدة فقط أو خلال إجراء معين وبعد ذلك يتم حذفها تلقائيا عند انتهاء الجلسة أو تنفيذ العملية المطلوبة. تكون الجداول المؤقتة مفيدة في عدة حالات مثل تخزين نتائج استعلام معقد بشكل مؤقت لتسهيل العمل مع البيانات لاحقا. من أنواع الجداول المؤقتة : الجداول المؤقتة المحلية: تستخدم فقط في الجلسة التي تم إنشاؤها فيها وتكون خاصة بتلك الجلسة فقط وتحذف تلقائيا عند انتهاء الجلسة. الجداول المؤقتة العالمية: يمكن الوصول إليها من قبل عدة جلسات ولكنها تحذف بعد انتهاء جميع الجلسات التي تستخدمها.
  12. يرجى التأكد من وضع السطر التالي في ملف package.json : "homepage": "https://obada-rabah.github.io/Notes-app" لتعريف الصفحة الرئيسية لموقعك . وأيضا تأكد من أنك رفعت مجلد build بشكل صحيح ويمكنك تنفيذ الأمر build لتوليد الملفات الصحيحة ليعمل معك بشكل صحيح من خلال الأمر التالي : npm run build وتأكد من ال branch في إعدادات GitHub Pages لمستودعك أنها صحيحة على ال branch الصحيح . ويفضل رفع المشروع علىvercel أو netlify حيث يتسمان بالسهولة في الرفع .
  13. وعليكم السلام ورحمة الله وبركاته. لا توجد أى فائدة هي فقط من طرق التسميات المتعارف عليها وتسمى snake case لأنها تشبه الثعبان في طريقة كتابتها . وهذه الطريقة تعتمد إذا كان المتغير يحوي أكثر من كلمة يتم فصل كل كلمة فعلامة _ . فمثلا firstname هي مكونة من مقطعين لذلك يمكنك كتابتها بطريقة snake case كالتالي first_name. firstnameexample كلمة مكونة من ثلاث مقاطع لذلك يمكنك كتابتها بطريقة snake case كالتالي first_name_example. وهكذا هي فقط طريقة لتسهيل قراءة المتغيرات
  14. ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل. ويرجى رفع مجلد المشروع كاملا وليس بعض الملفات فقط مع السؤال. وإذا كان السؤال ليس خاصا بإحدى الدروس في الدورات فيرجى إرفاق ملفات المشروع كاملا هنا.
  15. الخطأ في سطر 4 حيث إن في لغة بايثون تستخدم الإزاحات (Indentations) لتنظيم الكود وتحديد الهيكل والتسلسل الزمني للتعليمات وعند تضمين تعليمات داخل كتلة معينة مثل الشروط (if/else) أو الحلقات (loops)، نستخدم الإزاحات لتحديد البلوك الذي يتبع الكود. وبما أن سطر 4 لا يتبع الإزاحة الخاصة بالبلوك if فهنا تحدث المشكلة . لذلك يجب حذف المسافات الزائدة قبل سطر 4 لتصبح الإزاحة كما في سطر 3 هكذا : x = 200 if (x>=100): x=0 print("Finished") إذا كان هذا السؤال خاص بدرس من دروس إحدى الدورات فستجد قسم للتعليقات أسفل الدرس كما هنا يرجى كتابة سؤالك أسفل الدرس حيث هنا قسم الأسئلة العامة ولا نطرح الأسئلة المتعلقة بالدروة هنا .
  16. وعليكم السلام ورحمة الله وبركاته. الفرق الرئيسي بينهما هو في كيفية ترشيح النتائج و ترتيبهم في جملة إستعلام SQL. WHERE: تستخدم لتصفية الصفوف قبل تطبيق عمليات التجميع aggregation (مثل SUM، AVG، إلخ). يتم تطبيقها على كل صف في الجدول مباشرة. لا يمكن استخدامها لتصفية نتائج دوال التجميع أو الأعمدة التي تم إنشاءه في أمر SQL ، لأنها تعمل قبل عمليات التجميع حيث تعمل على الجدول مباشرة حيث تقوم SQL بجلب البيانات فقط التي تشابه الشرط في WHERE . يتم كتابتها قبل جملة GROUP BY . SELECT column1, column2 FROM table_name WHERE column1 > 100 GROUP BY column1 HAVING: يُستخدم لتصفية النتائج بعد تطبيق عمليات التجميع aggregation . يتم تطبيقها شروط على دوال التجميع أو أي عمود أخر. يتم كتابتها بعد جملة GROUP BY . SELECT column1, SUM(column2) FROM table_name GROUP BY column1 HAVING SUM(column2) > 100; تخيل مثلا أنه لدينا جدول للمنتجات ونحن نريد البحث عن المنتجات التي لها تصنيف إلكترونيات مثلا . هنا سنستحدم WHERE وهنا SQL ستقوم بالمرور على جميع الصفوف في الجدول و أي منتج له تصنيف إلكترونيات سيتم إختياره . تخيل بعد ذلك نحن نريد مثلا المنتج الذي من تصينيف إلكترونيات ومجموع مبيعاته مثلا 1000 . هنا سنستخدم HAVING و SQL ستقوم أولا بترشيح المنتجات بناء على التصنيف وستحتفظ بتلك النتائج كما في المثال السابق . بعد ذلك ستقوم SQL بالتجميع وبعد التجميع ستقوم بالترشيح بناء على شرط HAVING : SELECT product_name, SUM(sales) AS total_sales ,category FROM products WHERE category = 'إلكترونيات' GROUP BY product_name HAVING SUM(sales) >= 1000; إذا أولا SQL ستأتي بالنتائج من قاعدة البيانات التي لها category يسمى إلكترونيات بعد ذلك ستقوم بجمع المبيعات لجميع تلك الصفوف وبعد ذلك تقوم بعمل ترشيح ثاني بإستخدامHAVING وأخيرا تعيد النتائج النهائية.
  17. وعليكم السلام ورحمة الله وبركاته. لا يوجد حاليا وحدة أو دروس ضمن مسار تطوير موقع إعلانات مبوبة في دورة تطوير تطبيقات الويب باستخدام لغة PHP لكيفية إنشاء مدونة في المشروع ولقد نظرت إالى التحديثات التي تمت على الدورة وأعتقد أنه لم يوجد في ذلك المسار إنشاء مدونة . ولكن يوجد مسار كامل لإنشاء مدونة كاملة و نظام إدارة المحتوى وإسم المسار هو تطوير نظام إدارة محتوى يمكنك مشاهدته لكيفية إنشاء المقالات والردود .
  18. هل العنصر يتم تحميله في الصفحة ويظهر لك أم لا ؟ هل عند تنفيذ الكود التالي يظهر لك null أم يتم طباعة العنصر ؟ console.log(document.querySelector(".wrapper_searchable"))
  19. هل عند البحث عن العنصر في inspect هل يظهر معك أم لا ؟ هل الكود الذي أرفقته للملف السابق هو الكود كاملا أم لا ؟ إذا كان هو الكود كاملا فالمشكلة لديك هنا حيث يجب أن يكون مكون livewire عبارة عن عنصر root واحد ولكنك هنا لديك عنصرين لذلك قم بوضع الكود بداخل عنصر واحد هكذا مثلا : <div> <label class="form-label" for="wrapper_searchable">اسم اللجنة</label> <div wire:ignore class="wrapper_searchable"> <div class="form-control form_control_s"> <span>اسم اللجنة</span> <i class="uil uil-angle-down"></i> </div> <div class="content-searchable"> <div class="search-searchable"> <i class="uil uil-search"></i> <input spellcheck="false" type="text" placeholder="بحث"> </div> <ul class="options_searchable"></ul> </div> </div> </div>
  20. سعر أى دورة حاليا على موقغ الأكاديمية هو 290 دولارا امريكيا. يمكنك مشاهدة الدورات المتاحة حاليا وأسعارها من خلال الرابط التالي : https://academy.hsoub.com/store/c1-دورات-تعليمية/ ويمكنك الدخول على أى دورة ورؤية المعلومات الخاصة بها ما الذي سيتم شرحه بها و ما هي المتطلبات لكل دورة.
  21. وعليكم السلام ورحمة الله وبركاته. من المفيد جداً لأي مبرمج أن يتعلم أساسيات الأمن السيبراني وستكون إضافة قوية له في ال cv الخاص به وفي عمله عموما حتى لو كان ينوي العمل في مجالات مثل تطوير الويب أو الموبايل أو تحليل البيانات. حيث ستساعدك الأساسيات في حماية المعلومات الحساسة والمستخدمين وأيضا إكتشاف وتجنب الثغرات المعروفة . ولكن لا بئس إذا لم تكن لديك الأساسيات ولكن يتوجب عليك معرفة أشهر أنواع الثغرات وكيفية حلها في مجالك فمثلا في مجال الويت أشهر الثغرات الموجودة هي SQL Injection و CSRF ( Cross-site request forgery) والعديد من الثغرات المشهورة لذلك يجب معرفتها وكيفية تجنبها . أما بخصوص شهادة Google Cybersecurity Professional Certificate فهي برنامج تعليمي يقدمه جوجل عبر منصة Coursera و يهدف إلى تزويد المشاركين بأساسيات ومهارات الأمن السيبراني. تشمل محتويات البرنامج: مقدمة للأمن السيبراني: فهم التهديدات والهجمات الشائعة. أساسيات الشبكات: التعرف على كيفية عمل الشبكات وكيفية تأمينها. تحليل المخاطر: كيفية تحديد وتحليل المخاطر المحتملة. أدوات الأمن السيبراني: تعلم استخدام الأدوات والتقنيات المستخدمة في المجال. استجابة الحوادث: كيفية التعامل مع الحوادث الأمنية والاستجابة لها. والكورس مصمم للمبتدئين ولا يتطلب أى خبرة سابقة في المجال ويمكنك مشاهدة محتويات الكورس على منصة Coursera لتفاصيل أكثر
  22. نعم تتغير من موقع إلى أخر . حيث إختيار ال technology التي تم إنشاء الموقع تعتمد على حجم الموقع و عدد الزيارات المتوقعه وأيضا سهولة التطوير والتحديث والصيانة . حيث قبل إنشاء أى موقع يجب أولا تحديد تلك المتطلبات لتستطيع إختيار ال technology التي ستعمل بها . ولكن كلامنا هنا على المشاريع الكبيرة بحجم حسوب مثلا فهنا يتم إختيار التقينة الأنسب للإحتياج الخاص بالمشروع . وبخصوص التقينة التي تم إنشاء المواقع بها يمكنك تحميل إضافة Wappalyzer على المتصفح والتي ستوضح لك جميع التقنيات التي تم عمل الموقع بها . أما بخصوص تطبيق الهاتف فحاليا لا توجد تطبيقات لشركة حسوب وهذا يرجع إلى الإدارة فأغلب الزيارات تتم من خلال الحاسوب و أعتقد أنه لا توجد حاجة لإنشاء تطبيق هاتف.
  23. وعليكم السلام ورحمة الله وبركاته. إذا كنت تستخدم مكتبة pandas فالأمر بسيط بعد قراءة الملف يمكنك تعديل البيانات في الكود كالتالي : df['DiabetesPedigreeFunction'] = df['DiabetesPedigreeFunction'].apply(lambda x: 1 if x > 0 else 0) print(df['DiabetesPedigreeFunction']) ولكن يرجى تحديد الشرط بناء على الرقم الذي تريده . لقد لاحظت أن الأرقام بين 0 و 1.5 لذلك يمكنك تحديد الشرط بناء على رغبتك وتغيره في الكود السابق.
  24. وعليكم السلام ورحمة الله وبركاته. لا توجد معادلة رياضية معروفة حاليا لمعرفة الرقم هل هو Palindrome Number أم لا . ولكن توجد العديد من الخوارزميات لحل تلك المشكلة . و أسهل تلك الحلول هو تحويل الرقم إلى سلسلة نصية وعكس تلك السلسلة ومقارنتها بالسلسلة الأصلية وإذا كانوا متشابهين إذا الرقم Palindrome . أما إذا أردت حلها رياضيا فسيتوجب عليك عكس الرقم . وأسهل طريقة هي أن نقسم الرقم على 10 وأخذ باقي القسمة وهكذا إلى أن نقوم بعكس الرقم تمام ومقارنته بالرقم الأصلي . فمثلا : 121 % 10 # باقي القسمة 1 12 % 10 # باقي القسمة 2 1 % 10 # باقي القسمة 1 وهكذا نقوم بالقسمة وأخذ ناتج القسمة وفي كل مرة نقوم بإضافة ناتج قسمة جديد نقوم بضرب الناتج السابق في 10 وجمعه ما باقي القسمة الجديد : 1 # 1 (1 * 10) + 2 # 12 (12 * 10) + 1 # 121 وهكذا قمنا بعكس الرقم حسابيا ويمكنك مقارنته بالرقم الأساسي ومعرفة هل الرقم Palindrome أم لا.
  25. وعليكم السلام ورحمة الله وبركاته. عند الإنتهاء من دورة تطوير التطبيقات باستخدام لغة Python ستصبح مؤهلا لأن تكون مطور back end ولكن إذا أردت أن تصبح full stack فسيتوجب عليك تعلم الواجهات الأمامية front end ويمكنك قراءة الإجابة التالية لمعرفة الفرق بين كل من المسميين : في دورة بايثون وخصوصا في مسار أساسيات جانغو والمسارات التالية له لن يتم التطرق إلى تطوير واجهات المستخدم حيث سيتم توفير قوالب جاهزة للعمل عليها حيث سيتم التعمق أكثر في الواجهة الخلفية (back end) لهذا يمكنك متابعة الدورة دون تعلم تصميم واجهات المستخدم . ولكن إذا أردت يمكنك مشاهدة أول مسار من دورة "تطوير واجهات المستخدم" بما أنه مجاني وفيه ستتعلم أساسيات تطوير الويب مثل HTML و CSS و JAVA SCRIPT . وبهذا ستكون لديك الأساسيات بشكل جيد ويمكن البناء عليها بعد ذلك. لهذا الأمر متروك لك حيث يمكنك مشاهدة المسار الأول من دورة تطوير واجهات المستخدم بعد ذلك إستكمال دورة بايثون ومحاولة تطبيق ما تعلمته في المشاريع العملية وتتنسيق الموقع كما تريد. أو يمكنك الإنتهاء من دورة بايثون بعد ذلك يمكنك مذاكرة تطوير واجهات المستخدم وإستخدامه في مشاريع مع django أو غيرها . ويمكنك قراءة الأجوبة التالية للطريق لتصبح نطور واجهات مستخدم :
×
×
  • أضف...