-
المساهمات
0 -
تاريخ الانضمام
-
تاريخ آخر زيارة
آخر الزوار
لوحة آخر الزوار معطلة ولن تظهر للأعضاء
إنجازات Abdulaziz Yusuf
عضو مبتدئ (1/3)
3
السمعة بالموقع
-
سنستعرض في مقالنا هذا ما هي هندسة البيانات وما أبرز مهام مهندس البيانات ودوره وأهميته. سنبدأ بنظرة عامة على مهام هذا التخصص، ومن ثم نغوص في تفاصيل المهام المختلفة لمهندسي البيانات وكيف تساهم في عملية التحليل واتخاذ القرار. ما هي هندسة البيانات Data engineering؟ إن هندسة البيانات Data engineering هي عملية تصميم وتنفيذ حلول لجمع وتخزين وتحليل كميات كبيرة من البيانات ويُطلق على هذه العملية عادةً اسم ETL وهي اختصار لثلاث كلمات هي استخراج Extract وتحويل Transform وتحميل Load البيانات. استخراج البيانات Extract: يعني استخراج البيانات من مصادر منوعة مثل قواعد البيانات، وملفات نصية وصفحات ويب …إلخ. تحويل البيانات Transform: يشير إلى إجراء عمليات معالجة على البيانات لتحويلها لصيغة صالحة للاستخدام في مجالات مختلفة. تحميل البيانات Load: يعني تحميل البيانات التي تمت معالجتها إلى نظام التخزين المعتمد مثل قاعدة بيانات علاقية أو نظام لتخزين البيانات الضخمة Big Data تمهيدًا لعملية تحليلها والاستفادة منها في اتخاذ قرارات مفيدة. بعد هذه المراحل الثلاثة، تبدأ مرحلة إعداد البيانات وتجهيزها في تنسيقات مختلفة كي يستخدمها المتخصصون في البيانات مثل محللي البيانات وعلماء البيانات حيث يختلف تنسيق البيانات الناتجة حسب الجهة المستهدفة. لذا يتوجب على مهندس البيانات معرفة كيفية تقديم أفضل طريقة لعرض كميات ضخمة من مجموعات البيانات المختلفة بطريقة يمكن تحليلها والتعامل معها سواء من قبل محلل البيانات أو عالم البيانات أو مدير المنتجات أو غيرها من الجهات التي تعنى بالتعامل مع كميات ضخمة من البيانات. ما هي مهام مهندس البيانات؟ مهندس البيانات هو المهندس المسؤول عن إنشاء حلول من البيانات الخام أو البيانات الأولية، فهو يتولى أمور تطوير وبناء واختبار وصيانة هياكل البيانات data architectures. مهام مهندس البيانات من منظور شامل تشمل مهام مهندسي البيانات بشكل عام التعامل مع البيانات الخام row data. ويتطلب ذلك منهم معرفة جيدة بلغة الاستعلام البنيوية SQL كما يحتاج لامتلاك خبرة جيدة في التعامل مع مختلف أنواع قواعد البيانات، سواء كانت علاقية relational أو غير علاقية non-relational، وفهم صيغ البيانات الشائعة (مثل JSON و CSV و XML) ومعرفة الخيارات المختلفة للتعامل مع البيانات واستدعائها وما هي مزايا وعيوب كل طريقة. فمهندسو البيانات هم المسؤولون عن تحويل البيانات إلى تنسيق سهل الوصول، وتحديد الاتجاهات أو الأنماط المتبعة في التعامل مع مجموعات البيانات، وإنشاء خوارزميات لجعل البيانات الخام أكثر فائدة لقطاعات الأعمال. كما يتمتع مهندسو البيانات بالقدرة على تحويل البيانات الخام إلى رؤى أو قرارات مفيدة حيث يستفيد علماء البيانات من الجهود التي يبذلها مهندسو البيانات في إعداد البيانات وهذا يمكنهم من تحويلها إلى قرارات مستنيرة بسرعة وسهولة. على سبيل المثال، يمكن لمهندس البيانات تحديد فترات الذروة في المبيعات أو تحديد المنتجات التي يُفضل العملاء شراءها مع بعضها، وبالتالي اتخاذ قرارات بإصدار عروض ترويجية مناسبة على المبيعات أو تحسين إدارة المخزون أو غيرها من القرارات بناءً على رؤى مستمدة من البيانات. مهام مهندس البيانات بالتفصيل يعمل مهندس البيانات على هياكل بيانات تتضمن عدة عناصر ومكونات، ونظرًا لأن هذه البيانات تأتي من مصادر مختلفة سواء من قواعد البيانات العلاقية أو غير العلاقية إلى جانب أنظمة خاصة وأدوات مختلفة لمعالجة البيانات. لهذا يتوجب على مهندس البيانات أن يستخدم عدة خدمات وأدوات للتعامل مع هذه البنى المختلفة وتجهيزها بطريقة مناسبة وإتاحة الوصول لها من قبل علماء البيانات. نوهنا سابقًا في بداية المقال لمصطلح ETL الذي يشير إلى استخراج وتحويل وتحميل البيانات حيث يستخدم مهندسو البيانات هذه المنهجية على هياكل البيانات التي ينشؤونها، ويتمثل عملهم الأساسي في اتباع هذه الخطوات الثلاثة أي استخراج البيانات الخام، وتحميلها، وتحويلها لصيغة مناسبة. تحتوي هذه البيانات الخام في الغالب على كثير من الأخطاء والحالات الشاذة مثل تكرار نفس البيانات وعدم التوافق والتطابق في بعض البيانات أو ما يعرف بتضارب البيانات data Inconsistency. لذا تلقى على عاتق مهندس البيانات مسؤولية مراجعة كافة البيانات التي يجمعها واقتراح طرق مناسبة لتحسين جودتها وزيادة صحتها وموثوقيتها. مثال بسيط على الأدوات التي يستخدمها مهندسو البيانات هنالك عدة أدوات يمكن لمهندسي البيانات استخدامها للتعامل مع البيانات على سبيل المثال يمكنهم استخدام أداة لاستيراد بيانات تستورد فقط الصفوف التي تفي بمعايير وشروط معينة وتتجاهل أي صفوف لا تفي بهذه المعايير، حيث يمكن أن يشترط استيراد البيانات النصية فقط، أو البيانات الرقمية التي لها طول محدد دون غيرها من مصادر البيانات المتوفرة. كما يمكنهم استخدام سكريبتات برمجية مكتوبة بلغة مثل لغة البرمجة بايثون لتحويل أو استبدال أحرف محددة ضمن حقول البيانات والتالي يمكن لمهندس البيانات المحترف تحديد أي مشكلات موجودة في البيانات بسرعة وتحديد الأدوات والتقنيات المناسبة التي تحقق له أفضل الحلول لهذه المشكلات. كيف تصبح مهندس بيانات كي تصبح مهندس بيانات محترف عليك اتباع مجموعة من الخطوات الأساسية والتي تشمل: فهم أساسيات البيانات. فهم أساسيات لغة الاستعلام البنيوية SQL. معرفة جيدة باستخدام التعابير النظامية RegEx. معرفة بالتعامل مع تنسيق جيسون JSON. امتلاك أساس نظري وممارسة عملية بتعلم الآلة ML. امتلاك خبرة جيدة بإحدى لغات البرمجة. لنشرح تاليًا كل خطوة من هذه الخطوات بتفصيل أكبر. الخطوة1: فهم أساسيات البيانات لابد أن يمتلك أي مهندس بيانات فهمًا جيدًا بطريقة تخزين البيانات وتنظيمها في الحاسوب. ويعرف ما هي أنواع البيانات المختلفة التي يمكن استخدامها، ويعرف مفاهيم أساسية مرتبة بالبيانات مثل: variables: وهي تمثل مساحات في الذاكرة مخصصة لتخزين البيانات. varchar: نوع بيانات يستخدم لتخزين البيانات النصية ذات حجم متغير. char: نوع بيانات يستخدم لتخزين البيانات النصية ذات حجم ثابت من الأحرف int: نوع بيانات يستخدم لتخزين الأرقام الصحيحة التي لا تحتوي على أجزاء عشرية. prime numbers: الأعداد الأولية، وهي الأعداد الطبيعية الأكبر من الصفر والتي لا يمكن قسمها على أي عدد آخر سوى 1 ونفسها دون باقٍ. named pairs: أزواج البيانات المسماة، وهي بنى معطيات تملك عنصرين الأول يمثل الاسم أو المفتاح key والثاني يمثل القيمة المقابلة له value ويعرف كيفية تخزينها في هياكل بيانات تعتمد على SQL. توفر هذه المفاهيم على بساطتها أساسًا متينًا لمهندس البيانات يساعده على فهم البيانات data ومجموعات البيانات datasets والتعامل معها بالشكل المناسب الخطوة 2: فهم أساسيات لغة SQL يعد فهم لغة SQL من الأمور الأساسية المطلوبة لأي مهندس بيانات فهي اللغة الأساسية للتعامل مع قواعد البيانات العلائقية المختلفة وتنفيذ الوظائف على البيانات وكتابة الاستعلامات المناسبة لتحقيق هذه الوظائف. الخطوة 3: امتلاك معرفة جيدة بالتعابير النظامية RegEx إن فهم التعابير النظامية regular expressions وطريقة استخدامها للبحث في النصوص أمر أساسي، حيث يستخدمها مهندس البيانات في معالجة وتعديل البيانات المختلفة، وتتميز التعابير النظامية بكونها قابلة للاستخدام مع جميع تنسيقات البيانات ومنصات البيانات الأساسية. الخطوة 4: امتلاك خبرة في تنسيق جيسون JSON من الجيد أن يمتلك مهندس البيانات خبرة عملية بتنسيق جيسون JSON الذي يعد جزءًا لا يتجزأ من قواعد البيانات غير العلاقية non-relational وهياكل البيانات data schemas بشكل خاص ويعرف طريقة كتابة استعلامات للاستعلام عن بيانات بتنسيق جيسون. الخطوة 5: فهم المبادئ النظرية والتطبيق العملي لتعلم الآلة إن فهم المبادئ النظرية والتطبيقات العملية لمجال تعلم الآلة machine learning أمر مفيد أيضًا لمهندس البيانات فهو يمكنه من تصميم الحلول لعلماء البيانات. وهو يعد أمرًا ضروريًا حتى لو لم يكن العمل باستخدام نماذج تعلم الآلة جزءًا أساسيًا من العمل اليومي لمهندس البيانات. الخطوة 6: امتلاك خبرة في لغات البرمجة بالرغم من أن مهندس البيانات قد لا يحتاج بالضرورة لكتابة أكواد برمجية في عمله اليومي لكن من المفيد وجود خبرة جيدة بإحدى لغات البرمجة مثل لغة البرمجة بايثون Python التي تتميز بمرونتها وقدرتها على التعامل مع العديد من أنواع البيانات كما تعد لغات مثل جافا Java وسكالا Scala وجو Go مفيدة في مجال هندسة البيانات. المهارات الناعمة المفيدة لتخصص هندسة البيانات يحتاج العمل في تخصص هندسة البيانات لامتلاك مجموعة من المهارات الشخصية أو المهارات الناعمة ومن أبرزها: مهارة حل المشكلات باستخدام الأساليب المعتمدة على البيانات فمن الضروري أن يمتلك مهندس البيانات منهجية لحل المشكلات قائمة على البيانات ويعتمد على المعلومات الفعلية لإرشاده ليجد الحل الأمثل. القدرة على توصيل المفاهيم المعقدة وتصويرها مرئيًا visualize إذ يحتاج مهندسو البيانات إلى التعاون مع العملاء من جهة والتعاون مع الزملاء والفرق التقنية المختلفة داخل مكان العمل ومشاركة أفكاره مع أشخاص من خلفيات مختلفة لذا يحتاج لامتلاك مهارة التواصل الفعال لشرح ما يريد التعبير عنه بشكل واضح ومفهوم. شعور كبير بالمسؤولية، فمهندس البيانات مسؤول عن حل المشكلات المعقدة في مجالات حيوية وحل هذه المشكلات بالشكل الأنسب هو أساس وجوهر وظيفة هندسة البيانات. الأدوات والمصادر المطلوبة في تخصص هندسة البيانات يتطلب تخصص هندسة البيانات مجموعة من الأدوات المهمة والتي سنوضحها تاليًا، كما سنوضح أهم المصادر التي تشرح لك هندسة البيانات. فهم قواعد البيانات العلاقية وغير العلاقية ففهم أنواع وأنظمة قواعد البيانات المختلفة المستخدمة في العالم الحقيقي أداة أساسية في تخصص هندسة البيانات مثل: أنظمة إدارة قواعد البيانات العلائقية المعتمدة على سيكوال SQL مثل MySQL أو Microsoft SQL Server. أنظمة إدارة قواعد البيانات غير العلاقية NoSQL كقواعد البيانات المعتمدة على المستندات مثل MongoDB. معرفة بأساسيات إدارة ومعالجة ونمذجة البيانات عليك كمهندس بيانات تعلم تنسيقات ومنصات أنظمة قواعد البيانات الشائعة وتعلم طريقة إعدادها وفهم فوائد كل نظام إدارة قاعدة بيانات وطريقة التعامل معه. تعلم Apache Kafka تدعم مؤسسة أباتشي Apache للبرمجيات عدّة مشاريع للبيانات الضخمة، التي يمكن لمهندس البيانات تعلم التعامل معها، ومن بين هذه المشاريع المفيدة مشروع أباتشي كافكا Apache Kafka وهو عبارة عن هو منصة بيانات مفتوحة المصدر توفّر آلية تسمح للمستخدمين بالاتصال المستمر مع مصادر البيانات وتمكنهم من استقبالها وتحديثاتها لحظيًا بموثوقية عالية. كما تتوفر أدوات أخرى للتعامل مع البيانات الضخمة مثل أباتشي سبارك Apache Spark الذي يعد محركًا تحليليًا مفتوح المصدر لمعالجة البيانات. وسيفيدك كمهندس بيانات تعلم طريقة إعداده على مجموعة من الأجهزة لإنشاء محرك حوسبة موزع يمكنه معالجة كميات ضخمة من البيانات بسرعة كبيرة. كما تُعدّ أباتشي هادوب Apache Hadoop أداة مفيدة كذلك في تحليل البيانات الضخمة فهي تسمح بمعالجة موزعة لمجموعات بيانات كبيرة وهي تتوفر بشكل خدمة مُدارة managed service متوفرة كجزء من خدمة Google Cloud Dataproc والمستخدمة في معالجة البيانات الضخمة وتعلم الآلة. تعلم لغة البرمجة بايثون أو جافا سيفيدك تعلم لغة البرمجة بايثون كمهندس بيانات بشكل كبير فبايثون هي لغة برمجة قوية ومرنة يمكنها التعامل مع العديد من أنواع البيانات. كما تعد لغة البرمجة جافا Java لغة قوية وتشكل أساسًا للكثير من أعمال هندسة البيانات. لذا سيفيدك تعلم أساسيات جافا، بما في ذلك الصياغة النحوية والدوال والوحدات ومبادئ البرمجة كائنية التوجه oop وكتابة برامج وتطبيقات باستخدامها في عملك كمهندس بيانات. شهادات مفيدة لمهندس البيانات لا شك أن وجودة شهادة في مجال هندسة البيانات يساعدك في إثبات معرفتك لأصحاب العمل وستجد الكثير توفر مسارات التعلم للشهادات التالية طرقًا مُحدثة ومُثبتة ومفصلة لتعلم كل ما تحتاج إليه حول هندسة البيانات. شهادة AWS Data Engineering تضمن شهادة AWS Certified Data Analytics Specialty (DAS-01) خدمات تحليل البيانات في أمازون ويب، وهي تشرح توافق خدمات البيانات في أمازون ويب مع دورة حياة البيانات ومراحلها المختلفة مثل التخزين والمعالجة والتمثيل الرسومي للبيانات وغيرها من الوظائف الضرورية التي يجب على أي مهندس بيانات معرفتها. شهادة Azure Data Engineering تفيد شهادة DP-900 Exam Preparation: Microsoft Azure Data Fundamentals الأفراد التقنيين وغير التقنيين الراغبين في اكتساب معرفة بالمفاهيم الأساسية للبيانات وكيفية تنفيذها باستخدام خدمات بيانات Azure. ستتعلم من خلال هذه الشهادة أساسيات مفاهيم البيانات، بالإضافة إلى بيانات Azure العلاقية وغير العلاقية، وتتعلم كيفية وصف التحليلات التي تقوم بها على البيانات من خلال Azure analytics. كما تفيد شهادة DP-203 Exam Preparation: Data Engineering on Microsoft Azure في تعلم كيفية إدارة ونشر مجموعة من حلول بيانات Azure، ومعرفة كيفية تصميم وبناء تخزين البيانات وتصميم وتطوير وإدارة معالجة البيانات وكيفية الحفاظ على أمانها وتحسين طرق تخزينها. شهادة Google Cloud Data Engineering تساعد شهادة Google Data Engineer Exam – Professional Certification Preparation في فهم تقنية الاستعلامات الضخمة BigQuery وهو خدمة لتحليل البيانات تقدمها شركة Google Cloud Platform والتعامل مع مستودع البيانات السحابي المُدار من جوجل. كما ستتعلم في هذه الدورة كيفية تحميل واستعلام ومعالجة بياناتك وكيفية استخدام تعلم الآلة في تحليل البيانات، وبناء أنابيب البيانات، واستخدام الجداول الضخمة BigTable لتطبيقات البيانات الضخمة. ما الفرق بين مهندس البيانات وعالم البيانات؟ قد يقوم نفس الشخص بمهام مهندس البيانات وعالم البيانات في بعض مواقع العمل لكنهما وظيفتان متكاملتان فعلماء البيانات ومهندسو البيانات يدرسون تخصصين مختلفين ويحتاجون لمجموعة مهارات مختلفة ويقومون بمهام مختلفة مرتبطة بكل تخصص. إذ يهتم مهندسو البيانات بتصميم البيانات واختبارها وصيانتها، بينما يهتم علماء البيانات بتنظيم البيانات ومعالجتها من أجل اكتساب رؤى ومعرفة مفيدة منها. بمعنى آخر مهندسو البيانات هم المسؤولون عن إنشاء وتجهيز البيانات التي يستخدمها علماء البيانات. يمكن اعتبار مهندس البيانات المتحكم الأساسي في البيانات وبنيتها التحتية فهو من يقوم بإعدادها وتجهيزها، بينما يعد عالم البيانات الشخص المتخصص الذي يستنتج رؤى وقرارات من هذه البيانات التي عالجها مهندس البيانات وأعدها له بالصورة المناسبة، وكلا هذين الدورين مهمان ويحتاجان إلى تعاون وثيق لتحقيق النتائج المرجوة. ما هي هندسة البيانات الضخمة إن هندسة البيانات الضخمة Big Data كلمة رائجة اليوم وهي مصطلح شامل يتضمن كل ما يتعلق بعالم هندسة البيانات. ففي تخصص هندسة البيانات الضخمة يتوجب التعامل مع أنظمة معالجة البيانات الضخمة وقواعد بيانات موجودة في بيئات حوسبة سحابية واسعة النطاق والاستفادة من طبيعتها الموزعة وقابليتها للتوسع بالإضافة سهولة تثبيتها وإعدادها السريع الأمر الذي يساهم بشكل كبير في تسريع عملية التطوير والنشر. أسئلة شائعة حول هندسة البيانات نختم المقال بمجموعة من الأسئلة الشائعة حول هندسة البيانات ونوفر لك إجابات موجزة عليها. هل هندسة البيانات مجال سهل؟ لا تعد هندسة البيانات من التخصصات البرمجية السهلة، ولكنها بالتأكيد مهنة مميزة ومجزية ويمكن تعلمها ذاتيًا والتفوق بها في مجال العمل ولاسيما أنها مجال مطلوب بكثرة وهناك نقص في الكفاءات الفعلية في سوق العمل. هل يحتاج مهندس البيانات لمعرفة بالرياضيات؟ لا تتطلب هندسة البيانات معرفة متعمقة بالرياضيات، لكن من المفيد أن يعرف مهندس البيانات أساسيات الإحصاءات والاحتمالات لفهم ما سيقوم به علماء البيانات في فريق عمله، كما سيحتاج لامتلاك فهم جيد للتفكير المنطقي وحل المشكلات من منظور هندسة البرمجيات وهندسة السحابة لحل المشكلات المختلفة التي قد يواجهها في عمله. هل هناك طلب على مهندسي البيانات في سوق العمل؟ نعم، هناك طلب كبير على مهندسي البيانات، خاصة مع اهتمام شركات الأعمال مؤخرًا على علم البيانات المعتمدة على عمل مهندسي البيانات. فالطلب كبير على مهندسي البيانات الخبراء القادرين على التعامل مع البيانات بكفاءة واحترافية وإحداث تغيير إيجابي في العمل. هل يحتاج مهندس البيانات إلى معرفة بالبرمجة؟ نعم، فقد يحتاج مهندسو البيانات لكتابة العديد من الأكواد البرمجية لتنظيم وإدارة خطوط أنابيب البيانات data pipeline والتي تمثل سلسلة من الخطوات يتم خلالها تحميل وتنظيف وتحويل وتحليل البيانات من مصادر مختلفة إلى الوجهة المطلوبة، لذا يحتاج مهندس البيانات لمعرفة جيدبو بلغات البرمجة مثل بايثون وجافا و R ولغات التعامل مع قواعدالبيانات SQL وامتلاك مهارة حل المشكلات وتصحيح الأخطاء البرمجية. كم يكسب مهندسو البيانات؟ تعد هندسة البيانات مهنة مجزية وتوضح بعض الأرقام الموجودة على مواقع العمل الشهيرة أن متوسط رواتب مهندسي البيانات في الولايات المتحدة (عام 2022) مرتفع مقارنة ببقية المهن حيث يبلغ متوسط رواتب مهندسي البيانات حسب موقع Glassdoor حوالي 112,000 دولار سنويًا، ويبلغ 93.000 دولار سنويًا حسب موقع Payscale. الخلاصة بهذا نكون قد وصلنا لختام مقالنا الذي شرحنا فيه أهم المفاهيم المرتبطة بتخصص هندسة البيانات Data engineering وبينا أهميته وطرق دراسته والطلب عليه في سوق العمل، كما وضحنا أبرز مهام مهندس البيانات والأعمال التي يقوم بها جملة وتفصيلًا، ونرجو أن نكون قد أجبناك على أهم الأسئلة المرتبطة بهذا المجال الحيوي. إذا كان لديك أي سؤال حول ما ورد في المقال يمكنك تركه في قسم التعليقات أسفل المقال. ترجمة وبتصرف للمقال What is Data Engineering? Skills, Tools, and Certifications اقرأ أيضًا الدليل الشامل إلى هندسة البيانات Data Engineering علم البيانات Data science: الدليل الشامل ما هي فوائد تعلم البرمجة؟ تعرف على أعلى تخصصات البرمجة أجرًا مهندس البرمجيات من هو وما هي مهامه مدخل إلى تصميم قواعد البيانات من هو مهندس الذكاء الاصطناعي وما أبرز مهامه
-
في عالمنا الذي يتطور بسرعة هائلة ويعتمد على التقنية أكثر فأكثر، قد يرغب أي منا في ضمان مكانة مرموقة والعمل في إحدى التخصصات الحديثة، ولعل أبرز تلك التخصصات هندسة الذكاء الاصطناعي. فإذا كنت ترغب بأن تصبح مهندس ذكاء اصطناعي AI Engineer للحاق بركب الثورة الحاصلة في هذا المجال والتي أصبحت تؤثر على كافة مجالات الحياة، وتريد أن تعرف بدقة من هو مهندس الذكاء الاصطناعي، وما هي هندسة الذكاء الاصطناعي؟ وكيف تصبح مهندس ذكاء اصطناعي، وما هي وظائف الذكاء الاصطناعي وكيف يمكنك أن تحصل على فرصة عمل في هذا التخصص المميز الذي يشجع على ابتكار وتطوير تقنيات جديدة تحسن حياة البشر للأفضل، فأنت قبل كل شيء بحاجة لقراءة هذا المقال. تخصصات هندسة الذكاء الاصطناعي الذكاء الاصطناعي هو فرع من علوم الحاسوب يركز على إنشاء آلات ذكية يمكنها محاكاة الذكاء البشري وأداء المهام التي تتطلب عادةً تفكيرًا بشريًا، ويتضمن الذكاء الاصطناعي تطوير الخوارزميات والنماذج التي تمكّن الآلات من التعلم والتفكير والإدراك واتخاذ القرارات بناءً على البيانات. ويعد الذكاء الاصطناعي بالعموم مجالاً علميًا حديثًا جدًا، ويساهم المتخصصون فيه في التغيير الرقمي بشكل كبير، ويقودون التقدم في مختلف الصناعات من الرعاية الصحية إلى التعليم والاقتصاد وغيرها، ما يعكس الدور المحوري الذي يلعبه هذا التخصص في تشكيل مستقبلنا. يتضمن هذا التخصص عدة تخصصات أو مجالات فرعية، ومن أهمها نذكر: الرؤية الحاسوبية Computer Vision: هو تخصص يمكن الحواسيب من فهم وتفسير المعلومات المرئية كالصور ومقاطع الفيديو، ويستخدم تقنيات التعرف على الأنماط والأشكال والكائنات فيها. علم البيانات Data Science: هو تخصص يعنى باستخراج المعرفة المفيدة من البيانات باستخدام تقنيات وخوارزميات مختلفة تحلل كميات ضخمة من البيانات وتكتشف الأنماط والاتجاهات التي تساعد على اتخاذ القرارات. تعلم الآلة Machine Learning: هو تخصص ذكاء اصطناعي يركز على تطوير خوارزميات ونماذج تمكّن الحواسيب من التعلم من البيانات واتخاذ قرارات بنفسها دون برمجتها بشكل صريح. التعلم العميق Deep Learning: هو فرع من تعلم الآلة يتضمن تدريب شبكات عصبية اصطناعية مكونة من عدة طبقات لأداء مهام متنوعة مثل التعرف على الكلام وتصنيف الصور. معالجة اللغات الطبيعية Natural Language Processing أو اختصارًا NLP هو تخصص ذكاء اصطناعي يركز على تمكين الحواسيب من فهم وتحليل وتوليد اللغة البشرية، لإنجاز مهام مثل استخراج المعلومات من النصوص وتصنيف النصوص وترجمة اللغات. علم الروبوتيك Robotics: هو تخصص ذكاء اصطناعي يهتم بتصميم وبناء وبرمجة وتشغيل الروبوتات المستخدمة في العديد من المجالات مثل التصنيع والرعاية الصحية والألعاب وغيرها. من هو مهندس الذكاء الاصطناعي AI Engineer مهندس الذكاء الاصطناعي AI Engineer هو مهندس محترف مسؤول عن تصميم وتطوير وتنفيذ الحلول والتطبيقات الذكية، أي التطبيقات التي تعزز الحواسيب أو غيرها من الآلات المختلفة وتمكنها من أداء المهام بذكاء قريب من الذكاء البشري، مثل تطبيقات التعرف على الكلام، وتطبيقات التنبؤ واتخاذ القرارات، وروبوتات الدردشة الذكية وغيرها.. ويتميز مهندس الذكاء الاصطناعي بامتلاك خبرة برمجية قوية تمكنه من برمجة وأنظمة الذكاء الاصطناعي وتنفيذها على العديد من الأجهزة واختبارها وضمان تشغيلها بكفاءة، كما يمكنه العمل في عدة تخصصات ذكاء اصطناعي متنوعة كما شرحنا في الفقرة السابقة. أهمية دراسة الذكاء الاصطناعي قبل بضع سنوات كان الذكاء الاصطناعي ضربًا من الخيال العلمي، وكان استخدامه يقتصر على مجالات محددة، أما اليوم فقد أصبح الذكاء الاصطناعي تخصصًا مفيدًا وحيويًا في العديد من مجالات العمل والحياة، فجميع المجالات اليوم تحتاج إلى مهارات مهندس الذكاء الاصطناعي وهذا المجال في تقدم مستمر، ويُتوقع أن يزداد الطلب على مهندسي الذكاء الاصطناعي في السنوات القادمة، فمع التطورات السريعة في مجال الذكاء الاصطناعي، يُتوقع أن يكون مستقبل هذه الوظيفة واعدًا ومبشرًا، وأن تكون النماذج اللغوية الكبيرة والذكاء الاصطناعي التوليدي من المفاهيم والمهارات الأساسية التي ستهيمن على سوق العمل في السنوات القادمة. لذا فإن دراسة هندسة الذكاء الاصطناعي هي دراسة جيدة وواعدة، لكونها تجعل الحواسيب وغيرها من الأجهزة والآلات المختلفة ذكيةً وقادرةً على التصرف من تلقاء نفسها دون انتظار الأوامر منا، كما تعمل الشركات التقنية الكبيرة اليوم مثل جوجل أو فيسبوك على إنشاء أجهزة حاسوب قادرة على التفكير واتخاذ القرار بصورة ذاتية. راتب مهندس الذكاء الاصطناعي يختلف راتب مهندس الذكاء الاصطناعي بالطبع بناءً على عدة عوامل من بينها عدد سنوات الخبرة، إضافةً إلى تخصص مهندس الذكاء الاصطناعي الدقيق، فتخصص دقيق مثل التعلم العميق Deep Learning قد يوفر رواتب أعلى من غيره، كما يؤثر المكان الجغرافي أو الموقع الخاص بجهة العمل أو الشركة التي تود أن تعمل بها في الراتب الذي ستحصل عليه. على سبيل المثال بلغ متوسط راتب مهندس الذكاء الاصطناعي في الولايات المتحدة عام 2024 بين 113,000 و 210,000 دولار أمريكي بحسب Glassdoor فكما تلاحظ يُعد تخصص مهندس الذكاء الاصطناعي من التخصصات المجزية من الناحية المالية. ومع زيادة الطلب على المهارات في مجال الذكاء الاصطناعي، قد تزداد فرص الحصول على مزيد من العوائد المالية والمهنية في هذا المجال. مهام مهندس الذكاء الاصطناعي يعمل مهندسو الذكاء الاصطناعي على مجموعة واسعة من المهام، وقد تختلف هذه المهام من وظيفة لأخرى ومن أبرز هذه المهام نذكر ما يلي: استخدام تقنيات الذكاء الاصطناعي لتطوير التطبيقات الذكية في مختلف المجالات. التعامل مع الشبكات العصبية الاصطناعية من أجل تطوير نماذج ذكاء اصطناعي. تصميم وتنفيذ الخوارزميات التي تسمح للآلات بالتعلم من البيانات. تحليل كميات ضخمة من البيانات لتحديد الأنماط والرؤى. نشر نماذج الذكاء الاصطناعي المدرَّبة ودمجها مع التطبيقات المختلفة. استخدام تقنيات معالجة اللغة الطبيعية NLP في تطوير تطبيقات التعرف على الكلام التي تحلل اللغة وتعالجها وتستجيب للأوامر المقدمة باللغة الطبيعية. استخدام تقنيات الرؤية الحاسوبية التي تسمح للآلات بفهم وتفسير البيانات المرئية. برمجة الروبوتات الذكية وتمكينها من أداء المهام المعقدة. اختبار التطبيقات الذكية والتحقق من صحتها وضمان عملها بالشكل الصحيح. كيف تصبح مهندس ذكاء اصطناعي يمكنك أن تصبح مهندس ذكاء اصطناعي من خلال طريقتين: إما من خلال التعليم الرسمي أو الدراسة الأكاديمية والتسجيل في إحدى الجامعات المتخصصة في علوم الحاسوب أو علوم البيانات أو هندسة البرمجيات والتخصص لاحقًا في مجال الذكاء الاصطناعي للحصول على إحدى شهادات مهندس الذكاء الاصطناعي، وهو طريق طويل ويستهلك الكثير من الوقت، وقد تدرس فيه الكثير من المواد العامة والنظرية التي لا تهمك في سياق عملك كما أن التعليم الجامعي العربي لهذا التخصص لا زال ضعيف ولا يواكب أحدث التطورات في المجال. والطريقة الثانية لتعلم الذكاء الاصطناعي هي الدراسة الذاتية التي تركز على تعلم تقنيات الذكاء الاصطناعي وتعلم الآلة واكتساب كافة المهارات التي تحتاجها في تطوير تطبيقات ذكاء اصطناعي عملية تفيد في سوق العمل. لذا بالإمكان الدخول في هذا المجال واحترافه عن طريق الدورات الاحترافية والتعلم الذاتي لكسب الوقت. إذا كنت مهتمًا بتعلم هندسة الذكاء الاصطناعي ذاتيا فقد وفرت لك أكاديمية حسوب دورة الذكاء الاصطناعي التي تشرح لك ما تحتاجه لاكتساب خبرة عملية في تطوير مشاريع الذكاء الاصطناعي باستخدام لغة البرمجة بايثون Python التي تتميز بكونها سهلة التعلم وتوفر العديد من مكتبات الذكاء الاصطناعي وتعلم الآلة، حيث ستتعلم أهم أطر العمل والمكتبات التي توفرها بايثون في هذا المجال لبناء تطبيقات ذكية تفيدك في بناء معرض أعمال احترافي والحصول على فرصة عمل مناسبة، كما يمكنك الحصول على شهادة معتمدة من أكاديمية حسوب عند إتمامك للدورة لتفيدك في إثبات خبرتك وتضمن لك الحصول على وظيفة مرموقة في هندسة الذكاء الاصطناعي. دورة الذكاء الاصطناعي احترف برمجة الذكاء الاصطناعي AI وتحليل البيانات وتعلم كافة المعلومات التي تحتاجها لبناء نماذج ذكاء اصطناعي متخصصة. اشترك الآن أهم المهارات التي يحتاجها مهندس الذكاء الاصطناعي لعلك تتساءل ما هي المهارات التي عليك امتلاكها كي تصبح مهندس ذكاء اصطناعي؟ في الواقع يجب على مهندس الذكاء الاصطناعي أن يمتلك العديد من المهارات الفنية والشخصية، ويتمتع بمعرفة واسعة في طرق الذكاء الاصطناعي وعلم البيانات وهندسة البرمجيات، ومن أهم هذه المهارات نذكر: فهم لأساسيات علوم الحاسوب. معرفة جيدة بأسس الرياضيات والإحصاء الرياضي والجبر الخطي وحساب التفاضل والتكامل. خبرة متقدمة في التقنيات ولغات برمجة الذكاء الاصطناعي مثل بايثون وجافا و R و++C معرفة بأطر عمل الذكاء الاصطناعي للغة البرمجة التي يستخدمها مثل باي تورش PyTorch أو تنسرفلو TensorFlow للغة بايثون. فهم عميق بطرق نمذجة البيانات وهندستها. معرفة بقواعد البيانات العلاقية SQL وغير العلاقية NoSQL للاستعلام عن البيانات وإدارتها. معرفة بتقنيات الاستعلام عن البيانات الضخمة ومعالجتها مثل SparkSQL وApache Flink معرفة جيدة بالخوارزميات ولا سيما خوارزميات الذكاء الاصطناعي وخوارزميات تعلم الآلة وخوارزميات التعلم العميق. معرفة جيدة بنماذج تعلم الآلة وتقنيات التعلم المختلفة مثل التعلم بإشراف ودون إشراف. معرفة بخدمات الذكاء الاصطناعي المستندة إلى السحابة مثل Azure وGoogle Cloud Platform. مهارات شخصية مثل مهارات في التواصل والتفكير النقدي والتحليلي إلى جانب الدقة والانتباه للتفاصيل. القدرة على التطور والتعلم المستمر فمجال الذكاء الاصطناعي متجدد ويتطور باستمرار وتظهر فيه أدوات وتقنيات جديدة يوميًا. ما الفرق بين هندسة الذكاء الاصطناعي وعلوم البيانات؟ إن هندسة الذكاء الاصطناعي وعلم البيانات تخصصان متكاملان مع بعضهما البعض حيث يركز دور مهندس الذكاء الاصطناعي على تطوير منتجات ذكية تعمل بصورة ذاتية بينما يستخدم عالم البيانات الذكاء الاصطناعي كأداة لمساعدة المؤسسات على حل مشكلات العمل وتطوير تطبيقات تعتمد على البيانات في تعزيز اتخاذ القرارات التجارية الرابحة كما يطور نماذج تعلم آلة على بيئات تطوير البرمجيات ليدمجها مهندس الذكاء الاصطناعي هذه النماذج مع المنتج النهائي وقد يتولى مسؤولية بناء واجهات برمجية آمنة لنشر النماذج. فكل من مهندس الذكاء الاصطناعي وعالم البيانات يتعاونون مع بعضهما البعض لبناء حلول ذكاء اصطناعي تفيد في حل مشكلات العمل وتحسين الحياة اليومية والطلب على كل من تخصص علم البيانات وهندسة الذكاء الاصطناعي في ازدياد عالميًا. ما الفرق بين هندسة الذكاء الاصطناعي وتعلم الآلة؟ تعلم الآلة Machine Learning واختصاره ML هو تخصص فرعي من الذكاء الاصطناعي وكثيرًا ما يتم الخلط بين مهندس الذكاء الاصطناعي ومهندس تعلم الآلة، وفيما يلي أبرز الفروقات بينهما: إن عمل مهندس الذكاء الاصطناعي أكثر شموليةً، فهو يركز على جعل الآلات تقوم بأتمتة المهام المتكررة وأداء الأعمال بنفسها دون تدخل بشري، في حين يركز مهندس تعلم الآلة بشكل أكبر على تنفيذ التطبيقات المعتمدة على البيانات، فهو يعتمد على استخدام خوارزميات تعلم الآلة التي تسمح للحواسيب باتخاذ القرارات بناءً على مجموعات البيانات. كذلك يحتاج مهندس الذكاء الاصطناعي إلى فهم كافة تقنيات الذكاء الاصطناعي، في حين يركز مهندس تعلم الآلة على وجه الخصوص على لغات برمجة الذكاء الاصطناعي مثل لغة البرمجة بايثون التي توفر العديد من المكتبات وأطر العمل والتي تسهل مهام تحليل البيانات، وتعلم الآلة مثل باي تورش PyTorch أو تنسر فلو TensorFlow أو Scikit-learn أو Keras وغيرها، وعلى تقنيات معالجة وتحليل وتصوير البيانات. كما ينشئ مهندس تعلم الآلة نماذج يمكنها تحليل كميات هائلة من البيانات والتنبؤ من خلالها واتخاذ القرار بناءً عليها، ويهتم بالمعالجة المسبقة للبيانات وتقييم النماذج. بينما يعمل مهندس الذكاء الاصطناعي على تطوير الأنظمة والتطبيقات التي تستفيد من تقنيات الذكاء الاصطناعي بشكل عام، وقد تكون تطبيقات تعلم الآلة جزءًا منها. ما الفرق بين مهندس الذكاء الاصطناعي ومهندس البرمجيات من المجالات المتكاملة والمرتبطة ببعضها ارتباطًا وثيقًا أيضًا هندسة البرمجيات وهندسة الذكاء الاصطناعي، وللتمييز بينهما يمكن القول بأن هندسة البرمجيات هي مجال برمجي يركز على إكساب الشخص مهارات تصميم وتطوير واختبار وصيانة البرمجيات بمختلف أنواعها، وتطبيق المبادئ والممارسات الهندسية بهدف إنشاء برمجيات أو تطبيقات متنوعة موثوقة وعالية الجودة وتلبي متطلبات المستخدمين وتحل مشكلاتهم بالشكل المطلوب، سواء تطبيقات ويب أو تطبيقات الهاتف المحمول أو تطبيقات سطح مكتب أو تطبيقات أنظمة مدمجة …إلخ. أما مهندس الذكاء الاصطناعي فهو يهتم بشكل خاص بإنشاء أنظمة ذكية يمكنها أداء مهام شبيهة بالمهام البشرية، ويقوم كذلك بتصميم وتطوير وتنفيذ خوارزميات ونماذج الذكاء الاصطناعي، وتدريب النماذج وتحسين أنظمة الذكاء الاصطناعي. ويركز مهندسو البرمجيات على لغات البرمجة، وأطر تطوير البرمجيات، ومبادئ هندسة البرمجيات. ويتكامل هذان التخصصان مع بعضهما بالتأكيد فالالتزام بمبادئ هندسة البرمجيات مطلوب خلال تطوير تطبيقات الذكاء الاصطناعي لجعلها أكثر كفاءةً وموثوقية. خطوات تعلم الذكاء الاصطناعي إليك أهم الخطوات التي عليك اتباعها لتصبح مهندس ذكاء اصطناعي: تعرف على أبرز تخصصات الذكاء الاصطناعي مثل التعلم الآلي، والتعلم العميق، ورؤية الحاسوب ومعالجة اللغات الطبيعية، وعلم الروبوتيك وأهم التقنيات المرتبطة. طور مهاراتك في التفكير المنطقي وحل المشكلات. تعلم أسس البرمجة وركز على لغات برمجة الذكاء الاصطناعي مثل بايثون و R وجافا. تعلم استخدام مكتبات وأطر عمل الذكاء الاصطناعي طبّق معرفتك في خبرات عملية وطور مشاريع ذكاء اصطناعي لتعزز ما تتعلمه. طور عدة مشاريع ذكاء اصطناعي أكثر تقدمًا لحل مشكلات فعلية وساهم في مشاريع مفتوحة المصدر لبناء معرض أعمال يعكس مهاراتك وخبرتك. ابحث عن فرصة عمل للتدريب في مجال الذكاء الاصطناعي واكتساب الخبرة العملية وتطوير مهاراتك بشكل أكبر. اعتمد مصادر تعلم حديثة وموثوقة تساعدك على تعلم مفاهيم وتقنيات الذكاء الاصطناعي. وتنشر أكاديمية حسوب الكثير من الكتب والمقالات المفيدة حول هذا التخصص في قسم الذكاء الاصطناعي التي يمكنك قراءتها والاستفادة منها. الخلاصة تعرفنا في مقال اليوم على مهندس الذكاء الاصطناعي AI Engineer، وأبرز المهارات والتقنيات وأطر العمل التي يحتاج مهندس الذكاء الاصطناعي إلى تعلمها، وطرق دراسة الذكاء الاصطناعي، والفرق بينه وبين هندسة تعلم الآلة، كما وضحنا إمكانية تعلمه ذاتيًا والتفوق فيه في حال بذل الجهد والالتزام وتعلم كافة المهارات التقنية والشخصية المطلوبة للعمل في هذا التخصص الرائد والمرتفع الأجر. اقرأ أيضًا اسأل مهندس الذكاء الاصطناعي: أسئلة شائعة حول الذكاء الاصطناعي مكتبات وأطر عمل الذكاء الاصطناعي: القوة الكامنة خلف الأنظمة الذكية لغات برمجة الذكاء الاصطناعي إيجابيات وسلبيات الذكاء الاصطناعي
-
لا يوجد شخص مهتم بالذكاء الاصطناعي لا يعرف بأن لغة البرمجة بايثون هي واحدة من أهم لغات برمجة الذكاء الاصطناعي وتعلم الآلة فهي توفر الكثير من المكتبات وأطر العمل التي تعزز هذا المجال. وسنعرفك في مقال اليوم أحد أشهر أطر عمل الذكاء الاصطناعي والتعلم العميق Deep Learning في لغة بايثون وهو على إطار عمل باي تورش PyTorch الذي اكتسب شهرة واسعة خلال السنوات الأخيرة، وأصبح اليوم واحدًا من الأدوات الأكثر استخدامًا في العالم في مجال تعلم الآلة، ونوضح لك أبرز مميزاته واستخداماته وطريقة التعامل معه. ما هو باي تورش PyTorch باي تورش PyTorch هو إطار عمل مفتوح المصدر للتعلم العميق، والتعلم العميق هو أحد فروع الذكاء الاصطناعي (AI) يستخدم الشبكات العصبية artificial neural network للتعلم من البيانات وتنفيذ مهام مثل الرؤية الحاسوبية ومعالجة اللغة الطبيعية والتعرف على الكلام. طُوّرَ إطار PyTorch من قبل فريق بحث الذكاء الاصطناعي في شركة ميتا (فيسبوك سابقًا) عام 2016 استنادًا إلى مكتبة تورش السابقة Torch المستندة بدورها إلى لغة البرمجة Lua، وهو مكتوب بلغة البرمجة الشهيرة بايثون Python ويعد اليوم إطار عمل ذائع الصيت ويملك مجتمعًا كبيرًا من المساهمين والمطورين وهو يستخدم في العديد من الشركات الكبرى مثل Tesla و Uber وغيرها. وما نعنيه هنا بإطار التعلم العميق منصة برمجية توفر لك طبقة تجريدية تمكنك من بناء وتدريب الشبكات العصبية العميقة ونشرها بسهولة كبيرة، فالهدف من إطار العمل باي تورش PyTorch هو تمكين المستخدمين من تنفيذ مهام التعلم العميق بطريقة بسيطة وفعالة. فإنشاء نماذج من الصفر في تطبيقات الذكاء الاصطناعي المختلفة مثل التعرف على الصور أو معالجة اللغة الطبيعية، أمر صعب ومعقد لذا يجب الاعتماد على النماذج المدربة مسبقًا في البحث والتطوير وهذا ما يوفره لك إطار باي تورش PyTorch للمختصين في الذكاء الاصطناعي. فمن خلال استخدام أطر العمل مثل باي تورش PyTorch لن يكون هناك حاجة لكتابة الكثير من الشيفرات البرمجية ويمكن استخدام نماذج معقدة بعدد قليل من السطور البرمجية فقط وهذا ما يجعله يعتبر خيارًا ممتازًا للباحثين والمطورين الذين يبحثون عن أداة تعلم عميق مرنة وسهلة الاستخدام ويمكن تخصيصها لتلبية احتياجاتهم الخاصة. ملاحظة: تمثل الشبكة العصبية الاصطناعية نوعًا من الخوارزميات المستخدمة لنمذجة البيانات ذات الأنماط المعقدة. وتحاكي الشبكة العصبية عمل الدماغ البشري من خلال الاعتماد على طبقات متعددة متصلة ببعضها البعض بواسطة عقد Nodes تعالج البيانات قوم بالمعالجة وتتصرف مثل الخلايا العصبية البشرية. إذ تُنشئ هذه الطبقات المتصلة بالعقد شبكة معقدة قادرة على معالجة وفهم كميات ضخمة من البيانات. استخدامات PyTorch يتميز باي تورش PyTorch بمرونته الكبيرة ويستخدم في تطبيقات ومجالات عديدة على سبيل المثال من أهم استخدامات PyTorch ما يلي: في مجال الرؤية الحاسوبية حيث يتم استخدامه لتصنيف الصور والكشف عن الكائنات وتقسيم الصور. في مجال معالجة اللغة الطبيعية (NLP). ويوفر منصة قوية لبناء وتدريب الشبكات العصبية لمهام مثل تصنيف النصوص وتحليل المشاعر والترجمة الآلية. في مجال التعلم المعزز، حيث تم استخدامه لتطوير وكلاء يمكنها لعب ألعاب مثل Atari و Go. وفي تحليل وتوقع السلاسل الزمنية، وكذلك للتعرف على الأصوات وتوليد النصوص. في تطوير النماذج التي يمكنها معالجة سلاسل الدخل الديناميكية ذات الطول المتغير بفضل أسلوب الرسم البياني الحسابي الديناميكي التي يعتمدها. ميزات PyTorch يتمتع إطار باي تورش بالعديد من الفوائد والمميزات التي تجعله الخيار المفضل لدى مهندسي الذكاء الاصطناعي ومن أبرز مميزات باي تورش نذكر: سهل الاستخدام يعتمد على لغة البرمجة الشهيرة بايثون يوفر نماذج منوعة يصلح لتطبيقات متنوعة يملك دعم مجتمعي واسع يوفر ميزة التطوير التفاعلي يوفر ميزة رسم الحسابات الديناميكي يناسب مختلف أنواع العتاد لنوضح المزيد حول كل ميزة من هذه الميزات. سهل الاستخدام حيث يوفر PyTorch واجهة برمجة تطبيقات عالية المستوى تغنيك عن الخوض في العديد من التفاصيل منخفضة المستوى المتعلقة بالتعلم العميق وتسهل عليك التركيز على تصميم النماذج الخاصة بك. يعتمد على لغة البرمجة الشهيرة بايثون وهي واحدة من أشهر لغات البرمجة وأسهلها وتناسب مجال الذكاء الاصطناعي وتعلم الآلة بشكل مثالي، وبما أن باي تورش يعتمد على بايثون فهذا يعني أن مطوري البايثون سيـلفون العمل مع باي تورش بسرعة أكثر من العمل مع أطر برمجة الآلة العميقة الأخرى. كما أنه يتكامل بسلاسة مع مكتبات البايثون الشهيرة مثل NumPy وSciPy وPandas مما يجعل التعامل مع البيانات وتحليلها أمرًا سهلًا. يوفر نماذج متنوعة يوفر إطار باي تورش PyTorch مجموعة متنوعة من النماذج ومعماريات الشبكات العصبية المدربة مسبقًا التي يمكن ضبطها بشكل دقيق واستخدامها لمهام مختلفة في تعلم الآلة، وما نقصده بنموذج PyTorch هنا صنف برمجي بلغة بايثون Python class يمكن إعداده واستدعاؤه بسهولة من أجل إجراء الحسابات والتوقعات كما يمكنك ضبطه على مجموعة معينة من البيانات حسب احتياجاتك. يصلح لتطبيقات متنوعة يصلح PyTorch للاستخدام في طيف واسع من التطبيقات مثل تطبيقات معالجة اللغة الطبيعية، والرؤية الحاسوبية، والتعلم المعزز، والنمذجة التكرارية وغيرها من تطبيقات التعلم العميق. يملك دعم مجتمعي واسع على الرغم من أن بايتورش هو إطار عمل حديث نسبيًا، إلا أنه تمكن من تشكيل مجتمع كبير وضخم من الخبراء والمطورين نظرًا لأن لغة بايثون التي يعتمد عليها تملك أكبر المجتمعات البرمجية على مستوى العالم، وبهذا يستفيد مستخدمو باي تورش من المعرفة المشتركة كما أن توثيق باي تورش منظم جيدًا للغاية ويناسب المبتدئين. يوفر ميزة التطوير التفاعلي يمكنك استخدام محررات أو دفاتر ملاحظات تفاعلية مثل محرر جوبيتر Jupiter التفاعلي بتناغم مع باي تورش. وهذا يسمح لك بالتفاعل مع البيانات وتمثيلها وتصحيح أخطائها خطوة بخطوة ويجعل عملية التطوير أكثر فهمًا. يوفر ميزة رسم الحسابات الديناميكي يتضمن PyTorch ميزات مدمجة لتصور هياكل النماذج، ويستخدم الرسوم البيانية الحسابية الديناميكية dynamic computation graphs ويعني هذا أن رسم الحسابات يتم إنشاؤه أثناء تشغيل البرنامج بشكل فوري وليس ثابت ومحدد مسبقًا static computational graphs كما هو الحال في إطارات التعلم العميق الأخرى مثل TensorFlow. لوصف هذه الميزة بأسلوب أبسط، تخيل وجود قماش يمكنك فيه رسم، تعديل، ومحو أجزاء من رسمك في أي ترتيب يقدم لك إطار باي تورش هذه المرونة في التعامل عند بناء وتعديل نماذج الشبكات العصبية.وهذا يسهل تصحيح الأخطاء وتكرار النماذج وبمجرد تغيير هيكل النموذج سيُحدَّث الرسم البياني الخاص به تلقائيًا. يوفر وحدة مجموعات بيانات مدمجة جاهزة للاستخدام يوفر لك إطار باي تورش PyTorch العديد من مجموعات البيانات التي تناسب العديد من تطبيقات الذكاء الاصطناعي والتعلم العميق، مثل الرؤية الحاسوبية، والتعرف على الكلام، ومعالجة اللغة الطبيعية وبالتالي ستتمكن من بناء شبكة عصبية خاصة بك ولن تضطر لجمع ومعالجة البيانات بنفسك. يسهل تصحيح الأخطاء يمكنك استخدام العديد من أدوات تصحيح الأخطاء Debugging للغة بايثون Python مع إطار باي تورش، على سبيل المثال ، يمكن استخدام الوحدة pdb و ipdb لتصحيح الأكواد البرمجية التي تكتبها في إطار PyTorch. كما يعمل مصحح الأخطاء المدمج مع محرر بايثون باي تشارم PyCharm أيضًا بسلاسة مع كود PyTorch. يناسب مختلف أنواع العتاد يوفر الإطار إدارة فعالة للذاكرة، مما يتيح للمستخدم تدريب شبكات عصبية كبيرة باستخدام موارد الأجهزة المحدودة التي تستخدم وحدة المعالجة CPU كما يدعم تدريب GPU عالي الجود للأجهزة المتطورة التي تتضمن وحدة معالجة الرسومات GPU وهي معالج قوي مكون من مئات النوى التي يمكن أن تتعامل مع البرمجة المتزامنة التي تستخدم آلاف الخيوط Threads في نفس الوقت مما يقلل من وقت التدريب بشكل كبير ويناسب تدريب الشبكات العصبية الكبيرة والمعقدة. عيوب PyTorch على الرغم من أن المميزات والجوانب الإيجابية التي يتمتع بها إطار باي تورش PyTorch إلا أنه يشتمل كذلك من بعض الجوانب السلبية مثل: يفتقر باي تورش PyTorch لبعض الوظائف المدمجة مثل أدوات توسيع البيانات أو تكوين النموذج. وبالتالي يتطلب إنجاز هذه الوظائف بعض الجهد والوقت وقد يكون تنفيذها صعبًا على شخص لا يملك خبرة كافية بهيكلية الإطار والوظائف الخاصة به. إطار بايتورش PyTorch أقل توفقًا -مقارنة بالإطارات الأخرى- مع استخدام النماذج في بيئات الإنتاج بسبب عدم توافر بعض أدوات النشر والتكامل التي تتوفر عادة في إطارات أخرى مثل TensorRT أو ONNX Runtime التابعة لتنسرفلو TensorFlow. على الرغم من توفر خيارات لتحسين الأداء في إطار بايتورش إلا أنه قد يتطلب مزيدًا من الجهد مقارنة بالإطارات الأخرى لتحسين أداء التطبيقات ويعد أداؤه بطيئًا نسبيًا كما أن ميزة الرسم البياني الحسابي الديناميكي تقلل أداءه قليلًا. وعلى الرغم من هذه العيوب إلا أنه يظل واحدًا من الإطارات الأكثر شهرة وقوة في مجال الذكاء الاصطناعي، ويستخدم في العديد من المراكز البحثية والشركات التقنية. مقارنة بين باي تورش PyTorch وتنسرفلو TensorFlow هناك العديد من أطر التعلم العميق المتاحة للاستخدام وتعتبر كل من TensorFlowو PyTorch إطارين قويين لتعلم الآلة في لغة بايثون Python، فبايتورش PyTorch مطور قبل شركة فيسبوك كما ذكرنا سابقًا أما TensorFlow فقد طورته شركة جوجل وهما يقدمان وظائف أساسية مشابهة، إلا أنها يختلفان في بعض النواحي ومن بين أبرز الفروقات بينهما نذكر ما يلي: التنفيذ المتزامن: يستخدم باي تورش PyTorch التنفيذ المتزامن لأكواد لغة البرمجة بايثون من أجل تنفيذ عدة عمليات في نفس الوقت، في حين تحتاج لتهيئة كل عملية بشكل يدوي لتحقيق المعالجة المتزامنة للبيانات في تنسرفلو. تمثيل النماذج: يستخدم باي تورش PyTorch كما ذكرنا من قبل الرسوم البيانية الديناميكية، بينما يستخدم تنسرفلو أسلوب الرسوم الثابتة static computational graphs وهذا يجعله أسرع أداء لكن أقل مرونة. نشر النماذج: ، لا يوفر باي توش PyTorch خدمة لنشر النماذج على الويب، بينما يوفر تنسرفلو TensorFlow هذه الخدمة ويدعم نشر النماذج بسهولة باستخدام إطار عمل يسمى TensorFlow Serving وهو إطار يستخدم واجهات REST API لاستخدام نموذج التنبؤ بمجرد نشره مما يسهل استخدامه أكثر من بايتورش. وإضافة إلى باي تورش PyTorch وتنسرفلو TensorFlow ستجد الكثير من مكتبات وأطر عمل الذكاء الاصطناعي المفيدة الأخرى مثل Keras وMXNet وCaffe وكل إطار له مزاياه وعيوبه ولك الحرية في اختيار الإطار الذي يناسب احتياجاتك وتفضيلاتك، وتعلم خطوات استخدامه بفعالية وكفاءة. خطوات تعلم باي تورش PyTorch إليك أهم الخطوات التي عليك اتباعها كي تتمكن من استخدام إطار عمل بايتورش بكفاءة: قبل أن تتمكن من التعامل مع إطار باي تورش عليك أن تتعلم المفاهيم الرياضية الأساسية مثل الجبر الخطي وحساب التفاضل والتكامل والإحصاء والاحتمالات وتعلم أساسيات الخوارزميات وهياكل البيانات بعدها ابدأ بتعلم لغة البرمجة بايثون Python التي يعتمد عليها إطار باي تورش وتدرب على كتابة التعليمات البرمجية وتصحيح أخطائها الخطوة التي تليها هي تعلم أساسيات الذكاء الاصطناعي وتعلم الآلة والتعلم العميق وافهم تقنيات وخوارزميات التعلم العميق، ومفاهيم كثل التصنيف والانحدار، وتقييم النماذج وتحسينها فهذه المبادئ النظرية أساسية للتطبيق العمل على إطار العمل لاحقًا. تعلم طريقة تثبيت إطار باي تورش وإعداده محليًا وتعرف على واجهته ومكوناته وتآلف مع أسلوب التعامل معه كما يمكنك التعامل معه مباشرة على السحابة. تعرف على طريقة تحضير البيانات في باي تورش والمعالجة المسبقة لها واكتشف طريقة بناء الشبكات العصبية وتدريبها، بدءًا من تحديد النموذج وتدريب في مجالات مختلفة مثل في الرؤية الحاسوبية ومعالجة اللغة الطبيعية. تعلم آلية تقييم النماذج وعمل التنبؤات منها وكيفية تحسين دقة النموذج وسرعته وموثوقيته جرب تنفيذ نماذج التعلم العميق في تطبيقات فعلية في العالم الحقيقي مثل تطبيقات الويب لتعزز فهم المبادئ النظرية مثل تطبيقات التعرف على الصور وإنشاء النصوص وتحليل المشاعر واكتشاف الوجه لتبني معرض أعمال خاص بك. احرص على التعلم المستمر وتطوير مهاراتك كمتخصص في التعلم العميق فهذا المجال متجدد وسريع التطور وعليك دومًا مواكبة أحدث التطورات والاتجاهات. وفي الختام تذكر أن الذكاء الاصطناعي اليوم لم يعد مجالًا مقتصرًا على الباحثين والرياضيين والشركات التقنية المتطورة بل باي بإمكان أي شخص ملم بأساسيات الرياضيات والخوارزميات وبلغة البرمجة بلغة بايثون Python تحقيق نتائج مميزة في الذكاء الاصطناعي والتعلم العميق بسهولة كبيرة. فإذا كانت مهتمًا بتعلم هذا المجال الحديث والثوري وتبحث عن مصادر احترافية باللغة العربية فستجد الكثير من مصادر التعلم من خلال المقالات المنشورة في قسم الذكاء الاصطناعي في أكاديمية حسوب كما توفر الأكاديمية دورة تعلم الذكاء الاصطناعي وهي دورة مميزة وشاملة تساعدك على تعلم لغة بايثون وتطوير تطبيقات ذكية لمعالجة وتحليل البيانات وفهم كافة الخوارزميات والمفاهيم البرمجية التي تحتاجها لبناء نماذج ذكاء اصطناعي متخصصة وتطبيق مشاريع حقيقية وستكسبك هذه الدورة الشاملة الكثير من المعرفة النظرية والتطبيقات العملية التي توصلك من المستوى المبتدئ للاحتراف وتؤهلك لدخول سوق العمل بسرعة والمنافسة بقوة في هذا المجال. دورة الذكاء الاصطناعي احترف برمجة الذكاء الاصطناعي AI وتحليل البيانات وتعلم كافة المعلومات التي تحتاجها لبناء نماذج ذكاء اصطناعي متخصصة. اشترك الآن الخلاصة نرجو أن نكون قد وفقنا في هذا المقال لتعريفك على كل ما تحتاجه إطار عمل باي تورش وهو PyTorch أحد أقوى الأدوات المستخدمة لتدريب الشبكات العصبية العميقة والتعلم العميق وبينا لك أبرز مميزاته التي تجعل منه بيئة ملائمة تفيد أي شخص مهتم بالعمل في مجال الذكاء الاصطاعي، وأبرز الفروقات بينه وبين إطار عمل الذكاء الاصطناعي تنسرفلو TensorFlow، إذا كان لديك أي تساؤل حول ما ورد في المقال يمكنك تركه في قسم النقاش أسفل المقال. اقرأ أيضًا إيجابيات وسلبيات الذكاء الاصطناعي تعلم الذكاء الاصطناعي أهمية الذكاء الاصطناعي برمجة الذكاء الاصطناعي تطبيقات لغة بايثون
- 1 تعليق
-
- 1
-
من منا لا يحب ألعاب الفيديو التي غزت العالم، فقد أصبحت ألعاب الفيديو جزءًا لا يتجزأ من أساليب الترفيه في حياتنا اليومية، مثل لعبة سوبر ماريو أو فيفا أو GTA، فإذا كنت من محبي الألعاب الإلكترونية، وتود معرفة المزيد عنها، وتتساءل كيف تطورت ألعاب الفيديو، وما هي أنواعها، وتفكر كيف يمكنك برمجة لعبة فيديو خاصة بك، وهل ستحتاج لتعلم الكثير من التقنيات وبرمجة الألعاب؟ فأدعوك لقراءة هذا المقال الذي يجيبك على كل تساؤلاتك هذه. ما هي ألعاب الفيديو ألعاب الفيديو هي ألعاب إلكترونية يمكن اللعب بها على شاشةٍ ما، سواء كانت هذه الشاشة هي شاشة حاسوب، أو جوال، أو تلفاز موصول بوحدات خاصة لتشغيل الألعاب video game console، مثل بلايستيشن أو Xbox أو Wii، كما توجد أنواع من ألعاب الفيديو تسمى ألعاب الأوركيد تعمل على أجهزة مستقلة بذاتها وتوجد في الأماكن العامة ومراكز التسوق. تاريخ تطور ألعاب الفيديو لقد ارتبط تطور ألعاب الفيديو بتطور الحواسيب وانتشارها، وكانت الألعاب الإلكترونية في البداية ألعابًا بسيطة، إذ تُعد لعبة Tennis for Two التي برمجها المطور الأمريكي ويليام هيجنبوثام في عام 1958، أول لعبة فيديو طورت لأغراض التسلية، حيث كانت اللعبة تتألف من شاشة تقفز عليها نقطة خضراء مضيئة، ويمكن لشخصين اللعب بهذه النقطة التي تقفز من جانب لآخر كما توضح الصورة التالية: مصدر الصورة كما يوضح هذا الفيديو طريقة اللعب بها ويبين كانت الآلعاب الإلكترونية الأولى بدائية وبسيطة، ولكنها كانت نقطة الانطلاق لعالم صناعة الألعاب المتطورة التي نستمتع بها اليوم، ولم تكن هذه الألعاب الأولية مشهورة، لأن تواجد أجهزة الحواسيب كان مقتصرًا بشكل أساسي على الجامعات الكبيرة والمراكز البحثية. وقد بدأ تحقق الانتشار الواسع لألعاب الفيديو في السبعينيات، عندما بدأت الشركات في تثبيت ألعاب الفيديو في المراكز التجارية والأماكن العامة، ففي عام 1972 قامت شركة أتاري بإصدار بونج Pong والتي اعتبرت أول لعبة فيديو ناجحة تجاريًا على مستوى العالم وهي لعبة أروكيد ثنائية الأبعاد تحاكي كرة الطاولة يمكن لعبها من قبل لاعبين اثنين إذ يتحكم كل لاعب في مضرب يمكنه التحرك عموديًا لضرب الكرةذهابًا وإيابًا، ويحصل اللاعب على نقطة عندما يفشل خصمه في صد الكرة. مصدر الصورة وبعدها زاد انتشار ألعاب الفيديو في ثمانينيات القرن الماضي مع تطور الحواسيب وصغر حجمها وزيادة كفاءتها وأدائها، مما مَكّن مبرمجي الألعاب من تصميم رسومات ألعاب احترافية وتحقيق تجربة لعب أكثر ابتكارًا، حيث حصلت الألعاب على شخصياتها الخاصة وقصص أكثر تعقيدًا، فمعظم ألعاب الفيديو الكلاسيكية التي نعرفها اليوم مثل لعبة باك مان ولعبة سوبر ماريو نشأت في هذا الوقت. وفي فترة التسعينيات ومطلع الألفية الثالثة انتقلت ألعاب الفيديو لمرحلة أكثر احترافيةً، وظهرت الألعاب ذات الرسومات ثلاثية الأبعاد، التي يستطيع فيها اللاعبون التحرك في ثلاث اتجاهات بدلاً من اتجاهين فقط، وأصبحت عوالم ألعاب الفيديو أكثر واقعيةً، وتنافست الشركات المصنعة للأجهزة والألعاب على السوق، فقدمت سوني عام 1994 جهاز البلايستيشن الذي مثل قفزة كبيرة تقنيًا ورسوميًا مقارنةً بالأجهزة الموجودة حينها، كما ظهرت أفكار ألعاب أكثر ابتكارًا من استوديوهات الألعاب، وظهرت أنواع ألعاب جديدة مثل ألعاب إطلاق النار من منظور الشخص الأول. كما ساهم ظهور الإنترنت في تحويل ألعاب الفيديو تدريجيًا إلى اللعب عبر الإنترنت بدل لعبها على الأجهزة المحلية، وأصبحت ألعاب مثل وورلد أوف ووركرافت World of Warcraft في عام 2004 تُلعب بشكل رئيسي عبر الإنترنت، كما ساعد ظهور تقنيات الذكاء الاصطناعي AI في جعل الألعاب أكثر ديناميكيةً وواقعيةً، فالخصوم لم يعودوا يتصرفون بنفس الطريقة في كل الحالات، بل يتفاعلون بشكل مستقل مع أحداث اللعبة، كما ظهرت ألعاب العالم المفتوح، حيث يمكن للاعبين استكشاف عوالم خيالية بمفردهم وتحديد سياق اللعب بحرية، أو يمكنهم إنشاء العالم الافتراضي بأنفسهم، كما في مفهوم ألعاب صندوق الرمل Sandbox. وهكذا جاء هذا العقد بعدد لا يحصى من الألعاب التي نالت شهرة واسعة وأكثر مبيعًا، من أهمها: The Sims (2000): لعبة محاكاة واقع افتراضي، وفد حققت نجاحًا هائلاً بفضل الحرية الكبيرة في اللعب والقدرة على بناء وتخصيص المنازل والتفاعل مع العالم الافتراضي. Grand Theft Auto San Andreas (2004): لعبة أكشن وعالم مفتوح، تتميز بوجود العديد من أساليب اللعب. Super Mario Galaxy (2007): لعبة ماريو ثلاثية الأبعاد، والتي تميزت بتصميم عالم احترافي والمستويات الإبداعية وحصدت الكثير من الإعجابات بفضل أسلوب لعبها المبتكر. Minecraft oder (2010): لعبة ماينكرافت هي لعبة عالم مفتوح تتيح لك بناء عوالم خاصة بك، وقد نالت شهرةً عالميةً واسعة بفضل إمكانيات البناء اللامحدودة والإبداع الذي يتيحه اللعب بها. أهمية ألعاب الفيديو أصبحت ألعاب الفيديو اليوم صناعة تدرّ الكثير من الأرباح على صانعيها، إذ يقضي الكثير من الناس معظم الوقت وهم يلعبون على الشاشات ومن كل الفئات العمرية، لاسيما ألعاب الهواتف الجوالة ويقضون الكثير من فترات الانتظار في مواقف الحافلات أو خلال السفر أو قبل النوم في اللعب بها، وهناك ألعاب على الحاسوب أو وحدات تشغيل الألعاب تجعل اللاعب يدمنها ولا يتخلى عن اللعب بها مرات ومرات، كما انتشرت اليوم ظاهرة تصوير اللاعبين لأنفسهم أثناء اللعب والتعليق على أحداث اللعبة أو تقديم نصائح حول طريقة اللعب لنشر هذه المقاطع على يوتيوب والكسب من مشاهدتها, وهذه الشعبية الكبيرة أدت لزيادة شهرة الألعاب ورواجها الكبير لزيادة وجعلت من صناعة ألعاب الفيديو صناعة رائجة تدرّ الكثير من الأرباح على الشركات المطورة، فقد تم بيع ملايين النسخ من بعض الألعاب الإلكترونية، وتجاوزت أرباح صناعة الألعاب الإلكترونية المليارات، كما أن أرباح صناعة الألعاب الإلكترونية تفوق اليوم أرباح صناعات أخرى مثل صناعة الأفلام والسينما، وهناك العديد من استوديوهات الألعاب المستقلة التي تطور مختلف أنواع الفيديو لجميع أنواع الأنظمة كالحواسيب والجوالات والأجهزة المحمولة. ومن أنجح سلاسل الألعاب الإلكترونية التي حققت نجاحًا واسعًا في عالم ألعاب الفيديو نذكر لعبة سوبر ماريو ولعبة بوكيمون ولعبة فيفا ولعبة Grand Theft Auto أو GTA ولعبة The Sims. كيف تصبح مطور ألعاب فيديو؟ لا بد أن برمجة لعبة فيديو تعتمد على نوع اللعبة التي ترغب في برمجتها، فبرمجة لعبة فيديو ثنائية الأبعاد تختلف عن برمجة لعبة ثلاثية الأبعاد، كما أن برمجة لعبة جوال بسيطة أسهل من برمجة لعبة حاسوبية أو لعبة لمنصة تشغيل ألعاب مثل بلاي ستيشن PlayStation أو Xbox أو لعبة تحاكي الواقع الافتراضي وتتضمن الكثير من المراحل والخطوات والعديد من اللاعبين. فهناك ألعاب بسيطة يمكن برمحتها من قبل شخص واحد وخلال مدة قصيرة وهنالك ألعاب يعمل عليها فريق متكامل يضم مئات الأشخاص ويكلف تطويرها آلاف الدولارات، لكننا سنشرح هنا خطوات عامة يمكنك اتباعها لتصبح مطور ألعاب فيديو بسيطة وبخطوات سهلة: تحديد الهدف من لعبة الفيديو والمنصة التي ستوجه لها اللعبة وطريقة التفاعل معها، هل هو من خلال إدخالات لوحة المفاتيح والفأرة أو من خلال وحدة التحكم، وغيرها من التفاصيل الأخرى. تصميم لعبة الفيديو وتحديد كل ما يتعلق بها من تفاصيل، وما هي شخصيات اللعبة وكيف ستتحرك الشخصية وما ردة فعلها عندما تصدم بجدار أو تسقط في بركة ما مثلًا، وما هي قوانين اللعب وشروط الفوز، وغيرها من القوانين والحركات. رسم وتصميم شخصيات اللعبة الإلكترونية اللازمة على الشاشة، وتحديد تأثيرات الصوت التي ستصدر في كل مرحلة من الحركة أو التفاعل. برمجة لعبة الفيديو، فبعد أن تكون قد حددت جميع التفاصيل اللازمة لبرمجة لعبة الفيديو الخاصة بك ستكون الآن مرحلة برمجة اللعبة قد حانت، وتشبه برمجة اللعبة تطوير البرمجيات التقليدية، حيث يتوجب عليك في البداية إنشاء نموذج أولي للعبة واختبارها، وهنا يمكنك الاستعانة بالكثير من التقنيات مثل لغات برمجة الألعاب ومحركات الألعاب التي تسرع عملية التطوير. اختبار لعبة الفيديو، فبعد برمجة اللعبة عليك التحقق من عدم وجود مشكلات أو أخطاء في برمجتها وأن اللعبة تعمل كما هو متوقع، ويمكن مشاركتها مع الأصدقاء لتجربتها واختبار أي مشكلات فيها. ونذكر من جديد أن تطوير لعبة فيديو احترافية سيحتاج لفريق عمل مكون من عدة أشخاص من مختلف التخصصات، مثل مصممي الألعاب الذين يصممون عالم اللعبة وقصتها، والكتّاب أو رواة القصص الذين يكتبون قصة اللعبة، وموسيقيون يسجلون التأثيرات الصوتية المستخدمة، وأخيرًا مطورو الألعاب يكتبون الكود البرمجي الذي يحوّل اللعبة من فكرة لواقع فعلي. وتستغرق عملية صناعة لعبة فيديو احترافية بدءًا من التخطيط وحتى مرحلة ما بعد الإنتاج حوالي ثلاث إلى خمس سنوات في المتوسط بالنسبة لألعاب وحدات التحكم وأجهزة الحاسوب بينما يمكن تطوير لعبة جوال بسيطة بوقت أقل بكثير وهذا لا يمنع من فرصة نجاحها وانتشارها فهناك الكثير من أفكار الألعاب التي حققت شهرة واسعة حتى اليوم رغم بساطتها مثل لعبة لعبة كاندي كراش Candy Crash ولعبة باك مان Pac-Man. هل تطمح لتصبح مطور ألعاب فيديو محترف وتحويل شغفك إلى مهارة عملية. ستساعدك دورة تطوير الألعاب من أكاديمية حسوب على تحقيق هذا الهدف، حيث ستتعلم كيف تبني ألعابك الخاصة من الصفر حيث ستتقن مفاهيم البرمجة وتطوير شخصيات ألعاب تتفاعل مع بعضها بذكاء وإبداع. دورة تطوير الألعاب ابدأ رحلة صناعة الألعاب ثنائية وثلاثية الأبعاد وابتكر ألعاب ممتعة تفاعلية ومليئة بالتحديات. اشترك الآن مستقبل ألعاب الفيديو تطورت ألعاب الفيديو من مجرد نقاط بسيطة تتحرك على الشاشة إلى ألعاب برسومات عالية الدقة ومناظر ثلاثية الأبعاد رائعة وواقعية، ثم أصبح اللاعبون بفضل الواقع الافتراضي جزءًا من أحداث اللعبة وشخصياتها، ويتوقع أن يشهد مستقبل ألعاب الفيديو مزيدًا من التطور، ويستخدم فيه الذكاء الاصطناعي والواقع المعزز بصورة أكبر، وتتحسن دقة الرسومات وتستخدم وحدات تشغيل ألعاب أكثر تقدمًا، وأن تشكل الوحدات الأصغر حجمًا والأكثر تطورًا مستقبل صناعة الألعاب. كما سيشهد مستقبل ألعاب الفيديو برمجة مزيد من ألعاب الواقع المعزز AR التي تجمع بين العالم الواقعي والعناصر الرقمية المتفاعلة، مثل لعبة بوكيمون جو Pokémon Go التي تمكن اللاعبين من رؤية شخصيات اللعبة التي تنشئ بيئة لعب افتراضية كاملة، وتحتاج لارتداء نظارات VR أو أجهزة مشابهة للتفاعل مع بيئة اللعب باستخدام وحدات تحكم أو حركات الجسم مثل لعبة Beat Saber التي يقوم فيها اللاعبون بتحريك أضواء الليزر بواسطة مضارب ضوء لقطع الكتل المتحركة لتوليد تجربة لعب مثيرة، وكلا النوعين يقدمان تجارب متفردة ومثيرة، ويستخدمان تقنيات فريدة لإيصال اللاعبين إلى عوالم مختلفة وتفاعلية ويتوقع أن تلقى صناعة الألعاب المزيد من التقدم والرواج والازدهار في السنوات المقبلة ويزداد الطلب على مطوري الألعاب بشكل أكبر. الخلاصة تحدثنا في مقال اليوم موجزًا عن عالم ألعاب الفيديو، الذي أصبح جزءًا لا يتجزأ من حياتنا اليومية، من خلال استعراض تاريخها وتطورها، وصولاً إلى نظرة مستقبلية عن ألعاب الفيديو، والتي لم تعد مجرد وسيلة للترفيه والتسلية، بل أصبحت صناعة ضخمة تجذب ملايين اللاعبين وتحقق أرباحًا خيالية، وختمنا المقال بأهم الخطوات التي تساعدك كي تصبح مطور ألعاب فيديو محترف. اقرأ أيضًا مطور الألعاب: من هو وما هي مهامه كيف تصبح مبرمج ألعاب فيديو ناجح تعرف على أهمية صناعة الألعاب الإلكترونية نبذة عن صناعة الألعاب ومحرك Unity3D ما هي برمجة الألعاب؟
-
نوضح في مقال اليوم ما هي لغة Sass، وماهي استخداماتها، ولماذا تستخدم كبديل للغة CSS في تنسيق الواجهات الأمامية لمواقع الويب، فإذا كنت مهتمًا بمعرفة ماذا تعني Sass؟ وما الفرق بين لغة CSS و Sass وما هي أساسيات Sass التي عليك تعلمها، وماهي مصادر تعلمها باللغة العربية، والعديد من المعلومات المفيدة الأخرى حولها فهذا المقال سيفيدك بكل تأكيد. ما هي لغة Sass؟ لغة Sass هي اختصار لعبارة Syntactically awesome style sheets وتعني أوراق الأنماط الرائعة من الناحية النحوية وهي بمثابة توسعة أو تطوير للغة تنسيق صفحات الويب CSS وهي لغة مفتوحة المصدر تخضع لترخيص MIT -بالرغم من ذلك هنالك إصدارات معينة من لغة Sass تخضع لتراخيص ملكية، وتوفر مرونة وسهولة أكبر في التعامل معها- ولكي تفهم ماذا تعني Sass يجب أن تعرف بدايةً ما هي لغة CSS وما الهدف منها؟ ففي الأساس لغة CSS وهي اختصار لعبارة Cascading Style Sheet أي لغة تنسيق الأنماط المتعاقبة، هي اللغة الأساسية المستخدمة لتنسيق وتصميم عناصر المواقع الإلكترونية الممثلة بلغةHTML فلو كنت تصمم موقعًا إلكترونيًا خاصًا بك وأردت تغيير لون خلفية عنصر معين على إحدى صفحات هذا الموقع أو تغيير الخطوط المستخدمة في الكتابة أو تنسيق القوائم أو تعديل تموضع عنصر معين ضمن الصفحة، أو غيرها من التعديلات على مظهر موقعك فعليك كتابة كافة أكواد التنسيق المطلوبة باستخدام لغة CSS. لكن عندما تتعامل مع شيفرات CSS في تصميم صفحات الويب فستلاحظ أنها تعاني من محدودية وقيود عديدة لا سيما عند الحاجة لكتابة الكثير من التنسيقات إذ سيصبح التعامل معها مربكًا ومعقدًا وتصعب عملية صيانتها وتصحيح أخطائها لكونها لغة تنسيقية بحتة ولا تملك إمكانيات برمجية، وللتخفيف من هذه المشكلات والقيود ظهرت لغة Sass لكي تضيف العديد من المميزات الجديدة للغة CSS، مثل ميزة تداخل الكود وميزة التصريح عن الثوابت والمتغيرات وإمكانية تعريف الدوال وغيرها من المميزات المتقدمة التي سنوضحها بالأمثلة العملية في الفقرات التالية، والتي من شأنها أن تقلل حجم الكود وتنظم وتبسّط عملية كتابة التنسيقات اللازمة لتصميم مواقع الويب وصيانتها. باختصار Sass هي لغة تحسينية للغة CSS ولكن تجدر الإشارة لأنك ستحتاج لأن تترجم كل أكواد Sass إلى لغة CSS كي تتمكن من تطبيقها على عناصر صفحة الويب، أي لا يمكنك استخدم أكواد Sass مباشرة في صفحات موقعك كما هو الحال في CSS وستحتاج لاستخدام تقنيات مخصصة للقيام بعملية التحويل. طريقة تحويل لغة Sass إلى CSS قد تتساءل لماذا يتوجب عليَّ تحويل كود Sass إلى CSS وإليك السبب، يمكن لجميع متصفحات الويب الحديثة عرض أكواد CSS دون أي مشكلات، لكن هذا لا ينطبق على لغة Sass لذا تحتاج قبل ذلك لإجراء عملية تحويل أو ترجمة لكافة أكواد Sass إلى أكواد اللغة القياسية CSS ثم تطبيق هذه التنسيقات على عناصر الموقع الإلكتروني. لهذا السبب تعد لغة Sass بمثابة معالج مسبق للغة CSS أو ما يعرف بمصطلح CSS pre-processor لأنك تحتاج إلى تحويل أو ترجمة أكوادها المتقدمة للشكل المتبع في أكواد CSS التقليدية قبل عرض العناصر على صفحة الويب. حيث يتوجب عليك بداية كتابة تنسيقات أو أكواد Sass في ملف بالامتداد .sass ثم ترجمتها أو تجميعها في ملف CSS وبعدها سيتم تحميل شيفرة CSS إلى المتصفح لتنسيق عناصر HTML، ولكي تتمكن من إجراء عملية التحويل تحتاج إلى تثبيت مترجم Sass على جهازك لترجمة كود Sass إلى كود CSS القياسي. وتتوفر عدة طرق يمكنك من خلالها تثبيت مترجم Sass على أنظمة التشغيل ويندوز Windows وماك Mac ولينكس Linux، إما من خلال تطبيق واجهة رسومية مثل scout-app أو من خلال استخدام أداة سطر الأوامر مثل Dart Sass أو Node sass وتختلف طريقة التثبيت بحسب نظام التشغيل وبيئة التطوير ومدير الحزم الذي تستخدمه. على سبيل المثال إذا كنت تستخدم مدير الحزم شوكولاتي Chocolatey لنظام ويندوز فيمكنك تثبيت Dart Sass عن طريق كتابة الأمر التالي: choco install sass اختر الطريقة التي تناسبك للتثبيت، وبعد اكتمال التثبيت سيكون بإمكانك تحويل ملفات sass إلى CSS من خلال كتابة التعليمة التالية: sass file_name.sass file_name.css مثال على تحويل ملف Sass إلى CSS على سبيل المثال لنفترض أن لدينا لدينا ملف Sass يسمى style.sass يحتوي على التنسيقات التالية: // ملف styles.sass $primary-color: blue body font-family: Arial, sans-serif .container width: 100% max-width: 960px margin: 0 auto .button padding: 10px 20px background-color: $primary-color color: white border: none border-radius: 5px لمعالجة هذا الملف وتحويله إلى كود CSS قياسي، افتح نافذة سطر الأوامر وانتقل إلى المجلد الذي يحتوي على ملف style.sass ثم نفذ هذا الأمر: sass style.sass style.css يحول هذا الأمر ملف style.sass إلى ملف style.css يحتوي على الكود التالي: /* ملف styles.css */ body { font-family: Arial, sans-serif; } .container { width: 100%; max-width: 960px; margin: 0 auto; } .button { padding: 10px 20px; background-color: blue; color: white; border: none; border-radius: 5px; } بهذا تكون قد حولت ملف Sass إلى CSS بكل بساطة وبتعليمة واحدة فقط. كما توفر Sass ميزة ضغط أو تقليص حجم ملفات CSS الناتجة عن طريق إزالة المسافات الزائدة والتنسيقات غير الضرورية وهذا يساعد في تقليل زمن تحميل ملفات التنسيق وتحسين أداء موقع الويب. فلتحويل ملف Sass إلى CSS مضغوط، يمكنك إضافة خيار إضافي لتفعيل ضغط الملفات كما يلي: sass style.sass styles.css --style compressed يحدد الخيار style compressed-- في الكود أعلاه بأن كود Sass يجب أن يُنتج لنا ملف CSS مضغوطًا يحتوي على نسخة مختصرة من شيفرات CSS إذا ستكون الشيفرة الناتجة بدون أي مسافات زائدة أو تنسيقات غير ضرورية، وهذا يقلل من حجم الملف الناتج ويساعد في تسريع تحميل الموقع. الفرق بين Sass و SCSS و Less كل من Sass و SCSS و Less هي مُعالجِات مسبقة للغة CSS لكنها تختلف عن بعضها بالقليل من المميزات والتي سنشرحها لك تباعًا. أولًا: الفرق بين Sass و SCSS بدايةً يتمثل الفرق بين Sass و SCSS في اعتمادهما على طريقة مختلفة لكتابة التنسيقات فلغة Sass تعتمد في تنظيم كتل الكود على المسافات البادئة Indented Syntax، ولها امتداد ملف sass. أما صيغة SCSS فهي صيغة أحدث وأكثر انتشارًا وتعرف باسم Sassy CSS وتعتمد على الأقواس المتعرجة {} لتجميع وتنطيم كتل الكود، وتستخدم الفواصل المنقوطة لفصل القواعد وهي تشبه CSS القياسية أكثر ولها امتداد ملف scss. فكلاهما بالتالي متشابهان ويفعلان نفس الشيء، لكنهما مكتوبتان بأسلوب مختلف. فيما يلي مثال بسيط على كود مكتوب بأسلوب Sass: $primary-color: blue body font-family: Arial, sans-serif color: $primary-color .header background-color: $primary-color padding: 10px nav ul margin: 0 padding: 0 list-style: none li display: inline-block في حين يبين المثال التالي كود مكتوب بأسلوب SCSS: $primary-color: blue; body { font-family: Arial, sans-serif; color: $primary-color; } .header { background-color: $primary-color; padding: 10px; } nav { ul { margin: 0; padding: 0; list-style: none; } li { display: inline-block; } ثانيًا: الفرق بين Sass و Less أما بالنسبة للفرق بين Sass و Less فكلاهما معالجان مسبقان شائعان تستخدمان لتسهيل عملية كتابة CSS وجعلها أكثر تنظيمًا وقابليةً للصيانة، لكنهما تختلفان أيضًا ببعض الجوانب حيث أن Sass مبنية على لغة روبي Ruby، بينما Less مبنية على لغة جافاسكريبت JavaScript كما أن Sass أكثر شعبيةً وانتشارًا من Less، وقد زادت شعبيتها بعد أن اعتمد عليها بوتستراب Bootstrap وتكتب شيفرات Less بنفس أسلوب Scss. باختصار الفرق بين Sass و Scss و Less هو الصياغة النحوية لكل منها، وإن كانت في نهاية المطاف كلها معالجات مسبقة تحول إلى CSS لكن تستخدم Sass صيغة نحوية خاصة به حيث يتم حذف الأقواس والفاصلات المنقوطة، بينما تشبه SCSS صيغة CSS مما يجعلها أسهل قراءةً وفهمًا، وأخيرًا تمتلك LESS صيغة نحوية مشابهة لصياغة SCSS، لكنها مبينة باستخدام لغة جافا سكريبت ويعتمد اختيار اللغة المناسبة من بينها على تفضيلاتك ومتطلباتك الشخصية. ما هي أساسيات Sass تضيف لغة Sass مجموعة من القواعد والمفاهيم الأساسية والإمكانيات التي لا توفرها لغة CSS كما وضحنا سابقًا، وفيما يلي أوضح أهم أساسيات Sass مع أمثلة عملية بسيطة توضح كيفية استخدام ميزات Sass المختلفة في توسيع أكواد CSS. 1. المتغيرات يمكنك تخزين معلومات التنسيق في المتغيرات باستخدام Sass وإعادة استخدامها لاحقًا. على سبيل المثال، يمكنك تخزين قيمة لون كمتغير كما في الكود التالي الذي يعرف متغيرين باسم my-fore-color$ و my-back-color$ ويسند لهما قيم لونية مختلفة. $my-fore-color: #3445db; $my-back-color: #78a3d1; .container { background-color: $my-back-color; } .text { color: $my-fore-color; } عند معالجة ملف Sass أعلاه، سيأخذ القيم المذكورة في المتغيرين my-fore-color$ و my-back-color$ ويستخدمها في الأماكن التي يذكر فيهما اسم كل متغير فيها وينسق ألوان العناصر بناءً عليها، ماذا لو أردت بعدها تغيير لون الخلفية أو لون النص في موقعك؟ يكفي أن تعدل القيمة التي أسندتها للمتغير فقط بكل سهولة. 2. العمليات الحسابية يمكن استخدام الدوال الحسابية كالجمع والضرب والقسمة في Sass لتنفيذ عمليات حسابية على قيم تنسيقات العناصر وتعديلها. على سبيل المثال، يحدد الكود التالي حجم الخط المستخدم في الموقع بشكل ديناميكي بناءً على حجم الخط الأساسي: $base-font-size: 16px; .element { font-size: $base-font-size + 2px; } 3. الحلقات التكرارية توفر Sass إمكانية استخدام الحلقات التكرارية لتكرار كود التنسيقات عدد من المرات وهو أمر غير متاح في لغة CSS، للتوضيح لاحظ الكود التالي الذي يطبق مجموعة من التنسيقات على ثلاثة عناصر، بحيث يتزايد عرض كل عنصر عن السابق بمقدار 50 بكسل. @for $i from 1 through 3 { .item-#{$i} { width: 100px + $i * 50px; } } 4. التعليمات الشرطية توفر Sass أيضًا إمكانية كتابة تعليمات شرطية مثل if و else بطريقة مماثلة لطريقة عملها في مختلف لغات البرمجة، وبهذه الطريقة تمكنك من تحقيق تنسيقات شرطية وتُنفذ التنسيقات المحددة فقط عند تحقق حالات معينة، على سبيل المثال يغير الكود التالي تنسيق العناصر في الوضع الليلي أو النهاري بحسب قيمة المتغير dark-theme$. $dark-theme: true; @if $dark-theme { color: #b3b3b3; font-weight: 300; background-color: #333333; } @else { color: #333333; font-weight: 400; background-color: #f5f5f5; } 5. الدوال Functions توفر لك Sass إمكانية تعريف دوال برمجية يمكنها استقبال وسطاء أو بارامترات وإرجاع قيمة معينة، وهذا يسهل تطبيق التنسيقات على العناصر وإعادة استخدامها في أكواد التنسيق الخاصة بك. على سبيل المثال نعرف في الكود التالي دالة باسم add-numbers تستقبل وسيطين هما first-number$ و second-number$. وترجع مجموعهما: @function add-numbers($first-number, $second-number) { @return $first-number + $second-number } بعد تعريف هذه الدالة يمكننا استخدامها في كتابة قواعد التنسيق، لنفرض مثلًا أننا نريد استبدال قيمة الخاصية padding بمجموع قيمتين منفصلتين، سنستدعي الدالة ونمرر لها قيم الوسطاء بهذا الشكل: .box1 { padding: add-numbers(20px, 10px); } ولتفهم الأمر أكثر سيكون CSS الناتج عن تحويل الكود أعلاه على النحو التالي: box1 { padding: 30px; } 6. المخاليط mixins تمثل المخاليط mixins في Sass قوالب تحتوي على خليط أو تجمّع لعدة خصائص CSS متكررة بحيث يمكنك إعادة استخدامها في أماكن متعددة داخل الكود .ولتعريف مزيج في Sass نكتب كالتالي: @mixin name { properties; } ولاستداعئه نكتب كود كالتالي: element { @include name; } لنوضح الأمر بمثال عملي، لاحظ في المثال التالي كيف عرّفنا خليط وأسميناه button-styles ووظيفته هي تعريف مجموعة من خصائص التنسيق للأزرار مثل لون الزر والخط المستخدم في الكتابة عليه وحجمه وغيرها من الخصائص: @mixin button-styles($background-color, $text-color, $font-size, $padding) { background-color: $background-color; color: $text-color; font-size: $font-size; padding: $padding; border: none; border-radius: 5px; cursor: pointer; transition: background-color 0.3s ease; بعدها يمكننا بسهولة استخدام هذا الخليط من القيم في تنسيق أي زر في الموقع وليكن الزر الذي يملك الصنف button-primary. من خلال كتابة التعليمة include@ وتمرير القيم المناسبة للمتغيرات كما يلي: .button-primary { @include button-styles(#3498db, #ffffff, 16px, 10px 20px); } كما يمكن تنسيق زر آخر وليكن الزر الذي يملك الصنف button-secondary.بتمرير قيم مختلفة على هذا النحو: .button-secondary { @include button-styles(#2ecc71, #ffffff, 14px, 8px 16px); } بهذه الطريقة أعدنا استخدام مجموعة الخصائص وطبقناها على أنماط متعددة بسهولة وبحجم كود قليل جدًا مقارنة بالكود المكافئ الذي سنكتبه بلغة CSS. 7. ميزة الأكواد المتشعبة Nesting لا تسمح CSS بالعمل مع التداخلات في الكود، بينما تمكننا Sass من كتابة أكواد متشعبة وفق تسلسل هرمي، لاحظ الكود التالي المكتوب بلغة CSS: .header { background-color: #333; } .header h1 { color: white; } .header p { font-size: 16px; } يمكن كتابته بكود Sass مكافئ باستخدام ميزة التضمين داخل المحدد header. كما يلي: .header { background-color: #333; h1 { color: white; } p { font-size: 16px; } } هذا يعني أن جميع قواعد لغة CSS التي تظهر داخل header. تنطبق على العناصر داخل header. فقاعدة h1 هنا سنطبق على العناصر h1 الموجودة داخل عنصر يملك الصنف header.فقط، وقاعدة p ستنطبق على العناصر p الموجودة داخل عنصر له الصنف header. فقط، والكتابة بهذا الأسلوب كما تلاحظ تجعل الكود أكثر تنظيمًا وسهولة في القراءة. كانت هذه أهم أساسيات لغة Sass، ولمطالعة المزيد حول أساسيات Sass ننصحك بمشاهدة الفيديو التالي: مميزات Sass توفر لنا لغة Sass مجموعة من المميزات من أبرزها: توفر لغة Sass مرونة في كتابة تنسيقات عناصر الموقع. إمكانية حفظ قيم التنسيقات في متغيرات بدلاً من استخدام قيم محددة. تُمكنك من توليد شيفرة منظمة وسهلة الفهم والصيانة. تُمكنك من توليد شيفرة قابلة لإعادة الاستخدام وتجنب تكرار الكود. سهلة الصيانة والتعديل حيث يتم التعديل في مكان واحد بدلاً من عدة أماكن. سهلة التعلم لا سيما إذا كنت ملمًا بأساسيات لغة CSS. متوافقة مع جميع إصدارات CSS ويمكنك استخدام أي مكتبات CSS متاحة. عيوب Sass من بين عيوب أو سلبيات لغة Sass نذكر التالي: لا يمكن تنفيذ أكواد Sass مباشرة بل يجب ترجمة الكود المكتوب إلى CSS قبل استخدامه، مما يضيف خطوة إضافية لعملية التطوير. عند إجراء أي تغييرات في تنسيق الموقع تحتاج من جديد لترجمة التغييرات. صعوبة التصحيح فقد تؤدي الترجمة إلى ظهور أخطاء وتجعل عملية التصحيح أصعب قد يستغرق تعلم استخدام مميزات Sass والتآلف معها لبعض الوقت. تعلم Sass إذا كنت مهتمًا بتعلم لغة Sass واحتراف التعامل مع شيفراتها البرمجة فإليك مجموعة من الخطوات التي عليك اتباعها لتحقيق هذفك: تعلم طريقة تثبيت Sass حسب بيئة التطوير ونظام التشغيل الذي تستخدمه. تعلم أساسيات البرمجة والتفكير المنطقي فهي تساعدك على فهم مبادئ Sass. تعلم القواعد الصياغية ومبادئ وأساسيات Sass وتدرب على أمثلة تطبيقية بسيطة حولها. ابدأ بكتابة أكواد Sass بسيطة تتضمن مفاهيم أساسية مثل تعريف المتغيرات في Sass والتعليمات الشرطية والحلقات في Sass وغيرها من المفاهيم، وتحويلها إلى ملفات CSS وافهم آلية عملها. انتقل إلى كتابة أكواد أكثر تعقيدًا تتضمن الدوال وخليط الميزات وغيرها من المفاهيم المتقدمة. طبَّق كل ما تعلمته على مشاريع فعلية، فالفوائد الحقيقى ستظهر لك عند العمل على مشاريع أكبر وأكثر تعقيدًا. ستجد في أكاديمية حسوب الكثير من المصادر التعليمية التي تساعدك على تعلم لغات تطوير الواجهة الأمامية من دورس ومقالات وكتب متنوعة، كما توفر الأكاديمية دورة متكاملة تأخذ بيدك خطوة بخطوة لتتعلم كل التقنيات التي تحتاجها لتصبح مطور واجهات أمامية محترف مع التطبيق العملي لمشاريع متنوعة تساعدك على بناء معرض أعمال مميز وشهادة معتمدة في ختام الدورة تثبت خبرتك وتعزز فرصتك في الحصول على فرصة عمل. دورة تطوير واجهات المستخدم ابدأ عملك الحر بتطوير واجهات المواقع والمتاجر الإلكترونية فور انتهائك من الدورة اشترك الآن الخلاصة أرجو أن يكون هذا المقال قد وضح لك ماذا تعني Sass وكيفية التعامل معها واستخدامها لتحسين وتسريع عملية تنسيق صفحات المواقع بدل استخدام لغة CSS القياسية، ووضح لك أهم الفروقات بين Sass و SCSS و Less وكيفية استخدام كل منهما وما هي أهم خطوات تعلمها. إذا كان لديك سؤال حول هذه التقنية المفيدة في تصميم الواجهات الأمامية يمكنك تركه في قسم التعليقات أسفل المقال أو كتابته في قسم الأسئلة والأجوبة في أكاديمية حسوب. اقرأ أيضًا توثيق Sass باللغة العربية مدخل إلى Sass أمثلة لبعض الدوال المساعدة (mixins) عند كتابة CSS باستخدام SASS لا تكرّر نفسك (DRY): أعد استخدام دوالّ Sass التي كتبتها