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

Mustafa Suleiman

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

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

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

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

    474

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

  1. هل المواقع الأخرى مثل يوتيوب تعمل معك بشكل سليم؟ إن كانت تعمل، أرجو إغلاق المتصفح والتجربة مرة أخرى إن استمرت المشكلة لنقم بتجربة متصفح آخر، وأخبرني بالنتيجة إن حدثت مشكلة. أيضًا لنقم بتحدث الصفحة من خلال CTRL + F5
  2. كل التقنيات مطلوبة، لكن الأمر يتحدد حسب سوق العمل الذي تستهدفه وأيضًا نوعية الشركات أو العملاء. وبناءًا على ما ذكرت، فستجد أنّ إطار .NET هو الأكثر استخدامًا بخصوص المؤسسات الحكومية والشركات الكبيرة. بجانب ذلك ستجد لغة Java والإطارات الخاصة بها خاصًة في المؤسسات البنكية. أي لغة جافا وC# هما ما تحتاج تعلمهم، لكن قرر أيهم المناسب لك حسب سوق العمل لديك من خلال البحث في الوظائف المعروضة.
  3. من الـ back-end ففي الواجهة الأمامية، نرسل بيانات للواجهة الخلفية أو نستقبلها منها.
  4. لا مشكلة في ذلك.
  5. حاول استخدام Livewire.hook لكي تتمكن جافاسكريبت من الوصول للـ DOM بعد الإنتهاء من تحميله، بحيث يصبح السكريبت كالتالي: <script> Livewire.hook('message.processed', (message, component) => { if (component.fingerprint.name === 'TeamComponent') { const wrapper_searchable = document.querySelector(".wrapper_searchable"); if (!wrapper_searchable) { console.error("Element .wrapper_searchable not found"); return; } const selectBtn = wrapper_searchable.querySelector(".form-control"), searchInp = wrapper_searchable.querySelector("input"), options_searchable = wrapper_searchable.querySelector(".options_searchable"); if (!selectBtn || !searchInp || !options_searchable) { console.error("One or more elements are not found"); return; } let countries = ["Yemen", "Bangladesh", "Belgium", "Bhutan", "Brazil", "Canada", /*...*/ ]; function addCountry(selectedCountry) { options_searchable.innerHTML = ""; countries.forEach(country => { let isSelected = country == selectedCountry ? "selected" : ""; let li = `<li onclick="updateName(this)" class="${isSelected}">${country}</li>`; options_searchable.insertAdjacentHTML("beforeend", li); }); } addCountry(); function updateName(selectedLi) { searchInp.value = ""; addCountry(selectedLi.innerText); wrapper_searchable.classList.remove("active"); selectBtn.firstElementChild.innerText = selectedLi.innerText; } searchInp.addEventListener("keyup", () => { let arr = []; let searchWord = searchInp.value.toLowerCase(); arr = countries.filter(data => data.toLowerCase().startsWith(searchWord)) .map(data => { let isSelected = data == selectBtn.firstElementChild.innerText ? "selected" : ""; return `<li onclick="updateName(this)" class="${isSelected}">${data}</li>`; }).join(""); options_searchable.innerHTML = arr ? arr : `<p style="margin-top: 10px;">Oops! Country not found</p>`; }); selectBtn.addEventListener("click", () => wrapper_searchable.classList.toggle("active")); } }); </script>
  6. جميع الدورات بالأكاديمية ذات سعر موحد وهو 290 دولار، وذلك ليس تكلفة الدورة بمفردها بل هناك باقة شاملة تستطيع التعرف عليها عند الضغط على رابط "شاهد صفحة الدورة" من هنا: دورات تعليمية وهي: وصول مدى الحياة لمحتويات الدورة تحديثات مستمرة على الدورة تحصل عليها مجاناً بالمستقبل نصائح مخصّصة لك وإرشاد بعد الدورة ضمان استرداد استثمارك خلال 6 أشهر شهادة معتمدة من أكاديمية حسوب باقة إعداد سيرتك الذاتية المقدمة من منصة "بعيد" وتكلفتها 99 دولار بمفردها.
  7. تخزين الصور في MongoDB ليست الطريقة الأفضل وهي ممكنة بالطبع من خلال تخزين الصور بواسطة base64. الأفضل بالنسبة لك هو تخزين الصور على وحدة التخزين وإدارة ذلك بواسطة multer ثم تخزين مسار الصور في قاعدة البيانات، وستحصلى على أفضل أداء في عرض الصور. وللعلم تستطيعي معالجة الصور أولاً بواسطة مكتبة Sharp باستخدامها كـ middleware لضغط الصور قبل تخزينها.
  8. ذلك غير متوفر حاليًا، وأفضل إضافة توفر لك ذلك في جميع المواقع التي لا تدعم الوضع الليلي هي الإضافة التالية: Dark Reader فالإضافات الأخرى سيئة وتجعل تجربة القراءة وتصفح الموقع غير جيدة مقارنًة بها، حيث تقوم بتعديل التنسيقات بشكل متناسب مع تنسيق الموقع الأصلي. وتستطيع تعطيلها على مواقع معينة أو تعديل الإعدادات لتنناسب معه، وذلك بالضغط على أيقونة الإضافة.
  9. هل عند الضغط على run python file in dedicated terminal لا يحدث شيء؟
  10. للإجابة على الأمر بشكل أفضل، هل المشروع للتدريب أم مشروع حقيقي، وما هو حجم البيانات وحجم الصور المتوقع وهل سيتم عرض عدد كبير دفعة واحدة؟ وهل هناك إمكانية لاستخدام التخزين السحابي للصور مثل Amazon S3؟
  11. لا هذا ولا ذاكّ، ما تحتاجه هو دراسة دورة خاصة بعلوم الحاسوب مثل CS50 أو ما شابهها على كورسيرا، ابحث عن Computer Science. وتلك الدورات يتم بها شرح الأساسيات والأمور المتعلقة بعلوم الحاسوب، ومنها تستطيع بناء قاعدة معرفة جيدة لتأهيلك لتصبح مهندس برمجيات وليس مبرمج، وإمتلاك القدرة على تعلم أكثر من لغة برمجة.
  12. ذلك برنامج تدريبي صيفي موجه للطلاب من منطقة الشرق الأوسط وشمال إفريقيا، وتستطيع المشاركة في البرنامج من مصر لا مشكلة، لكن بشروط: أن تكون طالبًا جامعيًا في مجال تقني أو ذي صلة. أن يكون لديك خبرة سابقة في مجال البرمجة أو تطوير الويب أو الذكاء الاصطناعي. أن تكون قادرًا على التواصل باللغة الإنجليزية بطلاقة. ويتم قبول الطلبات في وقت محدد من كل عام، واختيار المتدربين بناءًا على مؤهلاتهم وخبرتهم، ويوفر البرنامج فرصًا تدريبية في مختلف مجالات Google، مثل الهندسة والمنتجات والتسويق. وحاليًا التقديم لعام 2025 تم غلقه في 25 أكتوبر الماضي، حيث كان متاح بدءًا من 16 سبتمبر. تابع موقع opportunitiesforyouth لمعرفة متى يتم الإعلان.
  13. أساسيات الرياضيات فقط أي ما تم دراسته في المرحلة الأساسية من تعليمك، تستطيع البحث على اليوتيوب عن الأساسيات ومراجعتها. بالنسبة للخوارزميات فما تحتاجه هو دراسة discreet math فقط، وهي الرياضيات المنفصلة وذلك فرع من الرياضيات يهتم بدراسة الكيانات المنفصلة، أي الكيانات التي يمكن عدها بشكل منفصل. على عكس الرياضيات المستمرة التي تتعامل مع الكميات المتصلة مثل الأرقام الحقيقية مثل درجة الحرارة، يمكن أن تكون 20 درجة مئوية، أو 20.5 درجة مئوية، أو 20.123 درجة مئوية، وهكذا. تركز الرياضيات المنفصلة على الكيانات المنفصلة مثل الأعداد الصحيحة، الرسوم البيانية، المجموعات، والأنظمة المنطقية، مثل عدد الطلاب في الفصل، يمكن أن يكون 20 طالبًا، أو 21 طالبًا، لكن لا يمكن أن يكون 20.5 طالبًا. وهي مهمة لأنها توفر الأدوات الأساسية لفهم وفك تشفير العالم الرقمي الذي نعيش فيه، وتستخدم مفاهيمها في العديد من التطبيقات العملية، من تصميم مواقع الويب إلى تطوير الألعاب إلى تحليل البيانات.
  14. كلاهما يقدمان خدمة مختلفة، منصة GitHub هي خاصة بإدارة إصدارات الكود المصدري من خلال GIT وتخزين الكود ومشاركة المشاريع وتسهيل العمل بين فريق العمل. بينما Gitpod هو بيئة تطوير سحابية Cloud IDE لتشغيل مشاريع Git بشكل تلقائي في حاويات Docker، أي المكان الذي تعمل على كتابة الكود به، أي عند فتح مشروع في Gitpod، فإنه يُنشئ بيئة تطوير مُخصصة في حاوية Docker. وللعلم تستطيع تشغيل المنصة على حاسوبك أيضًا وليس على السحابة فقط. وتوفر مجموعة من الأدوات الأساسية لتطوير البرمجيات، مثل محرر الكود، وترجمة الكود، واختبار الكود، وإدارة الإصدارات، وتستطيع الوصول إلى بيئة التطوير من أي جهاز متصل بالإنترنت، دون الحاجة إلى تثبيت أي برامج، فلا حاجة لتثبيت بيئة تطوير محلية. أو يمكنك التطوير بشكل محلي لكن بشكل أسرع بسبب استخدام حاويات Docker. وتتيح لك الربط مع مستودعات Git مثل GitHub، GitLab، Bitbucket، وغيرها.
  15. دمج البيانات مثل ربط قطع البازل، أي لدينا مجموعة من قطع البازل، كل قطعة تمثل جدولًا في قاعدة البيانات، لكي تُكمل الصورة الكاملة، تحتاج إلى ربط هذه القطع معًا. هنا يأتي دور JOIN في SQL. أي JOIN هي عبارة SQL تُستخدم لدمج البيانات من جداول متعددة بناءًا على علاقة مشتركة بينها، مثل ربط قطع البازل معًا لإنشاء صورة كاملة. ويوجد أنواع لـ JOIN، أولها INNER JOIN مثل ربط قطعتين من البازل تتناسبان تمامًا معًا، ويعرض فقط الصفوف التي تتطابق قيمها في مفتاح الربط في كلا الجدولين. مثل جدول الطلاب يحتوي على معلومات عن الطلاب (اسم الطالب، رقم الطالب). جدول الدرجات يحتوي على معلومات عن درجات الطلاب (رقم الطالب، اسم المادة، الدرجة). SELECT Students.Name, Grades.Subject, Grades.Grade FROM Students INNER JOIN Grades ON Students.StudentID = Grades.StudentID; سيُظهر الاستعلام أسماء الطلاب والمواد التي درسها كل طالب والدرجات التي حصل عليها. النوع الثاني هو LEFT JOIN مثل ربط قطعة من البازل مع قطعة أخرى وقد تكون هناك فراغات Null، ويعرض جميع صفوف الجدول الأيسر، مع إمكانية عرض البيانات المتوافقة من الجدول الأيمن. مثل جدول الطلاب يحتوي على معلومات عن الطلاب (اسم الطالب، رقم الطالب). وجدول الأنشطة يحتوي على معلومات عن الأنشطة التي يشارك فيها الطلاب (رقم الطالب، اسم النشاط). SELECT Students.Name, Activities.ActivityName FROM Students LEFT JOIN Activities ON Students.StudentID = Activities.StudentID; النتيجة هي أسماء جميع الطلاب، مع عرض أسماء الأنشطة التي يشارك فيها كل طالب إن وجدت، وإن لم يشارك طالب في أي أنشطة، ستُظهر قيمًا فارغة (NULL) في عمود "اسم النشاط". النوع الثالث هو RIGHT JOIN مثل ربط قطعة من البازل مع قطعة أخرى وقد تكون هناك فراغات Null، ويعرض جميع صفوف الجدول الأيمن، مع إمكانية عرض البيانات المتوافقة من الجدول الأيسر. مثل جدول الأنشطة يحتوي على معلومات عن الأنشطة التي يشارك فيها الطلاب (رقم الطالب، اسم النشاط). وجدول الطلاب يحتوي على معلومات عن الطلاب (اسم الطالب، رقم الطالب). SELECT Activities.ActivityName, Students.Name FROM Activities RIGHT JOIN Students ON Activities.StudentID = Students.StudentID; نتيجة الاستعلام هي أسماء جميع الأنشطة، مع عرض أسماء الطلاب الذين يشاركون فيها إن وجدت، وفي حال لم يكن هناك طالب مرتبط بنشاط معين، ستُظهر قيمًا فارغة (NULL) في عمود "اسم الطالب". النوع الأخير هو FULL JOIN مثل ربط جميع قطع البازل معًا، بغض النظر عن وجود فراغات، ويعرض جميع صفوف كلا الجدولين، سواء كانت متوافقة أم لا. مثل جدول الطلاب يحتوي على معلومات عن الطلاب (اسم الطالب، رقم الطالب). وجدول المعلمين يحتوي على معلومات عن المعلمين (اسم المعلم، رقم المعلم). SELECT Activities.ActivityName, Students.Name FROM Activities RIGHT JOIN Students ON Activities.StudentID = Students.StudentID; ستحصل على أسماء جميع الطلاب والمعلمين، مع عرض البيانات المتوافقة بينهما، وإن لم يكن هناك تطابق، ستُظهر قيمًا فارغة (NULL) في الأعمدة من الجدول الآخر.
  16. وعليكم السلام عبدالله، شكرًا على إقتراحك وإهتمامك، في الوقت الحالي التطبيق الخاص بمنصة أكاديمية حسوب غير متاح وذلك لأسباب تتعلق بحفظ حقوق الملكية ومنع نشر المحتوى. في حال هناك آلية لإتاحة تلك الميزة بالأكاديمية، سيتم توفيرها إن شاء الله، لكن الأمر راجع للإدارة بخصوص تلك النقطة وسيصل إقتراحك إليهم. لو كان هناك مشكلة بتشغيل الفيديو بجودة عالية يمكنك إيقافه وتركه لبعض الوقت وسيتم تحميل جزء كبير منه تلقائيًا لتتمكن من مشاهدته بدون تقطيع، كما في اليوتيوب.
  17. مجالين مختلفين تمامًا. Google Cybersecurity Professional Certificate تركيزها على مهارات الأمن السيبراني الأساسية، مثل تحديد نقاط الضعف، التحقيق في الحوادث، والاستجابة لها، ومناسبة لمن يرغب في بدء مسيرته المهنية في مجال الأمن السيبراني أو تحسين مهاراته في المجال مثل تحليل المخاطر، اختبار الاختراق، إدارة الأحداث الأمنية، وتشفير البيانات. وتُمكنك من الحصول على وظائف مثل محلل أمن المعلومات، مهندس أمن المعلومات، أو مسؤول أمن المعلومات. بينما Google IT Support Professional Certificate تختص بمهارات دعم تكنولوجيا المعلومات الأساسية، مثل حل مشكلات الأجهزة والبرامج، دعم المستخدمين، وإدارة الشبكات. ومناسبة للحصول على وظائف مثل فني دعم تكنولوجيا المعلومات، مساعد تقني، أو مسؤول دعم تقني.
  18. الفرق هنا بين مهندس برمجيات وبين مبرمج، فالأول لديه دراية كبيرة بين الأساسيات ويستطيع تعلم أي شيء، والثاني لديه دراية بالتقنيات فقط (الإطارات والمكتبات). بالطبع أي شخص خارج الكلية يستطيع تعلم نفس الشيء لا مشكلة، الفكرة هي في الإلتزام. في حال كان الشخص الذي يدرس بكلية خاصة بالبرمجة مهتم بالبرمجة بالفعل، فسيصبح أفضل من الشخص العادي الذي تعلم البرمجة من خلال مسار تعليمي دونّ تأسيس لمدة سنة مثلاً أو حتى 6 أشهر، ففي الجامعى يتم دراسة علوم الحاسوب بشكل متعمق. لكن للعلم أيضًا أغلب المناهج قديمة، وستحتاج إلى الدراسة بجانب الكلية لتحديث معلوماتك فالتقنية يتم تطويرها بشكل متسارع، لذا ذكرت (شخص مهتم بالبرمجة) وليس شخص يدرس من أجل النجاح بالكلية فقط. فلا حاجة لدراسة 4 سنوات لتصبح مبرمج بالطبع، المنهج المفيد لك تستطيع إنهائه في 6 أشهر أو سنة حسب الخبرة السابقة لديك، ستجد منهج لذلك على GItHub مثل Open Source Society University: https://github.com/ossu/computer-science الكلية توفر لك أشخاص مهتمين بنفس اهتماماتك وأيضًا تشجيعك على الدراسة.
  19. ليس هناك Stack (التقنيات) واحد يمكن إعتماده لجميع المواقع، دائمًا الأمر يعتمد على حجم المشروع ونوع البيانات والأولويات والوقت المتاح للتطوير والميزانية أيضًا، حيث هناك دائمًا أفضلية لتقنية في أمرًا ما ولكن لها عيوب أيضًا لذا أنت تفاضل بين هذا وذاك وتوازن. وستجد مثلاً منصة مستقل وأكاديمية حسوب يعتمدان على لغة PHP وإطار لارافل، بينما في منصة IO ستجد لغة Ruby وإطار rails. بخصوص تطبيقات الهاتف، فذلك أمر راجع للإدارة ومدى رؤيتها لإحتياج مستخدمي منصاتها لتطبيق الهاتف، إن كنت بحاجة إليه تستطيع طرح طلبك هنا وما السبب لذلك.
  20. من خلال مكتبة pandas كالتالي: import pandas as pd df = pd.read_csv('diabetes.csv') df['DiabetesPedigreeFunction_Binary'] = (df['DiabetesPedigreeFunction'] > 0.5).astype(int) print(df) ستنشيء عمود جديد يُسمى 'DiabetesPedigreeFunction_Binary' ونحدد له قيمة 1 في حال كانت قيمة 'DiabetesPedigreeFunction' أكبر من 0.5، و 0 خلاف ذلك.
  21. لا يوجد معادلة رياضية محددة لذلك، وللتوضيح Palindrome Number هو رقم يقرأ بنفس الطريقة من اليمين إلى اليسار ومن اليسار إلى اليمين مثل 121، 353، 9009. أي من خلال النظر فقط. ويتم التحقق من Palindrome Number برمجيًا عن طريق مقارنة الرقم الأصلي بمرآته (عكس الرقم) وفي حال الرقمان متساويين، فإن الرقم الأصلي هو Palindrome Number. ولو أردت كتابة معادلة رياضية فسنكتب التالي: s = str(n) rev_s = reverse(s) is_palindrome = s == rev_s If is_palindrome is True, then n is a palindrome number. وهي أقرب لخوارزمية من معادلة رياضية.
  22. أتفهم شعورك بالتشتت في الوقت الحالي، لكن ستحتاج إلى الإنتهاء من مرحلة ثم التي تليها، فحاليًا أنت تتعلم أساسيات البرمجة من خلال دورة علوم الحاسوب، أرجو قراءة التالي: ثم التالي: وبالنسبة لمطور Full-stack فهل تريد تعلم جافاسكريبت أم PHP أم بايثون؟ عامًة عليك تحديد ذلك من خلال تفقد المطلوب في سوق العمل لديك بالنسبة لمستوى Junior، وليس ما تفضله أنت. وتستطيع التعلم من مصادر أخرى، وذلك أفضل بالطبع فلا توجد دورة واحدة تقدم لك كل شيء، وأحيانًا تحتاج إلى المزيد من الشرح أو التوضيح أو رؤية شرح آخر وهكذا، أيضًا للتطبيق العملي أنت بحاجة إلى للبحث على اليوتيوب عن مشاريع للمبتدئين وتنفيذها ورؤية الشرح. لكن لا تشتت نفسك، عليك الإلتزام بدورة واحدة مناسبة لك، ثم الاستزادة من مصادر أخرى وتنفيذ مشاريع والممارسة.
  23. الدورة تم إعداداها لتعلم أساسيات تطوير واجهات المستخدم بشكل تدريجي، لذا كل ما عليك هو دراسة الدورة من البداية للنهاية. لكن عليك التوقف ثم التطبيق على HTML وCSS ثم التوقف والتطبيق على جافاسكريبت وهكذا وليس الاستمرار في المشاهدة. لكن يجب الدراسة بشكل صحيح، ستجد تفصيل هنا: ومن الجيد أنك تقوم بالتعلم من مصادر أخرى وتنفيذ مشاريع فذلك هو المطلوب. في البداية لا مشكلة من التطبيق مع الشرح، لكن الاستمرار في ذلك سيؤدي إلى إلى إعتمادك على شخص يشرح لك كيفية التنفيذ، لذا تطبيق ما جاء في التعليق السابق سيساعدك على تخطي ذلك.
  24. لا يوجد حاجة لتحويله، فالبيانات في العمود موجودة بالفعل في صيغة رقمية، بالتالي مناسبة للاستخدام في التحليلات الإحصائية أو نماذج التعلم الآلي. إلا في حال أنك تريد تقسيم البيانات إلى فئات مختلفة حسب قيم DiabetesPedigreeFunction، فستحتاج إلى تحويلها إلى صيغة نصية أو رقمية تمثل تلك الفئات. أو تريد استخدام البيانات به كمتغير ثنائي (0 أو 1)، فستحتاج إلى تحويلها إلى صيغة ثنائية.
×
×
  • أضف...