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

حمزة عباد

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

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

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

كل منشورات العضو حمزة عباد

  1. حسنا إذن سؤالك ليس عاما حول برمجة الألعاب، بل ما تريده تحديدا هو برمجة Roblox باستخدام لغة البرمجة Lua. على حد علمي، لا توفر أكاديمية حسوب حاليا دروسا للغة البرمجة Lua لأن الدروس المتوفرة على الأكاديمية معظمها ليست موجهة لتطوير الألعاب، ولأن Lua مشهورة أكثر في برمجة الألعاب. يمكنك أن تبحث في الأنترنت عن "تعلم البرمجة بلغة Lua" ورؤية النتائج التي تظهر لك. بعدما تصل إلى مستوى جيد في هذه اللغة أعتقد أنه لن يكون من الصعب عليك استخدامها في الألعاب التي تريد.
  2. من الجميل جدا أن يكون لديك هذا الحماس لتعلم البرمجة من هذه السن. هذا شيء رائع. لا أعتقد أنه يوجد سن محدد لا يمكن تعلم البرمجة قبله، فهذا الأمر يختلف من شخص إلى آخر. من الوارد جدا أن تستطيع تعلم البرمجة بلغة JavaScript حتى وأنت في هذا السن وأن تسبق من هم أكبر منك سنا. لذلك أرى أن الاشتراك في تلك الدورة ليس مشكلة، خصوصا أن الدورة سوف تبقى متاحة لك فيما بعد ويمكنك الرجوع إليها بعد سنوات، وسيتم أيضا تحديثها من فترة لأخرى لتوافق متطلبات السوق. أما بخصوص الدفع، فمادام والداك موافقان فهما من سيتكفلا بشراء الدورة، لأن المعاملات المالية تشترط كون الشخص وصل إلى عمر 18 سنة على الأقل.
  3. بالفعل، تعلم البرمجة شرط أساسي لبرمجة الألعاب ولأي نوع آخر من البرامج. لكن أصارحك القول بأن تطوير الألعاب هو مجال متقدم من مجالات البرمجة وليس شيئا يتم تعلمه من البداية. تطوير لعبة متكاملة، بالإضافة إلى التكمن التام من لغة برمجة معينة، سوف يتطلب استخدام مكتبة تعمل كمحرك ألعاب، مثل Unity أو Unreal Engine أو Godot. في هذا المجال، سوف تحتاج أيضا تمكنا من بعض أمور الفيزياء، مثل قوانين الحركة والسرعة والجاذبية. وتحتاج أيضا إلى معرفة بتصميم الأشياء والشخصيات وتحريكها بشكل صحيح. هذا أمر يحتاج إلى كثير من المعرفة والعمل وقد لا يكفي فيه شخص واحد، لذلك غالب الألعاب لا يطورها شخص واحد بل فريق متكامل، بحيث يتخصص كل شخص في مهمات معينة. بالإضافة إلى كل الأمور التقنية، اللعبة تحتاج قصة و قوانين تسير عليها من أجل إمتاع اللاعب، وهذا أمر إضافي يجب صياغته بشكل جيد قبل البدء في برمجة اللعبة. الدورات التي تقدمها أكاديمية حسوب عموما، ودورة علوم الحاسوب خصوصا لا تدخل إلى مجال الألعاب نظرا لأن هذا المجال معقد كما شرحت ولا يصلح لتعليم المبتدئين في البرمجة. لكن بعد التمكن في تلك الدورات يمكنك بعدها التخصص في برمجة الألعاب إن شئت.
  4. وعليكم السلام ورحمة الله، كلا لن تغلق الدورة. أي دورة اشتريتها سوف تبقى مفتوحة لك إلى الأبد. بل سوف تستفيد أيضا من التحديثات التي سوف تأتي لاحقا في المستقبل حتى بعد إكمالك الدراسة. للمزيد من المعلومات يمكنك مراجعة صفحة الأسئلة الشائعة: https://academy.hsoub.com/pages/faq/
  5. وعليكم السلام، إذا كنت تقصد بوتات المحادثة أو التفاعل مع API، فلديك جواب المدربة نجاح. أما إذا كان المقصود البوتات التي تستخدم الحاسوب بنفس طريقة المستخدم، أي بالضغط على لوحة المفاتيح وبالفأرة، فهنا الجواب مختلف. على الرغم من أن مجال الأتمتة والبوتات مشهور بين مطوري Python أكثر، ولكن بما أنك درست دورة تطوير التطبيقات باستخدام JavaScript، فسأحاول أن أقترح عليك مكتبات بهذه اللغة. توجد مكتبة RobotJS والتي يمكنها التحكم بحركة الفأرة والنقر بها وقراءة البكسلات الموجودة عند الفأرة، وكذلك الضغط بلوحة المفاتيح مع التحكم في سرعة الإدخال. توجد أيضا مكتبة NutJS والتي تبدو أكثر تقدما. حيث أنها بالإضافة إلى ميزات RobotJS السابقة، توفر قدرة على البحث عن النوافذ المفتوحة، قراءة محتوياتها النصية، الوصول إلى النص المنسوخ في الحافظة، التقاط صور من الشاشة، قراءة النص من الصور، والمقارنة بالصور، وغير ذلك. هذه قد تكون المكتبة الوحيدة التي تحتاج إليها لإنشاء بوتات محاكاة المستخدم.
  6. وعليكم السلام ورحمة الله، في المشاريع الكبيرة الحقيقية، لا يتم الاستغناء عن إنشاء كود خاص باختبار التطبيق. يوجد على الأقل نوعان من الاختبارات: اختبارات الوحدات (Unit tests): وفيها يتم اختبار دوال و أصناف التطبيق، وقطع كود منطقية منه، عن طريق تشغيلها باستخدام معاملات محددة ثم رؤية هل تعيد النتائج المتوقعة أم لا. اختبارات التكامل (Integration tests) : وفيها يتم اختبار التطبيق كوحدة واحدة بطريقة مشابهة لما يقوم به المستخدم الحقيقي للتطبيق، ويتم رؤية هل يقوم التطبيق بأداء الوظائف المحددة أو عرض الرسائل المتوقعة عند القيام بعملية معينة. عندما يكون لديك كود مشروع صغير (مثل أغلب المشاريع التي يتم تدريسها في الدورات)، ويكون العمل عليه من طرف شخص واحد فقط. فقد تشعر بأن إنشاء أكواد اختبار لتطبيقك سيكون مضيعة للوقت بلا فائدة. لكن في المشاريع الحقيقية التي تلبي حاجيات مئات أو آلاف المستخدمين، فهذه ضرورة ملحة. لأن الاستمرار بالعمل على المشروع من طرف عدد من المطورين في نفس الوقت سوف يؤدي بكل تأكيد إلى حصول أخطاء في أماكن غير متوقعة حتى لو كانت تلك الأماكن لم يتم التعديل عليها بشكل مباشر. لأن في المشاريع الكبيرة تكون الأجزاء مترابطة بشكل كبير وأي سهو في مكان معين يؤدي إلى ظهور مشاكل في أماكن أخرى. لذلك، فإن من وسائل اكتشاف الأخطاء مبكرا هي كتابة مثل هذه الاختبارات وإعادة تشغيلها في كل مرة يتم فيها أي تعديل على الكود. تشغيل الاختبارات يمكن أن يتم تلقائيا، وهذا ما يعرف باسم التكامل المستمر (Continuous Integration). يمكنك الاطلاع حول المزيد من المعلومات حول التكامل المستمر والنشر المستمر (Continuous Delivery) في هذا المقالات:
  7. وعليكم السلام، التعلم العميق أو التعلم الآلي كلاهما لا يعملان في الحقيقة إلا على الأعداد. فما يقوم به النموذج في الداخل هو ضرب أعداد في أعداد، وتعديل أعداد بالنسبة لقيمة أعداد أخرى، وهكذا. لذلك، فأي نوع بيانات مختلف عن الأعداد يجب أن يتم تحويله إلى أعداد. لذلك، أوّل خطوة هي دائما ما يسمى بالمعالجة القبلية (Preprocessing) التي فيها يتم تحويل البيانات الطبيعية إلى بيانات عددية. المعالجة القبلية ليست شيئا خاصا بالصورة والصوت، بل تشمل حتى النصوص أيضا لأن نماذج تعلم الآلة لا تستطيع قراءة النصوص أيضا. بل في بعض الأحيان نحتاج للقيام بالمعالجة القبلية حتى عندما تكون البيانات أعدادا. فمثلا، إن كان عندنا في بياناتنا عمود يمثل سنة الميلاد، وبجانبه عمود يمثل طول الشخص، فهذان العمودان يحتاجان أولا للتحويل إلى قيم متشابهة، وإلا فقد لن يتم التعلم بشكل صحيح. لذلك نحاول دائما أن نجعل القيم بين 0 و 1 لكل الأعمدة، وهذا ما يعرف باسم التطبيع (Normalization). توجد تقنيات مختلفة للمعالجة القبلية، وهذا يعتمد على نوع البيانات وعلى قدرات النموذج. فمثلا، إن أردنا إدخال صورة إلى نموذج تعلم آلة يستقبل بيانات عددية على شكل مصفوفة، فما يمكننا فعله هو تفكيك الصورة إلى مصفوفات حسب عرضها width (أو ارتفاعها height) ثم ربط هذه المصفوفات خلف بعضها (Concatenation) حتى تصبح مصفوفة طويلة واحدة. يعني الصورة التي أبعادها 32 * 32، تتحول إلى مصفوفة طولها 1024، حيث كل خانة من هذه المصفوفة تحوي قيمة البكسل الموافق. بالإضافة إلى ذلك، قيم البكسلات تكون من 0 إلى 255، وبما أننا نفضل دائما أن تكون القيم بين 0 و 1، فقد نقوم أيضا بعملية التطبيع لتحويلها إلى القيم المناسبة. للمزيد من المعلومات حول كيفية التعامل مع الصور في نماذج تعلم الآلة، يمكنك الإطلاع على الدليل التالي من موقع Scikit-learn، والتي هي مكتبة تعلم آلي وليست مكتبة تعلم عميق: https://scikit-learn.org/stable/auto_examples/classification/plot_digits_classification.html
  8. وعليكم السلام، لا يوجد تلازم بين استخدام لغة برمجة سهلة مثل Python وكون المبرمج ضعيفا. فهناك ملايين المطورين حول العالم يستخدمون هذه اللغة، وبعضهم قام بإنشاء مشاريع ضخمة يستخدمها الآلاف، وهم ليسوا مبرمجين ضعفاء. في بداية التعلم، يستحسن أن لا تكثر من استخدام المكتبات الجاهزة، بل يجب أن تحاول القيام بأقصى ما تستطيع بنفسك. لكن بعدما تصل إلى مستوى متقدم وتبدأ في إنجاز مشاريع للاستخدام الواقعي، فهنا وفرة المكتبات الجاهزة تصبح نقطة قوة كبيرة في لغة البرمجة، إذ أنك لن تضطر إلى "إعادة اختراع العجلة" في كل مرة. فمثلا، إذا كان لديك برنامج يتعامل مع قواعد البيانات العلائقية، فسيكون من الأحسن استخدام مكتبة توفر واجهة ORM لتسهيل التعامل مع قاعدة البيانات، بدل كتابة كود SQL بشكل يدوي، فهذا سيجعل الكود أكثر قابلية للفهم وأبسط من ناحية التعديل وأكثر تحصينا ضد هجمات حقن SQL. بالمناسبة، حتى لغة C / C++ لديها مكتبات كثيرة. وبعض مكتبات Python كانت بالأصل مكتبات C++ وتم ربطها مع Python. كمثال على هذا يمكن أن ترى مكتبات رسم واجهات المستخدم مثل Qt التي تم ربطها مع Python في مشروعي PyQt و PySide.
  9. لا يوجد جواب دقيق ولا يمكن أن يوجد. السبب أن الصفحة في تطبيق ويب ليست صفحة نصية مثل صفحات ملف PDF. الصفحة تتفاعل مع كود الواجهة الخلفية، وقد يكون فيها وظائف معقدة، وقد يكون فيها تحريكات (Animations) مميزة، وهذا كله يزيد في تعقيد الصفحة، كما أن الصفحات في كثير من الأحيان تكون مرتبطة ببعضها البعض، وتغيير في واحدة يؤثر على الصفحات الأخرى. لذلك هناك كثير من المتغيرات كما ترى. فلا يمكن أن نحسب "الزمن المتوسط للمبرمجين" في إنشاء الصفحات. إذا كنت تتوقع أنه بإمكانك إنجاز المطلوب بين يومين أو 7 أيام، فربما من الأحسن أن تقول 5 أيام، أو حتى 7 أيام، لكي تعطي لنفسك الوقت الكافي. وهذا في حالة ما لم يكن العميل مستعجلا. وإلا فحاول إنجاز العمل في أقرب الآجال.
  10. وعليكم السلام، إذا لم تكن باحثا في الذكاء الاصطناعي، فهذا ليس اختصاصك، لأن تطوير المعادلات شيء معقد، ومعظم ما سيأتي في بالك من تطويرات ستجد أن هناك من سبقك وقام بها على أغلب الظن. لذلك، فالنماذج الموجودة في مكتبات تعلم الآلة هي أكثر النماذج التي تمت مراجعتها ويمكنك أن تضمن أنها تعمل بشكل صحيح ويمكنك الاعتماد عليها. بينما لو طورت نموذجا خاصا بك فهناك احتمالية كبيرة في أن تقع في خطأ ما ويتسبب في إعطائك نتائج خاطئة يصعب إصلاحها. عندما تفهم كيف تعمل نماذج الآلة على الأمثلة التي تدرسها، يمكنك بعدها تطبيقها على مواضيع مختلفة لم يتم تدريسها، وقد يكون بعضها جديدا كليا لم يقم به أحد من قبلك. وهذا ممكن جدا، لأن المواضيع تختلف باختلاف الأماكن والأزمنة. فقد يكون هناك مشكل محدد في بلادك لا يوجد في البلدان الأخرى، وهنا يمكنك البحث عن كيفية الحصول على المعلومات اللازمة من بلادك، ثم معالجتها واستخدامها في نموذج تعلم آلة لحل ذلك المشكل. وربما تتمكن بعدها من نشر هذا النموذج كخدمة مدفوعة، أو شيء مشابه. هذا يعتبر إبداعا في المجال.
  11. وعليكم السلام، في مجال تعلم الآلة سوف تجد أن معظم الوقت يذهب في الجزء النظري والتفكير في الحل، وليس في كتابة الحل. عندما تكون عندك بيانات، فسوف تحتاج إلى معرفة ما هي المدخلات وما هي المخرجات، وكيف تقوم بتحويل المدخلات لتناسب النموذج، وما هو النموذج المختار وما هي إعداداه وكيف يعمل، وكيف تقوم بتقسيم البينات وما الذي تستخدمه للتدريب وما الذي تبقيه للاختبار، وكيف تحسب جودة النموذج. كل هذا عندما يتم تحويله إلى كود بالشكل الصحيح وعند استخدام مكتبة جيدة مثل Scikit-learn سوف ترى أنك قد تستطيع كتابته أحيانا في 10 سطور! مما يجعل قارئ تلك السطور يظن أن البرنامج بسيط. لكن الوصول إلى تلك 10 سطور يتطلب فهما عميقا يحتاج إلى ساعات أو أيام من العمل.
  12. وعليكم السلام، حسب تعريف خوارزمية Naive Bayes، فإنها تحسب احتمالية كل صنف استنادا إلى قيمة البيانات المدخلة، ثم تختار الصنف الذي يحقق أكبر احتمالية. وبما أن الاحتماليات مربوطة بالأصناف الممكنة، فإننا بالضرورة نتحدث عن مشكل فيه أصناف معروفة ومحددة مسبقا، أي أننا في مشكل من نوع Classification بكل تأكيد. لذلك فالجواب هو نعم، Naive Bayes خاصة بالـClassification. الخوارزميات التي تستخدم في الـRegression هي الخوارزميات التي تستطيع إخراج قيم عددية، مثل Logistic Regression.
  13. وعليكم السلام، الهدف في كل المشاريع (ومنها مشاريع الذكاء الاصطناعي وتعلم الآلة) يجب أن يتم وضعه قبل بداية المشروع وليس عند الانتهاء منه! هذا أمر لا يتعلق بالبرمجة ولا التقنيات، إنما هو مبدأ عام في الحياة. في فترة التعلم يجب أن تقوم بمشاريع حتى وإن كنت لن تستفيد منها بشكل مباشرة، فالهدف في البداية هو فقط التدريب. ولذلك ترى أغلب المشاريع الموجهة للمبتدئين في البرمجة عبارة عن Todo app أو Blog أو شيء من هذا القبيل. على الرغم من أنه لدينا الملايير من هذه المشاريع، إلّا أنه يستمر العمل بها من أجل التعليم. لكن عندما تنتهي من الدراسة الأساسية وتريد الدخول إلى العمل الحقيقي، فهنا يجب أن تقوم بإنشاء شيء مختلف له فائدة حقيقية. لذلك، ينطبق نفس المبدأ على مشاريع تعلم الآلة. عليك تحديد الهدف الذي تريد الوصول إليه، بعد ذلك العمل على إنشاء نماذج تساعدك في تحقيقه. فمثلا، إن كان المطلوب إنشاء موقع للتنبؤ بالروابط التي تبدو احتيالية (هذا مشروع عُرض علي وقمت به)، فهنا سوف تعمل على إنشاء نماذج تعمل على النص وتحاول تدريبها انطلاقا من مجموعة بيانات تحوي هذه الروابط، ثم دمج هذا النموذج في الموقع المطلوب إنشاؤه لكي يستخدمه الأشخاص الآخرون. كما ترى، الهدف كان واضحا منذ البداية، ثم قمنا بالعمل استنادا إلى المطلوب.
  14. بما أنك تستخدم برنامج Postman، فأسهل طريقة لفعل ذلك هي جعل البرنامج نفسه يولد لك الكود اللازم! أولا، إضغط على أيقونة توليد الكود: بعد ذلك اختر من قائمة لغات البرمجة والمكتبات خيار: Node.js - Axios والآن يمكنك نسخ الكود الظاهر واستخدامه في مشروعك بكل بساطة.
  15. وعليكم السلام، على العموم، كلما كان لدينا بيانات أكثر كلما كان ذلك أحسن. حتى إذا كنا لن نستخدم معظم البيانات الكثيرة في تدريب النموذج، فسوف نتركها كبيانات اختبار ونستخدمها للتحقق من جودة تعلمه. لكن يجب عدم إغفال نقطة مهمة وهي توازن البيانات (Data balance)، أي أن البيانات يجب أن تكون موزعة بشكل شبه متساوي على مجال الاحتمالات الممكنة، إذا لم يكن ذلك هو الحال، فقد نقع في خطأ في تقدير جودة النموذج. فمثلا، لو كانت لدينا بيانات حول العمليات البنكية، بحيث أن 97% من العمليات قانونية و 3% فقط غير قانونية، فإذا قمنا بتدريب نموذج لاكتشاف العمليات غير القانونية، وكان هذا النموذج يجيب في كل الأحوال بأن العملية قانونية، فهنا النموذج سوف يكون صحيحا في 97% من الحالات، لكن في الواقع، هذا النموذج لا يقوم بفعل شيء! في هذه الأحوال، لا ينفع تكثير البيانات مع الاستمرار على هذا الحال، فلو كانت عندنا الملايين من هذه البيانات، وكانت دائما النسبة 97%-3%، فسوف نحصل على نفس الخطأ. إحدى الحلول في مثل هذه الحالة هي تقليل البيانات الزائدة حتى تصبح النسب متكافئة. فيمكن التقليل من البيانات التي تمثل العمليات القانونية حتى تصبح نسبتها إلى المجموع 50% فقط. وعندها يمكننا أن ندرب النموذج بشكل متوازن، بحيث تكون نصف البيانات التي رآها قانونية ونصفها الآخر عكس ذلك، وعندئذ سوف يتعلم بشكل صحيح.
  16. النصائح العامة لإتقان أساسيات البرمجة: التطبيق عبر كتابة الكود عند مشاهدة كل درس وعم الاكتفاء أبدا بالمشاهدة، فلا توجد معلومة يمكن أن تثبت بدون تطبيق. عدم نسخ الأكواد أو تحميل أكواد جاهزة عندما يكون الشخص مبتدئا، فهذا لا يساعد في التعلم مطلقا. بل يجب أن يقوم الطالب بكتابة الأكواد بنفسه. محاولة حل المشاكل التي يقع فيها الطالب بنفسه قبل طلب المساعدة، وحتى بعد الحصول على المساعدة، فيفترض بالطالب أن يفهم أين كان خطؤه، ولماذا يعمل التصحيح الذي اقترحه المدرب المساعد، وإذا لم يستطع، فيفترض أن يسأل المدرب المساعد ما الفرق بين حله وبين محاولة الطالب، حتى يستطيع التعلم بشكل صحيح. محاولة عدم استنساخ ما كتبه المدرس بشكل مطابق، بل يفترض أن يحاول الطالب التغيير قليلا على ما يكتبه المدرب ورؤية ما الذي يحصل عند التغيير. هذا سيوقع الطالب في أخطاء لا محالة، لكن الوقوع في الأخطاء وتصحيحها لاحقا هو من أحد أهم الطرق في التعلم. أما بالنسبة للتمارين، فعادة ما تكون مضمنة في نهاية الدرس أو أثنائه. ففي كثير من الأحيان يسأل المدرب سؤالا قبل أن يجيب عليه، فعندها يمكنك إيقاف الفيديو والتفكير والمحاولة فيه قبل مشاهدة الحل. كما يمكنك طلب المزيد من التمارين في قسم التعليقات الموجود أسفل كل درس، وسوف يقوم المدربون المساعدون باقتراح تمارين ومساعدتك في حلها. يمكنك الإطلاع على الأجوبة الموجودة هنا، لأن هذا السؤال متكرر وقد تمت الإجابة عليه من طرف مدربين آخرين عدة مرات، منها هنا:
  17. لقد سبق أن أجابك المدربون على هذا السؤال سابقا هنا: لذلك نرجو عدم التكرار.
  18. إذا كان كل ما تريده هو حذف جميع الفراغات من محتوى نصي (يمكن أن يكون CSS أو أي نص آخر)، فيمكن ببساطة استخدام التعابير النمطية (Regular Expressions) على النص الذي يدخله المستخدم. لإنشاء تعبير نمطي يطابق المحارف المكافئة للفراغ (المسافة البيضاء، الجدولة، ومحرف خاص آخر نادر الاستعمال)، يمكن كتابة هذا التعبير النمطي: /[ \t\f]/g يمكن استخدام هذا التعبير النمطي في الدالة replace من String التي تعيد نسخة من النص بعد استبدال ما يطابق التعبير النمطي بمحتوى فارغ: const formattedCSS = cssTextArea.value.replace(/[ \t\f]/g, ""); حيث cssTextArea هو عنصر <textarea> يقوم المستخدم بإدخال الكود فيه. النتيجة الآن موجودة في formattedCSS ويمكن عرضها على المستخدم. لقد قمت بإنشاء ملف HTML فيه هذا الكود وهو يقوم بالمطلوب. أتركه لك في المرفقات. formatCSS.html
  19. الكلمة المفتاحية not في لغة Python تستخدم لعكس قيمة منطقية. هذا يعني أن: not True == False not False == True كما تستخدم لعكس وظيفة الكلمة المفتاحية in، لذلك فإن: 2 in [1, 2, 3, 4] == True 2 not in [1, 2, 3, 4] == False لذلك، ففائدة الكلمة not ليست مقتصرة على الكود الذي ذكرته. ففيه يمكن أن تستخدم else لتحقيق عكس الشرط، لأن الشرط لا يستخدم not in. لكن في بعض الأكواد الأخرى، قد يكون من المنظقي أكثر أن يتم استخدام not in للتأكد من أن قيمة غير موجودة، ولا يتم استخدام else مطلقا. فمثلا، إذا أردنا كتابة كود يقوم بإدراج قيم في قائمة فقط إذا لم تكن موجودة بمن قبل، فهنا سوف نستخدم not in بكل تأكيد: values = [] for i in range(10): v = input('Enter a value: ') if v not in values: values.append(v) print(values) لاحظ كيف أننا هنا لم نستخدم else واستخدمنا not in. لو حاولنا عدم استخدام not in فسوف يصبح الكود هكذا: values = [] for i in range(10): v = input('Enter a value: ') if v in values: continue else: values.append(v) print(values) وكما ترى، زاد طول الكود بدون فائدة واضطررنا إلى استخدام continue بدون سبب.
  20. أهلا، يوفر فريق المدربين في أكاديمية حسوب مساعدة في حل مشاكل البرمجة، بما في ذلك التي تتعلق بعلوم البيانات وتعلم الآلة، بشرط أن يقوم الطالب بالمحاولة وعرض ما وصل إليه. كما يجيبون عن الاستفسارات العامة المتعلقة بالمجالات المختلفة وتوجيهات التعلم. لكن الشيء الذي لا يتم الإجابة عنه هو الأسئلة المباشرة المتعلقة بالامتحانات التي يريد فيها الطالب جوابا مباشرا بدون أن يقوم بشيء من جانبه. توفر أكاديمية حسوب أيضا دروسا ومقالات كثيرة تتعلق بالبرمجة وبعضها يتعلق بعلوم البيانات وتعلم الآلة، كما توفر كتبا مجانية في هذا المجال، منها هذان الكتابان: ومن أجل دراسة منهجية أكثر ومتابعة تطبيقية مع المدربين مع أولوية في الإجابة على كل الأسئلة، يمكنك الاطلاع على دورة الذكاء الاصطناعي من أكاديمية حسوب: https://academy.hsoub.com/learn/artificial-intelligence/
  21. هل تريد استخدام برنامج Nmap؟ الأمر nc تابع لهذا البرنامج. إذا كان الأمر كذلك، فيجب عليك تنزيله من الموقع الرسمي وتثبيته على نظامك. صفحة التنزيل: https://nmap.org/download.html#windows يمكنك تنزيل ما يسمى بـLatest stable release self-installer فهو أسهل طريقة لتثبيت البرنامج. أثناء تثبيت البرنامج لا تنس تحديد خيارين Ncat و Register Nmap Path، فهذان الخياران مهمان جدا لكي لا يحصل عندك هذا الخطأ. للمزيد من المعلومات حول التثبيت يمكنك قراءة هذا المقال: https://blog.eldernode.com/download-and-install-netcat-on-windows/
  22. نعم توجد العديد من الاستضافات المجانية على الويب ولكن الأمر يعتمد على لغة البرمجة أو إطار العمل الذي تستخدمه. بما أني لا أعلم ما هي لغةالبرمجة التي استخدمتها، فسوف أرشح لك استضافة Render لأنها تدعم معظم لغات البرمجة وأطر العمل الحديثة المتعلقة بالويب (Python, JavaScript, Go, Ruby, Elixir, Rust)، كما يمكنها أن تدعم أي شيء آخر عن طريق Docker أيضا. يمكنك الإطلاع على الخيارات المدعومة مع كيفية نشر المشاريع من هنا: https://docs.render.com/ بالنسبة للخطة المجانية، يمكنك رفع موقع ديناميكي وملفات ثابتة وقاعدة بيانات Postgres محدودة. يمكنك الإطلاع على الأسعار من هنا: https://render.com/pricing#compute
  23. لاحظ أن وسم <script> عندك موجود بعد علامة إغلاق </body>، وهذا شيء خاطئ. المتصفح لا يقوم بتشغيل أي شيء خارج <body>. لذلك، يرجى إدخال <script> في المكان المناسب: <body> <!-- ....محتوى الصفحة --> <script> // ...محتوى السكربت </script> </body>
  24. إذا كان المقصود هو أنه لا يستطيع أي أحد أن ينشئ موقعا مشابها له، فهذا مستحيل من الناحية التقنية. يمكن لأي شخص بخبرة جيدة أن يقلد شكل أي موقع آخر، خصوصا أن الشفرة المصدرية للواجهة الأمامية للمواقع يمكن الإطلاع عليها من خلال المتصفح. تقليد المواقع أمر شائع مثلا في عمليات النصب والاحتيال، حيث يقوم المهاجم بإنشاء صفحات تسجيل دخول تشبه صفحات المواقع المشهورة من أجل أن يقوم بخداع المستخدمين وجعلهم يدخلون كلمات سرهم في موقعه بدل الموقع الأصلي. الإجراءات هنا قانونية بحتة ولا يوجد ما يتعلق بالبرمجة هنا. لذلك يجب التواصل مع محامي لسؤاله في هذا الأمر.
  25. وعليكم السلام، أولا، إذا كنت قد اشتريتِ أي دورة من الدورات، فسوف يظهر لك رابط جديد في شريط العناوين، يسمى "دوراتي"، من خلاله يمكنك الوصول إلى الدورات التي اشتركتِ فيها. تجدين المزيد من المعلومات حول كيفية الوصول إلى الدورات هنا: https://support.academy.hsoub.com/access-to-courses أثناء متابعة الدروس (الفيديوهات) في أي دورة، قد تواجهك تساؤلات أو مشاكل. بالنسبة لكل ما يتعلق بالدرس، يمكنك طرحه في قسم التعليقات الموجود أسفل كل درس، وسوف يقوم فريق من المدربين بالإجابة على أية أسئلة تطرحينها هناك. للمزيد من المعلومات حول هذا الأمر، يمكنك الإطلاع على هذه الصفحة: https://support.academy.hsoub.com/how-to-ask-in-courses أثناء متابعة الدروس، سيكون من الواجب عليك التطبيق مثل المدرس، وليس مجرد المشاهدة. فالمشاهدة ليس طريقة كافية للتعليم. أثناء التطبيق خلف المدرس، يمكنك التعديل على العمل وليس نسخ ما يكتبه تماما، فهذا سوف يعمق فهمك للدرس. يجب عليك أيضا الاحتفاظ بالملفات التطبيقية التي تنشئينها أثناء متابعة الدروس، لأن هذا من شروط التقدم للامتحان النهائي. أما بخصوص الحصول على الشهادة، فهناك عدة شروط يجب أن تتحقق قبلها. بالإضافة إلى احتفاظك بالملفات المذكورة وعرضها فيما بعد للإدارة، فالشروط الأخرى هي: إتمام دراسة 4 مسارات على الأقل في الدورة التي اخترتها. بالنسبة للطلبة الذين لديهم معرفة سابقة بالمجال، فقد يريدون تجاوز بعض المسارات لكي يربحوا الوقت، ولهذا لا تفرض الإدارة سوى إتمام 4 مسارات من مجموع الدورة. لكن بالنسبة للطلبة المبتدئين الذين لا خبرة لهم في المجال، فهنا لا ينصح بقفز المسارات بل من المستحسن إتمام الدورة بكل دروسها. رفع المشاريع التي تم إنجازها خلف المدرس على GitHub (لا تقلقي إذا لم تعرفي ما هو GitHub، لأنه يتم تدريس هذا في الدورات أيضا). التواصل مع الإدارة لطلب التقدم إلى الامتحان، وانتظار رد الإدارة لتحديد الموعد. الامتحان النهائي سيكون على قسمين، أولا أن تتم محادثة صوتية مع أحد المدرسين لكي يتأكد من فهمك ومتابعتك الجيدة للدروس. وثانيا يقوم بطرح مشروع تخرج عليك وسيكون مشروعا برمجيا حقيقيا وليس ورقة أسئلة. سيكون عليك القيام به في المدة التي يحددها لك المدرس. لمزيد من التفاصيل يمكنك الإطلاع على هذه الصفحة: https://support.academy.hsoub.com/exams
×
×
  • أضف...