-
المساهمات
676 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
1
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Mustafa Mahmoud7
-
مرحبا، عند طلب ال last name المقصود به هو اسم العائلة في حالتك يكون الlast name هو الراوي بينما ال middle name المقصود به اسم الأب في حالتك يكون middle name هو صبحي بالتوفيق...
- 2 اجابة
-
- 1
-
المتصفح يخبرك أنه يوجد خطأ "out of memory" الذاكرة العشوائية ram ربما تكون ممتلئة. لذلك قم بقفل المتصفح بالكامل وإعادة التشغيل مرة أخرى وتأكد أن الشيفرة تكون كالأتي <!doctype html> <html> <head> <meta charset="UTF-8" /> <title>Page Title</title> </head> <body> <script> let A = 1; while (A <= 15) { document.write('<li>' + A + '</li>'); A++; } </script> </body> </html>
-
السبب فى ذلك أنه عند تنفيذ الكود دخل في حلقة تكرارية لا نهائية ففي كل مرة يعيد الكود ويجد أن المتغير A بقيمة 1 ويكون شرط الحلقة (A <= 15) صحيحًا بشكل دائم. وهذا يستنفذ موارد الجهاز لديك ويؤدي إلى التعليق بهذا الشكل حيث أن الكود يستمر في التنفيذ بدون توقف. لذلك لابد في كل مرة في الحلقة التكرارية وليكن أن نزيد المتغير A بواحد داخلها حتى يكون عند وصول المتغير A ل16 لا يتم الدخول للحلقة مرة أخرى مما يسمح للحلقة بالانتهاء وتتوقف نقوم بالتعديل كالأتي:- <script> let A = 1; while (A <= 15) { document.write('<li>' + A + '</li>'); A++; } </script> وسيتم عرض القائمة فى الصفحة من 1 إلى 15.
-
في الدورات يتم الشرح بالتأكيد بشكل متدرج ويتم شرح أكثر التفاصيل المهمة لتكون قادر على بناء مشاريع بشكل جيد وهي التفاصيل المهمة لك في هذه المرحلة ولكن في بعض الأحوال يتم تجاوز بعض التفاصيل ربما تم شرحها في مسار سابق والمسار الذي تدرسه يعتمد على هذا المسار السابق فالمدرب يفترض أنك درست المسار السابق ودرست هذه التفاصيل فليس هناك داعي لإعادة التفاصيل مرة أخرى حتى لا يتم التطويل في الفيديوهات بدون داعي وإذا كان لديك أي سؤال أو أي جزئية لا تفهمها بشكل جيد من المدرب بعد إعادة الفيديو مثلا أو المدرب لم يذكر تفصيلة معينة يمكنك إضافة تعليق في صندوق التعليقات وسيتم الرد عليك من قبل المدربين بشرح مفصل والرد عي إستفساراتك بشكل دقيق. أما بخصوص إمكانية تغيير المدرب الدورات عبارة عن فيديوهات مسجلة مسبقا ويتم تحديثها كل فترة وإضافة أشياء جديدة مهمة يحتاج لها سوق العمل، ولديك صلاحية الوصول لها ومشاهدتها فلا يمكن تغير المدرب. يمكنك إضافة سؤالك في صندوق التعليقات وسيتم الرد عليك من قبل المدربين بشرح مفصل والرد على إستفساراتك والشرح لك أي جزئية لم تستوعبها من الفيديو بشكل جيد.
-
فى هذه الحالة يمكنك إكمال مسار أساسيات الجافاسكربت ولن تواجهك مشاكل أو تعامل مع ال html أو الcss بعدها يمكنك الإنتقال إلى المسار الأول من دورة واجهة المستخدم لتعلم ال html والcss أو يمكنك معرفة أساسياتهم من خلال المقالات المشار إليها سابقا أو المقالات الموجودة فى القسم الخاص بهم الموجود بالأكاديمية. أو يمكنك تعلمهم مع المدرب عند شرح أطر العمل الخاص بالجافاسكربت حيث يتم كتابة شيفرة للhtml والcss وتوفير الأكواد الخاصة بهم. ولكن الأفضل بالتأكيد أن يكون لديك ولو معرفة بسيطة بhtml وcss قبل أطر العمل هذا سيوفر عليك وقت وتلافى الأخطاء الناتجة عن عدم علمك بهم. ولسبب أن الجزء الخاص بال html والcss غير موجود في دورة تطوير التطبيقات باستخدام الجافاسكربت تم توفيره فى المسار الأول من واجهة المستخدم بشكل مجانى لتعلمهم.
-
مرحبا طلال، فى بداية تعلمك لأساسيات الجافاسكربت ربما من غير الضرورى تعلم الhtml وال css ولكن عند التعمق فيها سيتم التعامل بالطبع مع صفحات تم إنشائها عن طريق الhtml وتنسيقها بواسطة css وستقوم بتغيير محتوى الصفحة وتنسيقها بواسطة الجافاسكربت. من الأفضل فى البداية تعلم الhtml وال css ثم الإنتقال للجافاسكربت ويمكنك ذلك عن طريق دراسة المسار الأول من دورة تطوير واجهات المستخدم فيوجد بها أساسيات html و css و أساسيات تطوير الويب ومشروع للتطبيق عليهم. وليس من الضرورى الإشتراك فى هذه الدورة لتستطيع الوصول للمسار الأول منها ما دام اشتركت فى أحد الدورات متاح لك المسار الأول من كل الدورات فى الأكاديمية. ويمكنك الوصول لهذا المسار من هنا. ويمكنك تعلم المزيد من خلال المقالات فى الأكاديمية حيث يوجد قسم خاص ب html و css. بالتوفيق...
-
وعليكم السلام ورحمة الله وبركاته، الدورة متاحة لك مدى الحياة حتى بعد حصولك على الشهادة تستطيع بالطبع الرجوع لها فى أى وقت تشاء للمراجعة. وحتى بعد تحديثها تستطيع الإطلاع على الأشياء الجديدة فيها ومتوفر لك الدعم فيها من استفسارات وإجابة على أسئلتك. بالتوفيق...
- 2 اجابة
-
- 2
-
لا يوجد ميعاد للإنتهاء من الدورة الدورة متاحة لك مدى الحياة. يمكنك التقدم لإجراء الامتحان بعد الانتهاء من 4 مسارات على الأقل من الدورة وتقديم ملفات المشاريع التى قمت بتنفيذها أثناء التطبيق مع المدرب فى هذه المسارات وسيتم اختبارك فى فى هذه المسارات فقط ولكن الأفضل الإنتهاء من كامل الدورة لتحصل على الفائدة الكاملة من الدورة لتنمية مهاراتك والتدريب على مشاريع مختلفة. وسيطلب منك تقديم المشاريع التى قمت بتنفيذها أثناء التطبيق مع المدرب فيمكنك عمل مجلد خاص لكل مسار وبداخل كل مجلد المشاريع الخاصة بهذا المسار ثم رفع كل مجلد على مستودع خاص به على GitHub وإرسال الروابط لتقديمها عن الطلب قبل إجراء اللإختبار. يمكنك التقدم للإختبار عن طريق التحدث مع مركز المساعدة وتحديد موعد للإختبار.
-
مرحبا مودة، عند الإنتهاء من الفديو والتطبيق مع المدرب احتفظى بالملف الخاص بهذا الفديو. وأيضا عندما تكون مجموعة فديوهات عبارة عن مشروع كامل طبقى مع المدرب واحتفظى بكل مشروع فى مجلد خاص به لتقديمه عند الطلب أو يمكنك فى نهاية الدورة والتقدم للإمتحان رفع المجلد الخاص بكل مشروع بشكل منفصل على github للإطلاع عليها. الأمر متروك لكى يمكنكى رفع الملفات أولا بأول أو رفعها دفعة واحدة فى نهاية الدورة أو طلب إجرا ء الإمتحان. بالتوفيق..
-
من الطبيعى أن يشعر الإنسان بصعوبة فى استرجاع المعلومات أو النسيان بعد فترة من الزمن إذا لم يتم استخدام هذه المعلومات سواء فى مشاريع أو حل تمارين بهذه المعلومات لتجنب النسيان يمكنك القيام بالأتى:- المراجعة جيدة جدا أثناء الدراسة ولتثبيت المفاهيم الأساسبية والضرورية فى بداية تعلمك. ولكن بما أنه تم المراجعة أكثر من مرة وتم استيعاب هذه المفاهيم وقمت بعملية التطبيق على هذه المفاهيم والدروس هذا يكفى البرمجة ليست لحفظ كل شئ ولكن تعلم واستيعاب المفاهيم الأساسية وحل المشكلات التى تواجهك بالذى تعلمته. معرفة عند مواجهة مشكلة معينة نستخدم الطريقة التى تعلمتها فى درس معين أو بمفهوم معين. التطبيق على فكرة معينة فى بالك بالذى تعلمته فهذا يثبت المعلومة. التطبيق وراء المدرب فى الدرس وقارن النتيجة الخاصة بك والنتيجة فى الدرس واستكشف الأخطاء الذى ستواجهك هذا سيساعد أيضا لتجنب الأخطاء فى المستقبل. عليك بالمراجعة المنتظمة على ما تعلمته من خلال تطبيق ما تتعلم فى مشروع عملى وتمارين وتحديات هذا سيساعدك كثير. فقط عليك مواصلة رحلة التعلم لا مشكلة فى ذلك مع استرجاع المعلومات السابقة من خلال التطبيقات. ويمكنك الإطلاع على الإجابات التالية
- 3 اجابة
-
- 2
-
مرحبا Ran Om فى المرات القادمة يرجى وضع التعليق أسفل الفيديو الخاص بالدرس فى خانة التعليقات فى نهاية صفحة الفيديو إذا كان يوجد تعليقات سابقة خاصة بهذا الدرس فى المكان المخصص للتعليقات ليتم مساعدتك بشكل أفضل. حيث أن هذا القسم متعلق بالأسئلة العامة التى لاتخص أى فيديو داخل الدورات. فى ملف index.html سطر 445 يتم تعديل اسم الصنف cartTob <div class="cartTob"> ^^^^^^^^^ </div> إلى cartTab <div class="cartTab"> </div> ليكون نفس اسم الصنف عند استخدامه فى ملف الstyle.css حيث أنه تستخدميه باسم cartTab. سطر 100 وليسcartTob. .cartTab .listaCart .item img بالتوفيق..
- 2 اجابة
-
- 1
-
مرحبا آسر يرجى وضع التعليق أسفل الفيديو الخاص بالدرس فى خانة التعليقات فى نهاية صفحة الفيديو إذا كان يوجد تعليقات سابقة خاصة بهذا الدرس فى المكان المخصص للتعليقات ليتم مساعدتك بشكل أفضل. يوجد مكان مخصص للتعليقات أسفل كل فيديو بهذا الشكل حيث أن هذا القسم متعلق بالأسئلة العامة التى لاتخص أى فيديو داخل الدورات. بالتوفيق..
-
عند استخدام ال / للقسمة فإن النتيجة تكون الرقم بالكامل وفى حالة أنه رقم به كسور مثل 10/3 فإن النتيجة ستكون 3.333333 أى أنه تكون النتيجة وبها الجزء الكسرى. result1 = 10 / 3 print(result) # Output: 3.333333 result2 = 10 / 2 print(result2) # Output: 5 أما عند استخدام // للقسمة يتم ترجيع الرقم الصحيح فقط ويتم اقتطاع الجزء الكسرى مثلا 3//10 فإن النتيجة ستكون 3 فقط أى أنه تكون النتيجة ويتم اقتطاع الجزء الكسرى. result1 = 10 // 3 print(result) # Output: 3 result2 = 20 // 3 print(result2) # Output: 6 العمليات العددية في بايثون
- 2 اجابة
-
- 1
-
دورة تطوير واجهة المستخدم هى دورة خاصة بمجال الواجهة الأمامية Front-End حيث ستتعلم فى هذه الدورة:- أساسيات تطوير الويب بداية من HTML و CSS ولغة البرمجة JavaScript. ثم بناء متجر إلكتروني من خلال التقنيات Bootstrap 5 و Sass و Webpack. بالإضافة لعدة مشاريع أخرى مثل بناء واجهة مثل يوتيوب وبناء صفحات هبوط وتطوير موقع شركة وتطوير لوحة تحكم وتطوير موقع إخبارى. وسنتعلم استخدام إطار تطوير المواقع الثابتة Hugo مع مع بناء عدة مواقع باستخدام Hugo. والمسمى الوظيفى لك عند إنتهائك من هذه الدورة مطور واجهة أمامية (Front-End Developer) ولكى تصبح مطور متكامل (Full Stack Developer) يمكنك الاستمرار فى التعلم لتصبح مطور واجهة خلفية (Back-End Developer) وتصبح مطور واجهة أمامية وخلفية فى ذات الوقت أى مطور متكامل Full Stack Developer. اللغات التى يمكنك الإختيار منها لتصبح مطور واجهة خلفية:- يمكنك الاستمرار فى تعلم الجافاسكربت وتعلم النود جى اس وبناء واجهة خلفية بالجافا سكربت. php : تستطيع تعلم لغة php مع اطار العملlaravel او Symfony وبناء الواجهة الخلفية. Python : تستطيع تعلم لغة Python مع اطار العملdjango أو flask وبناء الواجهة الخلفية. Ruby : تستطيع تعلم لغة Ruby وبناء الواجهة الخلفية. بعد دراستك لهذه اللغات وأطر العمل أصبحت مطور متكامل Full Stack Developer. للمزيد للمسميات الوظيفية والمسارات المختلفة يمكنك الإطلاع على هذه الإجابات
-
يرجى توضيح ما هى الدورة التى تقصدها بالتحديد لأنه يوجد 7 دورات لهم علاقة بالبرمجة بالأكاديمية.
-
مرحبا محمود من الملاحظ أنه فى المكون Education يتم عملية الإرسال dispatch للتابع deleteEducation(id) فقط const handleRemoveEducation = (id) => { dispatch(deleteEducation(id)); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ }; والتابع deleteEducation(id) يقوم بالإتصال بالخادم والإزالة من قاعدة البيانات وهذا يتم بشكل صحيح وتظهر نتيجته بعد عملية التحديث للصفحة. ولكن لابد أن تتم عملية الإرسال dispatch للتابع (id)removeEducation لكى يتم التفعيل بدون الحاجة لتحديث الصفحة كالأتى const handleRemoveEducation = (id) => { dispatch(deleteEducation(id)); dispatch(removeEducation(id)); }; بالتوفيق..
- 1 جواب
-
- 1
-
مرحبا محمود أنت بالفعل تقوم بالإضافة إلى قاعدة البيانات وفى نفس الوقت تضيف فى المصفوفة ولكن عند تحديث الصفحة فى البداية لابد من جلب البيانات و إضافتها إلى المصفوفة ومن ثم إجراء العمليات على المصفوفة للقيام بهذه الإجراء اقترح عليك استخدام createAsyncThunk وهذه الدالة موجوده داخل الredux Toolkit لمعالجة العمليات الغير متزامنة في الأكشنز (actions) في Redux و تستطيع عن طريقها مشاركة البيانات التى تحصل عليها منAPI SERVER فى كل المكونات والوصول لها من أى مكون. وهذا مثال بسيط لاستخدامها import { createAsyncThunk } from '@reduxjs/toolkit'; import axios from 'axios'; // تعريف ال async thunk export const fetchData = createAsyncThunk( 'data/fetchData', // نوع الأكشن async (arg, thunkAPI) => { try { const response = await axios.get('https://api.example.com/data'); return response.data; } catch (error) { // التعامل مع الأخطاء، يمكنك إرسال أكشن آخر أو إلقاء الخطأ return thunkAPI.rejectWithValue(error.message); } } ); // استخدام ال async thunk في الـ slice import { createSlice } from '@reduxjs/toolkit'; const dataSlice = createSlice({ name: 'data', initialState: { loading: false, data: null, error: null, }, reducers: {}, extraReducers: { [fetchData.pending]: (state) => { state.loading = true; state.error = null; }, [fetchData.fulfilled]: (state, action) => { state.loading = false; state.data = action.payload; }, [fetchData.rejected]: (state, action) => { state.loading = false; state.error = action.payload; }, }, }); export default dataSlice.reducer; حيث في هذا المثال: createAsyncThunk تنشئ async thunk action creator بإسم fetchData. يأخذ هذا المنشئ نوع الأكشن ('data/fetchData') ودالة غير مزامنة تقوم بأداء عملية مزامنة (هنا، طلب بيانات من API). createSlice تنشئ slice لتخزين الحالة (state) والأكشنز والريدوسيرز (reducers). extraReducers تعرف كيفية التعامل مع نتائج ال async thunk مثل (التعليق)pending, (الإكتمال)fulfilled, و(الرفض ) rejected. بالتوفيق..
- 2 اجابة
-
- 1
-
بما أنك تستخدم Redux Toolki لإدارة الحالة الخاصة بالموقع وفى بادئ الأمر لم تحصل على بيانات المصفوفة من الواجهة البرمجية API SERVER أو من خلال التخزين المحلى localstorage مثلا وتقوم بالإضافة بنفسك إلى المصفوفة وهذا كله يتم على المتصفح ولا تضيف إلى المصفوفة فى قاعده البيانات أو التخزين المحلى فبالتأكيد عند عمل تحديث للصفحة تكون المصفوفة فارغة.
- 3 اجابة
-
- 1
-
مرحبا أحمد التطبيق مهم جدا جدا أثناء عملية التعلم فالوصول لمستوى جيد فى هذا المجال لابد من الممارسة بشكل مستمر فلابد من التطبيق والتغيير وليس الكتابة خلف المدرب بشكل حرفى لمعرفة النتيجة عند إجراء بعض التغيير كلما زادت الممارسة زاد فهمك للدرس وللموضوع بشكل عام فلا تعامل البرمجة مثل مسلسل أو فيلم وتكتفى فقط بالمشاهدة. حدوث أخطاء معك أثناء عملية التعلم شئ ايجابى وليس سلبى فستتعلم من هذه الأخطاء البرمجية كثيرا وتعرف الطرق الأفضل لتنفيذ الفكرة بعد ذلك. هذا التكرار فى التطبيقات المقصود منه تأكيد للمعلومات وممارستها بأفضل شكل وأحسن الطرق وزيادة أشياء جديدة فى كل تطبيق عن الأخر للمزيد اطلع هذه الاجابات بشأن طريقة التعلم. بالتوفيق..
-
المشكلة تحديدا هي في تكوين ملف manifest.json من طرف vite نفسه. لإجبار توليد هذا الملف في وضع البناء يوجد الخيار build.manifest ضمن كائن اعداد vite في ملف vite.config.js، تعريفه سيحل كامل المشكلة export default defineConfig({ build: { // generate manifest.json in outDir manifest: true, }, ثم npm run dev للمزيد لحل هذا المشكلة انظر لهذه الإجابة
-
مرحبا عبد الرحمن فى السطر 10 فى ملف ال index.html طريقة التضمين الصحيحة للملف الخاص بشفرة الجافاسكربت تكون كالأتى <script src="index.js"></script> بدلا من <script> src="index.js"</script> حيث يتم قفل وسم الscript بعد كتابة السمة src وتحديد المسار الخاص بملف شيفرة الجافاسكربت وليس قبلها. بالتوفيق..
- 1 جواب
-
- 1
-
مرحبا أمل العماد يوجد بعض التعارض خاص بحزمة الvite مع حزمة @vitejs/plugin-vue بسبب توافق الإصدارات مع بعضها البعض. حيث الحزمة @vitejs/plugin-vue@5.0.4 تتطلب نسخة أحدث من vite وهى النسخة vite@5.0.0 تستطيع حل المشكلة بتثبيت نسخة أحدث من vite كالأتى npm i vite@5.0.0 ثم npm i اذا لم تحل المشكلة يرجى اتباع هذه الخطوات نقوم بحذف ملف package-lock.json وملف node_modules حذف ملفات التخزين المؤقت من خلال الأمر npm cache clean --force ننفذ أمر التثبيت npm i اذا لم تحل المشكلة نجبره على التثبيت ولكن فى هذه الحالة ربما تنتج مشاكل بسب تعارض الحزم. npm i --force أو تجاهل تعارض الحزم عن طريق هذا الأمر npm i --legacy-peer-deps بالتوفيق..
-
للتأكد من توافر كوبونات خصم أو لديك كوبونات سابقة وتريد التأكد من صلاحية استخدامها يرجى التوجه إلى مركز المساعدة سيتم مساعدتك بشكل أفضل. يتم توفير عروض مثل دورتين بسعر دورة أو تخفيضات على دورات معينة في المناسبات وأحيانًا في فترة الإجازات الصيفية وأحيانًا في فترة التخفيضات السنوية الخاصة بالجمعة البيضاء وبداية السنة الجديدة، وفي بعض الأحيان يتم توفير كوبونات بدون مناسبات.
-
وعليكم السلام محمود كل عام وأنت بخير ما تريد تنفيذه يسمى mockup وهو نموذج لشكل الموقع على مختلف الأجهزة يمكن الذهاب لموقع مثلhttps://websitemockupgenerator.com وهو يتيح لك طريقتين للعمل 1-وضع الرابط الخاص بموقعك ويجب أن يكون مرفوع على الانترنت لكى يتم الوصول اليه ثم submit يقوم بتوليد نماذج مختلف للأجهزة تستطيع عمل تنزيل لها ، تستطيع عمل تنزيل صورة واحدة تجمع بين مختلف الأجهزة أو اختيار الجهاز الذى تريده. 2- بعد أخذ لقطات للموقع الخاص بك على مختلف الأجهزة تستطيع رفع الصور بعد ذلك. ستلاحظ ظهورهم أيضا بعد الرفع تستطيع عمل تنزيل لهم. بالتوفيق..
- 2 اجابة
-
- 2