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

محمد Fahmy

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

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

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

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

    5

كل منشورات العضو محمد Fahmy

  1. بناءً على المعلومات المقدمة في سيرتك الذاتية، يبدو أن لديك بعض المهارات والخبرات المتعلقة بتطوير التطبيقات المحمولة باستخدام Flutter. فيما يتعلق بمهاراتك التقنية، لقد ذكرت العديد من لغات البرمجة والأدوات المهمة مثل C++ و Dart و Flutter و Firebase. من الجيد أن لديك خبرة في مكتبات إدارة الحالة مثل BloC و provider، وكذلك الحزم الشائعة مثل dio و http و getIt و hive. ومع ذلك، قد ترغب في توفير مزيد من المعلومات حول خبرتك مع هذه الأدوات وكيف استخدمتها في مشاريعك. بالإضافة إلى ذلك، ذكرت أن لديك خبرة في معمارية MVVM وتخزين البيانات المؤقتة، وهما مفاهيم مهمة في تطوير التطبيقات المحمولة. سيكون من المفيد توفير أمثلة محددة أكثر عن كيفية تنفيذ هذه المفاهيم في مشاريعك. فيما يتعلق بمهاراتك الناعمة، فمن الجيد أن تحدد العمل الجماعي وإدارة الوقت كنقاط قوتك. ومع ذلك، قد ترغب في إضافة المزيد من المعلومات حول كيفية تجسيد هذه المهارات في المشاريع السابقة. بشكل عام، تقدم سيرتك الذاتية نظرة عامة جيدة على خبراتك ومهاراتك كمطور تطبيقات محمولة. ومع ذلك، يمكن أن يساعد توفير معلومات أكثر محددة وأمثلة على خبرتك في تعزيز طلبك وجعلك أكثر تنافسية في سوق العمل.
  2. في البداية، أود أن أشجعك على عدم الانحناء للإحباط والاستمرار في العمل الجاد والاهتمام بموضوع الدورة الذي تدرسه. إذا كنت تفهم الأساسيات جيدًا، فإنه لا يجب أن تشعر بالإحباط من فهم التفاصيل الأكثر تعقيدًا والتطبيقات العملية. فهم J Query و Ajax يمكن أن يكون صعبًا في البداية، لكن لا تقلق، لأن هذا شيء طبيعي. أوصيك بمراجعة مسار أساسيات jQuery مرة أخرى، وعدم تجاهل أي شيء لم تفهمه. فقط قم بطرح الأسئلة أسفل الدرس وسيقوم المدرب بالإجابة عليك وشرح الحل بالتفاصيل و بشكل وافٍ. إذا واجهتك مشكلة في كتابة الأكواد بنفسك، ولكنك تستطيع فهمها إذا كانت مكتوبه، فالحل هو التطبيق حتى ولو كانت هذه التطبيقات صغيرة. يجب عليك أن تقوم بالتطبيق على أي شيء تتعلمه، ولا تكتفي بتطبيقات الدورة فقط. يمكنك التطبيق بأمثلة من عندك، وهذا الكلام يأتي من خبرة شخصية، حيث أن التطبيق يمكن أن يحل معظم المشاكل. و لا تستسلم ولا تفقد الأمل. الدورة التدريبية تحتاج إلى الكثير من الجهد والتدريب والتكرار للوصول إلى النتائج المرجوة. في النهاية، يجب عليك أن تتذكر أن التعلم يحتاج إلى الوقت والجهد. لا يمكن تعلم كل شيء في يوم واحد، لذا يجب عليك الاستمرار في العمل الجاد وتحديد الأهداف الخاصة بك والعمل عليها بشكل مستمر. و دعني أعرف إذا كنت بحاجة إلى أي مساعدة أو شرح إضافي.
  3. مرحبًا خالد، يرجى توجيه أسئلتك المتعلقة بالدورة إلى قسم الأسئلة الخاص بالدرس الذي يتعلق بالمشكلة التي تواجهها. وليس في قسم الأسئلة العامة. ويُرجى ضغط جميع الملفات في ملف واحد، حتى يستطيع المدرب معاينة المشكلة بشكل أفضل.
  4. في رأيي، ليس من الضروري تعلم المزيد من اللغات البرمجة والتقنيات المختلفة التي تستخدم لنفس الغرض. على سبيل المثال، إذا اقترحت عليك تعلم لغة Python، فسوف تحتاج أيضًا لتعلم إطار العمل Django لتطوير واجهات الخلفية. ومع ذلك، أرى أنه لا يلزمك تعلم Python و Django إذا كنت قد تعلمت بالفعل TypeScript و Node و Express، لأن هذه التقنيات تؤدي نفس الغرض (على الرغم من وجود بعض الاختلافات في طريقة عمل كل تقنية منهم). علاوة على ذلك، لن تجد وظيفة تتطلب منك معرفة MEAN stack و Python و Django في نفس الوقت. لذلك، أنصحك بالتركيز على التقنيات التي تعلمتها بالفعل والتعمق فيها عن طريق إنشاء مشاريع كبيرة مثل متجر إلكتروني و نظام إدارة مخازن. وعند الانتهاء من ذلك، يمكنك التقدم للوظائف التي تتطلب مهاراتك وخبراتك. بشكل عام، أعتقد أنه من الأفضل التركيز على تعلم عدد قليل من التقنيات والتعمق فيها بدلاً من تعلم عدد كبير من التقنيات دون الحصول على مهارات عميقة في أي منها.
  5. يمكن تحديد ما يجب تعلمه بعد لغة JavaScript وفقًا لهدف التعلم الخاص بك. على سبيل المثال، إذا كنت ترغب في أن تصبح مطور واجهات المستخدم الأمامية، فإن تعلم هذه التقنيات (مع افتراض أنك تعرف HTML و CSS) يكفي. أما إذا كنت ترغب في تعلم المزيد في مجال تطور واجهات المستخدم الأمامية، فيمكنك استخدام مكتبات مثل Bootstrap وMaterial UI وTailwind CSS، بالإضافة إلى العديد من المكتبات والتقنيات المتقدمة الأخرى مثل Sass. وإذا كنت ترغب في أن تصبح مطورًا شاملًا "Fullstack developer"، فإنني أوصيك بتعلم MEAN stack (MongoDB, Express, React, Node).
  6. سأشرح لك بسيطًا ما هو ال Connection Pooling وكيف يعمل. عندما تريد تطبيقًا يتصل بقاعدة البيانات، يحتاج الى ان يفتح Connection او اتصال، وعند انهاء العمل يجب اغلاق الاتصال. ولكن الفتح والاغلاق المستمر للاتصال يستهلك الكثير من الموارد والوقت. هنا يأتي دور Connection Pooling، فهو يقوم بإنشاء مجموعة من الاتصالات المسبقة وجاهزة للاستخدام، وعندما يحتاج التطبيق الى انشاء اتصال مع قاعدة البيانات، يقوم بسحب اتصال من المجموعة واستخدامه، ثم يعيده الى المجموعة بعد الانتهاء من الاستخدام. بهذه الطريقة، يتم تجنب الحاجة الى فتح واغلاق الاتصال المستمر ويتم تحسين أداء التطبيق. هذا مثال بسيط باستخدام Node.js ومكتبة pg للتواصل مع قاعدة البيانات PostgreSQL: const { Pool } = require('pg'); // إنشاء Pool وتكوينه const pool = new Pool({ user: 'your_user', host: 'your_host', database: 'your_database', password: 'your_password', port: 5432, max: 20, // الحد الأقصى لعدد الاتصالات في المجموعة idleTimeoutMillis: 30000, // الحد الأقصى لعدد الوقت الذي يتم فيه الاتصال الخامل connectionTimeoutMillis: 2000, // الحد الأقصى لعدد الوقت الذي يستغرقه الاتصال لإرجاع النتيجة }); // استخدام Pool في الاستعلام عن قاعدة البيانات pool.query('SELECT * FROM users', (err, res) => { console.log(err, res); pool.end(); // أغلق ال Pool عند الانتهاء من الاستخدام }); بهذا الشكل، يتم إنشاء Pool وتكوينه مرة واحدة، ثم يتم استخدامه في الاستعلامات دون الحاجة إلى فتح وإغلاق الاتصال في كل مرة. أتمنى أن يكون ذلك واضحًا بالنسبة لك، وإذا كان لديك أي أسئلة أخرى، فلا تتردد في السؤال!
  7. يبدو أن المشكلة ليست في webpack فحسب، قد يكون هناك عدة عوامل تسبب هذه المشكلة، وهي كالتالي: 1- حجم الصور: يمكن استخدام أدوات مثل TinyPNG لضغط حجم الصور وتحسين أدائها. 2- تمكين الضغط: يمكن استخدام أدوات مثل Gzip و Brotli لضغط ملفات JavaScript و CSS ، مما يقلل بشكل كبير من حجم الملفات. 3- حذف المكتبات غير الضرورية: إذا كنت تستخدم بعض المكتبات التي لا تحتاجها حقًا ، فحذفها سوف يساعد في تقليل حجم الملف النهائي. 4- ال caching: يمكنك تمكين caching للملفات، حيث يتم تخزين نسخة مختزنة من الملفات بمتصفح العميل، مما يقلل من عدد الطلبات إلى الخادم. 5- lazy loading: تطبيق عملية التحميل التلقائي للصور والمكتبات التي لا تحتاجها المستخدم في الوقت الحالي يمكن أن يقلل من وقت التحميل. يمكنك القيام بكل هذه التعديلات عن طريق التحديث في ملف webpack.config.js، أو استخدام مكتبات مثل Webpack Bundle Analyzer التي تقوم بتحليل ملف bundle.js لإيجاد الملفات التي تسبب المشكلة و قم بالعمل على تحسينها.
  8. لا يوجد دليل على أن تعلم الفرونت إند سينتهي أو يقلل فرص العمل في هذا المجال. فعلى العكس، تكنولوجيا الويب وتصميم الواجهات الأمامية للمواقع لا تزال مهمة لأي عمل يستخدم الإنترنت. ولذلك، عندما يتعلق الأمر بتصميم وتطوير المواقع والتطبيقات ، سيظل الاهتمام بتصميم الواجهات الأمامية (Frontend) من أجل توفير تجربة المستخدم الأمثل. وبالنسبة للتطورات التي ذكرتها في السؤال حول ChatGPT-4 و Google Braid، فإنها لا تعني بالضرورة نهاية الطلب على المطورين Frontend. بدلاً من ذلك، يمكن استخدامها لتعزيز قدراتك كمطور ولتوسيع معرفتك بمجال التكنولوجيا. أما بالنسبة لتعلم ال Backend، فقد يكون من المفيد تعلمه بالإضافة إلى Frontend، خاصة إذا كنت تسعى لتصبح Full-Stack Developer. سيساعدك هذا على توسيع مهاراتك وفهم العمليات التي تدور في الخلفية لتطبيق الويب وتعزز انتشارك في السوق. بشكل عام أنصحك أن تصبح Full-Stack Developer لأن مطوري الواجهات الأمامية (Frontend) ليس عليهم طلب جيد في مواقع العمل الحر أو في الشركات المحلية فمعظم الشركات تفضل توظيف Full-Stack Developer علي أن توظف Frontend Developer وأخر Backend Developer وحتي في مجال العمل الحر لن تجد عميل يطلب أن تقوم بتصميم الواجهة الأمامية للموقع فقط بال سوف يطلب عمل الموقع من مرحلة الفكرة إلي مرحلة رفع المشروع علي أستضافة. ذلك وبشكل عام أنصحك وبشدة تعلم Backend حتي تصبح Full-Stack Developer أو يمكنك تعلم تطوير تطبيقات الموبيل فهذا تخصص مطلوب جدأ الأن.
  9. تستخدم خاصية animate في Jquery لإضافة تأثيرات حركية إلى العناصر في صفحة الويب. وتتيح هذه الخاصية للمستخدمين إنشاء تأثيرات زخرفية وجذابة عبر استخدام CSS والتعامل مع العناصر داخل الصفحة باستخدام المتغيرات و التوابع في دالة animate. هذان المثالان سيوضحان كيفية عمل خاصية animate في jQuery بشكل أفضل. مثال 1: تغيير حجم الصورة بشكل دائم إذا كان لديك عدة صور في صفحتك وتريد تغيير حجم إحدى الصور بشكل دائم، فيمكنك استخدام animate لتحقيق ذلك. في هذا المثال، سيتم تصغير حجم الصورة إلى النصف عند النقر عليها، مع استخدام animate لتنفيذ التحول بشكل سلس. <img id="myImage" src="image.jpg"> <script> $(document).ready(function(){ $("#myImage").click(function(){ $(this).animate({height: "50%", width: "50%"}, "slow"); }); }); </script> في هذا المثال، يتم استخدام animate لتغيير حجم الصورة عند النقر عليها بشكل دائم. تم استخدام jQuery للوصول إلى عنصر الصورة المحدد باستخدام ID "myImage" فيه، ويتم تعيين المؤشر المناسب كلمة "this". يتم تحديد حجم الصورة الجديد باستخدام animate باستخدام "height" و "width"، متبوعًا بسرعة الانتقال إلى الحجم الجديد (هنا ستكون "بطيئة"). بمجرد النقر على الصورة، يتم تنفيذ حجم الصورة الجديد باستخدام animate. مثال 2: الانتقال إلى مكان محدد تستخدم animate أيضًاللانتقال إلى مكان محدد داخل صفحة الويب، مما يمنح تجربة استخدام أفضل للمستخدم. في هذا المثال، سيتم التمرير إلى المكان المحدد داخل الحاوية عند النقر على الزر. <div id="container" style="height:200px; overflow-y:auto;"> <p>Line 1</p> <p>Line 2</p> <p>Line 3</p> <p>Line 4</p> <p>Line 5</p> <p>Line 6</p> <p>Line 7</p> <p>Line 8</p> <p>Line 9</p> <p>Line 10</p> </div> <button id="scrollButton">Scroll to Line 6</button> <script> $(document).ready(function(){ $("#scrollButton").click(function(){ $("#container").animate({ scrollTop: $("#container p:nth-child(6)").offset().top }, "slow"); }); }); </script> في هذا المثال، يتم استخدام animate للانتقال إلى مكان محدد داخل صفحة الويب. يتم استخدام jQuery للحصول على الحاوية المحددة (ID "container"). تم إنشاء زر "scrollButton" لتمثيل الزر الذي سيتم النقر عليه للانتقال إلى المكان المحدد. عند النقر على الزر، يتم استخدام animate للانتقال إلى مكان محدد داخل الحاوية، ويتم تحديد الموضع بواسطة "scrollTop" باستخدام موقع العنصر p الذي يصل بالضبط إلى Row 6.
  10. نحن لا نقوم بالإجابة على الأسئلة الاختبارية هنا، ولكن يمكننا المساعدة في حل هذا السؤال من خلال توضيح الخطوات اللازمة للوصول إلى الحل. لكتابة برنامج بسيط باستخدام لغة البرمجة Python لإجراء العملية المطلوبة. يمكن اتباع الخطوات التالية: 1. استخدام دالة loop لإنشاء حلقة تكرار تقوم بطلب الأرقام من المستخدم لإجراء العملية المطلوبة. 2. استخدام دالة input لطلب الأرقام من المستخدم. 3. تحويل النص الذي يتم إدخاله من المستخدم إلى عدد صحيح باستخدام دالة int. 4. إضافة الرقم المدخل إلى مجموع الأرقام. 5. اختبار إذا ما كان الرقم المدخل هو الرقم 5، في حال كان كذلك نستخدم دالة break لإيقاف حلقة التكرار. 6. عرض نتيجة مجموع الأرقام.
  11. بالنسبة للمشكلة التي تخاف منها، فإنه من المهم تطبيق ممارسات الأمان الأساسية عند برمجة التطبيقات والمواقع. تشمل هذه الممارسات: - تحديث إطر العمل والمكتبات والبرامج: يتم إصدار تحديثاتل للبرامج و إطر العمل والمكتبات بانتظام لتحسين الأمان وإصلاح الثغرات الأمنية، لذلك يجب عليك تحديث البرامج بانتظام. - استخدام كلمات مرور قوية: يجب استخدام كلمات مرور قوية وعشوائية لتقليل فرص اختراق الحسابات الخاصة بك. - تشفير البيانات: يجب تشفير البيانات الحساسة لتقليل فرص اختراقها. - الحد من الثغرات الأمنية: يجب العمل على الحد من الثغرات الأمنية في التطبيقات التي تقوم ببرمجتها، ويمكن استخدام أدوات التحليل الأمني للكشف عن هذه الثغرات. - بالنسبة لسؤالك الثاني، فإن تعلم الاختراق الأخلاقي ليس ضروريًا قبل تعلم البرمجة. ولكن، يمكنك تعلم المفاهيم الأساسية للأمن والحماية في عملية تعلم البرمجة، وهذا أمر مهم لتطوير تطبيقات آمنة وموثوقة. يمكنك تعلم المزيد عن الأمان والحماية من خلال الدروس والكورسات المتاحة عبر الإنترنت، والتي تشرح المفاهيم الأساسية للأمان والحماية في عملية تطوير التطبيقات. - وبمرور الوقت وتحسن مهاراتك في البرمجة، يمكنك تعلم المزيد عن الأمن والحماية وتطبيقها في تطبيقاتك. يمكنك البحث عن أدوات لتقييم أمان تطبيقاتك والعمل على تحسينها.
  12. هذه بعض الخطوات للاستفادة القصوى من الكورس: 1- التركيز والانتباه: عند بدء دراسة الكورس، يجب التركيز على المحتوى والاستماع جيداً للمعلومات المقدمة. وبعد ذلك يمكن أخذ ملاحظات مهمة وإنشاء ملف ملاحظات لتسجيل المفاهيم الهامة والأفكار. 2- العمل على المشاريع العملية: يمكن تعزيز فهم المفاهيم من خلال العمل على المشاريع العملية والتدريبات المتاحة في الكورس أو حتي إنشاء تطبيق بسيط أو موقع ويب، والعمل على تطويرها بشكل مستمر. هذا سيمنحك فرصة لتعلم المزيد وتطبيق ما تعلمته على مشاريع حقيقية. 3- البحث عن المصادر الإضافية: لا تكتفي بأي بكورس بل ابحث عن مصادر إضافية على الإنترنت مثل المقالات والفيديوهات والمواقع الأخرى التي تساعد في فهم المفاهيم بشكل أفضل يوجد في أكاديمية حسوب الكثير من المقالات الفيدة في مجال البرمجة يمكنك تصفحها من هنا. 5- الاستمرار في التدريب: يجب الاستمرار في التدريب والممارسة بشكل منتظم لتعزيز المهارات المكتسبة والتأكد من فهم المفاهيم بشكل جيد. 6- الاستفادة من المساعدة: يمكن الحصول على المساعدة من خلال المدربين لإرشادك والمساعدة في فهم المفاهيم بشكل أفضل وحل المشاكل التي تواجهك.
  13. نعم ، يمكنك إنشاء API من لغة Swift, بشكل عام يمكن إنشاء API من أي لغة برمجة ، وستختلف الخطوات اللازمة لإنشاء API حسب اللغة والإطار المستخدم. ولكن لا يجب على مطور تطبيقات الموبيل إنشاء API ، حيث يجب علي مطور backend القيام بذلك. ومع ذلك ، فإن فهم أساسيات إنشاء API يمكن أن يكون مفيدًا لمطوري التطبيقات ، حيث يساعد في فهم كيفية التواصل مع API. بشكل عام ، يعمل مطورو الbackend على إنشاء API ، بينما يعمل مطورو التطبيقات الموبيل على استخدام API وتطوير تطبيقات الموبيل التي تتوافق مع API.
  14. إذا كنت ترغب في تطوير تطبيقات iOS ، فمن الأفضل أن تتعلم لغة Swift ، حيث تعد لغة Swift هي لغة برمجة الأساسية التي تستخدمها Apple لتطوير تطبيقات iOS. ولكن إذا كنت تريد تطوير تطبيقات Flutter لنظام iOS ، فيجب أن تتعلم لغة Dart. بالنسبة للسؤال الثاني ، لا يلزمك تعلم برمجة الويب قبل تطوير تطبيقات الموبايل ، ولكن من الأفضل أن تكون لديك بعض المعرفة بتطوير الويب بشكل عام و API بشكل خاص ، حيث أن العديد من تطبيقات الموبايل تستخدم API للتواصل مع الخوادم وجلب البيانات. لتصبح جيدًا في مجال تطوير تطبيقات الموبايل ، يجب عليك التدريب الدائم والاستمرار في تعلم اللغات والأدوات الحديثة ومتابعة التطورات في هذا المجال. أما بالنسبة للسؤال الأخير ، فإن القرار بين استخدام Dart أو Swift أو الاهتمام بتطوير تطبيقات Native أو Cross-Platform يعتمد على الاحتياجات الخاصة بك وعلى المشروع الذي تعمل عليه أو غايتك من التعلم. إذا كنت ترغب في تطوير تطبيقات iOS فقط ، فمن الأفضل تعلم Swift وتطوير تطبيقات Native. ولكن إذا كنت ترغب في تطوير تطبيقات لأنظمة تشغيل مختلفة ، فيمكنك التفكير في تعلم Flutter واستخدامها لتطوير تطبيقات Cross-Platform.
  15. هناك مكتبة تسمى "Font Awesome" والتي تحتوي على العديد من الرموز والأيقونات المختلفة التي يمكن استخدامها في تصميم صفحات الويب. واحدة من الرموز الموجودة في مكتبة "Font Awesome" هي رمز السيارة، ويمكن الوصول إليها باستخدام كلاس يسمى "fa-car". عندما يتم إضافة هذا الكلاس إلى عنصر HTML معين، سوف يتم عرض الرمز الذي يشير إلى السيارة في الصفحة بدلاً من النص العادي. وهنا مثال بسيط لكيفية استخدام كلاس "fa-car" لعرض رمز السيارة في صفحة HTML: <i class="fa fa-car"></i> في هذا المثال، تم استخدام الكلاس "fa" للإشارة إلى مكتبة "Font Awesome"، وتم استخدام الكلاس "fa-car" لعرض رمز السيارة في الصفحة.
  16. لتحويل فيديو من صيغة MOV إلى صيغ أخرى مدعومة يتطلب استخدام برامج تحويل الفيديو. هناك العديد من البرامج التي يمكن استخدامها لتحويل ملفات الفيديو، ومن بينها: 1. Handbrake: برنامج مجاني ومفتوح المصدر يدعم تحويل ملفات الفيديو من صيغة MOV إلى صيغ أخرى مثل MP4 و MKV و AVI وغيرها. يوفر البرنامج إعدادات متعددة للجودة والملف الناتج. 2. FFmpeg: برنامج مفتوح المصدر يتيح تحويل ملفات الفيديو بين صيغ الفيديو المختلفة. يمكن تثبيت FFmpeg على نظام التشغيل الخاص بك واستخدام واجهة الأوامر لتحويل ملفات الفيديو. 3. iMovie: برنامج تحرير الفيديو المدمج في نظام التشغيل macOS يمكن استخدامه لتحويل ملفات الفيديو MOV إلى صيغ أخرى مدعومة. يوفر البرنامج إمكانية تحويل الفيديو وتحريره بالإضافة إلى إضافة المؤثرات والعناوين والنصوص إلى الفيديو. عند تحويل ملفات الفيديو، يجب اختيار إعدادات التحويل المناسبة للحفاظ على جودة الفيديو قدر الإمكان. يمكن تعديل إعدادات التحويل مثل جودة الفيديو ومعدل البت وإعدادات الصوت لتلبية احتياجاتك. يجب الانتباه إلى أن تحويل الفيديو يمكن أن يؤدي إلى فقدان بعض الجودة، لذلك يجب اختيار إعدادات التحويل بعناية.
  17. دعني أوضح لك لماذا لا تعمل صيغة MOV مع وسم video عند كتابته في الصورة المرفقة وما هي الحلول المقترحة. صيغة MOV هي صيغة فيديو تستخدم عادةً في أجهزة Apple، وغالبًا ما تكون غير مدعومة بشكل كامل في المتصفحات. قد تحدث مشكلة عند محاولة تشغيل ملف MOV في وسم video في بعض المتصفحات، وهذا يعود إلى عدم دعم المتصفح لهذه الصيغة. ومن الحلول المقترحة لهذه المشكلة، يمكن استخدام وسم <source> لتحديد صيغ متعددة للفيديو والتي يمكن للمتصفح عرضها. يمكن وضع ملفات الفيديو بصيغ مختلفة، مثل MP4 وWebM وغيرها، داخل وسم source ليتم تحميل الصيغة المدعومة من قبل المتصفح بشكل تلقائي، وبالتالي يتم تشغيل الفيديو بشكل صحيح. و يتم استخدام وسم <source> لتوفير صيغ مختلفة للفيديو ، بحيث يمكن للمتصفح اختيار الصيغة التي تعمل على جهاز المستخدم والتي تتوافق مع متصفحه. وبذلك، يمكن أن يتم تشغيل الفيديو بشكل صحيح على أي جهاز وأي متصفح. إذا كنت تريد تشغيل مقاطع الفيديو بدون استخدام وسم <source>، فيجب عليك استخدام الصيغ المدعومة بشكل جيد من قبل المتصفحات، مثل MP4 وWebM. بإليك بعض الأمثلة التي توضح استخدام وسم <source> مع وسم <video>: 1. استخدام وسم <source> لتوفير صيغ مختلفة للفيديو: <video controls> <source src="video.mp4" type="video/mp4"> <source src="video.webm" type="video/webm"> <p>Your browser does not support HTML5 video.</p> </video> هذا المثال يعرض فيديو MP4 إذا كان المتصفح يدعمه، وإذا لم يدعمه يعرض فيديو WebM. 2. استخدام وسم <source> لتوفير صيغ مختلفة ودقة مختلفة للفيديو: <video controls> <source src="video-720p.mp4" type="video/mp4" media="(min-width: 640px)"> <source src="video-1080p.mp4" type="video/mp4" media="(min-width: 1024px)"> <p>Your browser does not support HTML5 video.</p> </video> هذا المثال يعرض فيديو 720p إذا كان عرض الشاشة أكبر من 640 بكسل، وإذا كان أكبر من 1024 بكسل يعرض فيديو 1080p. يمكن استخدام وسم <video> بدون وسم <source>، ولكن في هذه الحالة يجب التأكد من استخدام صيغ مدعومة بشكل جيد من قبل معظم المتصفحات. على سبيل المثال: <video controls src="video.mp4" type="video/mp4"> <p>Your browser does not support HTML5 video.</p> </video> في هذا المثال، يتم استخدام وسم <video> بدون وسم <source>، ولكن يتم تحديد صيغة MP4 مباشرة في الوسم <video>. ويتم استخدام النص داخل الوسم <p> في حال عدم دعم المتصفح لصيغة الفيديو المحددة.
  18. يوجد طلب عالي على مطوري مواقع الويب لأسباب عدة، منها: 1- الزيادة المستمرة في استخدام الإنترنت: تزداد استخدامات الإنترنت بشكل متزايد، وتتطلب هذه الزيادة تصميم وتطوير مواقع الويب بشكل مستمر وتحسينها لتلبية احتياجات المستخدمين. 2- الحاجة إلى تصميم وتطوير مواقع الويب الجذابة والمتميزة: تسعى الشركات والمؤسسات إلى تصميم مواقع الويب الجذابة والمتميزة لجذب المزيد من الزوار وتحسين الإشهار لأنشطتهم. 3- التجارة الإلكترونية: يتزايد الاعتماد على التجارة الإلكترونية والتسوق عبر الإنترنت، مما يزيد الحاجة إلى تصميم وتطوير مواقع الويب التي تدعم هذه العمليات.. 4- الحاجة إلى البرمجيات المخصصة: تحتاج بعض الشركات والمؤسسات إلى برمجيات مخصصة لأنشطتهم، وهذا يتطلب تصميم وتطوير مواقع الويب المناسبة لتلبية احتياجاتهم. لهذه الأسباب، فإن مطوري مواقع الويب يحظون بطلب كبير في السوق، ويعتبرون مهمين جداً لتصميم وتطوير مواقع الويب الحديثة والمتميزة التي تلبي احتياجات المستخدمين. وبالنسبة لتخصص تطوير مواقع الويب يتكون بشكل عام من جزئين رئيسيين: الجزء الأمامي (front-end) والجزء الخلفي (back-end). يتم استخدام الجزء الأمامي لإنشاء وتصميم واجهة المستخدم (UI) وتحديد كيفية تفاعل المستخدم مع الموقع، بينما يتم استخدام الجزء الخلفي لإنشاء البرمجيات وقواعد البيانات اللازمة لدعم الجزء الأمامي. ومع ذلك، يتم استخدام أدوات مختلفة وتقنيات متعددة في كل جزء، ويمكن أن يكون هناك تداخل وتفاعل بين الجزئين. هذا يعتمد على نوع المشروع والتقنيات المستخدمة. وهناك المطور الشامل Full-Stack Developer و هو الذي يجمع بين تطوير الواجهتين الأمامية والخلفية ويتميز بخبرة في إدارة العمليات DevOps. رواتب المطورين الشاملين تكون أعلى بسبب خبرتهم الكبيرة وقدرتهم على تنفيذ المشاريع بصورةٍ أفضل. و بعض المطورين يتخصصون في مجال واحد فقط، مثل تصميم الواجهات الأمامية أو الخلفية. ولكن المطور الشامل يحتاج إلى دراسة كليهما معًا وبعض الخبرة في DevOps. هو شخص يستطيع صنع موقع كامل بنفسه. يمكنك تصفح هذه المقالة فهي تتحدث بتفصيل أكثر.
  19. سأقوم بشرح مفهوم label والعلاقة بينها وبين input و for و name و id. عادةً، يتم استخدام label في لتوضيح نص محدد لحقل معين في نموذج (form) على صفحة الويب. يستخدم label لتوجيه المستخدمين إلى المدخلات الصحيحة عند ملء النماذج، ويساعد في جعل الصفحة أكثر إيضاحًا ويسهل على المستخدمين فهم المدخلات المطلوبة. يتم ربط label بحقل إدخال محدد في النموذج بواسطة معرف (id)، ويتم تحديد الحقل المرتبط باستخدام الخاصية for في label وإدخال معرف الحقل. يمكن أيضًا تحديد اسم (name) للحقل، ولكن بشكل عام، يكون الـ id والـ name مختلفين عن بعضهما البعض. إذا كانت القيم المستخدمة للـ id والـ name متشابهة، فإن ذلك لأنهما يتعلقان بنفس الحقل. ومع ذلك، يمكن استخدام قيم مختلفة للـ id والـ name إذا كانت الحاجة موجودة. هنا مثال بسيط يوضح العلاقة بين label و input مع استخدام الـ for والـ id: <label for="username">اسم المستخدم:</label> <input type="text" id="username" name="username"> في هذا المثال، يتم استخدام label لوصف حقل الإدخال (input) الذي له معرف (id) مسمى "username". يتم ربط label بالحقل الذي له نفس المعرف باستخدام الخاصية "for" في label. سأقوم بتقديم بعض الأمثلة لكل خاصية: - الـ label: يمكن استخدام label لأي عنصر في HTML ولكن بشكل عام يتم استخدامها مع الحقول النموذجية مثل input و select و textarea. هنا مثال لاستخدام label مع input لتوضيح حقل إدخال للاسم الأول: <label for="firstname">الاسم الأول:</label> <input type="text" id="firstname" name="firstname"> - الـ for: يتم استخدام for بشكل خاص مع الـ label لربطها بحقل محدد. يتم استخدام الـ id لتحديد الحقل المرتبط بها. هنا مثال لاستخدام الـ for مع label: <label for="email">البريد الإلكتروني:</label> <input type="email" id="email"> - الـ name: يتم استخدام name لتحديد اسم الحقل في النموذج. يمكن استخدامها لتحديد قيمة الحقل المرسلة إلى الخادم. هنا مثال لاستخدام name مع input: <label for="username">اسم المستخدم:</label> <input type="text" id="username" name="username"> - الـ id: استخدام الـ id في CSS و JavaScript لتحديد العنصر المراد التحكم به. هذا يسمح للمطورين بتطبيق تنسيقات وتنفيذ الأوامر البرمجية على عنصر HTML محدد.هنا مثال لاستخدام الـ id في CSS لتغيير لون خلفية العنصر div المحدد: <style> #wrapper { background-color: blue; } </style> <div id="wrapper"> <p>محتوى الصفحة</p> </div> في هذا المثال، يتم استخدام الـ id "wrapper" لتحديد العنصر div، وتغيير لون خلفيته إلى اللون الأزرق في CSS. يمكن استخدام الـ id بنفس الطريقة في JavaScript لتنفيذ الأوامر البرمجية على العنصر المحدد.
  20. سأحاول شرح ذلك بأسلوب سهل ومبسط. الـ Sidebar هو الشريط الجانبي في صفحة الويب. أما الـ Navbar، فهو الشريط العلوي في صفحة الويب، ويتميز بوجود العديد من الروابط والأيقونات التي توفر وصولًا سريعًا إلى المحتويات الرئيسية للموقع. يمكن أن يشمل الـ Navbar عددًا من الروابط المهمة مثل الصفحة الرئيسية وصفحات المنتجات والخدمات والاتصال. بالنسبة للصورة التوضيحية.
  21. يفضل تجنب تعلُّم مسار الوورد بريس مباشرةً في البداية، وبدلاً من ذلك يفضل أن تركز على تعلُّم مسار أساسيات لغة الـ PHP أولاً، حتى تكون قادرًا على دراسة مسار الوورد بريس بكفاءة. فلقد تم بناء الوورد بريس على لغة الـ PHP، ويحتوي مسار الوورد بريس على العديد من الأكواد الخاصة بلغة الـ PHP، لذلك يفضل دراسة هذه اللغة قبل البدء في تعلُّم مسار الوورد بريس. يمكنك بدء دراسة مسار أساسيات لغة الـ PHP أولاً، ومن ثم الانتقال لدراسة مسار الوورد بريس.
  22. بشكل عام، الحاسوب الذي وصفته يمكن استخدامه للبرمجة، ومع ذلك، يجب الانتباه إلى بعض النقاط: - الرام 8 جيجابايت قد تكون جيدة للعمل في البرمجة ولكن يفضل زيادة الرام إلى 16 جيجابايت . - الشاشة الصغيرة قد تجعل من الصعب ترتيب النوافذ والعمل على عدة تطبيقات في نفس الوقت. لذلك يفضل العمل على شاشة أكبر إذا كان ذلك ممكنًا. - يجب مراعاة أن ويندوز 7 لم يعد مدعومًا من قبل مايكروسوفت، لذلك يجب التأكد من تحديث النظام إلى ويندوز 10pro الحديث وتثبيت جميع التحديثات اللازمة. - اللمس بـ 10 نقاط يعني أن الشاشة تدعم اللمس المتعدد، وهذا يعتبر ميزة إضافية للحاسوب (ولكن لن تحتاج إلي هذه الميزة في البرمجة ). لأن ميزة اللمس نقاط ترفع تكلفة الحاسوب ولا تعتبر ضرورية للبرمجة، حيث يمكن استخدام الفأرة ولوحة المفاتيح بكفاءة عالية في البرمجة. وبالتالي، إذا كنت تبحث عن خيارٍ أقل تكلفة للبرمجة، يمكن اختيار حاسوبٍ لا يحتوي على ميزة اللمس. - بالنسبة لنوع الهارد، فإذا كان الحاسوب يحتوي على الهارد ديسك العادي HDD، فقد يكون من الأفضل استبداله بالهارد سوليد ستيت SSD، لأنه يوفر سرعة قراءة وكتابة عالية مما يعزز أداء الحاسوب. ويمكن أن يكون الهارد سوليد ستيت SSD يكون خيارًا جيدًا للبرمجة، ولكن يجب الانتباه إلى سعة التخزين المتاحة في الهارد، حيث يمكن أن تحتاج إلى مساحة تخزين 128 جيجا علي الأقل. أود أن أذكرك أن شراء هذا الجهاز ليس أفضل خيار، ويمكنك البحث عن بدائل أفضل.
  23. لا يجب عليك تعلم جميع مجالات البرمجة ولا يتوجب عليك أن تكون شخص يعرف كيف يفعل كل شيء. بدلاً من ذلك، يجب عليك التركيز على تعلم المهارات التي تحتاجها للعمل في المجال الذي تريده. فعلى سبيل المثال، إذا كنت تريد العمل في تطوير تطبيقات الويب، فعليك التركيز على تعلم لغات البرمجة والإطارات البرمجية المستخدمة في هذا المجال، مثل HTML وCSS وJavaScript وReact أو Angular أو Vue.js، وغيرها من الأدوات المستخدمة في تطوير تطبيقات الويب. بالنسبة لتعلم لغة C++، فهذا يعتمد على اهتماماتك و المجال الذي تريد العمل فيه. إذا كنت تريد العمل في مجالات مثل تطوير الأنظمة الكبيرة والبرمجة المضمنة وتطوير الألعاب، فقد يكون تعلم لغة C++ مفيدًا لك. ومع ذلك، فإنه ليس من الضروري تعلم C++ لتعلم البرمجة بشكل عام. يمكنك تعلم لغات برمجة أخرى مثل Python أو JavaScript أو Java والحصول على مهارات جيدة في البرمجة. يجب عليك البدء بتعلم المهارات الأساسية في المجال الذي تريد العمل فيه ومن ثم العمل على تطوير مهاراتك وتوسيع معرفتك في هذا المجال. بمجرد اكتسابك للمهارات الأساسية وتطويرها، يمكنك العمل على تطوير مهاراتك في مجالات أخرى إذا رغبت في ذلك. بشكل عام، يجب أن تركز على تعلم المهارات التي تحتاجها للعمل في المجال الذي تريده، ولا يجب عليك الاستسلام للضغوط والتوجيهات الخاطئة التي تقول لك أن تتعلم كل شيء. تعلم البرمجة يتطلب الكثير من الصبر والعمل الجاد، ويجب أن تركز على تعلم المهارات التي تساعدك في تحقيق أهدافك المهنية.
  24. لتطوير نفسك في مجال تعلم الآلة، يمكنك القيام بالأمور التالية: 1. تعلم الرياضيات اللازمة لتعلم الآلة مثل الاحتمالات والإحصاء والجبر الخطي. 2. تعلم تقنيات التعلم الآلي والشبكات العصبية. 3. تعلم لغات البرمجة المستخدمة في تعلم الآلة مثل R وغيرها. 4. تطبيق ما تعلمته في مشاريع تطبيقية حقيقية. بالنسبة لسؤالك عن مدى صعوبة مجال تعلم الآلة، فهو مجال يتطلب دراسة وتعلم موضوعات رياضية متقدمة وتقنيات حديثة، لكنه يمكن التعلم فيه بشكل تدريجي والاستفادة من الموارد المتاحة عبر الإنترنت والكتب والدورات التدريبية. وبالنسبة لسؤالك عن إبداع المجال، فهو مجال يمكن فيه تصميم وتطوير حلول إبداعية للمشاكل الحقيقية، ويمكن استخدام تقنيات تعلم الآلة في مجالات مختلفة مثل الطب والتمويل والتسويق والصناعة وغيرها. وبالنسبة لسؤالك عن تصميم الخوارزميات بنفسك، في مجال تعلم الآلة، يمكن تصميم خوارزميات جديدة أو تحسين الخوارزميات الموجودة بناءً على الحاجة والمشكلة التي يتم حلها. يمكن تصميم الخوارزميات بنفسك من خلال دراسة المفاهيم الأساسية لتعلم الآلة والتحليل الرياضي وتجارب التعلم العملية. بالإضافة إلى ذلك، يمكن الاستفادة من الأبحاث والدوريات العلمية لتحسين الخوارزميات وتصميم حلول أفضل.
  25. يمكن القول بأنَّ هناك طلب على مجالات مختلفة في سوق العمل، ويختلف الطلب بين المناطق. ولكن بشكل عام، فإنَّ تصميم وتطوير تطبيقات الهواتف المحمولة هو مجال يشهد طلبًا متزايدًا في الفترة الأخيرة، ويمكن اعتباره مجالًا مستقبليًا. وأنصحك بتصفح مواقع العمل الحر مثل موقع مستقل وسوف تري أن اغلب الوظائف هناك عن تطبيقات الموبيل وبالأخص باستخدام إطار العمل Flutter. أو تصفح مواقع العمل في الشركات مثل موقع LinkedIn. وبالنسبة للفرق بين لغة Dart و Python في تصميم تطبيقات الهواتف، فإنَّ Python هي لغة برمجة عامة تستخدم في مجالات مختلفة، بما في ذلك تصميم تطبيقات الهواتف المحمولة. أما Dart فهي لغة برمجة تستخدم بشكل أساسي في تطوير تطبيقات الهواتف المحمولة باستخدام إطار العمل Flutter. يمكن القول بأنَّ Python تستخدم بشكل أوسع في مجالات مختلفة خارج تصميم تطبيقات الهواتف، مثل تحليل البيانات والذكاء الاصطناعي والحوسبة العلمية وغيرها. أما Dart فهي لغة متخصصة بشكل أكبر في تصميم تطبيقات الهواتف المحمولة، وتستخدم بشكل أساسي مع إطار العمل Flutter.
×
×
  • أضف...