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

Mustafa Suleiman

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

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

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

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

    489

كل منشورات العضو Mustafa Suleiman

  1. المجالات مختلفة تمامًا عن بعضها البعض، قم بدراسة دورة كاملة عن أساسيات علوم الحاسوب كالتي موجودة في أكاديمية حسوب هنا، ثم قم بالبحث عن كل مجال لتحصل على نظرة عامة حول كل منهم، واختر المجال الذي تراه مناسب أو لديك حافز نحوه، ثم حاول تعلمه. عامًة في حال لديك الوقت الكافي لمدة سنتين على الأقل لتعلم مجال الذكاء الاصطناعي فاختر ذلك التخصص فهو الأفضل بينهم كمستقبل بلا شك، في المرتبة الثانية مجال الأمن السيبراني وبعده الواجهة الأمامية. بخصوص المطلوب أكثر في الوقت الحالي هما مجالي الذكاء الاصطناعي ومجال الأمن السيبراني، لكون مجال الواجهة الأمامية مُتشبع بالفعل. عامًة لا تستمع لأحد قم بإجراء بحثك وتفقد الوظائف المطلوبة في الدول التي تستهدفها.
  2. بالطبع يوجد في دورة المشاريع التالية للتطبيق على ما تعلمته بخصوص تحليل البيانات: تحليل أداء الطلاب في إحدى المدارس تحليل بيانات متجر إلكتروني لتحسين استراتيجية المبيعات تحليل سلوك العملاء تحليل بيانات الحملات التسويقية لتحسين استراتيجيتها تحليل بيانات حملة تسويقية لبنك للتنبؤ باشتراك العملاء تحليل مبيعات السيارات إضافة الذكاء الاصطناعي لمتجر إلكتروني إضافة الذكاء الاصطناعي لمطعم إضافة الذكاء الاصطناعي لفندق إضافة الذكاء الاصطناعي لمركز خدمات تحليل بيانات المتجر الإلكتروني بالإعتماد على قاعدة بيانات. وبالطبع البيانات ليست ضخمة فذلك سيستغرق وقت كبير، لكن الآلية هي نفسها أي تستطيع تطبيق ما تعلمته على بيانات ضخمة لا مشكلة. وللعلم تخصص الدورة هو الذكاء الاصطناعي وليس تحليل البيانات، فما ذكرته يخص جانب تحليل البيانات أكثر. ويوجد مسارات ومشاريع أخرى تتعلق بالمفاهيم الأخرى في مجال الذكاء الاصطناعي، ستجد تفصيل عنها في صفحة الدورة.
  3. تعديل واجهة المستخدم على سلة لا يحتاج منك سوى خبرة في HTML و CSS، حيث يتم تخصيص الواجهة من خلالهم، وبالطبع هناك حدود للتخصيص حيث لا يوجد إمكانية لتخصيص كامل بل التعديل على التصميم الموجود فقط. ولو أردت تطوير قالب كامل، فالأمر يتم من خلال PHP ومحرك القوالب Twig بينما شوبيفاي ستحتاج منك تعلم لغة Liquid الخاصة بمحرك القوالب لديها، وكذلك لغات الويب HTML, CSS, JS
  4. تابع المسار كما أنت وقم بإنهائه لا تشتت نفسك، ثم قم بدراسة المسار الجديد وهو "أطر عمل CSS" حيث تم استبدال مسار "بناء واجهة مستخدم تشبه موقع يوتيوب" بذلك المسار. والتحديث يشمل 33 درسًا بمدة 5 ساعات ونصف، ويهدف المسار إلى تدريب الطالب على استخدام أطر عمل CSS لبناء واجهات ويب احترافية وحديثة، مع التركيز على إطار Bootstrap بإصدار الحديث وهو 5، باعتباره واحدًا من أشهر وأكثر الأُطر استخدامًا في عالم تطوير الواجهات، ويبدأ المسار بمدخل شامل يوضح لماذا نحتاج أصلًا إلى أطر العمل، وكيف تسهّل عملية التطوير وتسرّع إنتاج واجهات متناسقة ومتجاوبة دون الحاجة إلى كتابة كل شيء من الصفر. خلال المسار، سيتدرّب الطالب على فهم أنظمة الشبكات، والمكوّنات الجاهزة، والأدوات المساعدة التي توفّر له مرونة كبيرة في بناء صفحات حقيقية. كما سيعمل على مشروع عملي متكامل يطبّق فيه كل المفاهيم التي يتعلمها خطوة بخطوة، مما يساعده على الانتقال من الجانب النظري إلى التطبيق الاحترافي بسهولة. ثم الإنتقال لتنفيذ مشاريع مختلفة من خلال بوتستراب وCSS في المسارات التالية.
  5. في حال تستخدم برنامج غير مجاني فستحتاج إلى شراء رخصة من أجل إزالة العلامة المائية وأقصد لو البرنامج يضع تلك العلامة في النسخة المجانية. أما إن كنت تقصد إزالة علامة مائية من ملف قمت بتحميله فالأمر لا يصح، فهي موضوعة من أجل حماية الملف من النسخ والتوزيع الغير مسموح به.
  6. يوجد في الموقع فلاتر لتصفية القوالب بناءًا عليها، بمعنى لإختيار قالب HTML, CSS فقط، قم بتحديد فلتر HTML: ونفس الأمر لو أردت قالب مُطور من خلال بوتستراب، فقم بالضغط على فلتر Boostrap وستحصل على HTML, CSS, JS, Boostrap ثم اختر القالب الذي تريده وانزل لأسفل الصفحة وستجد زر التحميل، ولو أردت المعاينة قبل التحميل اضغط على Live view
  7. لن تتعلم استخدام المنصة من خلال قراءة تعليقات هنا، بل يجب التعلم من خلال المشاهدة من شخص خبير ومحاولة التقليد، أنصحك بتعلم الأساسيات من القنوات التالية، اختر الشرح المناسب لك: وركز على تعلم كيفية استخدام منصة Figma وأساسيات التصميم من خلالها. بعد ذلك قم بمشاهدة شرح يوضح لك كيف تستلم ملف التصميم من مُصمم واجهات المستخدم UI/UX وكيف تقوم بتحويله إلى كود، ابحث على اليوتيوب عن Figma File to Code. The Designer to Developer Handoff
  8. تقصد مجال GraphRAG وللتوضيح هو مجال حديث ظهر بقوة في أخر عام، ولذلك المصادر التعليمية الممنهجة له قليلة، ومعظمها عبارة عن أوراق بحثية أو مقالات تقنية متناثرة. في البداية تحتاج إلى استيعاب أساسيات Graph Database وهي فهم يتم تخزين البيانات في الـ Graph أصلاً، وهو يتكون من شيئين فقط: Nodes العقد، وهي الكيانات مثل يزيد، شركة جوجل، كتاب. Relationships و Edges أي العلاقات وهي الروابط بين العقد مثل يزيد يعمل في جوجل. ويوجد Properties وهي خصائص داخل العقدة أو العلاقة. ومثلما يوجد SQL لقواعد البيانات العادية، فيوجد لغة تسمى Cypher لقواعد بيانات الـ Graph وتحديداً Neo4j، وهي لغة سهلة تشبه الرسم. أنصحك بالتعلم من خلال المصدر الرسمي المجاني وهو: https://graphacademy.neo4j.com/categories/beginners ثم الإنتقال للمستوى المتوسط لتتعلم كيف تعمل على نص غير مهيكل وتحوله إلى Nodes و Relationships وذلك من خلال بايثون: https://graphacademy.neo4j.com/categories/intermediate/ ثم الإنتقال للمستوى المتقدم: https://graphacademy.neo4j.com/categories/advanced/
  9. في حال ستقوم بنشر المشروع على استضافة Vercel فلن تستطيع استخدام WebSockets في صورتها العادية مثل socket.io مدمج داخل API Routes لأن Vercel تعتمد على Serverless Functions، وتلك الدوال تعمل لثوانٍ معدودة لرد الطلب ثم تموت أي Stateless، بينما الـ WebSocket يحتاج اتصال دائم ومفتوح Stateful. لذا ستحتاج إلى خدمة خارجية لإدارة الاتصال مثل Pusher أو Ably أو إنشاء سيرفر منفصل للـ Sockets. وعلى الاستضافات الأخرى لا مشكلة، بدمج Express مع Next.js في نفس التطبيق واستخدام socket.io ولكن الأمر سيصبح معقد وستفقد بعض ميزات Next.js. الأفضل تشغيل سيرفر Next.js بشكل طبيعي، وإنشاء سيرفر Express صغير منفصل مسؤول فقط عن الـ WebSockets. والأسهل هو الإعتماد على خدمة سحابية مثل Pusher، حيث لن تحتاج لسيرفر Express وسيقوم Next.js بإرسال حدث إلى Pusher عند وصول طلب جديد، وPusher يتولى إرسال التنبيه للوحة التحكم فورًا. المشكلة في الباقة المجانية المحدودة وعند استنفاذها ثم تصبح مدفوعة أي تحتاج لترقية الإشتراك والدفع في Pusher. في حال أردت عدم الإشتراك، فقم بإنشاء تطبيق Next.js بشكل عادي، ثم تنشئ سيرفر Node.js بسيط من خلال Express.js وظيفته فقط استقبال وإرسال التنبيهات.
  10. يجب أن تتعلم الأساسيات أولاً، وهي دراسة أساسيات علوم الحاسوب وأظن أنك قمت بدراسة دورة علوم الحاسوب هنا في الأكاديمية وما بها يكفي. وستحتاج إلى تعلم نظام لينكس وذلك تم شرحه بالفعل في الدورة أيضًا، وكذلك أساسيات البرمجة وذلك تم شرحه من خلال لغة بايثون وجافاسكريبت. ثم دراسة أساسيات الشبكات Networking. ودراسة لغات الويب HTML وJavaScript في حال تريد اختراق المواقع Web Penetration Testing، بحيث يجب أن تفهم كيف يُبنى الموقع لتعرف كيف تخترقه، وأيضًا يجب تعلم لغة SQL لأنها لغة قواعد البيانات. وبعد استيعاب كيف يعمل الحاسوب والشبكات والمواقع، عليك تعلم مثلث الأمن CIA Triad، التشفير Cryptography، وجدران الحماية وFirewalls. وتعلم الأدوات الأساسية التي ستحتاجهاللإختبار: Nmap: لفحص الشبكات واكتشاف الأجهزة المفتوحة. Wireshark: لتحليل حزم البيانات في الشبكة. Burp Suite: الأداة رقم 1 لاختراق تطبيقات الويب. Metasploit: إطار عمل لاستغلال الثغرات. وادرس قائمة OWASP Top 10 والتي بها أخطر 10 ثغرات تصيب المواقع. وبالطبع ما سبق هو نظريات فقط ووحدها لا تكفي وستحتاج إلى دورة تغطي ما سبق، وبعد ذلك تبدأ التطبيق العملي من خلال المنصات التالية: TryHackMe بها دروسا متدرجة من الصفر مع تطبيق عملي. Hack The Box والتي توفر أجهزة حقيقية لتخترقها. وقم بتثبيت برنامج VirtualBox أو VMware على جهازك، ونصب عليه Kali Linux وجهاز آخر Metasploitable وهو نظام مصمم ليكون مليئ بالثغرات لتتدرب عليه. وأنصحك بالإطلاع على: https://github.com/Hacking-Notes/Hacker-Roadmap
  11. الكتب المتوفرة بالأكاديمية مجانية تمامًا وهي متوفرة بشكل رقمي فقط في شكل ملف PDF وليس ورقي، تستطيع تحميلها وقراءتها كما تريد، توجه إلى صفحة الكتابة ثم اضغط على زر تنزيل لتحميله: وباقي كتب البرمجة ستجدها هنا: https://academy.hsoub.com/files/c5-كتب-برمجة/ وتستطيع تحميله على هاتفك وقراءته في أي وقت أيضًا.
  12. لا حاجة إلى ذلك، نظام التوثيق في جانغو يعتمد على موديل مستخدم واحد AUTH_USER_MODEL، ولو قمت بإنشاء 3 جداول منفصلة (جدول للمرضى، وجدول للأطباء، وجدول للممرضين) وكل واحد منهم لا يرث من الآخر، ستواجه مشاكل معقدة جداً في تسجيل الدخول، إدارة الجلسات، التصاريح والعلاقات الخارجية مع الجداول الأخرى، فمثلاً من صاحب التعليق؟ هل هو طبيب أم مريض؟ وما قمت بفعله يسمى نمط Profile Pattern، بحيث تحتفظ بالبيانات المشتركة وهي الاسم، الايميل وكلمة المرور في CustomUser، والبيانات الخاصة في جداول مرتبطة. لكن، لكي تكتمل الصورة وتعمل معك في الـ Admin بشكل احترافي كما طلبت، تحتاج إلى ترتيب ملف admin.py واستخدام الـ Signals لضمان إنشاء البروفايل. لذا عندما يقوم المدير بإضافة مستخدم وتحديد دوره كطبيب، نريد أن يتم إنشاء DoctorProfile فارغ تلقائيًا حتى لا يحدث خطأ، أي في ملف signals.py أو أسفل models.py أضف التالي: from django.db.models.signals import post_save from django.dispatch import receiver from .models import CustomUser, UserRole, DoctorProfile, NurseProfile, City @receiver(post_save, sender=CustomUser) def create_user_profile(sender, instance, created, **kwargs): if created: if instance.user_role == UserRole.DOCTOR: DoctorProfile.objects.create(user=instance, license_number="TBD", specialization="General") elif instance.user_role == UserRole.NURSE: NurseProfile.objects.create(user=instance, license_number="TBD") وذكرت أن المدير سيضيفهم بنفسه، وتريد فصلهم وصلاحيات مختلفة، لذا سنستخدم تقنية Proxy Models أي موديل وكيل من خلال إنشاء كلاس وهمي في اسمه DoctorUser وهو ليس بجدول جديد في قاعدة البيانات، بل قناع لجدول CustomUser. مع Inlines في ملف admin.py لدمج الحقول في صفحة واحدة وهي طريقة في Django Admin تسمح بوضع نموذج داخل نموذج آخر في نفس الصفحة. ليصبح في القائمة الجانبية للأدمن Doctors, Nurses, Patients بشكل منفصل، وعند الدخول لإضافة طبيب، ستظهر حقول المستخدم و حقول الطبيب (السعر، التخصص) في نفس الصفحة. from django.contrib import admin from django.contrib.auth.admin import UserAdmin from .models import CustomUser, DoctorProfile, NurseProfile, UserRole class DoctorProfileInline(admin.StackedInline): model = DoctorProfile can_delete = False verbose_name_plural = 'Doctor Profile' class NurseProfileInline(admin.StackedInline): model = NurseProfile can_delete = False verbose_name_plural = 'Nurse Profile' class CustomUserAdmin(UserAdmin): model = CustomUser list_display = ['username', 'email', 'user_role', 'is_staff'] fieldsets = UserAdmin.fieldsets + ( ('Extra Fields', {'fields': ('user_role', 'city', 'phone', 'date_of_birth', 'image')}), ) add_fieldsets = UserAdmin.add_fieldsets + ( ('Extra Fields', {'fields': ('user_role', 'city', 'phone', 'date_of_birth', 'image')}), ) class DoctorUser(CustomUser): class Meta: proxy = True verbose_name = 'Doctor' verbose_name_plural = 'Doctors' class NurseUser(CustomUser): class Meta: proxy = True verbose_name = 'Nurse' verbose_name_plural = 'Nurses' class DoctorUserAdmin(CustomUserAdmin): inlines = [DoctorProfileInline] def get_queryset(self, request): return super().get_queryset(request).filter(user_role=UserRole.DOCTOR) def save_model(self, request, obj, form, change): obj.user_role = UserRole.DOCTOR super().save_model(request, obj, form, change) class NurseUserAdmin(CustomUserAdmin): inlines = [NurseProfileInline] def get_queryset(self, request): return super().get_queryset(request).filter(user_role=UserRole.NURSE) def save_model(self, request, obj, form, change): obj.user_role = UserRole.NURSE super().save_model(request, obj, form, change) admin.site.register(CustomUser, CustomUserAdmin) admin.site.register(DoctorUser, DoctorUserAdmin) admin.site.register(NurseUser, NurseUserAdmin)
  13. تم إزالة jQuery بالفعل في التحديث الذي تم على الدورة في شهر سبتمبر الماضي، حيث حدثنا وحدة إنشاء مشروع شخصي في مسار أساسيات تطوير الويب في دورة تطوير واجهات المستخدم ليواكب أحدث الإصدارات والتقنيات. يشمل التحديث 10 دروس موزعة على ساعتين وربع. حدثنا الشرح ليكون أكثر سلاسة وسهولة، وحللنا جميع المشاكل التي كان الطلاب يقعون فيها سابقًا، مما جعل التجربة التعليمية أوضح وأكثر فاعلية. كما استبدلنا مكتبة jQuery بجافا سكريبت الخالصة، وذلك لأن جافا سكريبت الحديثة أصبحت توفر نفس المزايا وأكثر دون الحاجة إلى تحميل مكتبات إضافية، وهو ما يجعل الكود أخف وأسرع، ويمنح الطلاب فرصة لبناء أساس قوي في لغة أساسية يحتاجونها في كل مشروع احترافي. وبخصوص react وعدم تضمينها في دورة تطوير واجهات المستخدم، السبب هو أن الدورة موجهة لتعلم أساسيات الواجهة الأمامية من خلال تعلم اللغات الأساسية التي يعتمد عليها أي مكتبة أو إطار للواجهة الأمامية وهو HTML, CSS, JS. وتعلم تلك اللغات في البداية واجب وضروري، وبدونها ستعاني في فهم ما يدور في الكود الخاص بك عند تعلم تلك المكتبات والإطارات، وأيضًا ستواجه صعوبة في حل المشكلات التي تواجهك وأيضًا تخصيص مشروعك بالشكل الذي ترغب به. ولتعلم React.js الأمر يحتاج إلى فرد مساحة في دورة مختلفة تمامًا، والدورة لن تكون للمبتدئين في الواجهة الأمامية، فأنت بحاجة إلى تعلم اللغات الأساسية كما ذكرت لتفهم ما يحدث وما فائدة ما تتعلمه وتكتبته. ولذلك ستجد أنه تم تخصيص دورة تطوير التطبيقات باستخدام لغة JavaScript من أجل تعلم مكتبة React وإطارات جافاسكريبت الأخرى مثل React Native لتطوير تطبيقات الهاتف وأيضًا Ionic ثم ستتعلم Electron.js لتطوير برامج سطح المكتب. وأيضًا يوجد شرح لإطار Next.js وهو هام جدًا بعد تعلم React من أجل التصيير من جهة الخادم Server-side Rendering. وجميع المسارات الأولى من الدورات الأخرى متاحة لك، وتستطيع الإطلاع عليها فمثلاً في دورة تطوير التطبيقات باستخدام لغة JavaScript المسار الأول هو أساسيات لغة JavaScript وأنصحك بالإطلاع عليه لتعلم المزيد عن جافاسكريبت بجانب ما درسته في دورة تطوير واجهة المستخدم.
  14. ما تقصدينه هو وظيفة Software Business Analyst وهي تتطلب الإحاطة بمجموعة متكاملة من المعارف التقنية والإدارية، حيث يبدأ المسار بدراسة Software Development Life Cycle (SDLC) لفهم المراحل التي يمر بها المنتج الرقمي من التخطيط حتى الإطلاق، وهو ما يستلزم التعمق في منهجيات العمل المختلفة مثل Agile و Scrum التي تعتمد على التطوير التكراري والمرونة في التعامل مع المتغيرات، ودراسة Requirement Engineering التي هي أساس العمل، حيث ستتعلمين كيفية استنباط المتطلبات من أصحاب العمل، ومن ثم تحليل تلك المتطلبات وتوثيقها بدقة. كذلك إتقان أدوات النمذجة المرئية، وهي Unified Modeling Language (UML) والتي تعتبر لغة أساسية لرسم المخططات الهيكلية والسلوكية للنظام مثل Use Case Diagrams، بالإضافة إلى تعلم Business Process Model and Notation (BPMN) لتخطيط سير العمليات التجارية بوضوح. ودراسة أساسيات قواعد البيانات ولغة SQL وفهم كيفية عمل الـ APIs لتمتلكي القدرة على التحدث بلغة مشتركة مع المبرمجين وفهم القيود التقنية، وهو ما يجب أن يقترن بمهارات التوثيق التقني لكتابة مستندات مثل Software Requirement Specification (SRS) و Business Requirement Document (BRD) التي تُعد المرجع الرئيسي للمشروع. وفي الواقع العملي تتم عملية التحليل الفعلي عبر خطوات منهجية تبدأ بفهم عميق لنشاط العمل Business Domain والمشكلة المراد حلها، حيث ستقومين بعقد جلسات وورش عمل مع المستخدمين والعملاء لجمع المعلومات في صورتها الخام، ثم فلترتها وتحويلها من مجرد رغبات إلى متطلبات تقنية محددة Functional Requirements ومتطلبات غير وظيفية Non-Functional Requirements تتعلق بالأداء والأمان. ومن ثم يتم تحويل تلك المتطلبات إلى نماذج مرئية ومخططات توضح رحلة المستخدم User Journey وتدفق البيانات، لتتم صياغتها في النهاية على شكل User Stories داخل سجل مهام المنتج Product Backlog في حال اتباع منهجية Agile، بحيث تكون تلك القصص جاهزة للتطوير والاختبار، ومتابعة التنفيذ للتأكد من أن الحل البرمجي يطابق احتياجات العمل من خلال User Acceptance Testing (UAT).
  15. student_id هو PRIMARY KEY، بالتالي غير مسموح بتكرار الرقم، ولو حاولت إضافة طالب برقم 1 وكان هناك طالب سابق بنفس الرقم، ستتوقف قاعدة البيانات عن العمل ويظهر خطأ IntegrityError. الأفضل هو جعل قاعدة البيانات تقوم بترقيم الطلاب تلقائيًا من خلال تفعيل AUTOINCREMENT بدلاً من إدخال الرقم بنفسك، ولو أردت كتاتبه بشكل يدوي فيجب معالجة الخطأ من خلال try except لإظهار أنّ الرقم مُكرر. عامًة إليك الكود بالإعتماد على تفعيل AUTOINCREMENT في قاعدة البيانات ويجب عليك حذف ملف قاعدة البيانات القديم school.db من جهازك أولاً، ثم شغل الكود الجديد ليقوم بإنشاء الجدول بالطريقة الصحيحة. import sqlite3 conn = sqlite3.connect('school.db') cursor = conn.cursor() cursor.execute(""" CREATE TABLE IF NOT EXISTS students( student_id INTEGER PRIMARY KEY AUTOINCREMENT, first_name TEXT, last_name TEXT, age INTEGER, grade TEXT, registration_date TEXT ) """) cursor.execute(""" CREATE TABLE IF NOT EXISTS lessons( student_id INTEGER, lesson_name TEXT, FOREIGN KEY(student_id) REFERENCES students(student_id) ) """) print("""To add a student, choose a.\n To update, choose u.\n To delete, choose d.\n To show, choose s. """) def Add_student(a): if a == 'a': first_name = str(input('Enter student first name: ')) last_name = str(input('Enter student last name: ')) student_age = int(input('Enter student age: ')) student_grade = str(input('Enter student grade: ')) registration_date = str(input('Enter registration date: ')) student_data = (first_name, last_name, student_age, student_grade, registration_date) try: cursor.execute(""" INSERT INTO students (first_name, last_name, age, grade, registration_date) VALUES (?,?,?,?,?) """, student_data) conn.commit() print(f"Student added successfully! The new Student ID is: {cursor.lastrowid}") except Exception as e: print(f"Error: {e}") choice = input("Enter your choice: ") Add_student(choice) conn.close()
  16. الصحيح هو إجابة مباشرة في خطوات بدون تفصيل وفي حال سألك عن نقطة معينة فصلها له، وهي تحديد مكان المشكلة لمعرفة هل في الـ Network، الـ Client-side، الـ App Server، أو الـ Database. ثم اذكر له نقاط بسيطة عن كل خطوة، مثلاً في الـ Network و Client من خلال أدوات DevTools في المتصفح سأتفقد هل الـ TTFB مرتفع، في حال ذلك فالمشكلة في الـ Server، أما لو التحميل بطيئ بعد الاستجابة، فالمشكلة في حجم البيانات أو الـ Rendering. وفي الـ App Server لو المشكلة كانت في السيرفر، أراقب الـ Logs وأدوات الـ Profiling لمعرفة هل التأخير بسبب عمليات حسابية ثقيلة أم انتظار خارجي. ولو في الـ Database أراجع الـ Slow Query Logs وهنا أتأكد من أمرين هل الـ Query مكتوب بشكل جيد؟ وهل الجداول تملك الـ Indexing المناسب لمنع المسح الكامل للجدول؟ وفي حال الكود والـ Database بحالة جيدة، أفكر في حلول مثل الـ Caching أو تحويل العملية لـ Background Job.
  17. سؤالك غير صحيح، ما يجب أن تسأل عنه هو هل ما قمت به صحيح أم لا؟ لا تحاول أبدًا ذكر أشياء لم تقم بها أو ليس لديك الخبرة الكافية بها، فذلك له تأثير معاكس تمامًا لما تريده، ما يجب إظهاره هو أنك تعلم أمور معينة بقدر معين وقادر على تعلم أمور جديدة بشكل مرن عند الحاجة. الصحيح هو أنك حاولت القيام بدور الـ Interviewer قدر الإمكان وأجريت بحث وتعلمت قدر الإمكان قبل القيام بذلك، وحاولت اختيار اختيار المُبرمج المناسب بناءًا على خبرتك الحالية ومن خلال منهجية واضحة بناءًا على بحثك وما تعلمته وليس بشكل عشوائي، بالطبع ليست كافية لكن حاولت تنفيذ المطلوب منك قدر المُستطاع. ولا تقم بذكر إجابات طويلة أبدًا، بل بشكل مباشر وواضح قدر الإمكان. ببساطة ليس شرطًا معرفة عميقة بالتقنيات بالتفصيل ولكن المهم هو وجود أساس برمجي قوي وفهم عميق للمفاهيم الأساسية اللازمة في المجال والتي سيحتاجها في عمله. أيضًا وجود خبرة ومعرفة تتناسب مع متطلبات الوظيفة، فلا يصح اختيار شخص بخبرة بسيطة وأساس قوي لمنصب Senior، حيث الخبرة العملية جراء سنوات العمل لذلك المنصب لازمة. كذلك طريقة التفكير والتحليل والمهارات الغير تقنية Soft Skills.
  18. هل المقصود بالصفحة حسابك الشخصي profile أم صفحة page؟ عامًة طالما التطبيق في وضع التطوير فالمنشورات تظهر فقط لمديري التطبيق، ويجب تحويله إلى Live Mode، بالتوجه إلى: https://developers.facebook.com/apps/ ثم أنشئ تطبيق جديد أو استخدم الموجود واختر نوع None طالما ليس تجاري. ثم أضف الصلاحيات التالية بالتوجه إلى App Review في لوحة التحكم ثم Permissions and Features: pages_show_list pages_read_engagement pages_manage_posts ثم تحويل التطبيق إلى Live Mode من Settings واختر Basic وأضف Privacy Policy URL أي سياسة الخصوصية للتطبيق، وشعار للتطبيق وفي أعلى الصفحة حول من Development إلى Live. ولاستخراج الـ Page Access Token عبر Graph API Explorer فتوجه إلىhttps://developers.facebook.com/tools/explorer ثم في الأعلى اختر تطبيقك من القائمة واضغط Generate Access Token. واختر نفس الصلاحيات السابقة، ثم بعد الموافقة، من القائمة المنسدلة User or Page اختر صفحتك حيث سيظهر اسمها.
  19. لذلك كنت افكر ، هل باشتراكي في حالتي الراهنة انا اخاطر بفرصة جيدة ؟ الأفضل الدراسة من وقت مُبكر، لكي تكتسب الخبرة اللازمة وأيضًا الإطلاع على مختلف مجالات البرمجة وتحديد التخصص الذي تُفضله، وليس الإنتظار لما بعد الجامعة، وكذلك سيكون لديك مُتسع من الوقت لدراسة الأساسية بشكل مُتعمق والتميز عن نسبة كبيرة ممن ليس لديهم مُتسع من الوقت أو يتكاسلون عن ذلك. وبخصوص شرط الحصول على وظيفة، فتستطيع تأجيل التقدم للإختبار للحصول على الشهادة بعد الإنتهاء من الدورة، وذلك لما بعد تخرجك من الجامعة، فالمدة تبدأ من بعد حصولك اجتيازك للإختبار وحصولك على الشهادة من أكاديمية حسوب.
  20. صحيح أية 4 مسارات تريدها، لكن الأهم هو تحقيق فائدة تعود عليك وليس الحصول على الشهادة فقط، فخيار الـ 4 مسارات متاح لمن لديهم خبرة ويريدون دراسة مسارات معينة فقط وليس كامل الدورة، لذا في حال كنت مبتدأ يجب دراسة الدورة بالكامل.
  21. ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم أسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل.
  22. في الوقت الحالي لا تتوفر مُلخصات للدروس، تستطيع الإعتماد على موسوعة حسوب كمرجع، وتستطيع الاستفسار أسفل الدروس في التعليقات عما تحتاجه وسيتم توضيحه لك. الملفات المتوفرة هي ملفات المشروع التي سنعمل عليه خلال المسار، وتستطيع تحميل ذلك من خلال درس المقدمة أو المدخل في بداية المسار. عامًة كل شخص له أسلوب يُناسبه في الدراسة، لكن المهم هو تجنب المشاهدة السلبية وتخصيص وقت أكبر للتطبيق العملي، فالبرمجة عبارة عن تفكير منطقي لحل مشكلة ثم تنفيذ ذلك من خلال كتابة الكود. والبعض يُفضل كتابة مُلخصات لكل شيء، لكن لا أنصحك بذلك، اكتفي فقط بكتابة ملاحظات ومُلخصات ورسومات للأمور النظرية أو معلومة معينة تريد الإحتفاظ بها للعودة إليها للمراجعة. بينما البرمجة نفسها اكتفي بالتطبيق العملي فهو الأهم وبدونه فلا معنى للمُلخصات النظرية مهما كتبت، ببساطة لن تستطيع قيادة سيارة بمشاهدة فيديو صحيح؟
  23. قم بدراسته فيما بعد، أي بعد الوصول إلى مستوى متوسط في تقنيات MERN.
  24. نفس المشروع العلمي بالفعل وذلك مقصود، حيث سنقوم بتطبيق ما تعلمناه عليه، فالمشروع الأول استخدمنا HTML CSS, JS فقط، وبعد ذلك سنقوم بإضافة إطار عمل بوتستراب وتنسيق الواجهة من خلاله. منذ فترة تم تحديث وحدة إنشاء مشروع شخصي في مسار أساسيات تطوير الويب في دورة تطوير واجهات المستخدم ليواكب أحدث الإصدارات والتقنيات. ويشمل التحديث 10 دروس موزعة على ساعتين وربع، وحدثنا الشرح ليكون أكثر سلاسة وسهولة، وحللنا جميع المشاكل التي كان الطلاب يقعون فيها سابقًا، كما استبدلنا مكتبة jQuery بجافا سكريبت الخالصة، وذلك لأن جافا سكريبت الحديثة أصبحت توفر نفس المزايا وأكثر دون الحاجة إلى تحميل مكتبات إضافية، وهو ما يجعل الكود أخف وأسرع، ويمنح الطلاب فرصة لبناء أساس قوي في لغة أساسية يحتاجونها في كل مشروع احترافي. وأمس تم صدور تحديث آخر، حيث أضفنا مسار جديد بعنوان أطر عمل CSS في دورة واجهات المستخدم، والتحديث يشمل 33 درسًا بمدة 5 ساعات ونصف. و يهدف المسار إلى تدريب الطالب على استخدام أطر عمل CSS لبناء واجهات ويب احترافية وحديثة، مع التركيز على إطار Bootstrap باعتباره واحدًا من أشهر وأكثر الأُطر استخدامًا في عالم تطوير الواجهات. يبدأ المسار بمدخل شامل يوضح لماذا نحتاج أصلًا إلى أطر العمل، وكيف تسهّل عملية التطوير وتسرّع إنتاج واجهات متناسقة ومتجاوبة دون الحاجة إلى كتابة كل شيء من الصفر. وخلال المسار، ستتدرب على فهم أنظمة الشبكات Grid، والمكوّنات الجاهزة، والأدوات المساعدة التي توفّر لك مرونة كبيرة في بناء صفحات حقيقية. كما ستعمل على مشروع عملي متكامل تطبق فيه كل المفاهيم التي تتعلمها خطوة بخطوة.
  25. مجهود وعزيمة تُشكر عليهما، لكن يجب توجيهم في الطريق الصحيح، ولا داعي لكل ذلك التشاؤم واليأس، فأنت ما زلت في سن صغير وأمامك مُتسع من الوقت -لا تنخدع بذلك الوقت يمر- ما تحتاجه هو التخطيط فقط ثم بذل المجهود بنفس القدر الحالي، فاستمرار السعي يعني حتمية الوصول إن شاء الله. بالنسبة لـ PHP ولارافل فهي مناسبة أكثر لمنصات العمل الحر، بينما لو أردت العمل في شركة فأنصحك بدراسة جافاسكريبت والتقنيات الخاصة بها لتصبح Full-stack أو دراسة C# و .NET وهناك نقطة هامة يجب توضيحها، لا توجد أي دورة في أي مكان توفر لك كل شيء، ستحتاج دائمًا إلى بذل مجهود إضافي بجانبها، في الأكاديمية هنا يتم شرح الأساسيات والتوسع من خلال المشاريع العملية، لذا في مرحلة شرح الأساسيات لو أردت الاستزادة ودراسة المفاهيم المتقدمة وتنفيذ مشروع على جافاسكريبت مثلاً، وذلك ما أنصحك به بالطبع، فعليك بدراسة ذلك من اليوتيوب، ثم العودة هنا واستكمال الدورة. ولا يجب دراسة الدورة بالكامل، طالما تريد تخصص الويب، فيجب التركيز على تقنيات MERN: ويجب أن تتحلى بالصبر ولا تنتظر نتائج سريعة، فالأمر سيستغرق عام من الدراسة وتنفيذ المشاريع لاكتساب خبرة لذا لا تمل سريعًا. وبالنسبة للأمور المالية أو استبدال الدورة، فالأمر يتم من خلال مركز المساعدة.
×
×
  • أضف...