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

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

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

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

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

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

    11

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

  1. بالإضافة للطريقة التي اقترحها محمد في التعليق السابق يمكنك استخدام إضافة للمتصفح تسمح لك بجعل أي موقع في الوضع الداكن ويمكنك تثبيتها من خلال الرابط التالي وبعد تثبيتها يمكنك الضغط عليها ثم تحديث الموقع وسيتغير معك ويجب ملاحظة أنه في المواقع التي لا تسمح بذلك لا تجد المظهر الخاص بها أفضل شئ https://chromewebstore.google.com/detail/super-dark-mode/nlgphodeccebbcnkgmokeegopgpnjfkc
  2. أولاً على الرغم من أن الشهادة مهمة، إلا أن المهارات العملية والتجربة الحقيقية تعتبر الأهم في سوق العمل. لذلك من الأفضل أن تستخدم الشهادة كباب للدخول إلى الفرص وتدعيمها بمشاريع عملية . وبالنسبة للسؤال حول أهمية الشهادة من أكاديمية حسوب فتعتبر الشهادة تساعد في بناء الثقة لدى أصحاب العمل، حيث أنهم يرون أن المتقدم للوظيفة قد اجتاز مسارًا تدريبيًا معترفًا به ومتعلمًا بشكل جيد وذلك يحدث نتيجة الإختبار الذي تقوم بإجتيازه والتطبيقات العملية الموجودة في الدورة لذلك عند وضع الشهادة على موقع مثل linkedin فذلك يسهل الحصول على فرص عمل في الشركات التي تقدر هذه الشهادة.
  3. شرح مصطفى في التعليق السابق الفرق بشكل رائع ولكن لنحاول أولاً معرفة ما هي الخاصية prototype في JavaScript، كل دالة عبارة عن كائن لذلك تحتوي على خاصية تُسمى prototype. هذه الخاصية تستخدم لتخزين الخصائص والدوال التي تُستخدم عندما تقوم بإنشاء كائنات جديدة باستخدام هذه الدالة كمنشئ (constructor) بواسطة الكلمة المفتاحية new. للتوضيح أكثر لنفترض Person هي دالة تقليدية تحتوي على خاصية prototype التي تحتوي على دالة مثلاً sayHello. هذا يعني أن أي كائن يتم إنشاؤه بواسطة Person سيحصل على هذه الدالة من خلال سلسلة ال prototype. ولكن بالنسبة للدوال السهمية (Arrow Functions) تم تقديمها في ES6 وهي دوال تتميز بالعديد من الخصائص الجديدة. ولكن الدوال السهمية لا تحتوي على خاصية prototype حيث تم تصميمها لتكون أكثر بساطة وتستعمل بشكل رئيسي كدوال غير موجهة. لذلك لا يمكن استخدام الدوال السهمية كمنشئات: لا يمكنك استخدام دالة سهمية مع الكلمة المفتاحية new لإنشاء كائنات جديدة. لذلك، لا حاجة لتوفير خاصية prototype في الدوال السهمية، لأنها ليست مصممة لهذا الغرض.
  4. تعتمد المدة الزمنية للدراسة يومياً على مدى تفرغك اليومي وقدرة على الاستمرار في التعلم بشكل جيد حيث لا يجب الاستماع فقط للدورة إنما التطبيق العملي مهم جداً ولكن حاول الاستمرار والالتزام بتخصيص وقت يومي للدورة، حتى لو كان قصيرًا، بدلاً من محاولة دراسة محتوى كبير في يوم واحد. ويجب الملاحظة أن الدورات عموماً المختصة بالبرمجة تحتوي على تطبيقات عملية و تمارين، فمن الأفضل تخصيص وقت إضافي بعد الاستماع للتطبيق العملي، حيث يساعد ذلك على تعزيز الفهم. ويفضل الإطلاع على الإجابات التالية للاستفادة في تحديد طريقة التعلم الجيدة
  5. كما بالتعليقات السابقة تحتاج فقط لإضافة اسم الملف الذي تريد تجاهله إلى .gitignore. على سبيل المثال، إذا كان لديك ملف اسمه example.txt داخل الفولدر، أضف السطر التالي إلى .gitignore folder_name/example.txt ولكن يجب ملاحظة أنه إذا كان الملف موجودًا في عدة مجلدات بنفس الاسم وقمت بإضافة الاسم فقط بدون كتابة المسار إلى هذا الملف تحديداً سيتم تجاهل الملفات في مختلف مجلدات المشروع وإذا كنت تريد تجاهل file1.txt في أي مكان داخل المشروع، سواء كان داخل my_folder أو أي مجلد آخر، قم بكتابة اسم الملف فقط file1.txt
  6. وعليكم السلام ورحمة الله وبركاته. أنصحك بالتأكيد بدراسة الذكاء الاصطناعي، خاصة إذا كنت تشعر بالشغف تجاهه. ولكن يجب معرفة أن مجال الذكاء الاصطناعي يشمل جوانب متعددة، مثل تعلم الآلة (Machine Learning)، ومعالجة اللغة الطبيعية (Natural Language Processing)، وغيرها من المجالات الفرعية التي تسهم في تطوير تقنيات مبتكرة. ولذلك للدخول إلى هذا المجال يجب عليك تعلم بعض الأساسيات أولها بما أنك تتعلم حالياً لغة بايثون فحاول الاستمرار في تعلم بايثون حيث تفيدك كثيراً في مجال الذكاء الاصطناعي. ويفضل الإطلاع على الإجابات التالية للمزيد من التفاصيل
  7. وعليكم السلام ورحمة الله وبركاته. أولاً المكتبات os و sys و platform تُستخدم للتعامل مع نظام التشغيل ، ولكن لكل منها وظائف مختلفة كالتالي: أولاً مكتبة os: توفر واجهة للتعامل مع نظام التشغيل بشكل مباشر. تُستخدم للتعامل مع الملفات والمجلدات، مثل إنشاء وحذف ونقل الملفات والمجلدات. تسمح بالوصول إلى متغيرات البيئة الخاصة بنظام التشغيل. ثانياً مكتبة sys: تتيح لك التفاعل مع مكونات النظام المتعلقة بمفسر بايثون نفسه، مثل التعامل مع مسار البحث عن المكتبات (sys.path)، إنهاء البرنامج (sys.exit())، والوصول إلى معلومات النظام مثل إصدار بايثون المستخدم. وأخيراً مكتبة platform: تُستخدم للحصول على معلومات حول المنصة أو نظام التشغيل الذي يعمل عليه البرنامج. توفر معلومات مثل نوع نظام التشغيل، إصدار بايثون، معمارية المعالج، وغيرها. بشكل عام، تُستخدم مكتبة os للتعامل مع نظام الملفات والعمليات المرتبطة بنظام التشغيل، بينما تُستخدم مكتبة sys للتعامل مع بيئة بايثون نفسها، أما مكتبة platform فتُستخدم للحصول على معلومات عن النظام والمنصة.
  8. هناك عدة طرق أخرى للحصول على موقع المستخدم بجانب استخدام Geolocation API مباشرة كما أخبرك مصطفى في التعليق السابق منها استخدام حزم تسهل عليك هذه العملية مع إضافة بعض المميزات مثل مكتبة Geolocator.js تعتبر بسيطة و تسهل العمل مع Geolocation API. تقوم بتجريد التعقيدات وتجعل التعامل مع الموقع أكثر سهولة. <script src="https://cdnjs.cloudflare.com/ajax/libs/geolocator/2.1.7/geolocator.js"></script> <script> Geolocator.locate(function(position) { console.log("Latitude: " + position.coords.latitude); console.log("Longitude: " + position.coords.longitude); }); </script>
  9. إذا كان هذا السؤال خاصة بأحد دروس الأكاديمية، ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم الأسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل. ولكن سأحاول توضيح ل المشكلة لك أو بسبب أن العنصر filter-options تأخذ الخاصية position:absolute فإنها لا تعمل مع ال z-index لذلك لحل المشكلة احذف ال z-index للعنصر .add-to-fav وبالنسبة للمشكلة الثانية فهي سلوك طبيعي للكود الموجود حيث أن الكود التالي filterContent.addEventListener('click', function (event) { const filterGroup = event.target.closest('.filter-group'); if (filterGroup) { filterGroup.remove(); const filterTab = Array.from(filterTabs).find(tab => tab.dataset.target === filterGroup.id.replace('active-', '')); if (filterTab) { filterTab.classList.remove('selected'); } } }); مسؤل عن حذف ال filterGroup عن الضغط عليها ولكن حاول التعديل على هذا الكود ليجعل حذف ال filterGroup عند تغيير قيمة ال select مثلاً كالتالي filterContent.addEventListener('change', function (event) { // التحقق من أن العنصر الذي تم التفاعل معه هو select if (event.target.matches('select')) { const filterGroup = event.target.closest('.filter-group'); if (filterGroup) { filterGroup.remove(); // العثور على التبويب المرتبط بمجموعة الفلترة هذه const filterTab = Array.from(filterTabs).find(tab => tab.dataset.target === filterGroup.id.replace('active-', '')); if (filterTab) { filterTab.classList.remove('selected'); } } } });
  10. كما أخبرك مصطفى فإنه هناك الكثير من المبرمجين الناجحين الذين لم يدرسوا في الجامعات المتخصصة بالمجال بل اكتفوا بالتعلم الذاتي والعمل على المشاريع الحقيقية.ولكن يجب توضيح أن دور الجامعة لا يقتصر على الأساسيات التي تتعلمها وما إلى ذلك إنما الجامعة توفر بيئة مثالية لبناء شبكة علاقات مهنية. فيمكنك التواصل مع أساتذة محترفين في المجال وزملاء يشاركونك نفس الاهتمامات. هذه الشبكة يمكن أن تكون مفيدة لاحقًا في الحصول على فرص عمل أو توجيهات مهنية. توفير فرص تدريبية (Internships) مع شركات معروفة. هذه التدريبات تمنحك خبرة عملية وتجهيزك لسوق العمل. وبالتأكيد إذا كنت ترغب في التعمق أكثر في مجال معين من علوم الحاسب أو البحث الأكاديمي، فإن الجامعة توفر لك الفرصة للالتحاق بالدراسات العليا (ماجستير، دكتوراه). لذلك حاول بقدر الإمكان الإلتحاق بجامعة متخصصة بعلوم الحاسوب ولكن في النهاية، الجامعة ليست الطريق الوحيد للنجاح في مجال البرمجة. وبالنسبة للمسار التعليمي بالتأكيد أنت على الطريق الصحيح، ومع الوقت والعمل الجاد، يمكنك الوصول إلى أهدافك بإذن الله.
  11. من خلال التحدث مع مركز المساعدة او مع الاستاذ إياد يمكنك معرفة متى يتم الحصول على الشهادة أو غيرها من الإستفسارات الخاصة بهذه المرحلة حيث يتم إفادتك بشكل أفضل ولكن في العموم يتم الحصول على الشهادة بعد قليل من الوقت وربما في بعض الأوقات تتأخر قليلاً نتيجة ضغط كبير على مركز المساعدة والإدارة لذلك يرجى التواصل مع مركز الساعدة وسيتم توضيح هذه الأمور لك .
  12. دورة تطوير التطبيقات باستخدام لغة Python هي في الأساس مخصصة لمجال ال backend لذلك سيتم دراسة أساسيات لغة python وأساسيات قواعد البيانات ثم تنتقل بعد ذلك لتعلم أساسيات إطار العمل جانغو Django أساسيات إطار العمل فلاسك Flask ثم بعد ذلك تنتقل للتطبيق العملي على هذه الأطر وبناء تطبيقات ويب باستخدام python بالإضافة للعديد من المهارات الأخرى ولذلك يفضل الإطلاع على الفيديو التالي حيث يشرح محتوى هذه الدورة بالتفصيل
  13. أولاً بالنسبة للشهادة الجامعية فيعتبر وحدها لا تكفي لضمان النجاح في سوق العمل، خاصةً في مجال البرمجة والتكنولوجيا. فالخبرة العملية والمهارات التطبيقية هي الأكثر أهمية ولكن مع الشهادة الجامعية يمكنك التقديم على العديد من الفرص والمنح المتاحه لك بسبب الشهادة. تركز البرامج الجامعية بشكل كبير على الأساسيات النظرية والمفاهيم الأكاديمية. في حين أن هذا مهم، إلا أن التطبيقات العملية والمشاريع الواقعية التي تُحاكي بيئة العمل تكون أقل تركيزًا. وسوق العمل يتطلب غالبًا خبرة عملية في تطوير المشاريع، واستخدام أدوات وتقنيات حديثة. لذلك يجب على الطلاب تطوير مهاراتهم بشكل مستمر. لذلك إختصاراً الشهادة الجامعية هي الأساس الذي تبني عليه مهاراتك. ولكن من المهم أن تكمل تعليمك الأكاديمي بتجربة عملية من خلال المشاريع الشخصية، التدريب العملي (internships)، والدورات التي تركز على التقنيات الحديثة. بهذه الطريقة، ستتمكن من سد الفجوة بين التعليم الأكاديمي ومتطلبات سوق العمل.
  14. كما أخبرك مصطفى في التعليق السابق فالشهادة في مجال علوم الحاسوب ليست بتلك الأهمية كما في مجالات أخرى ولكن لا يعني أن ال شهادة لا قيمة لها إطلاقاً . ومع ذلك بالنسبة للسؤال فأعتقد أنه لا يمكنك الدخول للكلية من خلال معهد حاسبات وإذا كنت تقصد بمعهد معتمد حاسبات فليس هناك حاجه لدخول كلية حاسبات فيعتبر المعهد مكافئ للكلية
  15. وعليكم السلام ورحمة الله وبركاته. ال argv هو قائمة تحتوي على المعاملات التي تم تمريرها إلى البرنامج عند تشغيله من سطر الأوامر. بمعنى عندما تقوم بتشغيل برنامج بايثون من سطر الأوامر، فإن sys.argv يحتوي على المعلومات التالية: العنصر الأول (sys.argv[0]) هو دائمًا اسم السكريبت نفسه. العناصر التالية هي المعاملات الإضافية التي تم تمريرها للبرنامج. على سبيل المثال، إذا قمت بتشغيل برنامج بهذا الشكل: python my_script.py arg1 arg2 arg3 فإن sys.argv ستحتوي على: sys.argv[0] == "my_script.py" sys.argv[1] == "arg1" sys.argv[2] == "arg2" sys.argv[3] == "arg3"
  16. كما شرؤح لك مصطفى بشكل رائع أن الدوال عديمة الاسم أو Anonymous Functions هي دوال تُعرّف بدون اسم محدد. بدلاً من أن يكون للدالة اسم يمكن استدعاؤها به لاحقاً، يتم استخدامها في المكان الذي تم تعريفها فيه. ولكن سأحاول شرح متى نستخدم الAnonymous Functions بشكل عملي أولاً تُستخدم هذه الدوال غالبًا في الأماكن التي تحتاج فيها إلى تمرير دالة كمعامل لدالة أخرى. على سبيل المثال، في المصفوفات عند استخدام map أو filter أو forEach. const numbers = [1, 2, 3, 4]; const squaredNumbers = numbers.map(function(num) { return num * num; }); console.log(squaredNumbers); // Output: [1, 4, 9, 16] ثانياً عندما تحتاج إلى دالة تؤدي مهمة معينة ولا تحتاج إلى تكرارها في أماكن أخرى. setTimeout(function() { console.log("Time's up!"); }, 2000); // يتم تنفيذ الدالة بعد 2 ثانية و أحيانًا تحتاج إلى دالة داخل دالة أخرى لأداء مهمة محددة في نطاق صغير. function outerFunction() { return function() { console.log("Inner function"); }; } const inner = outerFunction(); inner(); // "Inner function"
  17. ستتعلم في هذه الدورة تطوير تطبيقات الويب باستخدام إطار عمل جانغو Django و فلاسك Flask. بالإضافة إلى استخراج البيانات من صفحات الويب وتحليلها،والعديد من المهارات كما وضحها محمد في التعليق السابق . ولكن يجب عليك معرفة أنه في مجال تطوير الويب يوجد جزء خاص بال الـ backend (الواجهة الخلفية): وهو الجزء الذي يتعامل مع منطق التطبيق، مثل معالجة البيانات، والتفاعل مع قواعد البيانات، وإدارة المستخدمين. هذا هو الجزء الذي تبرمجه بلغة بايثون باستخدام إطاري العمل جانغو أو فلاسك كما في هذه الدورة . الـ frontend (الواجهة الأمامية): وهو الجزء الذي يراه المستخدم ويتفاعل معه مباشرة، مثل التصميم، والعناصر التفاعلية. عادة ما يتم برمجة الواجهة الأمامية بلغات مثل HTML و CSS و JavaScript. وبالنسبة لمجال تطوير تطبيقات الهاتف فلا تتطرق له هذه الدورة ويفضل الإطلاع على المقالة التالية قبل الإطلاع على المحتوى الدورة
  18. أولاً يجب معرفة أن TypeScript هو بمثابة امتداد لـ JavaScript وتضيف إليه ميزات مثل الأنواع (types) والواجهات (interfaces) والفئات (classes) التي تسهل البرمجة الكائنية التوجه. إذا كنت تعرف OOP مسبقًا، سيكون من الأسهل لك فهم واستخدام هذه الميزات. ويمكنك استخدام TypeScript لبناء تطبيقات تعتمد على البرمجة الوظيفية (functional programming) . ولذلك ليست هناك حاجة لاستخدام الفئات والوراثة إذا لم تكن تتطلبها متطلبات مشروعك. مع ذلك، يمكنك استخدام TypeScript بدون الاعتماد على OOP، واستخدامها فقط لتحديد الأنواع وإضافة الثباتية إلى الكود الخاص بك. لكن فهم OOP سيساعدك في كتابة كود أكثر تنظيمًا وقابلية لإعادة الاستخدام عموماً .
  19. إذا كان هذا السؤال خاص بأحد دروس الأكاديمية يرجى طرح الأسئلة أسفل الدرس وليس هنا في قسم الأسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل. أما إذا كان غير ذلك فحاول التأكد من أنك قمت بتثبيت المكتبة في البيئة الصحيحة عبر تشغيل الأمر التالي داخل الـ Terminal في Visual Studio Code pip show SpeechRecognition إذا لم يظهر أي معلومات حول المكتبة، فهذا يعني أنها لم تُثبت بنجاح وحاول تثبيتها مرة أخرى .
  20. بدلاً من إقتراح دورة معينة يفضل أولاً معرفة ما عليك دراسته لتصبح مطور backend و إليك ما تحتاج إلى دراسته: أولاً لغة برمجة مثل PHP وهي لغة برمجية شائعة ومستخدمة في تطوير الويب أما إذا كنت تفضل استخدام JavaScript على جانب الخادم، فإن Node.js خيار رائع. يمكنك تعلم Express.js، وهو إطار عمل يساعدك في بناء تطبيقات ويب فعّالة. أيضاً يمكنك تعلم Python مع أحد أطر العمل مثل Django أو Flask . والعديد من لغات البرمجة والأخرى ثانياً قواعد البياناتولها نوعين هما: SQL Databases وتحتاج لتعلم كيفية التعامل مع قواعد البيانات العلائقية مثل MySQL، PostgreSQL، أو SQL Server. ستحتاج إلى معرفة كيفية كتابة استعلامات SQL، وإدارة البيانات. أو NoSQL Databases قواعد البيانات غير العلائقية مثل MongoDB ، خاصةً للتطبيقات التي تتطلب مرونة في تخزين البيانات. ثالثاً تحتاج لفهم كيفية إعداد وإدارة الخوادم أمر حيوي. ستحتاج إلى معرفة كيفية التعامل مع خوادم الويب مثل Apache أو Nginx. والعديد من المهارات الأخرى الضرورية مثل أمن الويب (Web Security) يجب أن تكون على دراية بأمن الويب لحماية التطبيقات من الهجمات مثل SQL Injection، XSS، وCSRF. تعلم كيفية بناء واستهلاك APIs أمر ضروري. ستحتاج إلى معرفة كيفية إنشاء RESTful APIs واستخدامها للتواصل بين الخادم والعميل. تعلم كيفية استخدام Git لإدارة الشيفرة المصدرية. تعلم إطار العمل المناسب للغة البرمجية التي تختارها، مثل Django للـ Python، أو Laravel للـ PHP، أو Express.js للـ Node.js. وإذا كنت تريد إقتراح لدورة ما فيمكنك الإطلاع على الدورات المموجودة في الأكاديمية
  21. بالإضافة للتعليقات السابقة يمكنك توضيح الفرق بينهما أكثر من خلال توضيح المهما لكل منهما بشكل أكثر تفصيلاً كالتالي أولاً BeautifulSoup هي مكتبة لتحليل HTML و XML في بايثون. وتستطيع القيام بما يلي: سهلة الاستخدام وسريعة في تحليل HTML. مناسبة لاستخراج البيانات من صفحات HTML الثابتة. لا تستطيع التفاعل مع العناصر الديناميكية في الصفحة. أما بالنسبة لSelenium فهي إطار عمل لأتمتة اختبارات الويب، ولكنها تستخدم أيضًا في مجال استخراج البيانات. وتستطيع القيام بما يلي: التفاعل مع صفحات الويب الديناميكية. يمكنها محاكاة تفاعلات المستخدم مثل النقر والكتابة. تستطيع تنفيذ JavaScript وتحميل المحتوى الديناميكي. أبطأ من BeautifulSoup لأنها تقوم بتشغيل متصفح فعلي. باختصار، BeautifulSoup مثالية لتحليل HTML الثابت واستخراج البيانات منه بسرعة، بينما Selenium مناسبة للتفاعل مع المواقع الديناميكية التي تتطلب تفاعل المستخدم أو تنفيذ JavaScript.
  22. وعليكم السلام ورحمة الله وبركاته. يعتمد ذلك على مستواك حالياً حيث أن هذه التقنيات مهمة للعمل على مشاريع كبيرة أو مع فرق تطوير أخرى، فإن هذه الأدوات ستكون مفيدة جدًا وستساعدك على العمل بشكل أكثر كفاءة وتنظيم وستجدها في متطلبات العديد من فرص العمل . ولكن التفكير في هذه التقنيات يأتي بعد تعلم اللغات البرمجية والتقنيات المطلوبة للوظيفة التي تريد العمل بها وهي مطور ويب . يفضل الإطلاع على الإجابات التالية لمعرفة المهارات المطلوبة كمطور ويب
  23. يمكنك إضافة أو إنشاء حساب آخر في موقع حسوب بدون أي مشكلة ويمكنك فتح الحساب الذي تريده ولكن يجب ملاحظة أنه إذا كنت مشترك في دورة ما فإن هذه الدورة ستكون متاحه للحساب الذي اشتركت به فقط . ويمكنك تعديل الحساب إذا كنت تريد ذلك من خلال تعديل الملف الشخصي لك .
  24. بعد الحصول على الشهادة لا يتم إنتهاء دور الأكاديمية بالنسبة لك عند هذه المرحلة ولكن ستتلقى إرشادات وتوجيهات للمساعدة في البحث عن فرص عمل، سيتم الإطلاع على سيرتك الذاتية وتقديم ارشادات مخصصة لك لتحسينها، بالإضافة إلى تقديم النصائح والإرشادات لتحسين ملفك الشخصي في مواقع العمل الحر. ويمكنك بعد ذلك البدء في تقديم عروض العمل على منصات العمل الحر وللمزيد من التفاصيل يفضل الإطلاع على الإجابات التالية
  25. يرجى طرح الأسئلة الخاصة الدورات أسفل الدرس لمساعدتك بشكل أفضل. بينما هنا نقوم بطرح الأسئلة العامة التي ليس لها علاقة بالدورات
×
×
  • أضف...