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

Hikmat Jaafer

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

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

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

كل منشورات العضو Hikmat Jaafer

  1. يمكن للمبرمج النظر إلى بعض العلامات المميزة لكل منهما. في نمط CommonJS، يُستخدم الدالة `require()` لاستيراد وحدات الكود، ويتم تعريف الوحدات باستخدام `module.exports` في الملفات المستوردة. على سبيل المثال: // استيراد وحدة في CommonJS const module = require('module'); // تصدير وحدة في CommonJS module.exports = { // ... }; أما في ES6، يُستخدم الكلمة المفتاحية `import` لاستيراد وحدات الكود، ويتم تعريف الوحدات باستخدام `export` في الملفات المستوردة. على سبيل المثال: // استيراد وحدة في ES6 import module from 'module'; // تصدير وحدة في ES6 export default { // ... }; بالتالي، إذا وجدت الاستيرادات تستخدم `require()` وتصديرات تستخدم `module.exports`، فإن الكود يتبع نمط CommonJS. وإذا وجدت الاستيرادات تستخدم `import` وتصديرات تستخدم `export`، فإن الكود يتبع نمط ES6. أما بخصوص المصطلح "ديناميكيًا" في البرمجة، فهو يشير إلى القدرة على تغيير وتعديل سلوك البرنامج أثناء تشغيله. على سبيل المثال، فيمكن تحميل وحدات الكود (مثل المكتبات أو المكونات) ديناميكيًا أثناء تنفيذ البرنامج بدلاً من تحميلها في وقت التجميع أو الترجمة.( بقصد الcompiling ) يتيح ذلك مرونة أكبر في تطوير البرمجيات وإمكانية توسيع وتغيير الوظائف بسهولة. على سبيل المثال، يمكن استخدام الدوال الديناميكية لتحميل وحدات الكود ( مثل الcomponents ) في وقت التشغيل باستخدام دوال مثل `require()` في CommonJS أو `import()` في ES6. هذا يتيح إمكانية تحميل وتنفيذ الوحدات اللازمة فقط عند الحاجة إليها، بدلاً من تحميل جميع الوحدات في بداية التنفيذ. بينما إذا قمنا بتحميل جميع الدوال عند تشغيل البرنامج , استخدمنا منها ما نحتاجه , فهذا سوف يجعل الموقع بطيء جداً في حال تواجد لدينا وحدات كثيرا ( compoents او ملفات js ). أتمنى أن يكون ذلك واضحًا ومفيدًا لك.
  2. وعليكم السلام، هناك عدة حلول : قد يكون حجم الملفات الصوتية كبيرًا، مما يتسبب في بطء التحميل. ينصح بضغط الملفات الصوتية باستخدام تنسيقات مثل MP3 أو OGG لتقليل حجم الملفات وتسريع عملية التحميل. تأكد من الاعدادات مكتبة wavesurfer.js إن كان هناك شيء يمكنك فعله لتسريع عملية التحميل, يمكنك الإطلاع على ال documentation للمكتبة. بدلاً من تحميل الملفات الصوتية مباشرة من العميل، يمكنك استخدام الجانب الخادم لتحميل الملفات وتقديمها عبر HTTP بدلاً من تحميلها بشكل مباشر من العميل. قد يكون هذا أسرع وأكثر كفاءة. يمكنك تحسين تجربة المستخدم عن طريق تحميل الملفات الصوتية بشكل تدريجي. يمكنك عرض مؤشر تحميل أثناء تحميل الملف الصوتي وتشغيل الصوت عند الانتهاء من تحميل جزء من الملف. يمكنك استخدام خدمات استضافة الوسائط مثل SoundCloud أو Amazon S3 لتحميل وتقديم الملفات الصوتية. قد توفر هذه الخدمات أداءً أفضل وتحسين سرعة التحميل. أتمنى لك التوفيق!
  3. بالنسبة للسؤال , نعم فإن الاختصاصات الثلاث حتى باقي الاختصاصات مثل gaming أو AI يعود لنفس الاساس . فالبرمجة في جميع الاختصاصات تحتاج الى تعلم مفاهيم اساسيات بالإضافة الى تعلم classes و OOP والوراثة وغيرها من التفكير البرمجة والخوارزميات أيضاً . ويبقى الاختلاف في لغات البرمجة هو طريقة كتابة هذا المفهوم ( مثل الclass ) . وإذا تأسست صحيح , فيمكنك التحول بين الاختصاصات لكن ننصحك بتخصص في اختصاص واحد , وتعلم اختصاص تاني إن أردت ذلك بعدما تكتسب خبرة أكثر من سنة ونصف في اختصاصك وتكون ملم ب90% من جوانب هذا الاختصاص . هذه الطريقة مجربة وآمنة من أجل التوظيف . لأن الشركات أو أصحاب المشاريع يفضلون شخص متخصص بدلا من شخص ملم بكل شيء . إلا إذا كانوا يبحثون عن مدير تقني .
  4. هذه الاضافات تعتبر جيدة جداً عند استخدام Ruby on Rails و Git: erb: يمكنك استخدام هذا الامتداد لتمييز وتلوين ملفات erb التي تحتوي على رمز Ruby مدمج في HTML. GitLens: يوفر ميزات مفيدة للعمل مع Git في VSCode، مثل عرض تفاصيل الالتزامات وتتبع الأحداث والمقارنة بين الإصدارات وغيرها من الأدوات لتبسيط عملية الإصدار والتعامل مع التغييرات في مشروعك. Better Comments: يمكنك استخدام هذا الامتداد لتعزيز تعليقات الشيفرة الخاصة بك عن طريق تلوينها بطرق مختلفة حسب النوع، مما يسهل فهمها وتنظيمها. VSCode Ruby Test Explorer: يوفر هذا الامتداد واجهة مستخدم بديهية لتشغيل وتنظيم اختباراتك في مشروع Rails باستخدام أطر اختبار Ruby المختلفة مثل RSpec وCucumber.
  5. لتقوم بذلك , يمكنك اتباع الخطوات التالية: قم بتثبيت و استخدام أدوات مثل `pdftotext` أو `pdf2txt` أو أدوات أخرى لتحويل ملفات PDF إلى نص. قم بفتح (الترمينال) . استخدم أداة التحويل المثبتة لتحويل ملف PDF إلى نص. على سبيل المثال، إذا كان لديك أداة `pdftotext`، استخدم الأمر التالي: pdftotext input.pdf output.txt حيث `input.pdf` هو مسار الملف PDF الذي ترغب في تحويله، و`output.txt` هو مسار الملف النصي الذي سيتم إنشاؤه لتخزين النص المستخرج. وضع النص في ملف نصي باستخدام الامر التالي في الterminal : cp output.txt newfile.txt سيتم إنشاء ملف جديد يسمى `newfile.txt` ويحتوي على النص المستخرج.
  6. يمكنك ذلك من خلال اتباع الخطوات التالية: أولا قم بجمع مجموعة من الصور المعلوماتية للأشياء التي ترغب في تعلمها. يجب أن تحتوي هذه الصور على أمثلة لكل فئة تريد تعلمها. ثم قم بتقسيم مجموعة البيانات إلى مجموعة تدريب ومجموعة اختبار. تستخدم مجموعة التدريب لتدريب الخوارزمية ومجموعة الاختبار لتقييم أداء الخوارزمية. . بعدها يجب عليك استخدم إطار عمل للتعلم العميق مثل TensorFlow أو Keras لتحميل نموذج MobileNetV2 المدرب مسبقًا. يمكنك استخدام المكتبة المتاحة في الإطار الذي تختاره لتسهيل عملية التحميل والتدريب. استخدم مجموعة البيانات التدريبية لتدريب النموذج. في هذه العملية، سيقوم النموذج بتعديل معلماته الداخلية للتعرف على الأشياء المختلفة في الصور. استخدم مجموعة البيانات الاختبارية لتقييم أداء النموذج. يمكنك حساب مقاييس الأداء مثل الدقة (accuracy) ومصفوفة الارتباط (confusion matrix) لقياس كفاءة النموذج في التعرف على الأشياء. بعد تدريب النموذج وتقييم أدائه، يمكنك استخدامه لتصنيف أشياء جديدة. يمكنك إدخال صورة جديدة إلى النموذج واستخدامه للتنبؤ بالفئة التي تنتمي إليها الصورة.
  7. كورس CS50 يغطي العديد من المواضيع المتعلقة بعلوم الكمبيوتر وتطوير البرمجيات، بما في ذلك البرمجة بلغة C، والهياكل البيانية، وقواعد البيانات، والأمان، والذكاء الاصطناعي، وغيرها. ستكون هذه المفاهيم ذات فائدة كبيرة في تطوير مهاراتك البرمجية العامة وفهمك لعالم البرمجة. لكن ما أنصحك به , هو فهم ومراحعة HTML و CSS ومن ثم الانتقال لكورس CS50 وتعلم javascript , لأن HTML وCSS لا تحتاج الى التفكير البرمجي وفهم البرمجة بدقة , HTML هي لغة هيكلة وCSS هي لغة لتنسيق الصفحات. بينما في javascript , تحتاج الى فهم البرمجة وتعلم كيف تفكر بشكل برمجي , وحل مشكلة حياتية بطريقة برمجية . لذلك يفضل تعلم HTML وCSS وتطبيقها , ثم الانتقال الى CS50 وjavascript . لا تنسى أن العمل العملي والتطبيق العملي لما تتعلمه هو جزء مهم من عملية التعلم، حاول دائمًا تطبيق ما تعلمته في مشاريعك الخاصة وحل المشاكل البرمجية العملية.
  8. هناك عدة خيارات , أظن أفضلها Amazon S3 بالنسبة لك , هذه شرح مختصر عن بعض الخيارات الممكن استخدامها : Amazon S3 بتقدمها أمازون وبتوفر مساحة تخزين ضخمة ومرنة. بإمكانك تحميل وتخزين الفيديوهات على Amazon S3 ومن ثم توفير وصول عبر الويب لهذه الفيديوهات. تتميز بتكلفة منخفضة ومرونة في التوسع. Microsoft Azure Blob Storage توفرها مايكروسوفت، تعتبر مماثلة لـ Amazon S3 في المفهوم. يمكنك تخزين الفيديوهات على Blob Storage وتوفير وصول إليها بسهولة. Google Cloud Storage تقدمها جوجل، وتوفر مساحة تخزين موثوقة وآمنة. تتميز بأداء جيد وتكلفة مناسبة.
  9. للأسف لا يمكن عمل هندسة عكسية لملفات build واسترجاع ملفات React.js بشكل كامل. لأن عملية بناء (build) لتطبيق React.js تشمل عدة خطوات لتجميع وتحويل ملفات السورس كود (source files) إلى ملفات قابلة للتشغيل في المتصفح. يشمل ذلك تجميع الملفات، وتحويلها إلى JavaScript مضغوط ومحسّن وتضمين المكتبات والمكونات اللازمة. أقصد بتحويلها إلى javaScript مضغوطة أي إزالة العديد من التفاصيل الأصلية للتطبيق (مثل أسماء المتغيرات والتعليقات والهيكل الأصلي للملفات). وبالتالي، فإن استرجاع ملفات السورس كود الأصلية بشكل كامل من ملفات البناء يكون أمرًا صعبًا جدًا، إن لم يكن مستحيلاً.
  10. هناك ثلاث أشياء يجب عليك معرفتها . Database و Backend Frontend web Frontend mobile ما تراه من تصميم واجهات في المواقع الويب فهو Frontend web . بينما ما تراه من تصميم واجهات في تطبيقات الهواتف فهذا frontend mobile . اما عن المعلومات والبيانات في الموقع أو التطبيق , فهذا يتم من خلال قواعد البيانات , والتي نتعامل معها من خلال لغات backend يتم تعامل مع قواعد البيانات من قبل لغات الbackend , يمكنك إنشاء الجدوال , تخزين البيانات , قراءة بيانات , تعديل بيانات . بالنسبة للغات التي تستخدم في الbackend , فهناك عدة لغات , منها : Node.js , PHP , C# ASP.Net , Python Django وغيره من اللغات. بالنسبة للواجهات الأمامية للموقع , فهي تتم باستخدام HTML و CSS و Javascript , لكن هناك عدة مكاتب أو لغات للjavascript مثل React و Angular و Vue . أما عن تطبيقات الهاتف , فيمكنك استخدام Flutter أو React native لإنشاء مشروع android وIos بكود واحد . أو أن تستخدم java لتطبيقات الandroid و Swift لتطبيقات IOS . طريقة التواصل بين التطبيق الهاتف والFrontend Web مع الbackend تتم من خلال API . بمعنى أخر , هي طريقة لتحصل على المعلومات والبيانات من قاعدة البيانات . توفر أكاديمية حاسوب دورة كاملة لإنشاء موقع إلكتروني Frontend و Backend و Mobile . وهي تعطيك خبرة كافية لتبدأ بإنشاء ما تريده تماماً . يمكنك استعرض محتواها من خلال رابط الدورة
  11. هناك عدة نقاط إضافية ستساعدك في تحسين السيو لموقعك ونشره . أستخدم كلامات مفتاحية تخص محتوى موقعك تمكن الزائر أن يجد موقعك بسهولة عبر الانترنت . مثلاً " سمعتك تهمنا " أو كلمات أخرى استخدامها قليل في الموقع المنافسة . تحسين جودة و سرعة تحميل موقعك لأن هذا يعتبر أمراً مهم للزائر , يمكنك استخدام PageSpeed Insights من Google لتحليل سرعة التحميل وتوفير توصيات لتحسينها. قم ببناء وجود قوي على وسائل التواصل الاجتماعي ومشاركة محتوى موقعك عبر هذه القنوات. يمكن أن يؤدي الارتباط بين موقعك ووسائل التواصل الاجتماعي إلى زيادة التعرف على موقعك وزيادة الروابط الخارجية. أجعل موقعك متجاوب مع أحهزة المحمول , ليتمكن الزوار من فتح موقعك من خلال هواتفهم. قم بتنظيم هيكل الموقع الداخلي بشكل جيد. استخدم روابط داخلية لربط الصفحات المختلفة معًا وتسهيل تصفح المستخدمين. تأكد من أن الروابط تحتوي على نص مفهومي وواضح يعكس محتوى الصفحة المرتبطة. قم بمتابعة أداء موقعك باستخدام أدوات تحليل الويب مثل Google Analytics. استخدم هذه الأدوات لفهم سلوك الزوار وتحليل الكلمات المفتاحية وتحديد المجالات التي يمكن تحسينها. تذكر أن تحسين سيو يحتاج إلى صبر واستمرار، وقد تستغرق بعض التحسينات وقتا لتظهر نتائجها. قم بمراجعة وتحديث استراتيجياتك بانتظام واستمر في تحسين موقعك لتحقيق أفضل النتائج في محركات البحث.
  12. هذا رابط لمشروع على الgithub . يوجد في وصف المشروع صورة gif تشرح ألية عمل البرنامج . https://github.com/Aksoylu/AI-DRAW
  13. تماماً مثل إجابة استاذ مصطفى . كما يوجد هناك عدة منصات شبيها بgithub , مثل bitbucket و gitlab . استخدام git في مشريعك مهم جداً , لأنه سوف يتيح لك عدة ميزات , مثل حفظ جميعالتغيرات التي تقوم بها واسترجاعها عند الحاجة . إنشاء أفرع عمل , دمج أفرع عمل , تنسيق العمل بين مجموعة أو فريق كامل , هذه بعض ميزاته مع شرح بسيط عن كل ميزة : يمكن لـ Git تسجيل تغييرات الملفات على مدار الوقت، مما يتيح لك الانتقال بسهولة بين إصدارات مختلفة واستعراض التغييرات التي تمت في كل إصدار. إذا كنت تعمل في فريق تطوير , ف Git يسمح بالعمل التعاوني بين فريق التطوير، حيث يمكن للمطورين العمل على نسخ محلية (branches) من المشروع وإدماج التغييرات بسهولة ومن دون تعارض في النهاية. بإمكانك إنشاء فروع مستقلة في Git للعمل على ميزات أو تحسينات جديدة دون التأثير على النسخة الأصلية. بعدها، يمكنك دمج الفروع المختلفة بسهولة وبشكل آمن. من ميزاته الأساسية , يمكنك Gitمن التراجع عن التغييرات أو استعادتها إلى حالة سابقة، مما يتيح التحكم الكامل في تاريخ المشروع. لا غنى عنه مع المشاريع الكبيرة التي تتضمن آلاف الملفات والتغييرات، مع الحفاظ على سرعة أداء عالية. هناك شعبية كبيرة له عبر الانترنت , لذلك سوف تجد حل أي مشكلة تواجهها بسهولة .
  14. التعرف على الكائنات في الصور يتم من خلال تطبيق تقنيات الذكاء الاصطناعي للتعرف على الأنماط والملامح المميزة للكائنات في الصورة. وهذه التقنيات تشمل هذه الكائنات مثل الأشياء العامة كالسيارات والحيوانات والأشجار، وتشمل العناصر الأكثر تخصيصًا مثل الرموز والحروف والرسومات. هناك عدة مكتبات وإطارات عمل متاحة للاستخدام في python مثل OpenCV وTensorFlow وKeras. ألية عملها تتم من خلال تدريب النماذج باستخدام مجموعة كبيرة من الصور المعروفة مسبقًا والتي تحتوي على تصنيفات الكائنات المطلوبة. يتم استخدام هذه الصور لتدريب النماذج وتعلمها التعرف على الملامح المميزة للكائنات. بعد ذلك، يمكن استخدام هذه النماذج المدربة للتعرف على الكائنات في الصور الجديدة. بالنسبة لعملية التدريب فقد يتطلب ذلك وقت وجهود كبيرة، تعتمد على حجم وتعقيد البيانات المستخدمة في التدريب، ونوع النموذج المستخدم.
  15. وعليكم السلام , أهلاً ضياء . سوف أساعدك في الوصل إلى الحل خطوة خطوة بدلاً من تقديم الحل بشكل كامل لتتمكن من تطوير خبرتك في استخدام البرمجة . السؤال الأول ( رقم 11 ) والسؤال الثاني ( رقم 12 ) يعتمدان على نفس المبدأ في الحل : أولاً يجب عليك تبسيط الفكرة والسؤال , وأستخراج ما تحتاجه من أجل كتابة البرنامج . لأن للنظرة الأولى اذا قرأت السؤال سوف تعتقد أنه صعبة جداً , وهي تعتمد على مبدأ بسيط في الحل . أولاً قم بمعرفة ما المعطيات الثابتة وما المتغيرات التي سوف يدخلها المستخدم , فمثلا في السؤال الأول لدينا المعادلتين h = h0+ v0t - 1/2 gt^2 v = v0 - gt المعطيات الثابتة هي : g = 9.8 , h0 = 1.6 , v0 = 14,2 , وبالتالي تصبح المعادلة بالشكل التالي : h = 1.6 + 14.2t - 9.8/2 * t^2 v = 14.2 - 9.8t هنا نجد أن المتغير الوحيد المتبقي هو t لنجد h و v . ثانياً , بعدما وجدنا حلها بشكل منطقي يمكنك الأن تطبيقها في البرمجة بالشكل التالي: تعريف متغير t الذي سوف يدخله المستخدم ( أو أنت ) , وهو في السؤال مرة من أجل 0.5 ثانية , ومرة من أجل ثانيتين. عندما يتم تمرير قيمة t , تقوم بتعريف متغيران لh و v وكتابة المعادلة بشكل رقمي . ( أو يمكنك تعريف متغيرات ل g وv0 وh0 واستخدامهم بدلاً من الكتابة بشكل رقمي ). أخيراً , تقوم بطباعة النتيجة. يمكنك تنفيذ حل السؤال ال12 بدايته تكون على نفس المبدأ , ولكن بعدها سوف تحتاج إلى خطوات إضافية : إنشاء متغيرات delta و a و b و c وx . تحقق من قيمة delta ( بعدما تقوم بحل المعادلة ) if(delta < 0 ) // do something else if ( delta == 0 ) // do something else // هنا سوف تكون دلتا أكبر من الصفر , بالتالي سوف تحتاج إلى إيجاد حلول x في else , سوف تحتاج إلى إنشاء متغيرين x1 وx2 وهما حلول المعادلة , واستخدام المتغيرات a وb وdelta لتجد الحل . إن واجهت أي صعوبة في الحل ضعها في التعليق , لا تقلق فأنا أتابع سؤالك .
  16. هناك عدة خطوات تحتاجها لتجد عمل جيد براتب جيد , أغلب الشركات أو أصحاب المشاريع عبر منصة مستقل أو خمسات أو متجر بيكاليكا , يفضلون شخص لديه خبرة بلغات أو مكاتب معروفة ومستخدمة بين الشركات وفي أغلب المشاريع , بالنسبة لمسار Frontend React Developer : HTML , CSS , JS React js مكتبة UI مثل Bootstrap , Material UI , TailwindCss with Chakra UI. Redux and Redux toolkit من أجل إداراة الحالة state management . معرفة بمكاتب React الشهيرة مثل prop-types , react-router . معرفة بإيجاد الحلول والتفكير البرمجي والخوارزميات , إضافة لتنظيم الكود وكتابة كود نظيف وبناء بنية نظيفة للمشروع . تحويل من Figma أو Adobe XD الى صفحة برمجية . بناء معرض أعمال . هذه أغلب الميزات المطلوبة حالياً بالنسبة لإختصاص Frontend ٌReact Developer . طبعاً بإمكانك التقديم على فرص العمل وأنت بمرحلة التطوير وتعلم بعد رقم 3 .
  17. إذا كانت لديك أساسيات في HTML و CSS، فأنت في موقف جيد للبدء في تعلم JavaScript. بالنسبة لمستوى الاحتراف الذي يجب أن تصل إليه في HTML و CSS قبل البدء في تعلم JavaScript، فإن الإجابة تعتمد على أهدافك ومتطلبات المشروع الذي تعمل عليه أو نوع المشاريع التي تريد أن تعمل عليها , فمثلاً هناك مشاريع تتعلق بالAnimation , هذا يتطلب منك أحتراف CSS. بينما هناك مشاريع تعتمد على فهم Grid System , فهذا يعتمد على فهم فوق المتوسط في CSS . ( وهو ما يستخدم في أغلب المشاريع في الوطن العربي , بشكل فريلانسر عبر منصة مستقل , أو من خلال العمل في الشركات ). يمكنك البدء في تعلم JavaScript وتطبيقه بشكل متزامن مع تطوير فهمك لـ HTML و CSS. لأن تعلم JavaScript سيوفر لك القدرة على تطبيق مفاهيم وتقنيات أكثر تعقيدًا في تطوير الويب. التعلم المستمر والممارسة العملية ستساعدك على تحقيق تقدم كبير في مجال تطوير تطبيقات الويب باستخدام JavaScript.
  18. هناك عدة ميزات وعيوب للwebflow ... أهم ميزاته: يسمح بتحكم كامل في تصميم الواجهات بدون الحاجة إلى كتابة الكود. بعد انتهاء تصميم الواجهة، يقوم Webflow بتوليد الكود بشكل تلقائي ويولد كودًا نظيفًا وصحيحًا من الناحية الدلالية. يتضمن Webflow نظام إدارة المحتوى القوي الذي يسمح لك بإضافة وتحرير المحتوى بسهولة. مناسب للمتاجر الإلكترونية البسيطة. يمكنك تصميم تفاعلات معقدة ورسومات متحركة دون الحاجة إلى البرمجة. أما عن عيوبه : منحصر في استخدامه على منصة Webflow , لا يمكن استضافة موقعك المصمم بواسطة Webflow على مضيف آخر، بل يجب استخدام خدمة الاستضافة المدمجة في Webflow. منحصر في تصميم الواجهات , أي لا يمكنك من تطوير ميزات معقدة أو تخصيصات برمجية . قد تحتاج إلى وقت لتعلم كيف تستخدم webflow بإحترافية . لذلك يتم استخدامه للمشاريع البسيطة والسريعة ( مثل مدونة أو متجر ) وبميزات محددة , ومع خبرة برمجية بسيطة . بينما يفضل اللجوء إلى البرمجة بإستخدام لغات البرمجة إن كان هناك إضافات أو ميزات أو تخصيصات في المشروع .
  19. يمكنك معرفة كم تكلفة متجر إلكتروني أو اي تطبيق بناءً على عدد ساعات عملية + خبرة المبرمج . أولاً يجب عليك تحديد تكلفة الساعة العملية الفعلية ولتكن على سبيل المثلا 5 دولار , فإن كان متجر إلكتروني يتطلب شهر من العمل بمعدل 8 ساعات في اليوم , وعمل 5 أيام خلال اسبوع , فهذا يعني أن المشروع سوف يكلف حوالي 840$ خلال شهر . هذا الطريقة في الحساب تعتبر جيدة وواضحة للعميل والمبرمج , فالساعة العملية تحدد حسب تعقيد المشروع . أما بالنسبة للفرق في بناء متجر إلكتروني باستخدام منصات مثل ووردبريس و برمجة خاصة , فهناك عدة عوامل : 1. التكلفة : ووردبريس: يعتبر ووردبريس نظام إدارة محتوى مفتوح المصدر ومجاني للاستخدام، ويمكنك تثبيته على استضافة مشتركة بتكلفة منخفضة. ومع ذلك، قد تحتاج إلى شراء قوالب وإضافات إضافية لتخصيص المتجر الإلكتروني وفقًا لاحتياجاتك. برمجة خاصة: قد تتطلب برمجة خاصة توظيف مطورين محترفين لتصميم وتطوير المتجر الإلكتروني بالكامل. يشتمل ذلك على تكلفة للتصميم والتطوير والاختبار والصيانة المستمرة. 2. المرونة والتخصيص : ووردبريس: يوفر ووردبريس العديد من القوالب والإضافات التي تسهل إنشاء متجر إلكتروني وتخصيصه وفقًا لاحتياجاتك. يمكنك تغيير تصميم الموقع وإضافة وظائف إضافية باستخدام الإضافات المتاحة. ومع ذلك، قد يكون لديك بعض القيود فيما يتعلق بالتخصيص الشامل للمتجر. برمجة خاصة: عند استخدام برمجة خاصة، يمكنك تطوير المتجر الإلكتروني بالكامل وفقًا لاحتياجاتك وتخصيصه بالكامل. يتيح لك الاستفادة من تصميم وظائف فريدة تمامًا وفقًا لرؤيتك. 3. الوقت والجهد : ووردبريس: يعتبر ووردبريس سهل الاستخدام ويتطلب مهارات أقل في التطوير للبدء بسرعة في إنشاء المتجر الإلكتروني. وذلك يعود للقوالب الجاهزة والإضافات. برمجة خاصة: إنشاء متجر إلكتروني مخصص يتطلب وقتًا أطول وجهدًا أكبر. يجب تصميم الهيكل الأساسي وتطوير الوظائف واختبارها بدقة. قد يستغرق الأمر وقتًا أطول للوصول إلى المستوى المطلوب من التطوور والاستعداد لإطلاق المتجر. 4. الدعم والصيانة : ووردبريس: يوفر ووردبريس مجتمعًا كبيرًا من المستخدمين والمطورين الذين يمكنهم تقديم الدعم والمساعدة في حالة وجود مشاكل. كما يتلقى ووردبريس تحديثات منتظمة لتحسين الأداء وإصلاح الثغرات الأمنية. برمجة خاصة: عند استخدام برمجة خاصة، قد تحتاج إلى فريق تقني متخصص لتقديم الدعم والصيانة المستمرة للمتجر الإلكتروني. يجب الاهتمام بتحديثات الأمان وإصلاح الأخطاء وتحسين الأداء بشكل منتظم. أي , يمكنك استخدام ووردبريس للمتاجر الصغير والتي لا تتطلب إضافة ميزات فريدة من نوعها , وايضاً عدد المنتجات ليس بالعدد الكبير . بينما يمكنك استخدام برمجة خاصة في حال أردت أن يكون أداء المتجر سريع وقوي ومتخصص , واضافة ميزات خاصة بالموقع .
  20. يمكنك إتباع هذه الخطوات العامة ( يرجى مشاركة الكود ان كان المقصد من سؤالك غير ذلك ) : يجب أن تقوم بإنشاء local state ولتكن listFilterPhones . تقوم بمعالجة حدث onClick على اسم الجوال , لما يضغط على اسم الجوال تقوم بfilter على الجوالات حسب الذاكرة بعدها تقوم بتحديث الlistFilterPhones . أيضاً لا تنسى أن تستخدم هذه الstate في عرض الجوالات , عند تحديثها في حدث onClick سوف تتحدث تلقائياً.
  21. أظن أني فهمتك تمام , ما تواجهه بالفعل , هو أنك تقوم بحضور الدورات أو اي فيديو عن مشروع react بسيط من الانترنت , وتفهم كوده . لكن عندما تحاول تطبيق ذلك تواجه مشكلة " أنك مو عرفان من وين تبدأ ", أو " كيف لازم تفكر لتبني المشروع يلي بدك ياه ولو صغير " . وما تعتقده هو انه بعد مرور شهرين ونصف من التعلم يجب أن تكون قادر على الأقل إنشاء مشروع بسيط . هذه تعتبر مشكلة بالنسبة لتعلم شيء جديد . لكن بكل بصراحة , هذه ليست بالمشكلة الكبيرة في تعلم البرمجة . السبب هو أنه يجب عليك معرفة مراحل تعلم البرمجة ( إن كانت react او غيرها ) . أو بمعنى أخر , معرفة الجوانب التي يجب إلمامك بها لتكون قادر على بناء مشروع . الجوانب المفروض تكون بتعرفها هي كالتالي : معرفة أساسيات اللغة يلي بتدرسها . فمثلاً في React , لازم تكون بتعرف components والsyntax تبعها وكيف ألية عملها . التفكير البرمجي والخوارزميات , وكيف ممكن تحول مشكلة لحل برمجي . التصميم والUI , وكيف ممكن تحول اي UI لموقع الكتروني حقيقي . ما ينقصك بالفعل هو التفكير البرمجي والخوارزميات . طيب كيف ممكن الشخص يقوي نفسه بالتفكير البرمجي ؟! ... هذا الجزء يتم من خلال حل تمرين برمجية بحتة تعتمد على المفاهيم التالية ( تعريف المتغيرات والمصفوفات والنصوص , حلقات التكرار , الشروط if else ) . مثلاً يمكنك البدأ بهذا المثال : بناء صفحة صغيرة , فيها input number + button ... المستخدم بيدخل رقم . اذا كان الرقم زوجي نقوم بطباعة alert فيها رسالة please enter positive number . اما اذا كان فردي , نقوم بطباعة مثلث متساوي الاضلاع من النجوم ( * ) , والفراغات حالياً ضعها ( _ ) بدلاً من الفراغ ( ) ... كمثال : المستخدم دخل رقم 5 وضغط عالزر ... فالطباعة حتكون بالشكل التالي : __* _*** ***** مثال اخر : دخل المستخدم رقم 9 , الطباعة بتكون بالشكل التالي : ____* ___*** __***** _******* ********* هذا المثال سوف يساعدك على تقوية فكرك البرمجي وكيف تبني خوارزمية لحل مشكلة برمجية . أيضاً , لا تنسى أنه يجب عليك تطبيق الفيديو الذي تقوم بحضوره بنفسك لتكون فاهم كيف المكونات عم تكون مرتبطة ببعضها , وكيف عم يشتغل . أكيد ما حتقدر بالبداية تأنشئ بنفسك المشروع ويشتغل تمام . بس كل ما تواجه مشكلة خود وقت حوالي ساعة اقصى حد بمحاول تلاقي حل المشكلة , وبعدها اذا ما لقيت حل شوف الفيديو . بهالطريقة حيكون تركيزك على الخطوة يلي ناقصتك بشكل أكبر بكتير من أنك تشوف الحل فورا . فخلال تعلمك حتشوف تقدمك بشكل ملحوظ . إن كان أي شيء ليس واضحاً أو واجهت أي مشكلة لا تتردد بطرحها أو بإرسالها لنا كي نساعدك بها.
  22. مدة تعلم رياضيات الذكاء الاصطناعي تعتمد على مستوى معرفتك الحالي بالرياضيات والوقت والجهد الذي تستثمره في دراستها. يعتبر الرياضيات جزءًا مهمًا من فهم وتطبيق الذكاء الاصطناعي، وقد تحتاج إلى وقت متفاوت حسب مدى تعمقك في الموضوع ومدى الرياضيات التي تحتاجها لتحقيق أهدافك. تشمل رياضيات الذكاء الاصطناعي مجموعة واسعة من الفروع الرياضية مثل الجبر الخطي، والاحتمالات والإحصاء، والتحليل الرياضي، والتفاضل والتكامل، والأمثلة والمعادلات التفاضلية، وغيرها. يمكن أن تستغرق فهم هذه المواضيع وتطبيقاتها في الذكاء الاصطناعي بضعة أشهر أو حتى سنوات حسب مستوى التعمق الذي ترغب فيه. بالنسبة لسؤالك الثاني، فإن رياضيات الذكاء الاصطناعي تستخدم بشكل واسع في مجال تحليل البيانات أيضًا. يتضمن تحليل البيانات استخدام الرياضيات لتطوير نماذج وتقنيات لفهم واستخلاص المعلومات من البيانات الكمية. يتضمن ذلك الاحتمالات والإحصاء، وتقنيات التصنيف والتجميع، والتحليل العاملي، والتحليل العصبي، والتحليل العصبي الضبابي، وغيرها من الأدوات الرياضية. على الرغم من أن هناك تداخل في استخدام الرياضيات في مجالي الذكاء الاصطناعي وتحليل البيانات، إلا أن هناك اختلافات في التركيز والتطبيقات. يركز الذكاء الاصطناعي على تطوير نماذج وأنظمة تكيفية قادرة على التفكير واتخاذ القرارات الذكية، بينما يركز تحليل البيانات على استخلاص الأنماط والمعلومات من البيانات لاتخاذ قرارات مبنية على البيانات. لذا، الرياضيات تلعب دورًا مهمًا في الذكاء الاصطناعي وتحليل البيانات، وقد تحتاج إلى وقت وجهد لتعلمها وتطبيقها بشكل فعال في هذين المجالين.
  23. مهما كتبت ملاحظات على دفتر , او على notes . سوف تبقى تواجه صعوبة في تذكر الاكواد . حسب تجربتي وخبرتي البرمجية , أفضل حل لهذه المشكلة هو الممارسة المستمرة وانشاء مشاريع تدريبية تعليمية . عند إنجاز عدة مشاريع سوف تجد نفسك قادر على تذكر كافة الاكواد التي تحتاجها لانجاز ما ترديه . إليك بعض النصائح : الممارسة المستمرة: قم بحل المزيد من التمارين وكتابة المزيد من الأكواد. كلما قمت بالممارسة بانتظام، كلما زادت ثقتك وتذكرك للأكواد. فهم المفاهيم الأساسية: حاول فهم المفاهيم الأساسية والمبادئ البرمجية بدلاً من حفظ الأكواد بشكل عمياء. عندما تفهم المبادئ الأساسية، ستكون قادرًا على بناء الأكواد بنفسك. قراءة ودراسة الشفرة المصدرية: قم بقراءة شفرة المصدر لبرامج ومشاريع أخرى وحاول فهم كيفية تنظيم الأكواد وتطبيق المفاهيم المختلفة. قد تجد أساليب جديدة أو نماذج تساعدك في تحسين أسلوبك البرمجي. المشاركة في مجتمعات المطورين: انضم إلى منتديات ومجموعات المطورين عبر الإنترنت مثل شركة حاسوب وشارك في المناقشات واستفسر عن الأكواد والمشاكل التي تواجهها. قد يوجد أشخاص آخرون يمرون بنفس التحديات وقد يكونون قادرين على مساعدتك. ( كما تفعله أنت الان ) إنشاء مشاريع عملية: قم بإنشاء مشاريع عملية تتطلب استخدام الأكواد وتطبيق المفاهيم التي تعلمتها. قد تكون هذه المشاريع تحديًا في البداية، ولكنها ستساعدك في تطبيق المفاهيم وتذكرها بشكل أفضل. لا تقلق إذا واجهت بعض الصعوبات في البداية، مع الوقت والممارسة المستمرة ستصبح أكثر ثقة ومهارة في تذكر الأكواد وفهمها. الاستمرارية والصبر هما المفتاح لتطوير مهاراتك في البرمجة. حافظ على التركيز والتطور المستمر، وستشعر بالتحسن تدريجياً. حظاً موفقاً في رحلتك في علوم الحاسوب!
  24. لتحسين سرعة موقعك على منصة بلوجر، يمكنك اتباع بعض الإجراءات التالية: 1. استخدم قالب بسيط : قوالب بلوجر المعقدة والثقيلة يمكن أن تؤثر سلبًا على سرعة التحميل. حاول استخدام قالب بسيط ونظيف يركز على سرعة التحميل وتجربة المستخدم. 2. ضغط الصور: قم بضغط الصور المستخدمة في موقعك لتقليل حجمها دون التأثير على جودتها. يمكنك استخدام أدوات ضغط الصور عبر الإنترنت أو البرامج المحلية لتنفيذ ذلك. 3. تقليل عدد الطلبات: حاول تقليل عدد الطلبات التي يجب أن يقوم المستخدم بإجرائها لتحميل صفحة معينة. يمكنك دمج وتقليل عدد الملفات CSS و JavaScript والاستفادة من الاستغناء عن الصور الغير ضرورية. 4. استخدم خدمة تسليم المحتوى (CDN): قم بتفعيل خدمة CDN لموقعك على بلوجر. تعمل خدمات CDN على تخزين نسخة من محتوى موقعك على مجموعة من الخوادم المنتشرة عالميًا. هذا يسمح بتوزيع المحتوى بشكل أسرع للمستخدمين في مناطق مختلفة. 5. تمكين ضغط GZIP: يمكنك تمكين ضغط GZIP على بلوجر لتقليل حجم الملفات المرسلة من خادمك إلى المستعرض. يمكنك القيام بذلك عن طريق تعديل إعدادات الملف robots.txt الخاص بمدونتك. 6. تجاهل الاضافات غير الضرورية: قد تقوم بتثبيت العديد من الإضافات على بلوجر، ولكن بعضها قد يؤدي إلى بطء الموقع. قم بمراجعة الإضافات التي تستخدمها وقم بإزالة تلك التي لا تكون ضرورية. 7. استخدم شفرة JavaScript بشكل فعال: قم بتحسين وتنظيم الشفرة الخاصة بك لتحسين سرعة التحميل. حاول تأخير تحميل الشفرة غير الحيوية أو تحميلها فقط عندما يكون هناك طلب بناءً على سلوك المستخدم. 8. استخدم أدوات تحسين الأداء: يمكنك استخدام أدوات مثل PageSpeed Insights من Google للحصول على تقييم لأداء موقعك واقتراحات لتحسينه. ستوفر لك هذه الأدوات نصائح محددة تساعدك في تحسيلتحسين سرعة موقعك على منصة بلوجر،
  25. لنشر تطبيق Next.js الخاص بك على جهاز شخصي يعمل بنظام Windows ويعمل في شبكة محلية صغيرة، يمكنك اتباع الخطوات التالية: 1. تأكد من أن جهاز الكمبيوتر الشخصي الذي ترغب في استخدامه كخادم يعمل بنظام Windows ومثبت عليه Node.js وMySQL Server. 2. قم بنسخ مشروع Next.js الخاص بك على جهاز الخادم. يمكنك استخدام أداة مثل Git لنسخ المشروع من مستودع التحكم في الإصدارات الخاص بك. 3. قم بتثبيت المكاتب والاضافات اللازمة لمشروع Next.js من خلال فتح نافذة الأوامر (Command Prompt) والانتقال إلى مجلد المشروع، ثم استخدم الأمر التالي: npm install 4. قم بتكوين قاعدة البيانات MySQL على الجهاز الخادم وتأكد من أنها تعمل بشكل صحيح. 5. قم بتعديل ملف الاعدادات (configuration file) الخاص بتطبيق Next.js ليتوافق مع اتصال قاعدة البيانات المحلية. يمكنك تعديل ملف `next.config.js` أو أي ملف آخر يحتوي على معلومات التكوين الخاصة بتطبيقك. 6. بعد الانتهاء من التعديلات، قم بتشغيل تطبيق Next.js على الجهاز الخادم باستخدام الأمر: npm run dev سيتم تشغيل التطبيق على الخادم المحلي ويمكن الوصول إليه من خلال المتصفح باستخدام عنوان IP الخادم والمنفذ المعين (على سبيل المثال: http://192.168.1.100:3000). 7. قم بمشاركة عنوان IP والمنفذ مع الأشخاص الآخرين في الشبكة المحلية الصغيرة حتى يتمكنوا من الوصول إلى التطبيق من أجهزتهم. وبهذا، يمكن للأشخاص الآخرين في الشبكة المحلية الصغيرة الوصول إلى تطبيق Next.js الذي يعمل على الجهاز الخادم الخاص بك عن طريق استخدام عنوان IP والمنفذ المحددين. يجب التأكد من أن جدار الحماية (Firewall) على جهاز الخادم يسمح بالاتصالات الواردة على المنفذ المستخدم.
×
×
  • أضف...