-
المساهمات
18818 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
445
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Mustafa Suleiman
-
واقع الحياة أمر مختلف عن النصائح العامة، فلو أنت شخص لديه وقت فراغ كبير الأفضل الاستفادة منه في التعلم، وكذلك لو أنت شخص تريد الحصول على وظيفة عما قريب ستحتاج إلى بذل جهدك وليس توفير الوقت، وأمور أخرى حسب ظروف كل شخص تقتضي عدم إهدار وقت متاح. مجال البرمجة ليس بالسهل ويحتاج إلى وقت وممارسة وإلتزام خاصًةفي البداية حيث تكون الأمور ضبابية، ومع الوقت وبذل الجهد تتضح الرؤية ويسهل الأمر شيئًا فشيئًا، لو سألتني فلا مشكلة في قضاء 10 ساعات يوميًا وأنت تدرس ذلك طبيعي من وجهة نظري، وبعد فترة 6 أشهر تستطيع خفض تلك المدة لمُعدل صحي حسب طبيعة الحياة الخاصة بك. هل سيتأثر جسدك؟ بالطبع سيتأثر، لذا حاول ممارسة أي نشاط لمدة ربع ساعة يوميًا سواء تمارين الضغط أو التشمية قليلاً أو أي شيء، وضع ما تريد من الخطوط أسفل حاول، ولا أنصحك بتجاهل ذلك، فله أثره الواضح على المدى البعيد، ولا تنسى الصلاة في حال كانت جزء من حياتك. كذلك الأفضل تخصيص يوم إجازة لا تقترب به من الحاسوب، لكي تعود نشيط الذهن وتجنب الملل.
-
لست بحاجة إلى تعلم الـ SEO بشكل مُتعمق، ما يلزمك هو الجانب التقني منه وذلك يسمى technical SEO وهو كل ما تفعله لمساعدة محركات البحث مثل جوجل على الزحف إلى موقعك، فهمه، وفهرسته بكفاءة، وذاك أساس أي استراتيجية SEO ناجحة، بالتالي لو الأساس ضعيف فكل جهود المحتوى والروابط الخارجية لن تحقق أقصى فائدة. ستحتاج إلى البحث وتعلم الأمور التالية: robots.txt XML Sitemap Canonical Tags سرعة وأداء الموقع وذلك يشمل Core Web Vitals والتي تحتوي على LCP وFID وCLS، كذلك سيتعين عليك تعلم كيفية تحسين الصور للـ SEO وتطبيق Lazy Loading عليها، بجانب TTFB. هيكلة الموقع وبنية الروابط أو Site Architecture و URL Structure التصميم المتجاوب للموقع تفعيل HTTPS والتعامل مع أكواد حالة HTTP ومنها301 Redirects باستخدمها لإعادة توجيه الروابط القديمة إلى الجديدة بشكل دائم، و404 Not Found بإنشاء صفحة 404 مخصصة ومفيدة توجه المستخدمين إلى أجزاء أخرى من الموقع، وكذلك تجنب أخطاء الخادم 5xx بأي ثمن.
- 4 اجابة
-
- 1
-
-
غالبًا لديك مشكلة في المسار، يجب أن يكون اسم الملف هو image.jpg تمامًا كما كتبته، لو الاسم Image.jpg بحرف I كبير أو image.JPG، فلن يعمل المسار، وللعلم أنظمة التشغيل مثل ويندوز لا تفرق بين الحروف الكبيرة والصغيرة، لكن سيرفر التطوير والخوادم الحقيقية تفرق. أيضًا يجب أن يكون الملف موجود مباشرة داخل مجلد src/assets. في حال استمرت المشكلة، اضغط Ctrl + C لإيقاف السيرفر في نافذة الـ Terminal، ثم أعد تشغيله مرة أخرى باستخدام الأمر npm run serve. والأفضل بدلًا من وضع المسار مباشرة في الـ CSS، هو استيراد الصورة في جزء الـ <script> ثم نربطها كـ style مباشرة على العنصر، وذلك من خلال import، حيث أداة البناء Webpackأو Vite تفهم أن الملف يجب معالجته، فتقوم بنسخه إلى مجلد البناء النهائي dist وتعطيك المسار الصحيح والنهائي له، وذلك يمنع حدوث أي مشاكل في المسارات. كالتالي: <template> <div class="my-main" :style="{ backgroundImage: 'url(' + imageUrl + ')' }"> </div> </template> <script> import imageFile from '@/assets/image.jpg'; export default { name: 'MyMain', data() { return { imageUrl: imageFile } } } </script> <style lang="scss" scoped> .my-main { width: 100%; min-height: 400px; background-size: cover; background-position: center; } </style>
-
JS لغة خاصة بالويب أو ذلك ما كانت عليه في باديء الأمر، حاليًا يتم استخدامها في كل شيء تقريبًا، لكن هي ليست من اللغات القوية فيما يتعلق بالاستقرار وتجنب الأخطاء، بسبب عدم وجود معمارية صارمة بها لفرض أنواع محددة للبيانات عند تعريفها، أو حتى التحقق منها وفرض نوع معين للبيانات عند تشغيل المشروع، فأثناء تشغيل المشروع تحدث أخطاء غير متوقعة بسبب عدم توفر ذلك. وفي المشاريع الكبيرة التي يعمل عليها فريق، يصبح الكود المكتوب بـ JS معقدًا وصعب الفهم، أي بدون TS فأي مبرمج جديد ينظر إلى دالة مثل processData(data)، سيتساءل ما هو شكل data؟ هل هو كائن object؟ ما هي خصائصه؟ هل هو مصفوفة array؟ أم رقم؟ سيضطر لقراءة الكود بالكامل أو تتبعه ليفهم. بالتالي منذ سنوات قليلة أصبحت TS هي اللغة الأساسية لتطوير مشاريع جافاسكريبت، ومتوقع منك أن تكون متقن لها بنسبة جيدة. ستجد تفصيل هنا:
-
Vue قادر على بناء أي شيء يمكن لـ React بناؤه، إذن الفارق ليس في القدرة الأساسية للإطار أو المكتبة نفسها، بل في مدى اتساع وعمق النظام البيئي أي الـ Ecosystem المحيط به، بمعنى المكتبات المتوفرة وحجم الدعم. بالطبع يوجد مكتبات ودعم أكبر في بيئة React، وستجد الكثير من الحلول للمشاكل التي تواجهها، فلأي مشكلة أو ميزة تتخيلها، غالبًا ما ستجد مكتبة موثوقة ومدعومة جيدًا، بينما في Vue ستجد حلولًا لمعظم المشاكل الشائعة، لكن ليس بنفس التنوع أو درجة النضج في بعض المجالات المتخصصة جدًا، وأحيانًا ستضطر إلى بناء مكون بنفسك أو الاعتماد على مكتبة أقل شهرة، لذا الأمر يعتمد على نوع المشروع. بجانب وجود إطارات متنوعة تعتمد على React بالتالي يوجد الكثير من الخيارات، بدءًا من Next.js وهو الأشهر، بالإضافة إلى Gatsby وRemix. وبالرغم من وجود Nuxt.js وهو المنافس المباشر لـ Next.js وهو ممتاز وقوي للغاية ويقوم بنفس الوظائف (SSR, SSG, etc) بشكل جيد، لكن لا يوجد نفس التنوع السابق. أيضًا أدوات إدارة الحالة State يوجد خيارات أكثر بكثير في بيئة React، بينما Vue لديك Pinia وهو الحل الرسمي الحالي وقوي جدًا وممتاز. كذلك يوجد React Native لبناء تطبيقات الهواتف، وستتمكن من خلاله من إعادة استخدام كود React الذي كتبته لتطبيق الويب. ولا يوجد حل رسمي من فريق Vue لتطوير تطبيقات الهاتف، والبدائل موجودة ولكنها ليست بنفس القوة أو الشعبية، حيث يوجد NativeScript-Vue وهو حل جيد لاستخدام Vue لبناء تطبيقات Native، لكن مجتمعه أصغر ودعمه أقل من React Native.
-
في الواقع العملي الأمر ليس شعارات، بمعنى تطبيق Vue مبني بشكل جيد ومعمارية سليمة سيكون دائمًا أفضل من تطبيق React مكتوب بشكل فوضوي، والعكس صحيح، أي المبرمج ومنهجية العمل أهم من الأداة نفسها. وتستطيع بناء مشاريع كبيرة من خلال Vue.js لا مشكلة، لكن الأمر يعتمد على متطلبات المشروع، أي لو المشروع يعتمد على مكتبة أو حل معين لا يتوفر إلا في بيئة React فستقوم بالتطوير من خلالها، كذلك عند تطوير مشروع يتم الأخذ في الإعتبار مدى توفر مبرمجي React أو Vue في سوق العمل المحلي وبالطبع React لها النصيب الأكبر، لذا لبناء فريق كبير سيكون هناك حاجة إلى سهولة في التوظيف، بالتالي يتم اللجوء إلى React. كذلك لو هناك حاجة لتطوير تطبيق للهواتف باستخدام نفس الكود، فيوجد React Native هو الحل الأقوى لو أردت تطوير تطبيق هاتف من خلال جافاسكريبت. أو في حال المشروع بحاجة إلى Next.js. وللعلم Vue شائع جدًا استخدامه في الصين وآسيا ويزداد اعتماده في أوروبا والشرق الأوسط، لديك مثلاً Alibaba يعتمد على Vue.
-
ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم أسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل.
-
لا مشكلة، يستطيع أي شخص شراء الدورة لك، المهم هو التسجيل بنفس الإيميل الذي تم به تسجيل الحساب، لكن الأسهل هو أن يشتري لك بطاقة هدية بتكلفة الدورة ثم تستخدمها لشراء الدورة. ستجد تفصيل هنا لشرح الأمر: شراء بطاقة هدية استخدام بطاقة الهدية وذلك هو رابط شراء البطاقة بشكل مباشر: https://academy.hsoub.com/store/gift-cards/
- 1 جواب
-
- 1
-
-
لم أتفهم المطلوب، لكن تفقدت المشروع لديك، وقد قمت بالمطلوب لا مشكلة ما عدا جزئية واحدة، وهو تحميل وتنظيف البيانات بتحميل الملف Books Recommendation System.csv، واختيار الأعمدة المطلوبة، وحذف الصفوف التي تحتوي على قيم فارغة بنجاح. ثم المعالجة المسبقة للنصوص بإنشاء دالة preprocess تقوم بتحويل النص إلى أحرف صغيرة، وتقسيمه إلى tokens، وإزالة علامات الترقيم والكلمات الشائعة. ثم قمت بإنشاء المتجهات بواسطة نموذج SentenceTransformer بنجاح لتحويل الأوصاف المُعالَجة إلى متجهات رقمية، مع عرض الكتب العشرة الموصى بها بشكل جيد (العنوان، الفئة، الوصف). بعد ذلك أنشئت bar chart لعرض متوسط تقييمات أفضل 5 كتب موصى بها. ما لم تقم به هو في الخطوة الرابعة حيث ُطلب منك استخدام مكتبة faiss لإنشاء فهرس للبحث الفعال عن التشابه، وأنت قمت بالفعل بإنشاء فهرس faiss: index = faiss.IndexFlatL2(embeddings.shape[1]) index.add(embeddings) ولكنه لا يستخدم الفهرس للبحث عن الكتب المشابهة، بل يعتمد على مكتبة sklearn لحساب التشابه بواسطة cosine_similarity، كالتالي: similarities = cosine_similarity(user_embedding, embeddings)[0] top_10_indices = similarities.argsort()[-10:][::-1] فالهدف من استخدام faiss هو السرعة والكفاءة في البحث عن أقرب الجيران، خاصة مع مجموعات البيانات الضخمة، بينما cosine_similarity من sklearn يقوم بمقارنة متجه المستخدم مع كل المتجهات الأخرى في مجموعة البيانات، وهو ما يصبح بطيئًا جدًا مع زيادة عدد الكتب. عليك تعديل الكود إلى: distances, top_10_indices = index.search(user_embedding, k) top_10_indices = top_10_indices[0]
-
بالضبط، بإجراء عمليات حسابية أو مقارنات بين قيمة منطقية ورقم، تقوم بايثون بشكل ضمني أي في الخلفية بتحويل القيمة المنطقية إلى ما يعادلها من الأعداد الصحيحة 1 لـ True و 0 لـ False ثم تجري العملية. وذلك لآنّ النوع bool في بايثون هو في الواقع نوع فرعي من النوع int وتستطيع حتى استخدام القيم المنطقية في عمليات الجمع والطرح والضرب: result_add = 5 + True print(result_add) result_mul = 10 * False print(result_mul) result_sub = 100 - True print(result_sub) لكن هناك أمر هام وهو True == 1 نتيجتها True لأن قيمهما متساوية، لكن True is 1 تُعيد False، حيث ==يتحقق من تساوي القيمة. بينما is يتفقد هل المتغيران يشيران إلى نفس الكائن في الذاكرة أم لا؟ وبما أنّ True هو كائن من النوع bool، و 1 هو كائن من النوع int لذا هما نوعان مختلفان، وبالتالي ليسا نفس الكائن. print(True == 1) print(True is 1)
- 4 اجابة
-
- 1
-
-
حاليًا الأفضل الاستمرار في تعلم بايثون لكون المفاهيم حاضرة في ذهنك ولترسيخها أكثر، وللتطبيق على ما تعلمته في المسارين حاول القيام بأحد المشاريع التالية: 1- نظام إدارة نادي رياضي بمعنى Gym Manager والميزات المطلوبة هي: عضويات: إنشاء/تجديد/تجميد مع طبقة OOP (Member, Subscription, Payment). تنبيهات تلقائية بانتهاء الاشتراك واستخدم Gmail API / SMTP. فواتير PDF فيها كود QR للاسم ورقم العضوية، ستحتاج إلى reportlab وqrcode. تقرير شهري إلى Google Sheet ونسخة Excel. بالتالي ستقوم بالتطبيق على OOP، التعامل مع CSVوJSON كنسخ احتياطية، SQLite، argparse أو Typer، PDF، Excel، Gmail API، جداول Google. 2- لوحة تحكم بيانات شخصية بها الميزات التالية: تجمع بيانات من عدة APIs (طقس، عملات، أسهم). تحفظها في DB، وتصدر snapshot يومي إلى CSV و Google Sheet. ترسل تقرير صباحي في بريد HTML به رسم بياني مضمن. واجهة CLI لإضافة مصادر جديدة أو تغيير فترة الجلب. بالطبع ستواجهك تحديات، ولكن مع البحث والقراءة والمشاهدة ستتمكن من تخطيها. بعد ذلك، قبل الإنتقال لتعلم الواجهة الأمامية وجانغو تعمق في الموضوعات التي تُستخدم كثيراً مع Django لاحقًا وهي: SQL (JOINs, Indexes, Normalization). ORM. فهم نمط MVC / MVT. وحدة datetime في بايثون. بعد ذلك قم بتعلم الواجهة الأمامية، وانتقل لتعلم لجانغو بعدها.
- 3 اجابة
-
- 1
-
-
الأمر ليس مجموعة من الخطوات تستطيع نسخها ولصقها، بل عملية استكشافية تتطلب حدس، فضول ومعرفة بالمجال، أي بمعنى أدق الخبرة هي التي تُحدث فارق ملموس في دقة النماذج، تعميمها، قابلية تفسيرها وفي نجاح المشروع من الأساس، وكلما تم الاستثمار في الجانب الإبداعي لهندسة الميزات، زادت احتمالات الوصول إلى حل عملي متفوق بأقل تعقيد ممكن. بمعنى يتطلب الأمر استكشاف بصري ، وطرح أسئلة ماذا لو؟، وبناء ميزات تلتقط ظواهر غير مُشخصة في البيانات الخام، مثلاً نسبة المشتريات ليلاً ÷ إجمالي المشتريات كمؤشر لاحتيال. لتنمية ذلك الجانب قم بالتدرب على تنفيذ جلسة عصف ذهني، وأيضًا الاستعانة برأي خبير في البيانات نفسها في حال تتطلب خبرة عملية مثل البيانات الطبية، وغالب الحال ستتمكن من اكتشاف ميزة يصعب استنتاجها من البيانات وحدها. واستكشاف بصري مكثف EDA عن طريق الرسوم التشتتية، Box-Plots، وخرائط الحرارة تُولد أسئلة وفرضيات، كذلك عوضًا عن هندسة ميزة واحدة كبيرة، جرب توليد مئات الميزات البسيطة، ثم استخدم تقنيات انتقاء أو ترتيب المزايا لتصفية الأفضل. واعتمد على الـCross-Validation لتدوير الأفكار بسرعة واحتفظ فقط بما ينجح، بجانب قراءة أوراق ومسابقات مماثلة فكثير من الأفكار الإبداعية بإمكانك إعادة تدويرها.
- 4 اجابة
-
- 1
-
-
جودة البيانات هي الأهم بالطبع، لكونها تُحسن من الضجيج والانحياز معاً، بينما زيادة تعقيد النموذج في وجود بيانات رديئة ترفع التباين بدرجة أكبر من الفائدة. بالتالي جودة البيانات في المرتبة الأولى ثم زد تعقيد النموذج عند الحاجة، وتلك استراتيجية تؤدي إلى أعلى دقة، أفضل قابلية تعميم، وتكلفة معالجة أقل. ففي الواقع العملي البيانات عالية الجودة تتطلب وقت ومال، لكن الاستثمار يُدفع مرّة واحدة ويُستخدم لأي نموذج لاحق، واعتماد نموذج معقد فوق بيانات رديئة سيخفي المشاكل لفترة، لكنه يزيد من خطر الفشل عند الانتقال إلى بيئة الإنتاج وذلك يُعرف باسم data-shift. عليك بالتالي: ابدأ بتقييم جودة البيانات بتفقد القيم المفقودة، تشويش، أخطاء وضع العلامة، تحيز التوزيع. نظف البيانات، حسن التسميات، أضف ميزات مشتقة، ووازن الطبقات. درب نموذج بسيط من خلال Logistic Regression، Random Forest، XGBoost مع إعدادات افتراضية وحقق baseline قوي. استعن بنماذج أكثر تعقيداً فقط عندما يتشبع المنحنى ويصبح تحسين الدقة مكلف بالطرق التقليدية. راقب مقاييس التعميم Cross-Validation، Learning Curves للتأكد من أن زيادة التعقيد لا ترفع فجوة التدرب والاختبار.
- 4 اجابة
-
- 1
-
-
آلية الإختبار هي كالتالي، بعد إنهاء 4 مسارات من الدورة على الأقل، أو الدورة بالكامل عليكِ رفع المشاريع التي قمتي بها بالدورة على حسابك في github، ثم التحدث لمركز المساعدة وإخبارهم أنك تريدين التقدم للإختبار وتوفير روابط المشاريع على github. ثم الإنتظار لبعض الوقت لحين مراجعة المشاريع وسيتم الرد عليكِ، وتحديد موعد لإجراء مقابلة، وبها يتم: إجراء محادثة صوتيّة لمدة 30 دقيقة يطرح المدرّب عليكِ أسئلة متعلّقة بالدورة والأمور التي نفّذتيها خلالها. يحدد لك المدرّب مشروعًا مرتبطًا بما قمتي به أثناء الدورة لتنفيذه خلال فترة محددة تتراوح بين أسبوع إلى أسبوعين. إجراء محادثة صوتيّة أخرى لمدّة 30 دقيقة يناقش بها مشروعك وما نفذتيه وتُطرح أسئلة خلالها. إن سارت على جميع الخطوات السابقة بشكل صحيح، تحصلين على الشهادة أو يرشدك المدرّب لأماكن القصور ويطلب منك تداركها ثم التواصل معنا من جديد.
-
موجودة في كل المكتبات وكذلك في مشاريع تعلم الآلة، ولكنك لا تشعر بها دائماً لأنك تعمل في دفاتر Jupyter بها كود بسيط دفك لاستكشاف البيانات بسرعة من أجل التعلم، ولا تحتاج إلى توزيع الكود على فريق كبير أو إعادة استخدامه بشكل متكرر. بالتالي الأسلوب الإجرائي أو الدوال القصيرة أبسط وأسرع، وما إن يكبر المشروع أو يصبح جزءًا من منتج، ستجد OOP في كل مكان، حتى لو لم تكتبها بنفسك. فمكتبات النمذجة والتي منها scikit-learn مبنية بالكامل على Estimator AP (fit / predict) حيث كل خوارزمية هي كائن، وكذلك PyTorch تطلب منك توريث nn.Module لإنشاء نماذجك. وTensorFlow Keras توفر tf.keras.Model و tf.keras.Layer. حتى DataFrame في pandas هو كائن ضخم، إذن، OOP ليست أقل شيوعًا بل هي ببساطة مغلفة داخل المكتبات التي تستخدمها، والسؤال الصحيح هو متى تحتاج أن تكتب كائناتك أنت؟ ببساطة لو لديك منطق تهيئة بيانات يتكرر عبر عدة تجارب، أو تريد تبديل نموذج عبر سطر إعداد واحد، أو عندما يصبح المشروع جزءاً من منتج مثل API أو تطبيق هاتف. أو هناك أكثر من شخص على الكود ويجب الاتفاق على واجهات واضحة، ولتنظيم الكود والفصل بين المسؤوليات، بمعنى • كلاس للتهيئة وآخر للتدريب وآخر للتقييم. ابدء أولاً بكتابة كود بسيط عبر الدوال، وعندما تلاحظ أن عددًا من الدوال تشترك في مجموعة متكررة من المتغيرات انقلها إلى كلاس.
-
هل تقصد النموذج التالي في تعليق سابق؟ <form method="POST" action="/submit"> {{ csrf_token() }} <div class="mb-3"> <label for="name" class="form-label">الاسم</label> <input type="text" class="form-control" id="name" name="name"> </div> <div class="mb-3"> <label for="email" class="form-label">البريد الإلكتروني</label> <input type="email" class="form-control" id="email" name="email"> </div> <button type="submit" class="btn btn-primary">إرسال</button> </form> لست بحاجة إلى كتابة أي كود Ajax لكي يعمل النموذج، فعند الضغط المستخدم على زر إرسال، سيقوم المتصفح بإعادة تحميل الصفحة بالكامل، وإرسال طلب من نوع POST إلى المسار المحدد في السمة action وعليك تعديله ليتناسب مع المسار لديك. وسيتم إرفاق بيانات النموذج وهما الاسم والبريد الإلكتروني مع الطلب، وسيقوم لارافيل بمعالجته من خلال المتحكم المربوط بالمسار.
-
سبب التوقف هو عدم وجود هدف واضح تسعين إليه، عليك تحديد ذلك، هل تتعلمين من أجل دخول مجال البرمجة؟ وما الدافع إلى ذلك، فور وجود الدافع ضعيه أمامك على ورقة والصقيها على الشاشة لتذكيرك، وستتمكنين من الإلتزام. ثم يجب وضع خطة لدراسة الدورة لكي لا تصابين بالإحباط، عليك بدراسة التالي أولاً: مدخل إلى علوم الحاسوب أساسيات البرمجة إلى عالم الويب أساسيات هندسة البرمجيات إعادة تصميم البرمجيات Refactoring ثم دراسة المسارات التالية وستجدي صعوبة بعض الشيء في دراستها، حاولي استيعابها بنسبة 50 إلى 70% وسيتضح لك الأمر أكثر أثناء تعلمك البرمجة وتنفيذ المشاريع والوصول لمرحلة متقدمة، ففي البداية الأمر مبهم. قواعد البيانات البرمجة كائنية التوجه الخوارزميات وبنى المعطيات أنماط التصميم أنظمة التشغيل ونظام لينكس وستجدين تفصيل هنا بخصوص بعض النقاط:
-
الأمر ليس هذا وذاك، كلاهما مطلوب في سوق العمل لكن Vue.js بنسبة أقل وستجدها مستخدمة بالشركات الصغيرة، أما React في الشركات المتوسطة إلى الكبيرة. عامًة أنت تتعلم للحصول على وظيفة بالتالي تفقد المطلوب في سوق العمل المحلي لديك بالنسبة لمطور Front-End هل يوجد نسبة جيدة تطلُب Vue.js أم الغالبية React.js؟ وهل الوظائف التي تطلُب Vue.js تتطلب مستوى خبرة كبير أي 3 سنوات فيما فوق مثلاً أم بمستوى أقل Junior؟ في حال Junior إذن هي أفضل لك، لأنّ أغلب وظائف React تحتاج إلى خبرة سنتين على الأقل لكي يتم قبولك والقليل منها يقبل بمستوى Junior أي خبرة سنة. كنصيحة تعلم React وتعمق بها ثم تعلم Next.js وتعمق به، ثم ستستطيع تعلم أي إطار واجهة أمامية بعد ذلك، فجميعهم يتبع نفس المفهوم.
-
يوجد منصة تواصل باسم I\O وهي عبارة عن مجتمع للنقاش الهادف والموضوعي، وبها مجتمعات مثل: تطوير الويب برمجة تستطيع طرح موضوع للنقاش هناك والتواصل مع أشخاص بنفس الهدف، أو تستطيع متابعة قسم أسئلة البرمجة ومتابعة الأشخاص المشتركين بنفس الدورة ومراسلتهم للدراسة معًا، وإليك مثال:
-
ما يكفي للوصول إلى مستوى متوسط لتنفيذ مشاريع، وتستطيع تعلم المزيد عند الحاجة، لكن عليك التعمق في جافاسكريبت من خلال دراسة دورة جافاسكريبت فهي متعمقة أكثر باللغة.
- 5 اجابة
-
- 1
-
-
ببساطة مجال الـ Front-End يمتاز بالسهولة نسبيًا مقارنًة بالواجهة الخلفية Back-End، لكن كلاهما مجالات ليست سهلة حاليًا بسبب التطور الذي حدث بهما وبالأخص الواجهة الأمامية. كبداية ستجد دراسة الـ Front-End أسهل والحاجز الذي عليك تخطيه لتعلمه منخفض في البداية مقارنًة بالـ Back-End، وسيُشجعك على الاستمرار في التعلم وتأهيلك لتعلم الـ Back-End، وربما تفضل أحدهم على الآخر وتقرر التخصص في تخصص واحد فقط بعض تعلم كلاهما. في بداية مشوارك أنصحك بأن تكون Full-stack ثم بعد ذلك تتخصص في الواجهة الأمامية أو الخلفية، وذلك بعد الحصول على وظيفة واكتساب خبرة. صدقًا الأمر ليس بتلك الصعوبة، كل ما تحتاجه هو البدء في أحدهما وستصل للآخر، لكن التفكير الكثير فخ يقع به الأغلب. حدد فقط ما هي التقنيات التي تريد تعلمها لتصبح Full-stack، وبشكل عام HTML, CSS, JS لغات ثابتة، يتبقى لك تحديد الواجهة الخلفية، وكنصيحة ابدء من خلال جافاسكريبت وتعلم Node.js لتسهيل الأمر عليك، وبعد ذلك تستطيع تعلم أي لغة واجهة خلفية أخرى سواء PHP أو C# وغيرهم.
- 5 اجابة
-
- 1
-
-
تلك مشكلة طبيعية يمر بها الأغلب أثناء دراسة البرمجة، الأمر نابع من طريقة دراسة غير صحيحة، فلو تتذكر ما تريده أثناء التطبيق العملي بمفردك أي تتذكر الخاصية أو الدالة التي تقوم بأمر معين لكن لا تتذكر طريقة كتابتها فلا مشكلة إذن، أما إن كنت لا تتذكر ما هي إذن تحتاج إلى قراءة التالي. وللتطبيق العملي: و React غير متاحة في الدورة، بل في دورة جافاسكريبت، وسبب عدم تضمينها في دورة تطوير واجهات المستخدم هو أن الدورة موجهة لتعلم أساسيات الواجهة الأمامية من خلال تعلم اللغات الأساسية التي يعتمد عليها أي مكتبة أو إطار للواجهة الأمامية وهو HTML, CSS, JS. وتعلم تلك اللغات في البداية واجب وضروري، وبدونها ستعاني في فهم ما يدور في الكود الخاص بك عند تعلم تلك المكتبات والإطارات، وأيضًا ستواجه صعوبة في حل المشكلات التي تواجهك وأيضًا تخصيص مشروعك بالشكل الذي ترغب به. ولتعلم React.js الأمر يحتاج إلى فرد مساحة في دورة مختلفة تمامًا، والدورة لن تكون للمبتدئين في الواجهة الأمامية، فأنت بحاجة إلى تعلم اللغات الأساسية كما ذكرت لتفهم ما يحدث وما فائدة ما تتعلمه وتكتبته. ولذلك ستجد أنه تم تخصيص دورة تطوير التطبيقات باستخدام لغة JavaScript من جل تعلم مكتبة React وإطارات جافاسكريبت الأخرى مثل React Native لتطوير تطبيقات الهاتف وأيضًا Ionic ثم ستتعلم Electron.js لتطوير برامج سطح المكتب. وأيضًا يوجد شرح لإطار Next.js وهو هام جدًا بعد تعلم React من أجل التصيير من جهة الخادم Server-side Rendering.
- 3 اجابة
-
- 1
-
-
في حال لديك الوقت، قم بتعلم الواجهة الأمامية أولاً وذلك من خلال دورة واجهات المستخدم، ثم تعلم جافاسكريبت وReact من دورة جافاسكريبت. بعد ذلك انتقل إلى الواجهة الخلفية، وتستطيع أن تطوير مشاريع Full-stack عن طريق إطار Next.js والذي يتم شرحه في دورة جافاسكريبت، أما الواجهة الخلفية فقط ستحتاج إلى تعلم Node.js وإطار Express وذلك يتم شرحه بالدورة أيضًا، وبالطبع Node.js مطلوبة في سوق العمل لكن تحقق من ذلك لديك في سوق العمل بالقيام بالبحث كما أخبرتك. ستجد تفصيل هنا:
- 12 اجابة
-
- 1
-
-
لا تأخذ نصيحة أي أحد دونّ التحقق منها، بمعنى تفقد الوظائف المعروضة في سوق العمل الخاص ببلدك، ثم قرر على أساس ذلك.
-
سيتم الإعتماد عليها في الدورة في المشاريع العملية، وذلك لكتابة كود بسيط لتنفيذ منطق خاص بالتفاعلية بالصفحة، ولكن نفس الأمر تستطيع تنفيذه من خلال جافاسكريبت أي تستطيع تجاهل استخدام jQuery وتنفيذه من خلال جافاسكريبت لو أردت، وأثناء الإختبار وضح أنك قمت باستخدام جافاسكريبت، لكن الأمر سهل وتستطيع تعلم jQuery بسهولة. عامًة على أرض الواقع لا يتم استخدام أحدث التقنيات في جميع المشاريع، فغالب الحال ستعمل على مشاريع تم تطويرها بالفعل منذ مدة، بالتالي ستجد أنّ JQuery مستخدمة بها بالرغم من أنّها عفا عليها الزمن ولم تعد تُستخدم بكثرة حاليًا كما كانت من قبل، وذلك بسبب تطور جافاسكريبت. بالتالي ليس شرط تعلم jQuery حيث بإمكانك تعلمها وقتما تحتاج إلى ذلك، ولو أردت رأي تعلم أساسيات jQuery ثم التطبيق على مشروع بسيط لا أكثر، وفي حال احتجتها تستطيع التعمق بها.
- 3 اجابة
-
- 1
-