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

السؤال

Recommended Posts

  • 0
نشر

ليس بنفس العمق الذي يحتاجه مهندس البرمجيات ولكن الفهم الجيد للأساسيات ضروري بالطبع، ففي الواقع العملي ستتعتمد بشكل كبير على مكتبات جاهزة ومحسنة مثل Pandas  وScikit-Learn.

أي لن تقوم بكتابة Binary Search Tree من الصفر، ولن تقوم ببرمجة خوارزمية Sorting بنفسك، فتلك المكتبات مكتوبة بلغات مثل C++ وتم تحسينها لأقصى درجة، ومهمتك هي استخدامها وليس إعادة اختراعها.

لكن الجهل التام بأساسيات هياكل البيانات والخوارزميات سيجعلك تكتب أكواد بطيئة وغير قابلة للتوسع، بمعنى عند التعامل مع ملايين الصفوف، فالفرق بين استخدام List و Set للبحث عن قيمة قد يعني الفرق بين كود ينتهي في ثانية وكود ينتهي في ساعة.

لذا يجب أن تفهم الفرق بين O(n)O(n) و O(n2)O(n2) لتتجنب كتابة حلقات تكرارية تدمر أداء النموذج.

كذلك خوارزميات الـ Machine Learning نفسها تعتمد على هياكل بيانات، ومنها:

  • Decision Trees و Random Forests تعتمد كليًا على مفهوم الأشجار.
  • Neural Networks تعتمد على المصفوفات Matrices والعمليات الخطية.
  • NLP يعتمد بعضها على Graphs.

وفي مقابلات العمل سيُطلب منك حل مسائل برمجية كالتي على منصة LeetCode كجزء من المقابلة للتأكد من قدرتك على كتابة كود نظيف ومنطقي.

لذا في هياكل البيانات قم بدراسة:

  • Arrays و Lists.
  • Hash Maps  وDictionaries.
  • Sets.
  • Tuples.
  • Trees فهم نظري لكيفية عملها لأنها أساس أغلب نماذج الـ ML.

وبالنسبة للخوارزميات ادرس أساسيات التالي:

  • Sorting و Searching.
  • Recursion.
  • Dynamic Programming.
  • Big O Notation.
  • 0
نشر

لا يحتاج عالم البيانات إلى التعمّق في هياكل البيانات والخوارزميات بنفس الدرجة المطلوبة من مهندس البرمجيات، لكن امتلاك فهم راسخ للأساسيات ليس مجرد رفاهية، بل شرط للقدرة على التعامل مع البيانات بكفاءة واتخاذ قرارات صحيحة أثناء بناء النماذج.

على الرغم من أنك ستعتمد غالبًا على مكتبات قوية ومُحسّنة مسبقًا مثل:
NumPy، Pandas، Scikit-Learn، PyTorch، TensorFlow
إلا أن هذه المكتبات مبنية أصلًا على مبادئ خوارزمية واضحة، ومعرفتك لها تمنحك ثلاث فوائد أساسية:

1. كتابة كود performant و scalable

قد ينجح الكود المُستخدم على عيّنة صغيرة، لكنه يفشل أو يصبح بطيئًا عند التعامل مع ملايين الصفوف. هنا يظهر دور فهمك لهياكل البيانات:

  • استخدام Set بدلًا من List للبحث يقلل الوقت من O(n) إلى O(1).
  • دمج العمليات بدلاً من الحلقات المتداخلة يمنع الأداء من الانهيار من O(n²) إلى O(n).
  • معرفة كيفية التعامل مع المصفوفات الكبيرة يحميك من أخطاء الذاكرة.

هذه التفاصيل هي ما يفصل بين “كود يعمل” و“كود احترافي يمكن استخدامه في الإنتاج”.

2. فهم كيفية عمل نماذج Machine Learning نفسها

الكثير من نماذج الذكاء الاصطناعي مبنية مباشرة على هياكل بيانات معروفة:

  • Decision Trees و Random Forests و XGBoost تعتمد على أشجار القرار وتجزيء البيانات.
  • Neural Networks تعتمد على المصفوفات والعمليات الخطية (Matrices & Tensors).
  • خوارزميات الـ NLP غالبًا تستخدم الرسوم البيانية (Graphs) والتدرج في المعاني Embeddings.
  • Clustering يستخدم خوارزميات تعتمد على حسابات المسافات بكفاءة عالية.

فهم هذه الأسس يجعل نتائجك أو تفسيرك للنماذج أفضل بكثير.

3. النجاح في مقابلات العمل

كثير من الشركات—خصوصًا التقنية—لا توظّف عالم بيانات لا يمكنه كتابة كود نظيف وحل مسائل برمجية.
لن يطلب منك أحد تنفيذ AVL Tree من الصفر، ولكن:

  • قد تُسأل عن الفرق بين O(n log n) و O(n²) في خوارزميات الفرز.
  • أو كيفية تحسين زمن تنفيذ كود يعالج ملفًا حجمه 5GB.
  • أو كيفية إعادة كتابة عملية Feature Engineering بطريقة أكثر كفاءة.

هذا يضمن أنك تستطيع التفكير منطقيًا، وهي مهارة يُبنى عليها أي دور في البيانات.

ما المستوى المطلوب تحديدًا؟

لست بحاجة للتعمّق الأكاديمي، لكنك تحتاج ما يلي:

  • هياكل البيانات الأساسية:
    • Arrays / Lists
    • Sets
    • Dictionaries / Hash Maps
    • Tuples
    • فهم كيفية عمل الأشجار Tree Structures نظريًا (خاصة لشرح عمل Decision Trees)
  • الخوارزميات الأساسية:
    • Searching & Sorting
    • Recursion
    • Greedy & Dynamic Programming (مستوى بسيط–متوسط)
    • Big-O Notation وتحليل الزمن والمساحة
    • Vectorization وفهم الفرق بين العمليات المتجهة والحلقية (مهم جدًا في NumPy)

لذلك فالمعرفة المتوسطة العميقة خيرٌ من الجهل التام أو التعمّق الذي لا تحتاجه. ومن يملك فهمًا جيدًا لهياكل البيانات والخوارزميات يكون طريقه في علوم البيانات أوضح وأسرع.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...