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

عبدالباسط ابراهيم

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

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

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

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

    11

كل منشورات العضو عبدالباسط ابراهيم

  1. نعم لديك حق فمهارات حل المشكلات مهمة جدا لأي مبرمج. و هنا بعض الخطوات التي تساعد في تقوية مهارة حل المشكلات في دورة أساسيات البرمجة: تضمين تمارين وأنشطة حل المشكلات بشكل أكثر من النظرية المجردة. تكليف الطلاب بمشاريع صغيرة يجب حلها على مراحل لتدريبهم على حل المشكلات في العالم الحقيقي. يرجى قراءة النقاشات التالية
  2. هناك العديد من المواقع والدورات التي يمكن أن تساعد في التحضير للدراسة الجامعية في التخصصات الطبية والهندسية، منها: منصة رواق - تحتوي على دورات مجانية في الرياضيات والفيزياء والكيمياء وغيرها. دورات edX و Coursera - تقدم دورات مجانية في مواضيع مختلفة باللغتين العربية والإنجليزية من جامعات عالمية. موقع خان أكاديمي - تعد أكاديمية خان للدراسة واحدة من أشهر وأفضل المنصات التعليمية المجانية على الإنترنت، حيث توفر مجموعة واسعة من الدروس التعليمية في مختلف المواضيع، بما في ذلك العلوم الطبيعية والتخصصات الصحية والهندسية. تتميز أكاديمية خان للدراسة بأنها تتيح للمستخدمين الوصول إلى المواد التعليمية بشكل مجاني، وتعتمد على أسلوب تعليمي يركز على التفاعل والتدريب العملي. كما تتيح للمستخدمين إنشاء حسابات شخصية تتيح لهم تتبع تقدمهم ومراجعة المواد التعليمية في أي وقت. بشكل عام، أوصي بأكاديمية خان للدراسة وأنصح الطلاب بتجربتها كمصدر إضافي لتعلم المواد الجامعية وتقوية المفاهيم الأساسية في التخصصات الصحية والهندسية. إنها منصة موثوقة ومجانية وتحتوي على مواد تعليمية عالية الجودة. Lecturio: توفر دورات تعليمية في الطب البشري والتخصصات الصحية والهندسية، بما في ذلك الكيمياء والفيزياء والرياضيات. Medscape Education: تقدم دورات تعليمية في الطب الذي تقدمه شركة Medscape الشهيرة، وتغطي مجموعة واسعة من التخصصات الصحية. Osmosis: توفر مواد تعليمية في الطب البشري والتخصصات الصحية، بما في ذلك الأناتوميا والفيزيولوجيا والأدوية.
  3. من الناحية البرمجة فهو مشروع ممتاز ولكن من ناحية التصميم فهناك بعض التعديلات التي ستجعل من التصميم أفضل ولكن لا تقلق مع كثرة التطبيق ستقابل الكثير من التصميمات التي ستتعلم منها (وهذا ليس من عمل المطور حيث أنه من المفترض أن يأتي لك التصميم جاهز) ومن هذه التحسنات أولاً : في صفحة login.html يفضل تعديل ال width لل form ل50%كما يلي form{ width: 50%; margin: auto; } ليصبح بالشكل التالي ثانياً: الصنف col-6 جعله col-5 لإضافة بعض المساحة بينهما و يفضل إضافة خلفية بيضاء وبعض التعديلاتمع إضافة الصنف justify-content-between كمايلي col-5{ background-color: white; padding: 20px; border-radius: 5px; } ليصبح كالتالي مع أخذ النصائح في التعليقات السابقة في الحسبان للإنتقال لدورة javascript يفضل بناء عدة مشاريع جيدة على ال html و ال css
  4. تعتبر البرمجة الكائنية من المفاهيم المهمة في عالم البرمجة، ولتفهمها بشكل جيد، يجب عليك فهم العناصر التالية: المفهوم الأساسي للكائنات: يتعلق هذا بفهم الكائنات ومواصفاتها وكيفية إنشائها واستخدامها في البرمجة. التراث والتعددية: يتعلق هذا بفهم علاقة الكائنات ببعضها البعض، وكيفية استخدام التراث والتعددية في البرمجة الكائنية. الاختصاص والتعيين: يتعلق هذا بفهم كيفية إجراء تعيينات للكائنات والمتغيرات في البرمجة الكائنية. الاستدعاء والاستجابة: يتعلق هذا بفهم كيفية استدعاء الكائنات واستجابتها للأوامر والإجراءات المختلفة. إدارة الذاكرة: يتعلق هذا بفهم كيفية إدارة الذاكرة والتعامل مع الكائنات ومتغيراتها وكيفية تحرير الذاكرة بشكل صحيح. الواجهات البرمجية: يتعلق هذا بفهم كيفية تصميم واستخدام الواجهات البرمجية في البرمجة الكائنية. بالإضافة إلى فهم هذه العناصر، يجب عليك أيضًا تطبيقها بشكل فعال في البرمجة الكائنية، والعمل على مشاريع عملية لتطبيق هذه المفاهيم وتعزيز مهاراتك في البرمجة الكائنية. وللتطبيق جرب بناء بعض المشاريع التي من الضروري استخدام البرمجة الكائنية فيها، مثل: نظام تذاكر طيران (Airline Reservation System) تشمل بعض الفئات الرئيسية: فئة للرحلات (Flights) تخزن بيانات عن الرحلة مثل وقت الإقلاع والهبوط ورقم الرحلة. فئة للعملاء (Customers) تخزن بيانات العملاء مثل الاسم وتاريخ الميلاد ورقم حساب البطاقة الائتمانية. فئة للتذاكر (Tickets) تربط بين الرحلات والعملاء. نظام طلبات (Order Management System) ستحتاج فئات مثل: فئة للعملاء (Customers) لتخزين بياناتهم وطلباتهم السابقة. فئة للمنتجات (Products) لتخزين بياناتها والموردين والأسعار. فئة للطلبات (Orders) لتخزين تفاصيل الطلبات من العملاء. فئة للفواتير (Invoices) لإصدار الفواتير وتتبع الدفعات. وهكذا، ففي تطبيقات إدارة العلاقات بين الكيانات - مثل العملاء والطلبات والمنتجات - يصبح استخدام البرمجة الكائنية ضروريًا للغاية لتصميم وتنظيم الكود.
  5. لا يمكن تحديد الفترة الزمنية الدقيقة التي يمكن فيها الانتهاء من دورة لغة Python، حيث يعتمد ذلك على العديد من العوامل مثل مستوى الخبرة الحالي، والوقت المتاح للتعلم والممارسة، والمدة الزمنية للدورة نفسها، والتزام الفرد وتفرغه للتعلم. بشكل عام، ينصح بتخصيص الوقت اللازم للتعلم والتدريب بشكل منتظم والاستمرار في ممارسة البرمجة باستخدام Python في المشاريع العملية. ويمكن للفرد البدء بمشاهدة 2-3 فيديوهات في اليوم، والعمل على تطبيق المفاهيم المتعلمة في المشاريع العملية بشكل مستمر، وبهذه الطريقة يمكن تحقيق التقدم في فترة زمنية قصيرة وفي نفس الوقت تطوير مهاراته في لغة Python. الأفضل هو الاهتمام بما تقوم بتطبيقه وتعلمه بدلاً من الاهتمام بالتقدم في الدورة. الهدف الرئيسي من الدورات التعليمية هو تعليم المفاهيم الأساسية والمهارات اللازمة لإتقان المهارات المطلوبة في المجال، ولكن الاستفادة الحقيقية من هذه الدورات تأتي من تطبيق هذه المفاهيم والمهارات على مشاريع عملية. عندما تستخدم المفاهيم والمهارات التي تعلمتها في مشاريع عملية، فإنها تصبح أكثر واقعية وقابلة للاستخدام في بيئة العمل الحقيقية، وتساعدك على تطوير مهاراتك وفهم المفاهيم بشكل أفضل. لذلك، يجب أن تركز على فهم المفاهيم وتطبيقها على مشاريع عملية، ويجب أن يكون التقدم في الدورة هو وسيلة لتحقيق هذا الهدف، وليس الغاية الأساسية. لذلك يمكن أن تأخذ الكثير من الوقت أكثر من أي شخص آخر وذلك بسبب التطبيق على ما تعلمته مع نفسك مثلاً بجانب التطبيقات الموجودة في الدورة أو محاولة التعمق أكثر في ما تتعلمه والعديد من الأسباب الأخرى ونصيحة لك ربما لا تعطيها الأهتمام كثيراً ولكن حاول المشاركة في المجتمعات التعليمية: يمكنك الانضمام إلى المجتمعات التعليمية والمنتديات ومواقع التواصل الاجتماعي للتواصل مع الآخرين الذين يشاركونك نفس الاهتمامات والمهارات، وتبادل الأفكار والخبرات والموارد. تحديث المهارات: يجب الاهتمام بتحديث المهارات الخاصة بك بشكل منتظم، ومتابعة التطورات في المجال الذي تعمل فيه، وتعلم أحدث التقنيات والأدوات المستخدمة في المجال
  6. هنا مثال عملي على فائدة القواميس في بايثون: نفترض أننا نريد تحديد أسعار المنتجات في موقع تجاري إلكتروني: prices = { "apple": 50, "orange": 20, "banana": 30 } هنا أنشأنا قاموس (dictionary) بأسماء المنتجات مفتاح (key) وأسعارها قيمة (value) لاحقاً في البرنامج، لو أردنا الحصول على سعر التفاح مثلاً: price = prices["apple"] print(price) # 50 نستدعي القاموس باسمه ثم نستخرج القيمة بإسم المفتاح "apple" هكذا يكون لدينا بيانات منظمة، ونستطيع الوصول إليها بسهولة عن طريق المفاتيح. في تطبيق واقعي، قد تحتوي القواميس على آلاف العناصر. تلخيصاً، القواميس تساعد في تنظيم البيانات والوصول إليها بفاعلية.
  7. كما أخبرك أسامة فإن مشروع التخرج لا يمكن تحديده إلا من خلال المدرب الذي تجري معه الإختبار ولكن على الأغلب لا يتم طرح اختبارات برمجية بلغة Scratch ، حيث يتم التركيز أكثر على لغات البرمجة الأخرى مثل Python و Java وغيرها. ومع ذلك، يجب الإحتفاظ بمشاريع Scratch الموجودة في بعض الدروس ، وذلك لأن المدرب يقوم بالإطلاع عليها كما أنه يمكن للمدرب طرح العديد من الأسئلة حول scratch بدلاً من عمل مشروع كامل على هذا البرنامج
  8. إذا كان هذا السؤال خاصة بالدورات يفضل طرح هذا السؤال في الدرس الخاص به وسيتم الإجابة عليه بأسرع وقت أما بالنسبة للسؤال فلا يوجد أي تفاصيل عن المشروع حتى نستطيع المساعدة أو حتى تفاصيل الخطأ قم بالإطلاع على ال console الموجود في dev tools للمساعدة في تحديد المشكلة ولكن إذا كنت تستخدم Bootstrap فالإحتمال الأكبر هو السبب وراء عدم ظهور القائمة المنسدلة بشكل صحيح، خاصة إذا كان يتم استخدام Bootstrap في إنشاء الواجهة الأمامية للتطبيق. يمكن أن تتسبب بعض الأنماط الافتراضية في Bootstrap في تغطية القائمة المنسدلة، أو تغيير مظهرها بطريقة غير متوقعة. لحل هذه المشكلة، يمكن استخدام أدوات المطور المتاحة في المتصفح لتحليل الأنماط المستخدمة في الصفحة وتحديد أي تعارضات أو أخطاء في Bootstrap. ومع ذلك، قد يكون هناك أسباب أخرى لعدم ظهور القائمة المنسدلة بشكل صحيح، لذلك يجب التحقق من العناصر الأخرى المستخدمة في الصفحة وتحليل الأسباب المحتملة للمشكلة.
  9. هناك عدة أسباب محتملة لماذا يعمل تطبيقك بشكل جيد عند تجربته محلياً ولكنه يواجه مشاكل عند رفعه على Google Play: قد تكون هناك مشكلة في بيئة الإصدار (Release build) مقارنة ببيئة التطوير (Debug build). تأكد من إعدادات الإصدار وخاصة عمليات الـ minify وobfuscate. ربما تواجه مشكلة في الوصول للموارد أو قواعد البيانات عند الإصدار. تأكد من تهيئة مسارات الوصول بشكل صحيح. قد تكون هناك مشكلة تراخيص أو أذونات ناقصة في الإصدار مقارنة بالتطوير. تأكد من تعريف كل الأذونات اللازمة في ملف المانيفست. ربما تستخدم ميزات غير متوفرة في الإصدارات المستهدفة من نظام التشغيل. تأكد من التوافقية بين الشيفرة والإصدارات المستهدفة. قم بمراجعة سجلات الخطأ crash logs لمعرفة تفاصيل المشكلة والاستثناءات. قد تساعد في تحديد السبب. للبحث عن سجلات الأخطاء في تطبيقك، يمكنك استخدام أدوات الشركات المطورة الخاصة بذلك، مثل Firebase Crashlytics: هي خدمة مجانية توفرها Google وتسمح للمطورين بتتبع الأخطاء والأعطال التي تحدث في تطبيقاتهم. توفر Crashlytics تقارير مفصلة توضح الأخطاء التي تم تسجيلها وتساعد المطورين على تحديد سبب المشكلة. Sentry: هي خدمة تسمح للمطورين بتعقب الأخطاء والأعطال في تطبيقاتهم. توفر Sentry تقارير مفصلة توضح الأخطاء التي تم تسجيلها وتساعد المطورين على تحديد سبب المشكلة. Instabug: هي خدمة تسمح للمستخدمين بإرسال تقارير عن الأخطاء والأعطال التي يواجهونها في التطبيقات. توفر Instabug تقارير مفصلة توضح الأخطاء التي تم تسجيلها وتساعد المطورين على تحديد سبب المشكلة.
  10. إذا كنت تريد استخدام مكتبات مساعدة أو يوجد العديد من العمليات الخاصة بالتواريخ يفضل استخدام مكتبة Moment.js لإجراء عمليات تحويل التواريخ والتعامل معها بسهولة في JavaScript. لطرح تاريخ من تاريخ آخر ثابت، يمكن استخدام دالة `diff()` لحساب فارق الوقت بين اليومين، ثم استخدام دالة `format()` لعرض الفارق بالصيغة المطلوبة (يوم، شهر، سنة): // تحديد التاريخ الثابت const fixedDate = moment('2019/11/2', 'YYYY/MM/DD'); // تحديد التاريخ الآخر const otherDate = moment('2022/7/25', 'YYYY/MM/DD'); // حساب فارق الوقت بين اليومين const diff = moment.duration(otherDate.diff(fixedDate)); // عرض الفارق بالصيغة المطلوبة (يوم، شهر، سنة) console.log(`${diff.years()} years, ${diff.months()} months, ${diff.days()} days`); لعرض التاريخ باليوم والشهر والعام، يمكن استخدام دالة `format()` وإدخال الصيغة المطلوبة، مثل: // تحديد التاريخ const date = moment('2022/7/25', 'YYYY/MM/DD'); // عرض التاريخ باليوم والشهر والعام console.log(date.format('DD/MM/YYYY')); ستظهر النتيجة بالصيغة "يوم/شهر/عام"، مثل "25/07/2022".
  11. `x-www-form-urlencoded` و `raw` هما نوعان مختلفان من أنواع نموذج البيانات `x-www-form-urlencoded` هو نوع البيانات الافتراضي في Postman ويتم استخدامه لإرسال بيانات النموذج باستخدام ترميز URL المشفر. يتم ترميز القيمة النصية لكل بيانات النموذج باستخدام ترميز URL المشفر ويتم فصل القيم باستخدام الرمز '&'، ويتم إرسالها في جسم الطلب HTTP. `raw` هو نوع بيانات يتيح للمستخدمين إدخال النص الخام (raw text) الذي يتوافق مع نوع MIME المحدد. يمكن استخدام نوع MIME المختلفة مثل `application/json` أو `text/html` أو `text/xml` لإرسال بيانات مختلفة. يمكن استخدام `x-www-form-urlencoded` و `raw` في نفس التطبيق في بعض الحالات، مثل عندما تحتاج إلى إرسال بيانات النموذج البسيطة باستخدام `x-www-form-urlencoded` وبيانات JSON أو XML معقدة باستخدام `raw` في نفس الوقت. ومع ذلك، في معظم الحالات، يتم استخدام أحد هذين النوعين فقط، وذلك يعتمد على نوع بيانات النموذج ومعالجتها في تطبيق Node.js. على سبيل المثال، يتم استخدام `x-www-form-urlencoded` لإرسال بيانات النموذج البسيطة مثل الأسماء والقيم النصية، في حين يناسب `raw` استخدامه لإرسال البيانات المعقدة مثل JSON أو XML. بشكل عام، ينصح باستخدام `x-www-form-urlencoded` في الحالات التي تتطلب إرسال بيانات النموذج البسيطة مثل النصوص والأسماء والقيم الرقمية، بينما ينصح باستخدام `raw` عندما تحتاج إلى إرسال بيانات معقدة مثل JSON أو XML أو بيانات الصور والفيديو.
  12. تعتمد الطريقة المناسبة لمعالجة الأخطاء على نوع التطبيق ومتطلباته المحددة. ومن الأهمية بمكان أن يتم التعامل مع الأخطاء بشكل سليم وفعال في تطبيق Express، لتوفير تجربة مستخدم جيدة ولحماية المعلومات الحساسة. يتم استخدام Express error handler بشكل شائع في تطبيقات Express ويوفر وظائف مفيدة مثل توليد رسائل الخطأ المناسبة وتسجيل الأخطاء وإرسالها إلى فريق التطوير. ومع ذلك، قد يتطلب استخدام بدائل مثل middleware خاص بمعالجة الأخطاء أو حزم معالجة الأخطاء مزيدًا من التخصيص أو المرونة لتلبية متطلبات التطبيق المحددة. يمكن استخدام throw new Error لرمي خطأ في أي نقطة في تطبيق Express. ومع ذلك ، يجب تجنب استخدام throw new Error في بعض الحالات الأخرى مثل: عند التحقق من البيانات المدخلة: إذا كنت تريد التحقق من البيانات المدخلة ، فمن المستحسن استخدام حزمة تحقق من الصحة (validation package) مثل Joi بدلاً من إثارة خطأ. عند معالجة الأخطاء الداخلية: إذا كان الخطأ يحدث عند معالجة الأخطاء الداخلية ، فيجب تجنب استخدام throw new Error واستخدام حزمة معالجة الأخطاء (error handling package) مثل Sentry أو Rollbar لتحديد مصدر الخطأ وإرساله إلى فريق التطوير. عند استخدام Promise: إذا كنت تستخدم Promise في تطبيق Express الخاص بك ، فيجب تجنب استخدام throw new Error واستخدام return Promise.reject () بدلاً من ذلك. بشكل عام ، يجب تجنب استخدام throw new Error في حالات الأخطاء التي يمكن التحقق منها ومعالجتها بشكل أفضل باستخدام حلول أخرى. ومن الأفضل استخدام Express error handler عندما يحدث خطأ في تطبيق Express لتوفير تجربة مستخدم أفضل وتسهيل التصحيح.
  13. استخدام github pages هو بنفس الطريقة المعتادة حتى إذا كنت تستخدم webpack ولكن الفرق فقط سيكون في تنفيذ الأمر npm run build لتجميع الملفات في مجلد dist كما في ال webpack ويتم تنفيذ جميع الخطوات كما في المصادر التالية
  14. إليكي الخطوات اللازمة لتطوير تطبيق أندرويد المحمول باستخدام Angular و Django: بناء واجهة برمجة التطبيقات (API) باستخدام Django: تصميم نماذج Django الخاصة بك وتطوير نقاط نهاية الواجهة البرمجية لتنفيذ العمليات المتعلقة بإنشاء وقراءة وتحديث وحذف (CRUD) البيانات. ستتولى الواجهة البرمجية المهام المتعلقة بتخزين البيانات و استردادها. تطوير تطبيق Angular: إنشاء تطبيق Angular الذي سيتفاعل مع واجهة برمجة التطبيقات (API) الخاصة بـ Django. يحتوي تطبيق Angular على: مكونات لكل شاشة/صفحة خدمات لإجراء طلبات HTTP إلى نقاط نهاية الـ API نماذج لتمثيل استجابات الـ API توجيه للتنقل بين المكونات إنشاء تطبيق Angular للهواتف المحمولة: يمكنك تجميع تطبيق Angular الخاص بك في تطبيق محمول طبيعي باستخدام أدوات مثل: Cordova Ionic Capacitor
  15. بالفعل هناك بعض الحسابات الموثقة (واصحابها فوق ال 18 عام أيضاً) تكون بدون عدة مميزات منها تقديم العروض على المشاريع
  16. حاول التركيز على الدراسة الآن لتحصل على معدل جيد يؤهلك لدراسة علوم الحاسب في الخارج، ولاحقاً تبدأ في تعلم البرمجة بنفسك عن طريق الموارد المتاحة على الإنترنت. فالتعليم الجامعي الجيد سيوفر لك الأساسيات الصحيحة، ولكن تعلم البرمجة بنفسك سينمي مهاراتك العملية ويساعدك على الالتحاق بسوق العمل بشكل أسرع. إذا اضطررت للبقاء في العراق، يمكنك متابعة تعلم البرمجة بجدية أكبر بالإضافة إلى الدراسة النظرية في الجامعة. ولكن أنصحك ببذل قصارى جهدك للحصول على فرصة الدراسة في الخارج، فالجمع بين التعليم المتميز وتطوير المهارات العملية سيوفر لك أفضل فرص النجاح. دراسة علوم الحاسب (أو أي تخصص آخر) في الخارج هو الخيار الأفضل لعدة أسباب: جودة التعليم: الجامعات المرموقة في الخارج توفر مستوى تعليمي عالٍ وتدريس أكاديمي متميز. ستتلقى تعليمًا ذا قيمة عالية. تنوع الخبرات: ستتعرض لثقافات وخبرات مختلفة من خلال الدراسة في بيئة جديدة. هذا يوسع آفاقك وينمي مهاراتك الشخصية. فرص التوظيف: شهادة من جامعة مرموقة في الخارج تزيد فرص توظيفك سواءً في الخارج أو عند العودة لبلدك. تطوير اللغة: ستتحسن لغتك الإنجليزية بشكل كبير من خلال الدراسة والحياة في بيئة ناطقة بالإنجليزية. الاستقلالية: ستكتسب مهارات حياتية واستقلالية شخصية من خلال السفر لوحدك والعيش بعيدًا عن الأهل. لذا أنصحك ببذل قصارى جهدك لنيل فرصة الدراسة في الخارج، فالفوائد العلمية والعملية كبيرة جدًا. وفي نفس الوقت تابع تعلم البرمجة بنفسك لتنمية مهاراتك التقنية.
  17. منذ إصدار Godot 4.0، فإن المعيار الخاص بلغة C++ المستخدم في جميع أنحاء قاعدة الشفرة هو مجموعة فرعية من C++17. بينما يوفر C++ الحديث العديد من الفرص لكتابة شفرة أسرع وأكثر قراءة، فقد اخترنا تقييد استخدام C++ لمجموعة فرعية لأسباب عدة: يجعل من الأسهل مراجعة الشفرة في محررات النصوص عبر الإنترنت. هذا يعود إلى أن مساهمين المحرك ليس لديهم دائمًا الوصول إلى بيئة تطوير متكاملة (IDE) عند مراجعة الشفرة. يجعل الشفرة أسهل في الفهم للمساهمين المبتدئين (الذين قد لا يكونون مبرمجين C++ محترفين). ويعتبر قاعدة شفرة Godot معروفة بأنها سهلة التعلم، ونود الحفاظ على هذه الخاصية. في حالة أنك مبتدأ أي لغة يجب أن تستخدم؟ أما غير ذلك فيعتبر ال c++ من أقوى اللغات إن لم تكن الأقوى في بناء الالعاب وغيرها
  18. هناك طرق أخرى لحل هذا التمرين بدون استخدام nested loops. واحدة من هذه الطرق هي استخدام الدالة repeat() والتي تقوم بتكرار نص معين عدد محدد من المرات. في الكود التالي، يتم استخدام الدالة repeat() لطباعة النمط المطلوب: for (let i = 1; i <= 5; i++) { console.log('*'.repeat(i)); } في هذا الكود، يتم استخدام loop خارجي لتحديد عدد الأسطر التي يتم طباعتها، ويتم استخدام الدالة repeat() لإعادة النجمات المطلوبة في كل سطر. ويتم تحديد عدد المرات التي يتم تكرار النجوم باستخدام قيمة i في دورة الخارجية. النتيجة ستكون نفس النتيجة التي تم الحصول عليها باستخدام nested loops في الإجابة السابقة: * ** *** **** ***** بشكل عام، يمكن استخدام الدالة repeat() لطباعة أي نمط آخر يتألف من مجموعة من الرموز أو الأحرف.
  19. من شروط الإستخدام لموقع مستقل هو في حالة أنه أقل من 18 سنه سيتم تعليق الحساب ولكن ربما يحدث معك توثيق للحساب وأنت تحت ال 18 عام ولكن وقد يطلب مستقل وثائق تثبت أنك أكبر من 18 في حال دعت الحاجة. لذلك سيكون من المخاطرة هو إنشاء حساب وأنت لا تتطابق الشروط الخاصة بالمنصة وكما أخبرك مصطفى في التعليق السابق أنه يتم الإستفادة أكثر من خلال التحدث مع مركز المساعدة من خلال هذا الرابط
  20. في بداية التعلم، قد يكون من الأفضل التركيز أكثر على فهم كيفية استخدام الدوال والمكتبات بدلاً من الغوص عميقًا في شفراتها. يمكنكي العثور على مستندات توضح استخدام الدوال والمكتبات بطريقة سهلة الفهم، والتي توفر توضيحًا لجميع المعاملات والخيارات المتاحة. لذلك، إذا كنتي مبتدئًه في تعلم Python، فمن المستحسن أن تركزي على فهم المفاهيم الأساسية للغة وتطبيقها عمليًا في الأكواد الخاصة بك. وعندما تكتسبي بعض الخبرة والثقة، يمكنكي بعد ذلك النظر إلى الشفرة المصدرية لدوال المكتبات لفهمها بشكل أفضل. يمكني العثور على الشفرات الداخلية لدوال مكتبات بايثون باستخدام مواقع مثل GitHub أو مواقع الويب الأخرى التي توفر مصادر مفتوحة للدوال المدمجة ومكتبات Python الأخرى. على سبيل المثال، يمكن الوصول إلى شفرة مكتبة Python الشهيرة "Pandas" عبر GitHub. يمكن العثور على الشفرة المصدرية لدوال مكتبة Pandas على هذا الرابط عند الوصول إلى صفحة GitHub لمكتبة Python، يمكني الاطلاع على ملفات الشفرة المصدرية الخاصة بالدوال المختلفة الموجودة في المكتبة. يمكنكي البحث عن الدالة التي ترغبي في الاطلاع على شفرتها المصدرية باستخدام محرك البحث الموجود على GitHub، ومن ثم فتح ملف الشفرة المصدرية الخاص بها. يجب الانتباه إلى أن هذه الشفرات المصدرية قد تكون معقدة وصعبة الفهم في بعض الأحيان. لذلك، يجب أن تكون لديكي بعض المعرفة في لغة Python وأساليب البرمجة، حتى تتمكني من فهم هذه الشفرات المصدرية بشكل صحيح وفعال.
  21. لا يجب عليك حفظ جميع الدوال الخاصة بـ Data Structures في Python بالكامل. ومع ذلك، ينبغي أن تكون على دراية بأساسيات هذه الهياكل البيانية وكيفية استخدامها في Python. بشكل عام، يتم استخدام Data Structures في Python لتنظيم وتخزين البيانات بطريقة منطقية ومنظمة. على سبيل المثال، يمكن استخدام قوائم (Lists) لتنظيم مجموعة من العناصر في ترتيب محدد، ومجموعات (Sets) لتخزين مجموعة فريدة من العناصر، وقواميس (Dictionaries) لتخزين البيانات في شكل مفتاح-قيمة. عند البدء في استخدام Data Structures في Python، يمكنك البدء بدراسة الهياكل البيانية الأساسية وكيفية إنشائها واستخدامها. ثم يمكنك البدء في استخدام الدوال الأساسية المتعلقة بكل هيكل بيانات. وعندما تحتاج إلى استخدام هيكل بيانات محدد في مشروعك، يمكنك الرجوع إلى التوثيق الخاص بـ Data Structures في Python لمعرفة المزيد حول الدوال الخاصة به. هذه بعض الخطوات التي يمكن اتباعها لتعلم Data Structures في Python: دراسة الأساسيات: يمكنك البدء بدراسة الأساسيات المتعلقة بـ Data Structures، مثل القوائم (Lists) والمجموعات (Sets) والقاموس (Dictionaries)، وكيفية إنشائها واستخدامها في Python. العمل على مشروع: يمكنك البدء في العمل على مشروع صغير يستخدم Data Structures في Python، مثل إنشاء برنامج لإدارة قائمة المهام أو تحليل البيانات. دراسة المزيد من الهياكل البيانية المتقدمة: بعد دراسة الأساسيات، يمكنك البدء في دراسة المزيد من الهياكل البيانية المتقدمة، مثل الأشجار (Trees) والرسوم البيانية (Graphs). حل المشاكل: يمكنك العمل على حل المشاكل التي تتطلب استخدام Data Structures معينة، مثل البحث في الأشجار أو الرسوم البيانية. قراءة المصادر المتاحة: يمكنك قراءة المصادر المتاحة على الإنترنت، مثل المقالات والدروس والتعليمات الموجودة بأكاديمية حسوب وموسوعة حسوب العمل على المشاريع الكبيرة: يمكنك العمل على مشاريع كبيرة تستخدم Data Structures في Python، مثل إنشاء تطبيق ويب أو تطبيق للهاتف المحمول.
  22. بعد الانتهاء من الدورة التدريبية، سيتوجب عليك التواصل مع مركز مساعدة حسوب لحجز موعد للاختبار. وسيتكون الاختبار من محادثة صوتية تستمر لمدة 30 دقيقة، حيث سيطرح المدرب عليك أسئلة متعلقة بالدورة التدريبية والأمور التي نفّذتها خلالها. إذا تم اجتياز الاختبار بنجاح، سيتم تحديد مشروعًا مرتبطًا بما قمت به خلال الدورة التدريبية، ويتم تحديد فترة زمنية محددة لتنفيذ المشروع، وستجري معك محادثة صوتية أخرى لمدة 30 دقيقة لنقاش المشروع وتقديم الإرشادات والتوجيهات اللازمة. إذا تم تنفيذ المشروع بنجاح، ستحصل على الشهادة التي يمكنك إضافتها إلى سيرتك الذاتية أو لعرضها على ملفك الشخصي على LinkedIn أو غيره من المواقع. بعد اجتياز الامتحان، ستتلقى إرشادات وتوجيهات للمساعدة في البحث عن فرص عمل، حيث سيتم الإطلاع على سيرتك الذاتية وتقديم ارشادات مخصصة لك لتحسينها، بالإضافة إلى تقديم النصائح والإرشادات لتحسين ملفك الشخصي في مواقع العمل الحر. ويمكنك بعد ذلك البدء في تقديم عروض العمل على منصات العمل الحر وتقديم جميع الأعمال التي قمت بها خلال الدورة والمشاريع الخاصة. بعد الفترة الأولى، يمكنك البدء بالتقديم على الشركات للحصول على فرص عمل.
  23. هل تقصد تصميم موقع واحد لكل الشاشات ولكن متجاوب أو تصميم عدة إصدارات من الموقع لكل شاشة؟ إذا كان كذلك فبالطبع هناك طريقتين مختلفتين لتصميم موقع يظهر بشكل جيد على كل الشاشات وهما التصميم المتجاوب Responsive Web Design والتصميم المتلائم Adaptive Web Design هما تقنيتان تساعدان على جعل موقع الويب متوافقًا مع جميع أحجام الشاشات والأجهزة المختلفة، ولكنهما يختلفان في الطريقة التي يتم بها تحقيق ذلك. التصميم المتجاوب Responsive Web Design هو تقنية تستخدم تفاعلات CSS الديناميكية لتعديل العرض والتصميم ليتناسب مع أحجام الشاشات المختلفة. وبمعنى آخر، يتم تحديد العناصر وترتيبها وحجمها بناءً على حجم الشاشة التي يتم عرض الموقع عليها. أما التصميم المتلائم Adaptive Web Design، فهو يستخدم تقنية تعتمد على الاستشعار لتحديد حجم الشاشة ومن ثم تقديم تخطيط محدد مسبقًا لهذا الحجم. وبمعنى آخر، يتم إنشاء عدة إصدارات من الموقع، كل إصدار لحجم شاشة محدد، وعندما يتم عرض الموقع يتم تحميل الإصدار الأنسب لحجم الشاشة التي يتم عرض الموقع عليها. الفرق الرئيسي بينهما هو أن التصميم المتجاوب Responsive Design هو عملية ديناميكية ومناسبة لجميع الأحجام بينما التصميم المتلائم Adaptive Design يستخدم عدة إصدارات محددة مسبقًا لحجم الشاشة. وبشكل عام، يفضل الكثيرون استخدام التصميم المتجاوب Responsive Design لأنه يسمح بتوفير تجربة مستخدم أفضل وأكثر مرونة في التعامل مع الشاشات المتنوعة. لا يوجد حل واحد يناسب الجميع، فكل من التصميم المتجاوب Responsive Design والتصميم المتلائم Adaptive Design لهما مزايا وعيوب. يعتمد الخيار الأفضل على حجم المشروع والميزانية والجمهور المستهدف وأهداف الموقع. ولكن بشكل عام، فإن التصميم المتجاوب Responsive Design يعد الخيار الأكثر شيوعًا والأكثر شمولية، حيث يتيح للمستخدمين الوصول إلى محتوى الموقع على أي جهاز وأي حجم شاشة، ويقلل من الجهد المطلوب لإنشاء إصدارات متعددة من الموقع. بالمقابل، يمكن أن يكون التصميم المتلائم Adaptive Design أفضل في بعض الحالات، مثل عندما يكون الموقع يستهدف فئة محددة من الجمهور، كما أنه قد يكون الأفضل في بعض المشاريع الكبيرة والمعقدة التي تتطلب تصميمات مخصصة لحجم شاشات محددة. يفضل الإطلاع على المقالات التالية والموجودة في التعليق السابق لتعلم هذه المفاهيم بشكل أفضل
  24. يمكن دمج أمري "array_reverse" و "array_flip" بسهولة في PHP باستخدام الدالة "array_reverse" على المصفوفة، ثم استخدام الدالة "array_flip" على النتيجة. لذلك، يمكنك استخدام الكود التالي: $friends = [ "Ahmed Gamal" => "AG", "Osama Mohamed" => "OM", "Mahmoud Gamal" => "MG", "Ahmed Samy" => "AS" ]; // دمج الدالتين $result = array_flip(array_reverse($friends, true)); // طباعة النتيجة print_r($result); في هذا الكود، تم انشاء المصفوفة "$friends" وتم استخدام الدالة "array_reverse" لعكس المصفوفة، ثم تم استخدام الدالة "array_flip" لتبديل المفاتيح بالقيم. وتم تخزين النتيجة في متغير "$result" وطباعة النتيجة باستخدام الدالة "print_r". يتم تمرير المعامل "true" إلى الدالة "array_reverse" للحفاظ على المفاتيح الأصلية للمصفوفة، وإذا تم ترك هذا المعامل فإن الدالة ستعكس القيم والمفاتيح معًا. النتيجة المطبوعة ستكون كالتالي: Array ( [AS] => Ahmed Samy [MG] => Mahmoud Gamal [OM] => Osama Mohamed [AG] => Ahmed Gamal ) وهي المصفوفة التي تم تعديلها بعد تنفيذ الدالتين.
  25. دالة isnan ( وليس isNaN ) في لغة السي بلس بلس هي دالة تستخدم لفحص ما إذا كان القيمة الممررة إليها هي عدد أو لا. وتعيد الدالة قيمة منطقية (true أو false) تشير إلى ما إذا كانت القيمة عددًا أو لا. لتنفيذ دالة isNaN، يمكن استخدام الدالة std::isnan التي تأتي مع مكتبة cmath في لغة السي بلس بلس. ويمكن استخدام هذه الدالة للتحقق مما إذا كانت القيمة الممررة إليها هي عدد أو لا. وهنا مثال على استخدام دالة isNaN في لغة السي بلس بلس: #include <iostream> #include <cmath> int main() { double x = 5.0; double y = std::sqrt(-1.0); if (std::isnan(x)) { std::cout << "x is not a number" << std::endl; } else { std::cout << "x is a number" << std::endl; } if (std::isnan(y)) { std::cout << "y is not a number" << std::endl; } else { std::cout << "y is a number" << std::endl; } return 0; } هذا المثال يستخدم دالة std::isnan للتحقق مما إذا كانت قيمتي x و y هما عدد أم لا. تم تعيين x إلى 5.0 و y إلى جذر سالب واحد. تُطبع النتيجة لكل قيمة باستخدام std::cout. في هذا المثال، ستخرج النتيجة "x is a number" لأن x هو عدد. وستخرج النتيجة "y is not a number" لأن y ليست عددًا (جذر سالب واحد).
×
×
  • أضف...