-
المساهمات
6972 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
13
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو عبدالباسط ابراهيم
-
للأسف لا يوجد ملخص للدورات الموجودة بالأكاديمية ولكن يمكنك الوصول لموسوعة حسوب والتي تضم توثيقات للغات وتقنيات برمجية عديدة من خلال الرابط التالي https://wiki.hsoub.com/Python ويمكنك البحث عن cheatsheet بالإضافة لاسم اللغة أو التقنية وسيظهر لك ملخص لما تريد
-
هل يمكنك توضيح الدورة التي تقصدها ؟ مع ذلك جميع الدورات الموجودة بالأكاديمية يتم تحديثها باستمرار، ويتم إضافة مسارات جديدة وتحديث المحتوى الحالي دوريًا فالإجابة هي بالتأكيد مناسبة ل 2025 وتكون متاحة لك مدى الحياة
-
بالتأكيد يوجد مشروع تخرج. وبالنسبة لبعض المسارات التي لم تفهمها عند التقدم للإختبار فسيتم توجيهك لمراجعتها مرة أخرى حتى تستطيع الحصول على الشهادة بعد إتمام مشروع التخرج . ولذلك للحصول على الشهادة تحتاج لإتمام الشروط اللازم توافرها ولا يتم منح الشهادة الخاصة بالدورات بدون التأكد من فهم وتطبيق المهارات التي تم شرحها
-
وعليكم السلام ورحمة الله وبركاته بناء موقع كامل يتطلب تعلم مجموعة من المهارات والأدوات في مجالات مختلفة. الأمر ليس سهلاً إطلاقاً فلتصبح مطور ويب شامل (Full-stack developer)، ستحتاج إلى تعلم أساسيات الواجهة الأمامية (Front-end) والواجهة الخلفية (Back-end)، بالإضافة إلى إدارة قواعد البيانات والنشر (Deployment) وبالإضافة لبعض الأدوات والمفاهيم الضرورية لأي مطور ويب . ولذلك إذا أردت الدخول لعالم الويب يفضل قبل أي شيء، فهم كيف يعمل الويب كيف يتواصل المتصفح مع الخادم؟ ما هو الـ IP Address، الـ Domain Name، والـ DNS؟ ما هي الـ URL والـ HTTP/HTTPS؟ ثم التعرف على المجالات بداخل مجال الويب من الإطلاع على التعليقات السابقة ويمكنك بعدها تحديد المجال الذي تريد تعلمه .
-
بالفعل إذا كان مشروعك بسيطًا ، أو كنت تبحث عن أسرع طريقة للبدء دون أي إعدادات، فإن JavaScript كافية تمامًا. أما إذا كنت تتوقع نمو المشروع، أو ترغب في الاستفادة من ميزات تحسين تجربة المطور والتحقق من الأخطاء مبكرًا، أو تتعلم عادات برمجة أفضل، فإن TypeScript يمكن أن يكون خيارًا ممتازًا حتى في المشاريع البسيطة. في النهاية، الأمر يعود إلى تفضيلك الشخصي وأهدافك من المشروع.
-
ملف الـ TSX هو بالفعل ملف TypeScript. واستخدام TSX يوفر بعض من المزايا، خاصة في المشاريع الكبيرة والمعقدة. وبالتالي إذا كنت تعمل على مشروع React أو مشروع واجهة أمامية آخر يستخدم JSX وترغب في الاستفادة من مزايا TypeScript، فستستخدم ملفات TSX.
-
بالتأكيد متابعة مشاريع react على اليوتيوب كافية و ستساعدك لكن بشروط يجب أن تفهم كل سطر كود تكتبه، لا تنسخ فقط حاول تعديل المشروع بعد انتهائك منه من خلال إضافة مميزات أخرى اختر مشاريع متدرجة الصعوبة بعد الإنتهاء من مشاريع لتقنية محددة وحاول دائماً التفكير حول كيفية تحليل المتطلبات وتقسيم المشروع حتى لا تعتاد الاعتماد على الآخرين في اتخاذ القرارات التقنية.
-
دورة علوم الحاسب تركز على المفاهيم النظرية مثل الخوارزميات، هياكل البيانات، أنظمة التشغيل، التفكير المنطقي، إلخ. وتقوي أساسك كمبرمج، مما يساعدك على فهم أي لغة أو تقنية بسهولة لاحقًا ولكنها لا تؤهلك مباشرة للعمل الحر أو تطوير مشاريع بسرعة. ولذلك إذا كان لديك الوقت أو لست مستعجلاً على الدخول لسوق العمل فالأفضل هو دراسة هذه الدورة أولاً . ويمكنك الإطلاع على المزيد من التفاصيل حول ما تفيدك به هذه الدورة
-
وعليكم السلام ورحمة الله وبركاته. بالفعل الجبر الخطي يستخدم مفاهيم من الجبر العادي ولذلك يفضل تعلم الأساسيات بشكل جيد مثل التي تم ذكرها في الإجابات التالية حيثبدون هذه الأساسيات، ستجد صعوبة في فهم المفاهيم المتقدمة كما أن خان أكاديمي خيار ممتاز، ولكن تأكد من إتقان كل مرحلة قبل الانتقال للتالية.
- 3 اجابة
-
- 1
-
-
هذه المشكلة لها العديد من الأسباب ولكن حاول التحقق من الاتصال بالإنترنت جرب فتح مواقع أخرى للتأكد من عمل الإنترنت والتأكد من إذا كان هذا الموقع فقط الذي به المشكلة. تأكد أيضاً من عنوان الموقع فحاول مثلاً اذهاب من هذا الرابط حاول أيضاً مسح cache وcookies المتصفح أو جرب التصفح الخفي (incognito mode) أو جرب متصفح آخر لاستبعاد مشاكل المتصفح يرجى تجربة الخطوات السابقة وإخباري بالنتيجة حيث أن الموقع يعمل بشكل سليم
- 2 اجابة
-
- 1
-
-
الذكاء الإصطناعي والأدوات التي يتم ظهورها بشكل متسارع بالتأكيد تقوم بتغيير طبيعة عمل المبرمجين لتصبح أكثر ابتكارًا وتركيزًا على حل المشاكل، لكن لن تستبدلهم. ويعتبر هذا السؤال من الأسئلة الشائعة حالياً ومن الصعب الإجابة بشكل قاطع بما سيحدث في المستقبل ولذلك يرجى الإطلاع على الإجابات التالية
-
أعتقد أنك تقصد رفع المشاريع إلى github من اجل الاختبار وبسبب أن أحد شروط التقدم للامتحان والحصول على الشهادة هو رفع المشاريع بانتظام على GitHub أثناء الدورة فمن المفترض أن تقوم برفع المشاريع على ال github . كما أن ظهور مشاريعك في GitHub يعتبر بطاقة تعريف للمبرمجين. من خلال رابط حسابك، تظهر أكثر احترافية أمام أصحاب العمل أو العملاء المحتملين. ومن خلال ذلك أيضاً تعتاد على التعأمل مع github والذي يعتبر ضرورة بالنسبة للمبرمجين حالياً
-
عموماً بينما تعد الرياضيات (مثل الجبر وحساب المثلثات ومتجهات الرياضيات) مفيدة لتطوير الألعاب المتقدمة أو أدوار محددة، فإن المحركات مثل Godot (التي تستخدمها الدورة) تبسط الجوانب الرياضية المعقدة، ويمكنك تعلم ما تحتاجه أثناء تقدمك. وبالنسبة للدورة فلا تحتاج فعليًا إلى خبرة مسبقة في الرياضيات لبدء دورة تطوير الألعاب . فالدورة مصممة لتبدأ معك من الأساسيات، حتى لو لم تكن لديك أي خبرة سابقة في تطوير الألعاب.
-
على الرغم من أن المطلوب فقط هو الموديل والسنة للفئة العامة "السيارة"، إلا أن الفئات الفرعية يمكن أن تضيف سمات خاصة بها. لذلك، العلاقة هي وراثة (Inheritance) وليست تركيب (Composition). التركيب يعني أن كائنًا ما "يحتوي على" كائن آخر كجزء منه، مثل السيارة تحتوي على محرك (المحرك جزء من السيارة). لكن الشاحنة أو السيارة الرياضية "هي نوع من" السيارة، وهذا هو جوهر الوراثة. لنأخذ مثالاً لتوضيح التركيب لـ "السيارة" نفسها. السيارة لا ترث "المحرك"، بل "تحتوي على" محرك. الفئة Car (السيارة) لها خصائص مثل: model (الموديل), year (السنة). تحتوي على كائن من الفئة Engine (المحرك). الفئة Engine (المحرك) لها خصائص مثل: horsepower (قوة الأحصنة), cylinderCount (عدد الأسطوانات), type (النوع: بنزين، ديزل، كهربائي).
-
بالنسبة لدورة "علوم الحاسوب" تحتوي على مفاهيم نظرية أساسية مثل الخوارزميات، هياكل البيانات، والبرمجة. هذه المفاهيم مفيدة كأساس لفهم جوانب عملية في "تطوير واجهات المستخدم". ومع ذلك دورة تطوير واجهات المستخدم لا تفترض وجود خبرة سابقة حيث أنه يتم شرح جميع التقنيات اللازمة . فإذا كنت مبتدئاً في المجال، أنصحك بالبدء بدورة "علوم الحاسوب" حتى تصل مستوي جيد من فهم الأساسيات الخاصة بعلوم الحاسوب يمكنك الإنتقال بعدها لتعلم تطوير واجهات المستخدم وليس شرطاً الإنتهاء من دورة علوم الحاسوب كاملة للإنتقال لتعلم تطوير واجهات المستخدم
- 2 اجابة
-
- 1
-
-
Electron.js يتيح لك بناء تطبيقات سطح المكتب باستخدام تقنيات الويب مثل HTML وCSS وJavaScript. في الأساس، يجمع Electron بين Chromium (محرك المتصفح) وNode.js (بيئة تشغيل JavaScript) لتشغيل تطبيقات الويب كتطبيقات سطح مكتب حقيقية. ولذلك يعتمد تعلمه على مسارك المهني ونوع التطبيقات التي تريد تطويرها فإذا كنت مهتمًا بتطوير تطبيقات سطح المكتب فإن Electron.js هو أداة قوية وفعالة. وبما أنك تتعلم تطوير الويب ولديك خبرة في HTML و CSS و JavaScript، فإن تعلم Electron.js سيكون سهلاً نسبيًا وسيفتح لك بابًا جديدًا في عالم تطوير البرمجيات.
-
الأدوات والميزات التي لا يمتلكها Vue مقارنة بـ react هي كالتالي أولاً vue لا يمتلك حلاً رسميًا مكافئًا لـ React Native مع أنه توجد بدائل لـ Vue مثل NativeScript-Vue ، لكنها لا تصل إلى نفس مستوى الشهرة والدعم لـ React Native. وأيضاً من النقاط المهمة هي أن vue لا يمتلك نفس الحجم الهائل والتنوع في المكتبات الخارجية (خاصة لإدارة الحالة، مكونات الواجهة، أدوات الاختبار) مقارنة بـ React. مع أن vue لديه نظام بيئي ممتاز ويكبر باستمرار، ولديه حلول رسمية رائعة، لكن حجم وتنوع مكتبات React يظل أكبر. ومع ذلك Vue و React أدوات قوية ومطلوبة. تعلم أحدهما بشكل جيد سيمنحك المهارات الأساسية التي يمكنك نقلها لتعلم الآخر إذا لزم الأمر. فالمفاهيم الأساسية لتطوير الواجهة الأمامية (مثل المكونات، إدارة الحالة، تدفق البيانات) متشابهة بينهما.
-
لتوضيح الخاصية v-model لنفترض أنك تبني نموذج تسجيل دخول بسيط. ستحتاج إلى حقل للبريد الإلكتروني وحقل لكلمة المرور. أولاً لدينا الكائن user يحمل الخاصية email و password new Vue({ el: '#app', data: { user: { email: '', password: '' }, }, }); ونريد عندما يكتب المستخدم بريده الإلكتروني أو كلمة المرور في الحقول، تتحدث قيم this.user.email و this.user.password تلقائيًا في بيانات Vue نستخدم v-model كالتالي <div id="app"> <form @submit.prevent="login"> <label for="email">البريد الإلكتروني:</label> <input v-model="user.email" type="email" id="email" required> <label for="password">كلمة المرور:</label> <input v-model="user.password" type="password" id="password" required> <button type="submit">تسجيل الدخول</button> </form> </div>
-
لا شك أن الذكاء الاصطناعي سيغير طبيعة العمل في العديد من المجالات، بما في ذلك البرمجة. لكن هذا لا يعني نهاية المبرمجين، بل يعني تطورًا لدورهم. فالمستقبل سيكون للمبرمجين الذين يمكنهم التفكير النقدي، حل المشكلات المعقدة، والعمل جنبًا إلى جنب مع أدوات الذكاء الاصطناعي لإنشاء حلول أفضل وأكثر ابتكارًا. ويمكنك الإطلاع على الإجابات التالية حيث تشرح هذه التساؤلات بالتفصيل
-
بالتأكيد ستتعلم الكثير حتى لو كان المشروع شرحًا على يوتيوب ولم تبني المشروع بنفسك من الصفر. فهذه التطبيقات التي تقوم ببناءها وراء المدرب ستعلمك ممارسات برمجية سليمة، وبناء هيكل المشروع بشكل صحيح، وتقنيات حل المشكلات . ولكن حاول تطبيق مايلي للإستفادة بشكل اكبر أولاً عندما ترتكب خطأً حاول اكتشافه بنفسك قبل النظر إلى الكود المستخدم من قبل المدرب . ثانياً حاول دائماً اسأل نفسك لماذا يفعل المعلم شيئًا بهذه الطريقة. لماذا يستخدم querySelector بدلاً من getElementById؟ لماذا ينظم بياناته بطريقة معينة؟ وأخيراً بمجرد الانتهاء من المشروع ، تحد نفسك لإضافة ميزة جديدة. على سبيل المثال، هل يمكنك إضافة وظيفة بحث، أو طريقة لترتيب المنتجات فهذا يجبرك على تطبيق ما تعلمته على مشاكل جديدة.
-
أولاً DummyJSON هي خدمة مجانية توفر واجهة برمجة تطبيقات (API) وهمية لبيانات JSON تجريبية والرابط https://dummyjson.com/products يوفر مجموعة شاملة من بيانات المنتجات التجريبية، والتي تتضمن تفاصيل مثل الأسماء، الأسعار، الأوصاف، الصور، والفئات. هذه البيانات مثالية لاختبار وبناء نماذج أولية لتطبيقات التجارة الإلكترونية. أما بالنسبة للكود فلدينا methods: { ... } هذا الجزء يُستخدم لتعريف الدوال (Functions) أو الأساليب (Methods) المخصصة التي يمكن استخدامها داخل مكون برمجي معين. async getProducts() async هذه الكلمة تشير إلى أن هذه الدالة غير متزامنة (Asynchronous). ماذا يعني ذلك؟ تعني أن هذه الدالة ستنفذ عملية قد تستغرق بعض الوقت (مثل الاتصال بالإنترنت)، ولن تعيق تنفيذ بقية الشيفرة البرمجية أثناء انتظارها اكتمال هذه العملية. ستعمل في الخلفية، وعندما تنهي عملها، ستعيد النتيجة. await fetch('https://dummyjson.com/products') fetch() أداة مدمجة في JavaScript تستخدم لتقديم طلبات (Requests) لجلب الموارد من الشبكة، مثل البيانات أو الملفات. await تستخدم مع الدوال async. وتعني: "انتظر هنا حتى تنهي عملية fetch عملها وتعيد لي الاستجابة (Response)". أي أننا لن ننتقل إلى الخطوة التالية إلا بعد أن ترجع fetch نتيجة. .then((response) => response.json()) .then() هذه خطوة تنفذ بعد أن تنجح العملية السابقة (وهي fetch) وتعيد لنا استجابة. عملية fetch ترجع كائنًا يسمى response وعندما تأتينا الاستجابة (response)، نقوم بتحويلها إلى صيغة يمكن لـ JavaScript فهمها والتعامل معها بسهولة، وهي صيغة JSON". .then((data) => this.products = data) عندما تأتي البيانات بصيغة JSON (وقد أسميناها هنا data)، نقوم بتخزينها في متغير اسمه products
-
للتوضيح أكثر يمكنك الإطلاع على الأمثلة التالية أولاً لنفترض أن لديك تطبيقًا لإدارة المنتجات، ولديك قائمة من المنتجات ككائنات JavaScript. تريد عرض المنتجات المتوفرة فقط، أو المنتجات التي تنتمي إلى فئة معينة وهنا نستخدم filter كالتالي // بيانات المنتجات (يمكن أن تأتي من API أو قاعدة بيانات) const products = [ { id: 1, name: 'لابتوب ديل XPS', category: 'إلكترونيات', price: 1500, inStock: true }, { id: 2, name: 'ماوس لاسلكي لوجيتك', category: 'إلكترونيات', price: 50, inStock: false }, { id: 3, name: 'كتاب تعلم JavaScript', category: 'كتب', price: 30, inStock: true }, { id: 4, name: 'قميص قطني رجالي', category: 'ملابس', price: 45, inStock: true }, { id: 5, name: 'سماعات رأس سوني', category: 'إلكترونيات', price: 200, inStock: true }, { id: 6, name: 'طاولة قهوة خشبية', category: 'أثاث', price: 120, inStock: false } ]; // 1. تصفية المنتجات المتوفرة في المخزون فقط function getAvailableProducts(allProducts) { return allProducts.filter(product => product.inStock === true); } const availableProducts = getAvailableProducts(products); console.log("المنتجات المتوفرة في المخزون:"); console.log(availableProducts); /* Output: [ { id: 1, name: 'لابتوب ديل XPS', category: 'إلكترونيات', price: 1500, inStock: true }, { id: 3, name: 'كتاب تعلم JavaScript', category: 'كتب', price: 30, inStock: true }, { id: 4, name: 'قميص قطني رجالي', category: 'ملابس', price: 45, inStock: true }, { id: 5, name: 'سماعات رأس سوني', category: 'إلكترونيات', price: 200, inStock: true } ] */ أما بالنسبة ل match فيمكنك أن تعمل على نظام للتحقق من صحة المدخلات في نموذج (form validation) كالتالي function parseEmail(email) { // تعبير نمطي بسيط للتحقق من بنية البريد الإلكتروني واستخراج اسم المستخدم والنطاق // [a-zA-Z0-9._%+-]+@ -> اسم المستخدم // [a-zA-Z0-9.-]+\. -> اسم النطاق (قبل النقطة الأخيرة) // [a-zA-Z]{2,} -> امتداد النطاق (مثل com, org, net) const emailRegex = /^([a-zA-Z0-9._%+-]+)@([a-zA-Z0-9.-]+)\.([a-zA-Z]{2,})$/; const matchResult = email.match(emailRegex); if (matchResult) { // matchResult[0] هو التطابق الكامل // matchResult[1] هو الجزء الأول الملتقط (اسم المستخدم) // matchResult[2] هو الجزء الثاني الملتقط (النطاق الرئيسي) // matchResult[3] هو الجزء الثالث الملتقط (امتداد النطاق) return { isValid: true, fullEmail: matchResult[0], username: matchResult[1], domain: `${matchResult[2]}.${matchResult[3]}` // إعادة بناء النطاق كاملاً }; } else { return { isValid: false, message: "صيغة البريد الإلكتروني غير صحيحة." }; } } console.log("تحقق من البريد الإلكتروني 1:"); console.log(parseEmail("user.name@example.com")); /* Output: { isValid: true, fullEmail: 'user.name@example.com', username: 'user.name', domain: 'example.com' } */
