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

Sam Ahw

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

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

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

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

    16

إجابات الأسئلة

  1. إجابة Sam Ahw سؤال في طريقة رسم ثلاث أهرامات بلغة ++C كانت الإجابة المقبولة   
    يمكنك الاعتماد فقط على الحلقات التكرارية وكتابة الشيفرة المبسطة التالية:
    #include <iostream> using namespace std; void drawPyramid(int height) { for (int i = 1; i <= height; i++) { for (int j = 1; j <= height - i; j++) { cout << " "; } for (int j = 1; j <= 2 * i - 1; j++) { cout << "*"; } cout << " "; } cout << endl; } int main() { int pyramidHeight = 5; // لرسم الأهرامات بجانب بعضها فقط نستدعي التابع السابق حسب الطول for (int i = 1; i <= pyramidHeight; i++) { drawPyramid(i); } return 0; } ويمكنك التحكّم بطول كل عنصر من خلال المتغيّر height، ستكون النتيجة بالشكل التالي:
    * * * *** *** *** ***** ***** ***** ******* ******* ******* ********* ********* *********  
  2. إجابة Sam Ahw سؤال في تحويل قائمة dict إلى single dict بمفتاحها وقيمتها في django كانت الإجابة المقبولة   
    يمكنك إنشاء حلقة تكرارية للمرور على العناصر، وفي حال كان المفتاح غير موجوداً في المتغيّر الهدف يتم إضافة زوج key-value كعنصر جديد أما في حال كان موجود مسبقاً يتم إضافة الزوج للعنصر الموجود بالشكل التالي:
    data = [{ "January": {"China": 6569.4, "Japan": 49448.61,"Norway": 28000.0,"Poland": 3525.427,"Singapore": 33190.231851,"United States": 25976.4,"Taiwan": 15363.884885}}, {"February": {"Japan": 2540.32,"Poland": 14750.0,"Singapore": 16044.473973}}] result = {} for d in data: for k, v in d.items(): if k not in result: result[k] = v else: result[k].update(v) أو يمكنك اختصار الشيفرة السابقو تنفيذها كالتالي:
    data = [{ "January": {"China": 6569.4, "Japan": 49448.61,"Norway": 28000.0,"Poland": 3525.427,"Singapore": 33190.231851,"United States": 25976.4,"Taiwan": 15363.884885}}, {"February": {"Japan": 2540.32,"Poland": 14750.0,"Singapore": 16044.473973}}] result = {k: v for d in data for k, v in d.items()} for k, v in result.items(): if isinstance(v, dict): result[k] = {**result[k], **v} print(result) والنتيجة:
    {'January': {'China': 6569.4, 'Japan': 49448.61, 'Norway': 28000.0, 'Poland': 3525.427, 'Singapore': 33190.231851, 'United States': 25976.4, 'Taiwan': 15363.884885}, 'February': {'Japan': 2540.32, 'Poland': 14750.0, 'Singapore': 16044.473973}}
  3. إجابة Sam Ahw سؤال في ربط سيرفر ابنتو مع دومين قودادي كانت الإجابة المقبولة   
    يجب عليك تثبيت خادم ويب مثل Nginx أو Apache وربط مسار المجلّد الذي يحوي على ملفات موقعك ضمن إعدادات خادم الويب.
    ثم من إعدادات DNS يجب عليك إضافة عنوان IP Address الخاص بالخادم ليتم ربط اسم النطاق بشكل صحيح.
    يمكنك إيجاد خطوات مفصّلة عن طرق تحميل وإعداد خادم الويب من خلال إجراء بحث بسيط على الانترنت حسب نوع الخادم الذي ترغب بالتعامل معه.
  4. إجابة Sam Ahw سؤال في اشتراك الدورات كانت الإجابة المقبولة   
    عند اشتراكك بإحدى دورات حسوب، ستحصل على وصول لأول مسار من بقية الدورات بشكل مجاني لتتعرف على محتواها، وبعد ذلك يمكنك الاشتراك بدورة ثانية في حال أردت إكمال المسارات في هذه الدورة الجديدة.
    يمكنك الحصول على المزيد من التفاصيل حول الدورات وإن كان لديك أي سؤال من مركز المساعدة من هنا
  5. إجابة Sam Ahw سؤال في كيف احقق اكبر performance في React js كانت الإجابة المقبولة   
    يوجد بعض النقاط الأساسية التي يمكنك الانتباه لها لتحسين أداء تطبيقات React:
    1- State management: في حال كنت تستخدم Context API أو غيرها قد يؤدي الأمر إلى إعادة عرض كامل الصفحة أو الواجهة عند كل تغيير. لذلك يجب عليك محاولة فصل العناصر قدر المستطاع وتحديد الحالة المراد تحديثها.
    2- عدد كبير من العناصر الأبناء التابعة لعنصر واحد: عند تحديث حالة المتغيرات في شجرة DOM ووجود عدد كبير من العناصر أيضاً سيبطئ من الأداء لذا عليك البحث عن طرق استخدام React.memo.
    3- وجود العديد من الأحداث ضمن واجهة العرض: في حال كان لديك العديد من الأحداث التي يتم الاستماع لها ضمن واجهة واحدة سيؤدي ذلك أيضاً إلى بطئ تحميل وتحديث العناصر، لذا يمكنك اللجوء إلى استخدام infinity scroll أو تحميل العناصر فقط ضمن الجزء الظاهر للمستخدم.
    بعض النصائح لتحسين الاداء:
    1- استخدام Stateless Components والابتعاد عن تحديث الحالة بشكل عام ضمن المكونات الكبيرة.
    2- استخدام Webpack أو مايشابهه عند نشر المشروع لضغظ الملفات وتحضيرها لبيئة النشر.
    3- اعتماد "Dependency optimization" ومحاولة الاستغناء عن المكتبات الكبيرة الحجم قدر المستطاع.
    4- الابتعاد عن اعتبار Index كمعرّف فريد في الحلقات، لمنع تكرار القيم بين عناصر الواجهة الواحدة.
    وأخيراً، يمكنك الاعتماد على نافذة المطوّر في المتصفح أثناء التطوير ومراقبة الأداء والوقت اللازم لتحميل وإظهار العناصر في كل مكوّن أو واجهة والعمل على تحديد النقاط على تؤثر على الأداء وتحسينها.
    كما يمكنك قراءة المزيد من التفاصيل من توثيق مكتبة React الرسمي في قسم "Optimizing Performance" أو باللغة العربية في ويكي حسوب: https://wiki.hsoub.com/React/optimizing_performance
  6. إجابة Sam Ahw سؤال في ‏ما الذي يفعله كود ()exit كانت الإجابة المقبولة   
    يجب عليك توضيح في أي لغة برمجة تسأل السؤال، في حال كنت تقصد بايثون، يتم استخدام التابع exit لإنهاء تنفيذ البرنامج أو الخروج من التنفيذ في وقت أقرب من المتوقع أي قبل نهاية التنفيذ الافتراضية المتوقعة دون مشاكل، بحيث يمكنك استخدامها مع إضافة قيم للمتغيرات أيضاً وعرض رسالة عند الخروج وإنهاء تنفيذ الشيفرة البرمجية.
    يمكنك الاطلاع على الإجابات التالية ضمن أكاديمية حسوب:
     
  7. إجابة Sam Ahw سؤال في Sankey Diagram with javascript كانت الإجابة المقبولة   
    نعم يمكن استخدام الجافاسكريبت لذلك، بحيث يتم استخدام العنصر canvas في HTML كحاوية للرسومات التي يتم إنشائها والتحكم بها من خلال الجافاسكريبت وتتيح لك رسم النقاط والخطوط وجميع الأشكال الهندسية دائرة، مربع، مستطيل،..إلخ أو أي شكل هندسي آخر تبعاً لإحداثيات النقاط والوصل فيما بينها. مثال:
    <canvas id="myCanvas" width="200" height="100"></canvas> <script> var c = document.getElementById("myCanvas"); var ctx = c.getContext("2d"); ctx.moveTo(0, 0); ctx.lineTo(200, 100); ctx.stroke(); </script> بحيث تبدأ الإحداثيات من أعلى اليسار، وعند الرسم يتم استخدام التوابع المتاحة في جافاسكريبت لتحريك نقطة البداية والوصل بين هذه النقاط على شكل خطوط وأشكال هندسية.
    يمكنك الاطلاع أكثر على canvas والتوابع الرسومية المتاحة من خلال البحث على الانترنت. ويوجد أيضاً بعض الطرق الأخرى للرسم من خلال استخدام عنصر SVG أو مكتبات إضافية متاحة للتعامل مع الرسوم والتحريك.
    شرح عن العنصر canvas في ويكي حسوب: https://wiki.hsoub.com/HTML/canvas
    مقال مفيد عن canvas:
     
  8. إجابة Sam Ahw سؤال في تطوير تطبيقات الموبايل كانت الإجابة المقبولة   
    لغة البرمجة بايثون ليست مصممة بشكل افتراضي لدعم تطبيقات الهاتف الجوال، ولاستخدامها في تطوير تطبيقات الجوال يجب إضافة بعض المكتبات والأدوات المساعدة مثل kivy و pyQt وغيرها. إنما دورها الأكبر عند تطوير تطبيقات الهاتف الجوال يكون من جانب الخادم.
    أما الجافاسكريبت فهي حتماً خيار أفضل كونها شاملة وتتيح جميع الأدوات اللازمة لبناء الواجهات الرسومية في حال اخترت إطار العمل react native المبني بلغة جافاسكريبت. وأيضاً من طرف الخادم يمكن استخدامها من خلال node.js وبالتالي تتيح لك توحيد لغة البرمجة على الطرفين دون الحاجة لاستخدام لغات برمجة ونظم مختلفة.
    يمكنك التعرّف أكثر على أنواع التطبيقات من خلال المقالات التالية:
     
  9. إجابة Sam Ahw سؤال في هل يمكن تحويل برنامج يعمل علي الديسك توب الي موقع الكتروني كانت الإجابة المقبولة   
    بشكل عام ليس كل برنامج يعمل على جهاز الكمبيوتر يمكن تحويله لموقع ويب، فموقع ويب يعني أنه سيعمل ضمن متصفح الويب مثل Chrome أو Firefox أو غيرها من المتصفحات، وبالتالي يستطيع فقط تنفيذ المهام والخصائص التي تدعمها هذه المتصفحات كما أنه يوجد أيضاً حدود معيّنة لاستخدام الذاكرة والتخزين المحلي وغيره من الأمور التي يجب أخذها بعين الاعتبار.
    أما بالنسبة لتطبيقات جهاز الكمبيوتر، فهي حتماً ستكون أسرع وأكثر دقة وفعالية في تنفيذ مهامها خصوصاً بالنسبة للبرامج الضخمة المليئة بالخصائص مثل OBS والتي تحتاج أيضاً موارد كبيرة مثل المعالج والذاكرة العشوائية والتخزين،...إلخ.
    يمكن ربمّا إضافة بعض الخصائص من البرنامج والتي يمكنك معالجتها في خادم الويب مثل تقنيات قص ومعالجة الفيديو أو تسجيل الشاشة ضمن المتصفح إن أمكن، ولكن حتماً ستواجه بعض العوائق التي تتطلب الموارد التي ذكرتها. ربما مع تطور المتصفحات المستمر قد نصل قريباً لمرحلة تمكنك من إضافة المزيد من هذه الخصائص إلى أي تطبيق ويب.
  10. إجابة Sam Ahw سؤال في كيف يتم حقن بيانات الجدول هنا باستعمال الدالة map? كانت الإجابة المقبولة   
    أي جزء غير واضح تحديداً بالنسبة لك؟ الدالة map هي دالة في لغة جافاسكريبت يتم تنفيذها على المصفوفات كنوع من الحلقات التكرارية بحيث تسمح لنا تنفيذ بعض الشيفرات البرمجية بالنسبة لكل عنصر من عناصر هذه المصفوفة.
    وهنا في المثال لديك، يتم استخدامها على المصفوفة tasks بحيث تقوم بإظهار عناصر المصفوفة وعندما يتم إضافة أي عنصر جديد إلى المصفوفة tasks سيتم إظهاره ضمن واجهة المستخدم بما يتوافق مع آلية عمل React.
    لكن يوجد بعض الأخطاء البسيطة في هيكلية الشيفرة البرمجية، بشكل عام يجب وضع الحلقة التكرارية على مستوى عنصر القائمة أي li بدلاً من ul، لأنه من غير المنطقي تكرار القوائم ul كاملة بدلاً من تكرار العناصر فقط. فتصبح كالتالي:
    <div className='list-notes'> <ul className='container-list'> {tasks.map((task)=>{ return ( <li> <h5>{task.text} </h5> <button id='Del'>Delete</button> </li> ) } ) } </ul> </div> مع العلم أنه لن يسبب خطأ برمجي، وإنما سيسهّل عليك فهم الشيفرة البرمجية وترتيبها بشكل منطقي أكثر.
  11. إجابة Sam Ahw سؤال في قراءة ملف الإكسل في لارافل كانت الإجابة المقبولة   
    يمكنك استخدام المكتبة maatwebsite/excel في لارافل لإضافة وتصدير ملفات الاكسل والتعامل مع البيانات الموجودة فيها:
    لتحميل المكتبة:
    composer require maatwebsite/excel ثم نقوم بتسجيل الإضافة:
    <?php 'providers' => [ Maatwebsite\Excel\ExcelServiceProvider::class, ], 'aliases' => [ 'Excel' => Maatwebsite\Excel\Facades\Excel::class, ], ?> وتنفيذ الأمر التالي لنشر التعديلات السابقة:
    php artisan vendor:publish –provider=”Maatwebsite\Excel\ExcelServiceProvider” –tag=config ثم يمكنك إنشاء النموذج حسب نوعية البيانات لسهولة الوصول إليها والتعامل معها:
    php artisan make:import UsersImport --model=User وإضافة خصائص المكتبة للتعامل مع الملفات كالتالي:
    use Maatwebsite\Excel\Concerns\ToModel; use Maatwebsite\Excel\Concerns\WithHeadingRow; class UsersImport implements ToModel, WithHeadingRow { /** * @param array $row * * @return \Illuminate\Database\Eloquent\Model|null */ public function model(array $row) { return new User([ "first_name" => $row['first_name'], --> يمكن استبدال اسماء الأعمدة بأرقام في حال لم يكن المحتوى كجدول: $row[0] "last_name" => $row['last_name'], "email" => $row['email'], .... ]); } } وبعدها يمكنك التعامل مع بيانات النموذج مثل أي بيانات أخرى على مستوى التطبيق، إما يم تخزينها في قاعدة البيانات أو تتم معالجتها وإرسالها لطرف المستخدم من جديد.
    يمكنك قراءة المزيد من التفاصيل من توثيق استخدام المكتبة وإذا بحثت على الانترنت عن: maatwebsite/excel سيظهر لك الموقع الرسمي للمكتبة تحت الاسم laravel-excel.
  12. إجابة Sam Ahw سؤال في مشكلة في ظهور الوسم title في صفحة html كانت الإجابة المقبولة   
    يجب عليك تصحيح اسم الوسم من titel إلى title حتى يتم اعتباره كجزء من ترويسة الصفحة
    <title>Test Title</title>
  13. إجابة Sam Ahw سؤال في أريد شرح لإستعمال separated operator هنا كانت الإجابة المقبولة   
    يتم إضافة كائن Object جديد إلى المصفوفة tasks من خلال استخدام معامل النشر أو (Spread Operator) وهو مفهوم بالجافاسكريبت يعمل على نشر عناصر مصفوفة ما، أي بمعنى آخر يتم إعادة وضع جميع عناصر المصفوفة tasks كما هي وباستخدام الفاصلة والقيمة الجديدة يتم إضافة هذه القيمة إلى القيم السابقة. مثال:
    let numbers = [1,2,3]; let newNumbers = [...numbers,4]; newNumbers = [1,2,3,4] ستكون قيمة المصفوفة الجديدة تساوي قيمة المصفوفة السابقة ويضاف لها الرقم الجديد وبنفس الطريقة يتم دمج عناصر من عدّة مصفوفات بمفصفوفة واحدة، مثال:
    var arr1 = [0, 1, 2]; var arr2 = [3, 4, 5]; arr1 = [...arr1, ...arr2]; الناتج: [0,1,2,3,4,5] يمكنك إيجاد بعض الأمثلة المفيدة ضمن موسوعة حسوب (من هنا)
    أما بالنسبة لآلية عمل useState فهو يعرف بالخطّاف وهو من أساسيات مكتبة React وآلية عمله بشكل مختصر هو تحديث بعض القيم تبعاً لمتغيرات، بحيث يتم إضافة قيمة مبدئية للمتغيّر الذي نرغب بتحديثه (وهنا في مثالنا وضعنا مصفوفة فارغة) ثم يتم تحديثها باستخدام setTasks.
    ويمكنك قراءة المزيد عنها من خلال التوثيق الرسمي والبحث على الانترنت ستجد العديد من الأمثلة الشاملة.
  14. إجابة Sam Ahw سؤال في ليه deleteMany method مش شغاله ؟ كانت الإجابة المقبولة   
    تأكد من أن القيمة الموجودة ضمن نموذج Task لديك هي complated وليس completed وإلا يجب عليك تصحيح الخطأ الإملائي في شرط الحذف.
    من الممكن وجود أخطاء في مكان آخر ولكن لايمكننا مساعدتك إن لم تشارك بقية أجزاء الشيفرات البرمجية في مشروعك
  15. إجابة Sam Ahw سؤال في جافة وشركة اوراكل كانت الإجابة المقبولة   
    شركة Oracle لم تشتري لغة البرمجة جافا بشكل مباشر بمقابل مادي، تم إطلاق لغة البرمجة جافا للمرة الأولى عام 1955 حيث تم إطلاق الإصدار الأول (JDK Alpha and Beta) من قبل مبرمج يدعى "James Gosling" ضمن شركة Sun Microsystems وكان الهدف الأساسي منها السماح للأجهزة الإلكترونية الاستهلاكية بالتواصل مع بعضها البعض. وفيما بعد استحوذت شركة Oracle على شركة  Sun Microsystems عام 2010 مقابل العمل على تطوير التقنيات والترميز وجميع الخصائص ضمن جافا وبالتالي أصبح لها كامل الحقوق. وبعد ذلك باشرت شركة أوراكل بنشر تحديثات دورية بدءً من الإصدار (Java SE).
    يمكنك قراءة كامل التفاصيل حول أصل جافا ومراحل تطورها عبر الزمن وأسماء المطورين حسب المراحل الزمنية إذا أجريت بحث بسيط على الانترنت.
  16. إجابة Sam Ahw سؤال في استفسار بخصوص درس في الدورات كانت الإجابة المقبولة   
    إذا كان سؤالك متعلّق بدروس دورات أكاديمية حسوب، يجب عليك طرح السؤال في التعليقات أسفل الدرس المقصود وسنعمل على مساعدتك وشرح الأفكار الغير مفهومة. أما إن كان السؤال عام وغير متعلّق بمحتوى الدورات يمكنك طرحه هنا ضمن الأسئلة العامة بلغة عربية واضحة مع إرفاق كامل التفاصيل حول المشكلة أو السؤال وتوضيح المشكلة بشكل كامل.
    يمكنك الاطلاع على إرشادات كتابة الأسئلة من هنا: كيف تحصل على إجابة لسؤالك؟
  17. إجابة Sam Ahw سؤال في تسليم المشاريع عند الانتهاء من الدورة كانت الإجابة المقبولة   
    عند حفظ المشاريع لتسليمها يجب أن تكون كاملة حتى يتم تشغيل المشروع وملاحظة النتائج التي طبقتها بالشكل الصحيح، لذلك أقترح عليك أن تأخذ وقتك في إكمال المشاريع وحفظها حتى إن أخذت بعض الوقت لذلك.
    وبالنسبة للأخطاء، يجب عليك تصحيحها للوصول إلى النتيجة النهائية حتى تبيّن أنك استطعت حل المشاكل التي واجهتك وبأنك تمتلك الخبرة اللازمة لتنفيذ المشروع دون أخطاء.
    يمكنك التواصل مع فريق الدعم بأي وقت في حال كان لديك أي أسئلة إضافية عن الدورات والشهادة (من هنا)
  18. إجابة Sam Ahw سؤال في هل بالامكان ربط بطاقة دفع من خلال key و sekret key كانت الإجابة المقبولة   
    لايتم ربط أي بطاقة بشكل مباشر بالموقع بل يتم استخدام مايعرف ببوابات الدفع. وبوابة الدفع الالكتروني هي الوسيط بين الموقع الالكتروني ومعالج الدفع الذي يتلقى المدفوعات من الزبائن وهنا لايوجد محافظ إلا إن كنت تتعامل مع عملات رقمية. والعملية باختصار تتم كالتالي:
    يقوم المستخدم بإدخال بيانات الدفع ليستقبلها الوسيط أو بوابة الدفع ويعالج هذه البيانات لينقل المدفوعات إلى حساب التاجر.
    بعض البنوك توفر طرق مباشرة للربط على مواقع التجارة الالكترونية بحيث تعالج بنفسها عمليات الدفع دون الحاجة للتعامل مع وسيط خارجي أو بوابة دفع خارجية ولكن بجميع الأحوال لا علاقة لعملة البلد باستقبال المدفوعات على الموقع لذلك يمكنك أن ترى المواقع تتيح الدفع بعملة الزبون مهما كانت إنما استقبال هذه العملات يعود للحساب البنكي الذي تتعامل من خلاله وما العملات التي يدعمها.
    أما بالنسبة لربط واجهة برمجة التطبيقات API، فمعظم الحلول ستوفر لك Secret Key و API Key لإمكانية ربطها بأي موقع الكتروني أو إضافات على ووردبريس وهنا يجب عليك التواصل مع فريق الدعم الخاص بهم وقراءة دليل التوثيق لربطها بشكل صحيح على موقعك.
    بالنسبة لبيبال Paypal، فهي توفر طريقة مباشرة للربط بالمواقع الالكترونية واستقبال المدفوعات وأيضاً يوجد بوابات دفع لذلك. يمكنك الاطلاع على كامل التفاصيل من توثيق بيبال أو من موقع بوابة الدفع أو الوسيط الذي تتعامل معه.
    بعض الروابط المفيدة لتتوضح لك الأفكار أكثر:
     
  19. إجابة Sam Ahw سؤال في كيف يمكنني جعل عملية البحث في موقعي شاملة كل الجداول في قاعدة البيانات php sql كانت الإجابة المقبولة   
    عملية البحث بهذه الطريقة ستكون غير فعّالة إطلاقاً، فسيتطلب ذلك دمج كامل الجداول مع بعضها وفي حال كانت الجداول تحوي كميات كبيرة من البيانات سيستغرق وقتاً كبيراً للبحث ضمن كامل البيانات الموجودة في هذه الجداول. ويوجد عدّة طرق لتسهيل هذه العملية من خلال إنشاء فهرس Index خاص بخانة البحث حيث سيسرّع ذلك عملية البحث أو تحديد أعمدة مخصصة تحوي النصوص التي يمكن للمستخدم البحث عنها ضمن عدّة جداول وبعد ذلك ربط هذه الجداول مع بعضها باستخدام العمليات Join، مثال مبسّط:
    select * from table1 where match(col1, col2, col3) against ('search word') union all select * from table2 where match(col1, col2) against ('another word') union all select * from table3 where match(col1, col2, col3, col4) against ('some words') أو يمكنك إعادة بناء هيكلية الجداول لديك وربطها مع بعضها من خلال المفتاح الفريد Primary Key وتخصيص حقل محدد لتكرار القيم المراد البحث عنها ضمن هذه الجداول.
     
  20. إجابة Sam Ahw سؤال في Startup.cs ASP.NET كانت الإجابة المقبولة   
    ملف startup.cs تابع لحزمة التوثيق OWIN وإن لم يكن موجود ضمن مشروعك يوجد قالب يمكن إضافته من خلال مدير الحزم من قسم web يمكنك اختيار OWIN Startup Class والذي بدوره ينتج صف مشابه للتالي:
    using System; using System.Threading.Tasks; using Microsoft.Owin; using Owin; [assembly: OwinStartup(typeof(WebApiOsp.App_Start.Startup))] namespace WebApiOsp.App_Start { public class Startup { public void Configuration(IAppBuilder app) { // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888 } } } ثم يمكنك إضافة الملف startup.cs الخاص بك، وفي حال ظهور مشكلة ولم يستطع قراءة الملف يجب عليك حذف السطر التالي من إعدادات Web.config :
    <add key="owin:AutomaticAppStartup" value="false" />
  21. إجابة Sam Ahw سؤال في هل يتم شرح Git ضمن دورة تطوير واجهات المستخدم؟ كانت الإجابة المقبولة   
    لا يوجد قسم منفصل لذلك بل يوجد دروس ضمن المسارات والمشاريع يتم من خلالها شرح جميع الخطوات اللازمة لتحضير مستودع المشروع على github والتعامل مع git خلال المشاريع العملية التي يتم شرحها ضمن مسارات الدورة، وذلك لضمان الحصول على أكبر استفادة من خلال التطبيق العملي على مشاريع حقيقية وترسيخ الأفكار أكثر عند تطبيقها على مشاريع متعددة.
    كما يمكنك الاطلاع على المصادر بأي وقت والبحث على الانترنت وضمن أكاديمية حسوب فيوجد العديد من المراجع المفيدة وأيضاً يمكنك طرح أي سؤال أو استفسار لديك في التعليقات أسفل الدروس وسيعمل المدربون على مساعدتك بأفضل شكل ممكن.
    القسم الخاص بمقالات Git على أكاديمية حسوب:
    https://academy.hsoub.com/programming/workflow/git/
    بعض المصادر المفيدة:
     
  22. إجابة Sam Ahw سؤال في هل غلط انه شاشة الجوال تشتغل ٥ ساعات متواصلة لغرض معين ؟ كانت الإجابة المقبولة   
    بالنسبة لشاشة الجوال نفسها، فذلك يعود لنوع جهازك ومدى تحملّه للاستخدام المتواصل ولكن بشكل عام لن يؤثر الأمر كثيراً على المدى القصير، فجميع الهواتف الحديثة تم تصميمها بطريقة تتحمل الاستخدام المتواصل لساعات عديدة إنما التأثير الأكبر سيكون على بطارية الجهاز وعمرها الافتراضي.
    أما بالنسبة لاستهلاك الانترنت، فيوجد العديد من الطرق لحظر الانترنت وإتاحته فقط على برامج معيّنة وبذلك لن تحتاج لرفع الفيديوهات من الهاتف الجوال بل ستتمكن من استخدام حاسوبك لأداء هذه المهمة، ويمكن على سبيل المثال تحقيق هذا في نظام ويندوز دون استخدام برامج من خلال تعطيل خاصية التحديث التلقائي لنظام التشغيل ورفع حالة الحظر في جدار الحماية Firewall وحظر جميع الاتصالات الخارجية وبعد ذلك يمكنك إجراء استثناء فقط لمتصفح الويب وبالتالي لن يحدث استهلاك من أي برامج أخرى كونها غير قادرة على الاتصال بالانترنت وإرسال البيانات عبر الشبكة.
    يمكنك حظر الاتصال من خلال التوجه إلى جدار الحماية أو "Windows Firewall with Advanced Security" ومن القائمة Action نختار Properties ثم يمكنك اختيار حظر أو block للخاصية Outbound Connections. وبعدها يمكنك البحث عن متصفح الويب الذي تستخدمه ضمن قائمة البرامج الموجودة ضمن النافذة والسماح له باستخدام الاتصالات الخارجية والتعامل على شبكة الانترنت.
  23. إجابة Sam Ahw سؤال في Problem Solving && Logical Thinking كانت الإجابة المقبولة   
    يتم تنمية هذه المهارات بشكل عام من خلال القراءة والبحث والتطبيق، فكلما واجهت مشاكل أكثر واستطعت إيجاد حلول أمثلية لها ستزداد خبرتك مع الوقت في حل المشاكل والتفكير المنطقي. أما بالنسبة لاشتراكك في الدورات فهو لن يشتتك بل على العكس حتى مع اختلاف لغات البرمجة ستتيح لك الدورات التطبيق العملي على مشاريع عملية وفقاً لأفضل المعايير التي يشرحها المدربون خلال الدروس وبالتالي يمكنك اعتمادها كحلول منطقية أمثلية واتباع الإرشادات التي يتم شرحها لكي تبدأ بتنمية مهاراتك في مشاريعك الخاصة.
    إن لغة البرمجة بحد ذاتها لن تؤثر على مهارات حل المشكلات والتفكير المنطقي، فلغة البرمجة هي وسيلة لتطبيق الخوارزميات وتحقيق الأهداف المرجوة مهما اختلفت الشيفرات البرمجية والتقنيات وأطر العمل المستخدمة. معرفة أو الاطلاع على أكثر من لغة برمجة سيساعدك أيضاً في التفكير المنطقي وعليها ستتمكن فيما بعد من اختيار لغات البرمجة والتقنيات لتحقيق الأداء الأمثل واختيار المسار المناسب لكل مشروع تعمل عليه في المستقبل.
    أما تنمية مهاراتك بشكل عام فيوجد العديد من الطرق بالإضافة للتطبيق العملي الذي ذكرته سابقاً يمكنك البحث على الانترنت وقراءة المقالات والكتب والمصادر الموجودة عن الخوارزميات ومحاولة تطبيق أكثر من حل بأي لغة برمجة تتقنها ومقارنة النتائج لاختيار الحل الأمثل لها وهذا بدوره سيساعدك كثيراً على تنمية مهارة التفكير المنطقي وحل المشكلات بالطريقة الأمثل.
    كما يمكنك الاطلاع على التعليقات الموجودة على سؤال مشابه:
     
  24. إجابة Sam Ahw سؤال في مشكلة نسيان الأفكار في الخوادم Servers كانت الإجابة المقبولة   
    نعم من الطبيعي جداً نسيان بعض الأفكار والشروحات خاصةً فيما يتعلّق ببرمجة الواجهة الخلفية وخوادم الويب لأن معظم الأفكار والاستراتيجيات تكون غير مرئية بشكل فعلي كما هو الحال بالنسبة للتصميم مثلاً. لذلك يجب عليك تكرار مشاهدة وقراءة هذه الشروحات التي تتابعها لترسيخ الأفكار التي تتعلمها ومع الوقت والتطبيق ستزداد خبرتك في هذا المجال وستصبح هذه الأفكار أكثر تواجداً في ذاكرتك.
    وكلما تعلّمت أفكار جديدة حاول البحث عن أمثلة عملية لها وإن أمكن حاول تطبيقها بنفسك حتى تتحول هذه الأفكار النظرية إلى تطبيق عملي وتزيد من خبرتك.
    يمكنك قراءة المزيد عن إجابات واقتراحات لمشكلة مشابهة لمشكلتك:
     
  25. إجابة Sam Ahw سؤال في ما اهمية تعلم تعليم الالة كانت الإجابة المقبولة   
    التعلم الآلي أو تعلم الآلة (Machine Learning) هو مجموعة فرعية من الذكاء الاصطناعي الذي يستخدم تقنيات (مثل التعلم العميق) التي تمكن الأجهزة مـن استخدام الخبرة للتحسين في أداء المهام، وبالتالي إن كنت مهتماً في مجالات الذكاء الاصطناعي فحتماً ستجد ترابط كبير كون معظم تقنيات الذكاء الاصطناعي تصب في تعلّم الآلة وتعتبره حجر الأساس، فعلاقة تعليم الآلة بالذكاء الإصطناعي هي أنه يستخدم كأساس للذكاء الإصطناعي في العديد من التطبيقات. كما يعتمد تعليم الآلة على البيانات وتحليلها لإيجاد النماذج والأساليب الجديدة للتحليل والتنبؤ والتي بدورها من العمليات التي تندرج ضمن مجال الذكاء الاصطناعي.
    تعليم الآلة مفيد في سوق العمل، حيث يستخدم بشكل واسع في الأعمال والصناعات المختلفة، مثل التجارة والتسويق والتكنولوجيا والصحة وغيرها من التطبيقات التي تزداد يوماً بعد يوم.
    يمكنك قراءة المزيد من التفاصيل حول تطبيقات الذكاء الاصطناعي وتعلّم الآلة والاطلاع على بعض الخوارزميات والأمثلة:
     
×
×
  • أضف...