-
المساهمات
2438 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
3
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو عبد الوهاب بومعراف
-
وعليكم السلام ورحمة الله، ليس هناك ضرورة لدراسة مسارات Flask أو Odoo إذا لم تكن مهتما بها لذا يمكنك تجاوزهما طالما أنك لا ترغب في العمل بهما. الخطوة التالية تعتمد على هدفك النهائي ونظرا لأنك تريد الجمع بين تطوير مشاريع Django وفهم أساسيات الذكاء الاصطناعي وتحليل البيانات، فالأفضل أن تبدأ بمسار "دمج تقنيات الذكاء الاصطناعي مع تطبيقات بايثون" أولا. والسبب في اختيار هذا المسار كبداية هو أنه يمنحك فكرة عامة عن كيفية دمج مكتبات الذكاء الاصطناعي مع تطبيقاتك البرمجية ثم يمكنك أن تنتقل لمسار تحليل البيانات لتتعلم معالجة وتحليل البيانات باستخدام أدوات مثل Pandas وNumPy. والمرحلة الأخيرة ستكون دراسة أساسيات Machine Learning لفهم الخوارزميات والنماذج الأساسية. لكن تذكر أن هذه المسارات ستعطيك الأساسيات واللبنة الأساسية للمجال وبعد إنهائها ستكون قادرا على تحديد المجال الذي يثير اهتمامك أكثر للتخصص فيه وإنجاز مشاريع أكبر عليه.
-
السلام عليكم ورحمة الله، للأسف فإن الدورات التدريبية في الأكاديمية لا تأتي مع كتاب مستقل يلخص محتوى الدورة بالكامل لكن مع ذلك توفر أكاديمية حسوب قسما منفصلا للكتب المجانية يمكنك تحميلها بصيغة PDF، والتي تغطي مجالات متعددة في البرمجة وريادة الأعمال والعمل الحر وغيرها وهذه الكتب متاحة مجانا ويمكن استخدامها كمرجع للمراجعة لكنها ليست مرتبطة مباشرة بالدورات كملخصات لها والحل البديل هو الاعتماد على الملاحظات الشخصية أثناء مشاهدة الفيديوهات أو الرجوع إلى قسم المقالات في الأكاديمية الذي يحتوي على محتوى نصي تفصيلي. كما يمكنك الاطلاع على التوثيق الرسمي الخاص بموسوعة حسوب لمزيد من التفاصيل والتعمق في الدروس: https://wiki.hsoub.com
-
السلام عليكم ورحمة الله، أولا مُبارك عليك الانتهاء من دورة علوم الحاسوب، هذا إنجاز جيد جدا، وبخصوص سؤالك فنعم يكفي إتمام أربعة مسارات تعليمية على الأقل كشرط أساسي للتقدم إلى امتحان الدورة وهذا مذكور وفقا للشروط الرسمية المنشورة في مركز المساعدة الخاص بالأكاديمية. ومع ذلك لا يقتصر الأمر على إكمال المسارات نظريا أو مشاهدة المحتوى فقط، بل يشترط التطبيق العملي الفعلي للمشاريع مع المدرب أثناء الدورة، مع الاحتفاظ بها ورفعها على حسابك في GitHub لمشاركتها عند التقدم للامتحان، حيث يجب إرسال روابط هذه المشاريع للمراجعة.
-
السلام عليكم ورحمة الله، بناء على واقع سوق العمل والتطورات التقنية فإن NestJS يعتبر الخيار الأنسب للتركيز الرئيسي كمهندس Backend لعدة أسباب جوهرية أولا، تتجه الصناعة بشكل متسارع نحو البنى المعمارية الموزعة (Microservices) والتطبيقات الحية (Real-time Applications) التي تتطلب قابلية التوسع العالية، وهنا يتفوق NestJS بفضل معماريته المبنية على حقن التبعيات (Dependency Injection) والوحدات المعزولة (Modules) التي تسهل بناء أنظمة معقدة قابلة للصيانة والاختبار. ثانيا بسبب اعتماد NestJS الكامل على TypeScript وهذا ما يوفر ال Type Safety مما يقلل الأخطاء البرمجية بشكل كبير ويحسن تجربة التطوير من خلال الإكمال التلقائي والكشف المبكر عن الأخطاء. وأيضا يتكامل NestJS بسلاسة مع تقنيات حديثة مثل GraphQL وWebSockets وmessage queues مما يجعله مثاليا للتطبيقات التي تتطلب اتصالات ثنائية الاتجاه ومعالجة بيانات فورية. أما بالنسبة ل Laravel فهو يبقى إطار عمل ممتازا للمشاريع التقليدية التي تتطلب تطويرا سريعا مثل لوحات الإدارة (Dashboards) وتطبيقات الأعمال ذات المتطلبات القياسية بفضل أدواته الجاهزة مثل Eloquent ORM وArtisan CLI التي تختصر الوقت بشكل ملحوظ ومع إضافة Laravel Reverb مؤخرا فقد أصبح قادرا على التعامل مع WebSockets بكفاءة.
-
في الحقيقة عملية الجمع + لها سلوك مزدوج فهي تستخدم لجمع الأرقام ولربط النصوص أيضا وهو ما يعرف بال concatenation وعندما يكون أحد المعاملات نصا (string) يحول JavaScript جميع القيم إلى نصوص ويربطها بدلا من جمعها رياضيا لذلك فإنّ: "32" + 10 + 7 سينتج: "32107" أما في مقارنة المساواة == التي ذكرتها: true == "1" فالوضع مختلف تماما لأن عملية == لا تدعم ربط النصوص فيحاول JavaScript هنا إيجاد أرضية مشتركة بتحويل كلا الطرفين إلى أرقام ف true يصبح 1 و"1" يصبح 1 فتكون المقارنة صحيحة والقاعدة الأساسية أنه عند استخدام + مع نص يحدث تحويل إلى نصوص (String Coercion) بينما في العمليات الأخرى ك (==, -, *, /) يحدث تحويل إلى أرقام (Numeric Coercion). ولتجنب هذا يمكنك استخدام Number(value1) أو parseInt(value1) أو العملية الأحادية +value1 لتحويل النص إلى رقم قبل الجمع، أو استخدم === بدلا من == لتجنب Type Coercion في المقارنات.
-
من الأفضل أن تكون الأكواد مقسمة على حسب المشاريع أو على الأقل على حسب المسارات وأن لا تكون في مجلد واحد ضمن المستودع فذلك يجعلها غير منظمة، مع ذلك يمكنك تنظيمها في أي وقت بجعل كلّ مسار بأكواده الخاصة به، وأما المشاريع التي يجب رفعها فهي التطبيقات العملية ومن الأفضل أن ترفع فهي إجبارية للحصول على الشهادة.
-
السلام عليكم ورحمة الله، في ملف jj.js في السطر howData() لديك خطأ إملائي في اسم الدالة فقد كتبت howData() بدلا من showData() مما يسبب خطأ لأن الدالة غير موجودة أصلا لذا قم باستبدالها ب: showData() وأيضا في السطر: btnDelete.innerHTML = <button...> هنا الكود يحاول وضع HTML مباشرة بدون علامات اقتباس خلفية أو ما يعرف ب (template literals) مما سيسبب syntax error لذا استبدل: btnDelete.innerHTML = <button onclick="deletAll()"> delete All</button> btnDelete.innerHTML = `<button onclick="deletAll()">delete All</button>` وأيضا هنا في دالة deleteData(i) الدالة هنا فارغة ولا تفعل شيء سوى طباعة الرقم في console بينما المفترض أن تحذف العنصر من المصفوفة و localStorage وتحدث الجدول أي بدلا من: function deleteData(i) { console.log(i) } يمكنك تعديلها كالتالي: function deleteData(i) { dataPro.splice(i, 1); localStorage.setItem('product', JSON.stringify(dataPro)); showData(); } وأما في ملف index.html في السطر: <tbody di="tbody"> لديك خطأ إملائي في الخاصية فقد كتبت di بدلا من id مما يجعل JavaScript لا يستطيع العثور على العنصر عند استخدام: document.getElementById('tbody') أي بدلا من: <tbody di="tbody"> عدله ليصبح: <tbody id="tbody">
-
السلام عليكم ورحمة الله وبركاته، الدورة في الحقيقة يمكن أن تكملها في وقت قصير لما يقارب الشهر إن درست يوميا وبشكل مستمر ودون تقطع لكن هذا لا يكفي، وهنا دوما نشجع الطلبة على أن لا يربطوا مسارهم في التعلم بوقت زمني لإنهاء الدورة، فالدورة بعد الاشتراك فيها فستبقى متاحة لك مدى الحياة، وسيكون لديك وصول مجاني لأية تحديثات قد تطرأ على الدورة في المستقبل. لذا حاول التركيز أكثر على محتوى الدرس والتطبيق أكثر فأكثر ويمكنك طرح أسئلتك في أي وقت تريد وسنساعدك على الفهم ونبسط لك أي مفاهيم تجدها صعبة.
-
السلام عليكم ورحمة الله، يمكنك استخدام Template Literals وهي وضع النص بين العلامتين التاليتين ` ` حيث تسمح هذه الطريقة بضغط زر Enter داخل الكود لينتقل النص فعليا لسطر جديد أو يمكنك استخدام علامات الاقتباس العادية مع إضافة الرمز \n في المكان الذي ترغب ببدء السطر الثاني منه، وهو رمز برمجي يعبر عن سطر جديد فمثلا بكتابة: `"Up up\ndown down"` عند الطباعة سيقوم بفصل الكلمتين ووضعهما تحت بعضهما البعض تماما كما تريد.
-
وعليكم السلام ورحمة الله، السبب الأساسي هو أن الفهرس يمثل المسافة من بداية المصفوفة في الذاكرة تخيل أنه عندك صف من الصناديق بحيث أن أول صندوق موجود عند نقطة البداية بالضبط، يعني المسافة من البداية = صفر أما الصندوق الثاني بعيد عن البداية بمسافة صندوق واحد يعني المسافة = 1، وهكذا. لما الكمبيوتر يبحث عن عنصر في الذاكرة ييحسب موقعه كالتالي: عنوان البداية + الفهرس. لكن لو بدأنا من 1 بدل 0، الكمبيوتر سيضطر أن يطرح 1 في كل مرة لكي يصل للموقع الصحيح، وهذا سيبطئ البرنامج كما أنه عندما تعمل loop مثل for(i=0; i<10; i++) فأنت ستكرر بالضبط 10 مرات من 0 ل 9 وهذا منطقي رياضيا. فاللصفر سيترك الحسابات أبسط وأسرع وهذا السبب الذي جعل معظم لغات البرمجة تستخدمه.
-
وعليكم السلام، هنا في: "Hello + 5*10" كل ما بين علامتي الاقتباس يعتبر نصا حرفيا فلا تنفّذ 5*10 كعملية رياضية بل تطبع كما هي داخل السلسلة فيكون الناتج "Hello + 5*10" أمّا في التعبير: Hello" + 5*10" فليس كله داخل string أولا تنفّذ عملية الضرب [5*10] فتُعطي العدد 50 لأن * له أسبقية أعلى من + بعدها يُطبَّق عامل الجمع + بين "Hello" (string) و 50 (number) وقاعدة عامل + في جافاسكربت تقول أنه إذا كان أحد الطرفين string يتم تحويل الطرف الآخر إلى string ويتم الدمج، فيتحول 50 إلى "50" وينتج "Hello50".
- 2 اجابة
-
- 1
-
-
السلام عليكم، بداية فالدورة تركز على أساسيات اللغة مع أطر العمل الرئيسية مثل Django لتطوير تطبيقات ويب كاملة مثل المتاجر الإلكترونية وربط خدمات الدفع المختلفة وذلك لبناء واجهات برمجية REST APIs سريعة وفعالة، بالإضافة إلى التعامل مع قواعد البيانات والملفات والأتمتة لذا فبعد إنهائنا ستكون مؤهلا لتكون مطور Python في مجال Backend حيث يعد Django الخيار الأمثل للمشاريع الكبيرة القابلة للتوسع بفضل مزاياه الجاهزة مثل ORM والأمان التلقائي بينما Flask يناسب ال APIs الخفيفة والمخصصة. لكن تبقى كلمة السر للاحتراف تكمن في الاجتهاد وفهم الدروس وتطبيقها بشكل جيد وفي الاستمارية وعمل المشاريع حتى بعد إنهاء الدورة وليس مجرد إنهائها من أجل الحصول على الشهادة. لكن مع ذلك فإن الدورة مصممة لتحويلك إلى مطور قادر على العمل فورا في شركات الويب والأتمتة دون خبرة سابقة مع ضمان استعادة الاستثمار خلال 6 أشهر إذا لم تحصل على وظيفة، وهذا يتناسب تماما مع سوق العمل العربي والدولي الذي يطلب هذه المهارات بشدة لتطوير أنظمة الإدارة والتجارة الإلكترونية. لذا حاليا فنصيحتي هي في التركيز على دروس الدورة والتطبيق مع المدرب بشكل جيد، فمسيرة الألف ميل تبدأ بخطوة.
-
وعليكم السلام ورحمة الله تعالى وبركاته، الترتيب الظاهر أمامك الآن في منصة الدورة هو الترتيب الصحيح الذي يفترض أن تتّبعه لأن معدّي الدورات أعدوا المسارات من الأساسيات إلى الدروس المتقدمة بحيث يبنون الواحد على الآخر وحتى بعد القيام بتعديل أوتجديد بعض المسارات القديمة فيتم إدراج الجديد منها بشكل مدروس ومراع للترتيب المعمول به. وبما أنك أنهيت المسارات السابقة على Transformers وحضرت جزءا من مسار التعامل مع البيانات ثم انتقلت إليه، فالأنسب أن تكمل ما انقطع من مسار التعامل مع البيانات ثم تنتقل مباشرة إلى ما بعده في الترتيب الرسمي مثل مسار تعلم الآلة أو التعلم العميق حسب ما يظهر لك في صفحة دوراتي دون ابتداء مسار جديد عشوائيا لأن الاستمرار في السير بحسب تسلسل الدورة سيوازن بين التطبيق العملي والمعرفة النظرية ويقلِّل الهوّة بين ما تدرسه وما تحتاجه في Transformers.
-
السلام عليكم ورحمة الله، دورة علوم الحاسوب هي دورة تحتوي على الأساسيات وهي مخصصة خصّيصا لمن لا يملك خلفية كبيرة أو لا يدري أيّ تخصص يرغب في التعمق فيه، لذا فإنّ كنت ترى نفسك لم تحدّد المسار الذي ترغب في التوجه إليه، فلا تزال الدورة خيارا صائبا لمتابعتها. أما في حال كانت لديك رؤية جيدة لما تريد الوصول إليع مع خلفية مناسبة في هذا المجال، فيمكنك التواصل مع فريق مساعدة أكاديمية حسوب كي يقوموا بتوجيهك سواء بالتغيير أو بالاشتراك في دورة أخرى تراها مناسبة.
-
وعليكم السلام ورحمة الله، لا داعي للقلق، فعلى الأرجح أنّ المشكلة تحدث بسبب ضعف في الشبكة لديك ما أدّى إلى تأخّر تحميل خاصية التعليق ومنه لم يفتح صندوق التعليقات عندك، فالرجاء الانتظار بعض الوقت حتى انتهاء التحميل ثم إعادة الضغط على الصندوق لفتحه، أو يمكنك التأكد من سرعة وجودة الشبكة لديك ثم المحاولة مرة أخرى، في حال تعذر فتحه تماما يمكنك إرسال لقطة شاشة لتحرّي المشكلة بدقة.
-
وعليكم السلام ورحمة الله وبركاته، ضعف الطلب على منصات SaaS في الشرق الأوسط غالبا سببه أنّ شركات كثيرة ما زالت تفضّل الحلول التقليدية والمشتراة لمرة واحدة بدل الاشتراك الشهري كثقافة عدم الاعتماد الكامل على الخدمات السحابية مع وجود حواجز تنظيمية وقوانين بيانات معقدة بين دولة وأخرى أي تلك الإشكالات المتعلقة بالإقامة المحلية للبيانات والخصوصية مع تفاوت جودة البنية التحتية والإنترنت بين المدن والمناطق إضافة إلى تحديات الدفع الإلكتروني والعملات وتذبذب الأوضاع الاقتصادية في بعض الدول. وكل هذا يجعل التبنّي أبطأ ويزيد تردد الشركات في الاعتماد على SaaS بشكل كامل لكن هذا لا يعني أنها ليست مطلوبة تماما وأما بالنسبة للتقنيات المناسبة لمشاريع SaaS فالأهم أن تختار ما يخدم الاستقرار والقابلية للتوسع لا أن تختار على حسب الترند وغالبا سترى مزيجا مثل: واجهة React أو Next.js أو Angular، مع Backend قوي مثل Node/NestJS أو Django أو Laravel أو ASP.NET Core بحسب خبرتك وقاعدة بيانات PostgreSQL أو MySQL مع نشر على AWS أو Azure أو GCP مع الاعتماد على خدمات مثل Kubernetes أو خوادم Serverless للبنية المرنة، فهي تستخدم بكثافة في SaaS حديثة لأنها توازن بين الأداء، الأمان، وسهولة التطوير والصيانة.
-
وعليكم السلام ورحمة الله وبركاته، المشكلة هي أن المنفذ رقم 80 مشغول بواسطة عملية أخرى وهي System (PID 4) وهي خدمة "World Wide Web Publishing Service" التابعة ل IIS في Windows. وهذه الخدمة الآن تعمل في الخلفية حتى بعد إلغاء تثبيت IIS وتمنع Apache من استخدام Port 80 لحل المشكلة قم بفتح من قائمة Run من خلال الضغط على Win+R ثم اكتب services.msc وقم بالبحث عن "World Wide Web Publishing Service" ثم انقر عليها بالزر الأيمن واختر Stop لإيقافها ثم اختيار Properties وتغيير Startup type إلى "Disabled" لمنعها من العمل مستقبلا. أرجو في حال كان سؤالك متعلقا بأحد الدروس الخاصة بالدورات أن تقوم بطرحه أسفل الدرس الذي واجهت فيه المشكلة لنساعدك بشكل أفضل فهنا نجيب فقط على الأسئلة العامة الغير متعلقة بمحتوى
-
وعليكم السلام ورحمة الله، يمكنك الحصول على Redis مجانا بشكل عالمي من Redis Cloud التي توفر خطة مجانية دائمة بسعة 30 ميغابايت. وهي مثالية للتعلم والتطوير وتدعم الخدمة نشر قواعد البيانات على AWS أو Google Cloud أو Microsoft Azure عبر مناطق متعددة حول العالم كما يمكنك أيضا استخدام Heroku Redis Cloud التي تقدم خطة مجانية مع إدارة كاملة للخدمة وللبدء يجب إنشاء حساب على redis.io ثم اختر Free عند إنشاء قاعدة البيانات.
-
السلام عليكم ورحمة الله، حاليا لا توجد دورة مخصصة حاليا لذلك لكن قد يتم إضافتها على حسب الحاجة فإن اقتضت الحاجة ذلك قد يتم إضافتها لاحقا. لكن مع ذلك فإنّ أكاديمية حسوب تقدم حاليا مقالات تعليمية حول ASP.NET Core يمكنك تصفحها من هنا: ASP.NET Core
- 4 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله، المشكلة أن Render المجاني يقطع الطلبات بعد 30 ثانية، وإرسال الإيميل عبر SMTP يستغرق وقتا طويلا مما يسبب خطأ 502. الحل هو استخدام خدمات إرسال البريد عبر HTTP API مثل SendGrid أو Mailgun بدلا من SMTP لأنها أسرع وأكثر موثوقية، أو استخدام Celery مع Redis لإرسال الإيميلات بشكل غير متزامن (asynchronous) في الخلفية بحيث يرد تطبيقك فورا على المستخدم ويتم إرسال الإيميل لاحقا دون انتظار.
- 5 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله، ذلك قد يحدث لعدة أسباب لذا من المستحسن إرسال لقطة شاشة لما حدث معك، فقد تكون ميزة Windows Subsystem for Linux غير مفعّلة في النظام حينها يمكنك التحقق من ذلك عبر: Control Panel > Programs and Features > Turn Windows features on or off ثانيا قد يكون التوزيع الافتراضي (default distro) تالفا أو غير مثبت بشكل صحيح ويمكن التحقق من ذلك بفتح PowerShell وتشغيل الأمر: wsl.exe -l -v لعرض التوزيعات المثبتة والتأكد من وجود توزيع افتراضي صحيح وقد تحتاج إلى تحديث WSL kernel عبر تشغيل الأمر: wsl.exe --update
-
وعليكم السلام ورحمة الله، ال Vibe coding هو مصطلح يشير إلى الاعتماد الكلي على أدوات الذكاء الاصطناعي لكتابة الكود دون فهم عميق لما يحدث بصراحة هذا النهج خطير جدا للمتعلمين الجدد فهو يشبه تعلم قيادة السيارة بالاعتماد الكامل على القيادة الذاتية صحيح أنك ستصل إلى وجهتك لكنك لن تتعلم القيادة أبدا لذا فالأدوات مثل Cursor، GitHub Copilot، وClaude نفسها ممتازة لكن يجب استخدامها كمساعد وليس كبديل للتعلم. الطريقة الصحيحة للتعلم هي أن تكتب الكود بنفسك أولا ثم أن تحاول فهم المشكلة مع البحث في التوثيق الرسمي فالمشكلة الحقيقية أنك عندما تواجه خطأ في production أو مقابلة عمل لن يكون هناك AI ليحل المشكلة عنك لذا ستحتاج لفهم حقيقي واستيعاب الأساسيات بشكل قوي.
- 4 اجابة
-
- 1
-
-
أولا أنصحك أن تركزي على فهم المسارات الأولى للدورة والتطبيق مع المدرب خطوة بخطوة، وبما أنّ الشروط الأساسية للتقدم للامتحان تركز على إتمام أربع مسارات فمن الضروري إكمالها، يمكنك مراجعة الشروط من هنا: الامتحان والحصول على الشهادة أما بالنسبة لتعزيز مهاراتك في دجانغو فهذا ممكن من خلال إتمام مسارات الدورة المعنية به، وأنصحك بإتمامها أو تخصيص وقت لإتمامها للاستفادة القصوى من محتوى الدورة، وإضافة إليه يمكنك الاستفادة من سلسلة المقالات التي توفرها الأكاديمية كتعزيز من هنا: دجانغو - مقالات أكاديمية حسوب حيث توجد العديد من التطبيقات يمكنك اتباعها:
-
وعليكم السلام ورحمة الله، هي في الحقيقة ليست خيارا بل هي ضرورة أساسية حتى على المستوى المتوسط لأن مهارات البرمجة هي التي تمكّن المهندس من تحويل التصاميم المعمارية إلى حلول قابلة للتنفيذ بالإضافة إلى تصحيح الأخطاء وتحسين الكود وذلك ما يجعل الدور أكثر تكاملاً وفعالية لكن الاعتماد فقط على التصميم المجرد دون برمجة سيمنع المهندس من فهم التفاصيل التقنية الدقيقة التي تؤثر على جودة الحل واستقراره. فالبرمجة تعزز التفكير المنطقي والقدرة على حل المشاكل وتجعل المهندس جزءا فاعلا في دورة تطوير المنتج بالكامل وهو أمر مطلوب جدا خاصة في المقابلات التقنية أما التصميم المعماري يبقى مهما لكنه مكمّل للبرمجة ولا يغني عنها خاصة في المراحل المتقدمة والمشاريع الكبيرة التي تتطلب تعاونا بين فرق متعددة التخصصات.
- 3 اجابة
-
- 1
-
-
وعليكم السلام ورحمة الله، إن كنت تقصد هذا الكتاب: فهو كتاب مجاني ومثله أيضا يمكنك تصفح قائمة الكتاب المجانية الخاصة بأكاديمية جسوب https://academy.hsoub.com/files/ يمكنك تحميله وقراءته بلا أيّة اشتراكات أو متطلبات أخرى.
- 4 اجابة
-
- 1
-
