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

Mustafa Suleiman

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

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

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

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

    472

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

  1. عليك بالتقسيم الطبقي المُجمع Stratified Group Splitting وأقصد Stratified Group K-Fold وليس Stratified Split، حيث ستصنف العملاء أنفسهم أي المجموعات إلى فئات بمعنى طبقات بناءًا على أعلى رصيد لديهم بواسطة df.groupby ثم تقسيم العملاء مع الحفاظ على نسبة الفئات في كل مجموعة، لو 3 فئات n_bins = 3 مثلاً التقسيم سيتم على أساس منخفض، متوسط، عالي، وستستخدم pd.qcut لتقسيم متساوٍا حسب الكمية. ولتقسيم البيانات مرة واحدة مثلاً 70% تدريب، 15% تصديق، 15% اختبار، استخدم دالة train_test_split مرتين، وفي كل مرة، مرر فئات الرصيد التي أنشأتها إلى معامل stratify، للحفاظ على نسب الفئات. بمعنى StratifiedGroupKFold، لتنفيذ Cross-Validation بعد التقسيم الأولي، أي على مجموعة التدريب نفسها، لاختيار أفضل إعدادات للنموذج.
  2. تطبيق الويب أشبه في استخدامه لتطبيقات الهاتف لكن من خلال موقع ويب، أي عند زيارته من خلال متصفح الهاتف تستطيعي التنقل بين الصفحات بسرعة وتحديث البيانات بشكل فوري دونّ إعادة تحديث الصفحة، مثل موقع فيسبوك على الهاتف أو تويتر، ولستِ بحاجة إلى تثبيت أية تحديثات فقط تتصفحى الموقع، وعند وجود ميزات جديدة ستجديها به، أي بمجرد أن يقوم المطور بتحديث الموقع، يراه كل المستخدمين، وتحتاجين اتصال دائم بالإنترنت لكي تتصفحي الموقع. بينما تطبيق الهاتف مثل التطبيقات المثبتة على هاتفك، حيث تحتاجين إلى التوجه لمتجر التطبيقات مثل جوجل بلاي على الأندرويد ثم تحميل التطبيق وتثبيته لاستخدامه، وبالطبع تجربة الاستخدان هنا أسرع وأكثر استجابة لأنه مصمم خصيصًا للهاتف، ولديه وصول كامل لكل ميزات الهاتف أي الكاميرا، الميكروفون، جهات الاتصال، الإشعارات، البلوتوث، وخلافه. وهناك حل وسط بينهم وهي تقنية Progressive Web App - PWA وهي تقنية خاصة بمواقع الويب، وتسمح بتثبيت تطبيق خفيف على الهاتف به ميزات تشبه تطبيقات الهاتف. ومتاح أن يعمل بدون إنترنت، ويمكنه إرسال إشعارات، وكل ذلك من خلال المتصفح مباشرة حيث يعتمد في الخلفية على المتصفح. ستحتاجين إلى قراءة التالي:
  3. الأمر ليس بتلك السهولة، وفي مجال البرمجة لا يعني تفوق تقنية في جزء معين أفضليتها بشكل كامل على تقنية أخرى، فلكل تقنية (لغة أو إطار) الاستخدام المناسب لها، ولا يوجد ما هو أفضل لكل شيء. أيضًا التقنيات تتقدم بشكل مستمر، ولذا لم تعد PHP بطيئة، فمع إصدارات PHP 7 و8، تحسن الأداء بمعدل 2 إلى 3 أضعاف، أي سرعة أعلى وتقليل استهلاك الذاكرة، بسبب تقنية JIT Compiler في PHP 8. وPHP تدعم Asynchronous الآن منذ PHP 8.1، من خلال ميزة Fibers بالإضافة إلى مكتبات قوية مثل Swoole التي تتيح بناء تطبيقات غير متزامنة عالية الأداء، وReactPHP. وSynchronous ليس عيب دائمًا، فهي مناسبة لمعالجة الطلبات البسيطة وعمليات قواعد البيانات. ناهيك عن ثبات واستقرار واستمرار تطور منصة WordPress التي تعتمد على PHP، وأيضًا تطور إطار لارافل بشكل كبير، وسهولة وسرعة تطوير المشاريع الصغيرة والمتوسطة من خلالهم. كذلك يوجد استقرار نسبي في مجتمع PHP مقارنًة بجافاسكريبت التي بها مشكلة تعقيد في الأدوات Webpack, Babel, وخلافه، وسرعة التغيير والإنتقال لتقنيات أخرى.
  4. دورة بايثون ودورة الذكاء الاصطناعي بهما ترابط كبير، حيث تخصص الذكاء الاصطناعي يعتمد على لغة بايثون في المقام الأول، وأيضًا الدورة سيتم بها شرح أمور متعلقة بتحليل البيانات وتعلم الآلة، وكذلك شرح إطارات الويب الخاصة ببايثون وهم جانغو وفلاسك، والتي ستحتاج إليها في حال أردت نشر نموذج ليصبح متاح استخدامه من قبل آخرين عن طريق واجهة مستخدم. وبما أنك تخصصت في مجال الويب بالفعل، لذا دورة بايثون هي الأنسب لك، ومن خلال تستطيع تطوير الواجهة الخلفية عن طريق جانغو وفلاسك، وكذلك تطوير مشاريع Full-stack أيضًا من خلالهم. وستتعلم أمور متقدمة نسبيًا مثل كيفية استخراج بيانات من الويب عن طريق web scraping وتخزين تلك البيانات واستخدامها في موقعك مثلاً. كذلك كيفية تحليل البيانات في ملف csv و Word و PDF، والاستفادة منها بتخزينها في قاعدة البيانات وعرضها في الموقع. أما مجال تعلم الآلة أو الذكاء الاصطناعي، فهو مجال مختلف تمامًا عن تخصصك.
  5. هل قمت بإنشاء المستودع المحلي في المجلد الصحيح، أي قمت بتنفيذ أمر git init في مسار مجلد المشروع في منفذ الأوامر سواء cmd أو powershell؟ تأكد من ذلك، وأيضًا يجب تنفيذ الأمر git add . في مسار مجلد المشروع الذي به المستودع المحلي. ويجب إنشاء ملف gitignore. وإعداده، من أجل تجنب رفع الملفات والمجلدات التي ليس لها علاقة بالكود المصدري أو الملفات الحساسة مثل ملف متغيرات البيئة env. الأفضل تعلم أساسيات git من خلال التالي:
  6. اللغة العربية بها صعوبات لأي نموذج، بسبب الأشكال المركبة أي ربط الحروف، النقاط والتشكيل التي تغير المعنى بجانب جودة الصور من الكاميرات الأمنية والإضاءة وزوايا الرؤية. لذا في حال جودة الصورة منخفضة فيجب تنفيذ Preprocessing على الصور من خلال تصحيح الإضاءة، تكبير الصورة 2-3x، تحسين التباين وإزالة الضوضاء، ولو الزوايا مائلة قم بتطبيق تصحيح perspective. أيضًا لو النموذج لم يتدرب على لوحات فيجب عمل Fine-tuning له على لوحات، ولو ظهرت مشكلة مزج اللغات عربي وإنجليزي، ستحتاج إلى استخدام نموذج متعدد اللغات multi-lingual models. ويتوفر نموذج PaddleOCR (Baidu) ويدعم العربية بأداء جيد، وللمشاريع المتقدمة ستحتاج إلى YOLOv8 كنموذج Recognition Layer بحاتب PaddleOCR (Baidu). واعتمد على مجموعة البيانات السعودية التالية لعمل Fine-tuning: https://www.kaggle.com/datasets/riotulab/saudi-license-plate-characters وتستطيع توليد لوحات بشكل اصطناعي أي Synthetic Data Generation، فبناء dataset مخصصة بجودة عالية سيحسن الدقة بنسبة 40 إلى 60% على الأقل. ولتحسينها أكثر قم بعمل Post-processing لتصحيح أخطاء الـ OCR.
  7. بعد دراسة الأساسيات وتنفيذ مشروع بسيط، ابدء في حل المساءل البرمجية، وفي نفس الوقت اعمل على تطوير مستواك في اللغة بتعلم المفاهيم المتقدمة. لكن قبل حل المسائل البرمجية، عليك تعلم أساسيات هياكل البيانات والخوارزميات أي مفاهيم بسيطة من الـ DSA مثل: Arrays وطرق التعامل معها. Strings والخوارزميات الأساسية عليها مثل عكس النصوص، البحث عن عنصر. Time Complexity بشكل بسيط مثل فهم الفرق بين O(n) و O(n^2). وما سبق ستتعلمه في أساسيات جافاسكريبت، لذا يتبقى Time Complexity فقط. وتتوفر منصات مثل HackerRank أو Edabit أو Codewars للمبتدئين، حيث تبدأ بالتدرج من خلال منصة سهلة نسبيًا مثل Codewars وحل الأسئلة السهلة ثم المتوسطة ثم الصعبة، ثم الإنتقال لمنصة leetcode وحل المسائل التي بها بدءًا من مستوى متوسط فما فوق. بعد حل أي مسألة، اقرأ حلول الآخرين لتعلم تقنيات جديدة وخصص وقت يوميًا للحل حتى لو 30 دقيقة، وتستطيع التعمق في DSA عند الانتقال للمسائل المتوسطة، حيث ستتعلم هياكل البيانات الأساسية Linked Lists, Stacks, Queues, Hash Tables, Trees. والخوارزميات أساسية هي: البحث الخطي والثنائي Linear/Binary Search. الفرز السريع والدمج Quick Sort, Merge Sort. الاجتياز Traversal للأشجار مثل BFS, DFS. وبخصوص طريقة الدراسة المناسبة ستجد تفصيل هنا:
  8. الدورة تخصصها التطوير وليس التصميم، بمعنى أنت ستستلم التصميم من مصمم واجهات المستخدم ثم تعمل على تحويله إلى موقع حي، وذلك يسمى Front-End Developmen. أي كمطور واجهة أمامية التصميم ليس من اختصاصك بل من اختصاص مصمم واجهات المستخدم، لكن يجب الإلمام بالأساسيات الخاصة به لتصبح قادر على التعديل متى أردت وإبداء رأيك في التصميم واقتراح أمر ما على المصمم من وجهة نظرك، أو حتى تصميم واجهة جيدة عند العمل على مشاريعك، ستفاجيء بمقدار التحسن في تصميم الواجهة الذي تقوم به في مشروع خاص بك عند الإلمام بالأساسيات أي على دراية بما تقوم به وليس بشكل عشوائي. أيضًا عند العمل على مواقع العمل الحر، ستضطر أحيانًا إلى تصميم وتطوير المشروع بنفسك، لذا يجب أن تكون على جاهزية لتنفيذ المطلوب وبالطبع هناك تكلفة إضافية بجانب البرمجة. على الأقل تعلم ما يلي: التسلسل الهرمي البصري Visual Hierarchy وهو ترتيب العناصر لتوجيه عين المستخدم إلى الأهم أولاً. التباين Contrast الخاص باستخدام الألوان والأحجام والأوزان لجعل العناصر قابلة للقراءة والتمييز. المساحة البيضاء White Space وNegative Space لاستخدام الفراغ لتنظيم المحتوى وتجنب ازدحام الواجهة. المحاذاة Alignment لتنظيم العناصر على شبكة Grid وهمية لجعل التصميم يبدو مرتب ومنظم. التكرار أي إعادة استخدام نفس الأنماط (الألوان، الخطوط، الأزرار) للحفاظ على الاتساق. نظرية الألوان Color Theory لاستيعاب أساسيات تناسق الألوان وكيفية استخدامها للتأثير على شعور المستخدم. Typography لاختيار الخطوط وأحجامها وأوزانها لضمان سهولة القراءة وتحسين تجربة المستخدم. وإليك مصادر لتعلم الأساسيات: وتعلم Figma وأساسيات الـ UI/UX من القنوات التالية: Ahmad Sekmani Anas Rafaat | أنس رأفت
  9. كمسألة برمجية بمستوى مبتدأ، اعمل على تطوير برنامج حاسبة مجموع الأعداد الزوجية، حيث ستكتب دالة باسم sum_of_evens تستقبل قائمة من الأعداد الصحيحة كمدخل، وتقوم بإعادة مجموع الأعداد الزوجية فقط الموجودة في القائمة. ومسألة متوسطة المستوى، اكتب دالة باسم word_frequency_counter تستقبل نص كمدخل، وتقوم بإعادة قاموس يحتوي على كل كلمة في النص وعدد مرات تكرارها، ويجب أن يكون الحل غير حساس لحالة الأحرف case-insensitive، أي أن Python و python تعتبران نفس الكلمة، وتجاهل علامات الترقيم الأساسية مثل الفاصلة , والنقطة . ومسألة متقدمة، اكتب سكربت بايثون يقوم بفحص جميع الملفات في مجلد معين ولنفترض أنه المجلد الذي يعمل فيه السكربت، ولكل ملف، سيقوم السكربت بإنشاء مجلد فرعي جديد يحمل اسم امتداد الملف مثل txt, pdf, jpg في حال لم يكن موجود بالفعل، ثم ينقل الملف إلى ذلك المجلد. والمراجعة ستتم بناءًا على: هل الكود ينتج المخرج الصحيح للمدخلات المعطاة؟ وهل يعمل بشكل صحيح مع الحالات الاستثنائية الغير تقليدية؟ هل الحل يستخدم أفضل طريقة من حيث سرعة التنفيذ واستهلاك الذاكرة؟ والأمر مهم أكثر في المسائل المتقدمة. هل الكود منظم وسهل القراءة؟ هل أسماء المتغيرات والدوال واضحة وذات معنى؟ هل هناك تعليقات لشرح الأجزاء المعقدة؟ هل تستخدم ميزات اللغة بشكل جيد؟ مثلاً، استخدام list comprehensions بدلاً من حلقات for التقليدية عند الإمكان، أو استخدام with عند التعامل مع الملفات. هل الكود قادر على التعامل مع المدخلات غير المتوقعة بشكل سليم دون أن يتعطل؟ مثلاً، لو القائمة فارغة في المسألة الأولى؟
  10. الشهادة الجامعية في حد ذاتها غير مهمة في مجال تعلم الآلة وفي مجال البرمجة بشكل عام، لكن وجود شهادة جامعية يُحسن من فرص قبولك بطبيعة الحال، فجزء كبير من الشركات يشترط شهادة جامعية على الأقل. لكن يمكن تعويض ذلك من خلال اكتساب خبرة كبيرة بحيث يتم التغاضي عن الشهادة، وبالطبع ذلك من خلال تطوير مستواك وتنفيذ مشاريع والعمل على منصات العمل الحر أو عن بُعد. وأُثناء ذلك تستطيع الإلتحاق بأي نظام تعليم جامعي مفتوح والحصول على الشهادة في نفس الوقت. عامًة في حال تريد تعلم البرمجة فافعل ذلك طالما ليس لديك شيء آخر تفعله، أي ابذل ما في وسعك والله لا يُضيع أجر من أحسن عملاً.
  11. بالطبع، وبه ستكتب وصف للمشروع ماذا يفعل الـ API؟ ما هي المشكلة التي يحلها؟ والتقنيات المستخدمة Tech Stack، وكيفية تشغيل المشروع محليًا بتعليمات واضحة خطوة بخطوة. وقائمة بالـ API Endpoints من خلال جدول بسيط يوضح كل endpoint، وماذا تفعل، وما هي البيانات التي تتوقعها، مثلاً POST /auth/register - register a new user ,شرح للمتغيرات التي يحتاجها المشروع ليعمل مثل DATABASE_URL وJWT_SECRET. بجانب ما سبق يجب نشر المشروع على استضافة وتوفير رابط لحي لإختبار الـ API، وكذلك توثيق تفاعلي بواسطة Swagger. من خلال إضافة مكتبة Swagger إلى مشروعك swagger-ui-express، وهي ستقوم تلقائيًا بإنشاء صفحة ويب توثق كل الـ Endpoints في مشروعك (مثل GET /users, POST /products)، وستوفر توفر واجهة لتجربة كل endpoint مباشرة، وإرسال البيانات، ورؤية الاستجابة. وسيتم إنشاء مسار للتوثيق عند نشر المشروع على استضافة، ولتكن render مثلاً: https://my-todo-api.render.com/api-docs
  12. في حال أنك مبتدأ في مجال تعلم الآلة، فلا أنصحك إطلاقًا بدراسة 4 مسارات فقط، فذلك الخيار متاح لمن لديه معرفة وخبرة بتخصص الدورة ويرغب في تعلم أمور معينة فقط ولا يرغب بدراسة بالدورة بالكامل. الشهادة في حد ذاتها في مجال البرمجة ليست بتلك الأهمية، المهم هو مهاراتك وما تستطيع فعله وإثبات ذلك من خلال معرض أعمال إحترافي. لذا حدد هدفك من دراسة الدورة، ولتعلم مجال تعلم الآلة ستحتاج إلى دراسة الدورة بالكامل.
  13. قسم How does the project work هو توثيق للـ API من الأفضل تسميته API Documentation أو Endpoints Reference. وإضافة قسم Features أي الميزات في البداية لتلخيص ما يمكن للمشروع عمله في نقاط سريعة، وقسم للـ Tech Stack أي التقنيات المستخدمة بشكل منفصل وواضح. و ذكرت ADMIN_PASSWORD في ملف .env، ولكنك لم توضح للمطور كيفية إعداده، أي مشروع يجب أن يحتوي على ملف env.example. وتوضح في الـ README أنه يجب نسخه إلى .env وكتابة المتغيرات اللازمة مثل: MONGO_URI JWT_SECRET PORT CLOUDINARY_CLOUD_NAME ADMIN_PASSWORD ولا يوجد ذكر لكيفية استجابة الـ API في حالة حدوث خطأ مثل إدخال خاطئ 400، عدم العثور على عنصر 404، أو عدم وجود صلاحية 401/403، فالتوثيق الاحترافي يشمل أمثلة على استجابات النجاح والفشل. والنصوص البرمجية مثل POST /api/auth/register، وأجسام JSON، والـ Headers يجب وضعها دائمًا داخل Code Blocks أي بوضعها بين ``` لتحسين القراءة وسهولة النسخ.
  14. NetworkX مفيد لبناء الـ Graph لكن لا يستخرج العقد والعلاقات تلقائيًا من JSON، حيث ستحتاج إلى كتابة منطق الاستخراج. الأفضل استخدام LLM نفسه لاستخراج العقد والعلاقات من خلال كتابة PromptTemplate from langchain.prompts import PromptTemplate ثم: def extract_entities_and_relations(json_text): llm = OpenAI(temperature=0) prompt = PromptTemplate( input_variables=["data"], template=""" استخرج من البيانات التالية: 1. العقد (Entities) - الأشياء الرئيسية 2. العلاقات (Relations) - الروابط بينها أرجع النتيجة بصيغة JSON: {{ "nodes": [ {{"id": "node1", "label": "اسم", "type": "نوع"}}, ], "edges": [ {{"source": "node1", "target": "node2", "relation": "نوع العلاقة"}} ] }} البيانات: {data} """ ) response = llm(prompt.format(data=json_text)) return json.loads(response) وتتوفر مكتبات جاهزة للبحث، أفضلها Neo4j، حيث LLM يحول سؤال المستخدم إلى Neo4j ثم تنفيذ الاستعلام وإرجاع النتائج، ويستخدم النتائج لتوليد إجابة طبيعية. ستحتاج التالي Neo4j و LangChain وLLM.
  15. الإيقاف نهائي وليس مؤقت، ولا يوجد سبب واحد معلن ورسمي من جوجل، ولكن على الأرجح التركيز لم يعد مقتصر على إطار عمل واحد فقط، المجال الآن أوسع بكثير، ويشمل مفاهيم مثل MLOps، ونشر النماذج على السحابة، والتعامل مع البيانات الضخمة، واستخدام أدوات مختلفة، لذا شهادة تركز فقط على بناء النماذج في TensorFlow أصبحت لا تعكس كل المهارات التي يحتاجها مهندس تعلم الآلة حاليًا. أيضًا بدلاً من تقديم امتحان واحد كدليل على الكفاءة، جوجل تفضل الآن توجيه المطورين إلى مسارات تعليمية متكاملة على منصات مثل Coursera و Google Cloud Skills Boost، والتي توفر معرفة أعمق، حتى لو لم تنتهِ بامتحان عملي بنفس الشكل. ويوجد بديل وهو شهادة Google Cloud Professional Machine Learning Engineer، ولا تختبر فقط قدرتك على بناء النماذج، بل تختبر فهمك لكيفية بناء حلول تعلم آلة متكاملة وقابلة للتطوير على منصة Google Cloud.
  16. في منطقة الشرق الأوسط، لا يوجد طلب مرتفع على لغة GO، تتوفر وظائف في دبي والمملكة العربية السعودية والخليج، وأيضًا في بعض الشركات القليلة في مصر. بينما في أوروبا وأمريكا يوجد طلب عالي بطبيعة الحال. وعامًة هناك نُدرة نسبية في مطوري GO، وبالتالي المرتبات مرتفعة مقارنًة بأغلب اللغات الأخرى، لذا في حال أردت التخصص في مجال الواجهة الخلفية، فقم بدراسة تقنية مطلوبة بكثرة في منطقة الشرق الأوسط، وبعد اكتساب خبرة بها قم بدراسة GO لتتمكن من التقدم للوظائف القليلة المعروضة والتي بها نسبة قبول مرتفعة في حال مستواك جيد.
  17. كل شخص له أسلوب يُناسبه في الدراسة، لكن المهم هو تجنب المشاهدة السلبية وتخصيص وقت أكبر للتطبيق العملي، فالبرمجة عبارة عن تفكير منطقي لحل مشكلة ثم تنفيذ ذلك من خلال كتابة الكود. بالنسبة لطريقة الدراسة البعض يُفضل كتابة مُلخصات لكل شيء، لكن لا أنصحك بذلك، اكتفي فقط بكتابة ملاحظات ومُلخصات ورسومات للأمور النظرية أو معلومة معينة تريد الإحتفاظ بها للعودة إليها للمراجعة. بينما البرمجة نفسها اكتفي بالتطبيق العملي فهو الأهم وبدونه فلا معنى للمُلخصات النظرية مهما كتبت، ببساطة لن تستطيع قيادة سيارة بمشاهدة فيديو صحيح؟ وحاول تجنب الإنقطاعات المتكررة خاصًة في البداية، حاول الدراسة بإنتظام بحد أدنى ساعتين يوميًا أو شبه يومي. ستجد تفصيل هنا:
  18. حذفت date_id من test نفسه؟ إذن يجب تمرير إطار بيانات يحتوي على date_id. import pandas as pd import tensorflow as tf import kaggle_evaluation import os col = ['D1','D2','D3','D4','D5','D6','D7','D8','D9','E1','E10','E11','E12','E13','E14', 'E15','E16','E17','E18','E19','E2','E20','E3','E4','E5','E6','E7','E8','E9','I1', 'I2','I3','I4','I5','I6','I7','I8','I9','M1','M10','M11','M12','M13','M14','M15', 'M16','M17','M18','M2','M3','M4','M5','M6','M7','M8','M9','P1','P10','P11','P12', 'P13','P2','P3','P4','P5','P6','P7','P8','P9','S1','S10','S11','S12','S2','S3', 'S4','S5','S6','S7','S8','S9','V1','V10','V11','V12','V13','V2','V3','V4','V5', 'V6','V7','V8','V9','is_scored','lagged_risk_free_rate', 'lagged_market_forward_excess_returns'] model_path = 'AlphaPulse.keras' if not os.path.exists(model_path): model_path = '/kaggle/working/AlphaPulse.keras' model = tf.keras.models.load_model(model_path) def predict(test: pd.DataFrame, test_with_dates: pd.DataFrame) -> pd.DataFrame: df = test.copy() x_test = df[col] preds = model.predict(x_test, verbose=0) allocation = preds.clip(0, 2).reshape(-1) return pd.DataFrame({ "date_id": test_with_dates["date_id"].values, "prediction": allocation }) inference_server = kaggle_evaluation.default_inference_server.DefaultInferenceServer(predict) if os.getenv('KAGGLE_IS_COMPETITION_RERUN'): inference_server.serve() else: inference_server.run_local_gateway(('/kaggle/input/hull-tactical-market-prediction/',))
  19. Express.js مكتبة بسيطة لإنشاء خادم، توفر لك الأدوات الأساسية مثل التعامل مع الطلبات والمسارات، وتترك لك حرية تنظيم مشروعك كما تشاء، حيث لا توجد قواعد صارمة لكيفية تقسيم الكود وتستطيع وضع كل شيء في ملف واحد، أو تقسيمه بنفسك، وذلك مناسب في المشاريع الصغيرة. بينما في المشاريع المتوسطة والكبيرة تظهر فائدة إطار كامل مثل Nest.js، حيث يوفر هيكل كامل وجاهز لتنظيم المشروع من Modules و Controllers و Services وDecorators، وتطبيق مفاهيم متقدمة مثل Dependency Injection وSOLID، أيضًا مبني بالكامل على TypeScript، ومبني فوق Express، لكن يضيف طبقة قوية من التنظيم مستوحاة من أطر عمل مثل Angular. وبه نظام الـ Modules الذي يسمح لك بتقسيم التطبيق إلى وحدات مستقلة، وذلك يُسهل العمل على أجزاء مختلفة من التطبيق في فرق كبيرة ويجعل المشروع قابل للتوسع فيما بعد. وما سبق يُسهل عملية Unit Tests لكل جزء من التطبيق بمعزل عن الآخر.
  20. هل يظهر لك محتوى المسار عند التوجه للرابط التالي؟ https://academy.hsoub.com/courses/python-application-development/python-intro/ في حال لا، أرجو التواصل مع مركز المساعدة بشأن ذلك وسيتم حل المشكلة.
  21. كلاهما متقاربان من حيث الاستخدام، وستجد أنّ Flutter مطلوب بكثرة على مواقع العمل الحر، أما في الشركات فستجد أنّ React Native مستخدمة بنسبة أكبر بسبب إعتماد الإطار على لغة جافاسكريبت وReact المستخدمين بكثرة أيضًا من ناحية، وأقدمية إطار React Native من ناحية أخرى. بالنسبة للإحصائيات ستجد أنّ React Native لا يزال يتفوق في التطبيقات الضخمة الفعلية، حيث يشغل 12.57% من أفضل 500 تطبيق أمريكي، مقابل 5.24% فقط لـFlutter. عامًة مع البنية الجديدة تعمل React Native على سد فجوة الأداء بشكل كبير حتى في التطبيقات التي تتطلب أداء عالي، لذا، حجة Flutter أسرع دائمًا بدأت تضعف. من ناحية Flutter تتميز بقدرتها على رسم واجهة المستخدم الخاصة بها باستخدام محرك Skia، بالتالي التطبيق سيبدو ويعمل بنفس الطريقة على كل المنصات (iOS, Android, Web, Desktop)، وتلك ميزة قوية للتطبيقات الكبيرة التي تهتم بتجربة المستخدم المتسقة، لكن ذلك ميزة وعيب في نفس الوقت حيث مكونات الواجهة ليست أصلية كما في React Native وتبدوا مختلفة عن نظام التشغيل. وللعلم في الإصدار 3 يتم استخدام Platform Adaptive Widgets مثل Cupertino لـiOS وMaterial لـAndroid لتحاكي السلوك الأصلي، لكن ذلك يضعف الاتساق ويزيد التعقيد. كذلك عندما تضيف Google ميزة جديدة في Android 16 مثلاً مكون UI جديد أو API حساسية جديد، فلا تستطيع استخدامها فوريًا، يجب إنتظار تضمين ذلك في Flutter لمحاكاة تلك الميزات في محرك Skia، بينما في React Native تستطيع استخدام الميزات الجديدة مباشرًة لأنها تستخدم مكونات المنصة نفسها.
  22. يوجد مشروع استخراج البيانات من الويب Web scraping، وأيضًا يوجد مشروع في المسار الأول من دورة بايثون "تطبيق إدارة مهام"، تستطيع دراسة المسار الأول من جميع الدورات بشكل مجاني، لذا تفقد المشروع وقم بالتطبيق بعد الاستيعاب. لكن أنصحك بدراسة المسار الأول من دورة بايثون بالكامل "أساسيات بايثون" حيث يوجد به تفصيل أكثر عن الأساسيات، والدروس المتشابهة تعتبر مراجعة لما درسته فشاهدها سريعًا مع التطبيق العملي.
  23. محلل البيانات يعمل في دورة سريعة وتكرارية بحيث يبحث عن تفسير لسؤال معين مثل تحليل معدلات الشفاء في الأشهر الماضية في قطاع ما، ثم يستخرج البيانات ويحلل ويقدم التقرير ثم ينتقل للسؤال التالي، والعملية تستغرق أيام أو أسابيع، و يتعامل مع بيانات منظمة أي جداول وقواعد بيانات حجمها متوسط. بينما عالم البيانات يعمل في دورة بحثية طويلة، يُحدد المشكلة مثل يعمل بناء نموذج يتنبأ باحتمالية إصابة مريض بمضاعفات، عن طريق جمع وتنظيف بيانات ضخمة ثم هندسة الميزات، ثم يبني ويختبر نماذج متعددة ثم ينشر النموذج ويراقب الأداء، وما سبق يستغرق شهور، وبالتالي هو يتعامل مع بيانات غير منظمة كالنصوص، صور، فيديو، صوت وبيانات ضخمة Big Data تصل إلى TeraByte أو PetaByte، ويستخدم أدوات مثل Spark أو Hadoop. وعامًة يتم التخصص كمحلل بيانات في البداية ثم تعلم المزيد من المهارات للوصول لمرحلة عالم بيانات، عبر تعلم: البرمجة المتقدمة الرياضيات المتقدمة ومنها الجبر الخطي وحساب التفاضل. هندسة الميزات والنماذج MLOps وهي نشر وصيانة نماذج ML.
  24. بالطبع، لكن لم تحددي ما هو نوع التطبيق أو المشروع؟ عامًة مشاريع الويب يتم تنفيذها من خلال إطار Django أو Flask. وقبل البدء، يجب دراسة أساسيات بايثون ومنها: المتغيرات وأنواع البيانات. التحكم في تدفق منطق البرنامج من خلال if وحلقة التكرار. الدوال والكائنات. التعامل مع الملفات والأخطاء. البرمجة الكائنية. وكذلك أساسيات قواعد البيانات، وأيضًا أساسيات الويب وهم HTML, CSS, JavaScript ثم تعلم إطار جانغو أو Flask وذلك بالنسبة لمشاريع الويب، أما لبناء تطبيق هاتف فيتوفر إطار BeeWare
  25. الأمور المالية تتم من خلال مركز المساعدة، أرجو توضيح طلبك وسيتم الرد عليك.
×
×
  • أضف...