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

محمد أيمن3

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

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

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

المعلومات الشخصية

  • النبذة الشخصية
    كاتبُ محتوى ومبرمج، وباحثٌ محبٌّ للعلم والتعلُّم

آخر الزوار

699 زيارة للملف الشخصي

إنجازات محمد أيمن3

عضو مساهم

عضو مساهم (2/3)

13

السمعة بالموقع

  1. كان بناء نموذج ذكاء اصطناعي متطور صعبًا، ومقتصرًا على الشركات الكبيرة، مثل جوجل و OpenAI نظرًا لصعوبة تجميع مجموعات بياناتٍ كبيرةٍ لتدريب النموذج عليها والحاجة إلى بنية تحتية حاسوبية قوية لتشغيل تلك النماذج. حتى ظهرت منصة Hugging Face التي غيرت المشهد. فقد أصبحت منصة Hugging Face واحدة من أبرز المنصات التي تسهل بناء النماذج الذكية وتطويرها وتوفر للمطورين نماذج ذكاء اصطناعي ومجموعات بيانات مفتوحة المصدر وتمكنهم من إنجاز مشاريع ذكار اصطناعي خاصة بهم دون العناء في تجميع البيانات وتنقيحها، ودون الحاجة لدفع مبالغ طائلة، فما هي منصة Hugging Face؟ وما أهم استخداماتها؟ وما النماذج التي توفرها؟ هذا ما سنعرفه في مقال اليوم. ما هي منصة Hugging Face تعد Hugging Face منصة مختصة في الذكاء الاصطناعي وتعلم الآلة ومعالجة اللغات الطبيعية وعلوم البيانات، فهي توفر العديد من المكتبات مفتوحة المصدر مثل مكتبة المحولات Transformers، التي توفر نماذج جاهزة يمكن استخدامها مباشرةً أو تحسينها، كما توفر منصات لتجربة النماذج دون الحاجة إلى إعداد بيئة برمجية معقدة. بالإضافة إلى ذلك، تسهل Hugging Face الوصول إلى مجموعات بيانات متنوعة من خلال مكتبة Datasets، مما يقلل من عبء إعداد البيانات اللازمة للتدريب. كما أن دعمها القوي لدمج النماذج في التطبيقات المختلفة عبر واجهات برمجية (APIs) جعلها الخيار الأمثل للمطورين، ومن خلال هذه الأدوات والخدمات، تمكنت Hugging Face من إزالة الحواجز التقنية أمام بناء النماذج، مما ساهم في تعزيز انتشار الذكاء الاصطناعي في العديد من المجالات مثل معالجة اللغات الطبيعية، وتحليل الصور والتعرف على الأصوات وغيرها.. وتؤمن لك المنصة بنية تحتية لتطبيقات الذكاء الاصطناعي، فتستطيع باستخدامها بناء نموذج ذكاء اصطناعي وتدريبه واختباره وإطلاقه، وكذلك توفر مستودعًا يضم كثيرًا من نماذج الذكاء الاصطناعي مفتوحة المصدر، وتطبيقات تفاعلية جاهزة تُسمى Spaces، والتي يمكنك من خلالها بناء نماذج جديدة محسنة، وستجد فيها أيضًا مجتمعًا ضخمًا يجمع كافة المهتمين بمجال الذكاء الاصطناعي وتعلم الآلة ويسمح بتبادل الخبرات وتطوير وتحسين هذا المجال الحيوي بطريقة تعاونية. ما أهم مميزات منصة Hugging Face؟ تتميز منصة Hugging Face بمجموعةٍ من الخواص، ومنها: توفر نماذج ذكاء اصطناعي متنوعة مفتوحة المصدر: إذ يحوي مستودع Hugging Face آلاف نماذج ذكاء اصطناعي models يمكنك الاطلاع عليها واستخدامها في بناء نموذجك الخاص بخلاف النماذج مغلقة المصدر مثل ChatGPT من OpenAI أو Bard من جوجل حيث تتيح Hugging Face للمطورين عرض ومشاركة الشيفرة البرمجية للنماذج، مما يجعلها مكانًا ديناميكيًا للنماذج المتجددة باستمرار، وعدد هذه النماذج في تزايد مستمر، كما توفر المنصة إمكانية رفع نماذجك الخاصة ومشاركتها مع المطورين الآخرين عبر المنصة، ووتنوع مجالات هذه النماذج، فمنها نماذج معالجة لغات طبيعية NLP Models، ومنها نماذج تعلم آلة Machine Learning Models، ومنها نماذج معالجة صور Image Processing Models. تتضمن مجموعات بيانات تغطي مجالات متعددة: توفر منصة Hugging Face أيضًا مكتبة ضخمة من مجموعات البيانات Datasets مفتوحة المصدر؛ وهي منظمة وجاهزة لتدريب نماذج الذكاء الاصطناعي عليها، ما يختصر على المطور وقتًا وجهدًا عظيمًا يبذله في جمع البيانات وتنقيحها وتنظيمها وتدريبها. تحتوي تطبيقات جاهزة للاستخدام: منصة Hugging Face ليست موجهة لمهندسي ومطوري الذكاء الاصطناعي فقط، بل يمكن لغير المختصين الاستفادة منها من خلال المساحات Spaces وهي عبارة عن تطبيقات أو نماذج ذكاء اصطناعي جاهزة متاحة للاستخدام إذ يستطيع المستخدم العادي استخدامها في تنفيذ مهامه المختلفة مثل توليد الصور واستنساخ الأصوات، وتحليل البيانات. وفي كل أسبوع، تعرض مساحات متميزة لتلهم المجتمع وتستخدم بشكل فعال للتجارب والأبحاث والأعمال الإبداعية، وبهذا يمكن للمستخدمين استكشاف التطبيقات المميزة والوصول لها بسهولة من أعلى الصفحة. ومن الأمثلة على مساحات مفيدة مساحة CodeFormer المستخدمة في استعادة وتحسين ملامح الوجه في الصور القديمة، ومساحة Arabic Tashkeel لتشكيل النصوص العربية وغيرها من المساحات التي يمكنك استكشافها والإفادة منها. دورة الذكاء الاصطناعي احترف برمجة الذكاء الاصطناعي AI وتحليل البيانات وتعلم كافة المعلومات التي تحتاجها لبناء نماذج ذكاء اصطناعي متخصصة. اشترك الآن ما أهم استخدامات منصة Hugging Face؟ يستخدم مهندسو الذكاء الاصطناعي منصة Hugging Face بطرق مختلفة، وأهمها: صقل وتحسين النماذج Fine-Tuning: تختص تقنية الصقل بتكييف نموذج ذكاء اصطناعي مدرب مسبقًا لأداء مجموعة من المهام المحددة المندرجة تحت قسمٍ واحدٍ، ما يوفر الموارد المبذولة في تدريب نموذجٍ جديدٍ من الصفر، ويوفر كذلك من الوقت والجهد كثيرًا. ومع توفير منصة Hugging Face لكثيرٍ من نماذج الذكاء الاصطناعي العامة بشكلٍ مجانيٍّ ومفتوح المصدر؛ صارت المنصة مقصدًا لكل من أراد صقل نموذجٍ وتخصيصه في مجالٍ محددٍ. الاطلاع على نماذج تعلم الآلة ومشاركتها: تسمح منصة Hugging Face بالاطلاع على عدد ضخم من نماذج الذكاء الاصطناعي المختلفة، فقد تستوحي أفكارًا لمشاريع ذكاء اصطناعي خاصة من تصفح هذه النماذج والبحث فيها والتعلم منها، واستخدامها في التطبيق العملي، وكذلك فيمكنك مشاركة نماذج الذكاء الاصطناعي التي طورتها بنفسك مع مطورين خبراء على المنصة، فتختبرها وتعرف نقاط الضعف والقوة. الاطلاع على مجموعات بيانات ومشاركتها: توفر منصة Hugging Face كثيرًا من مجموعات البيانات Datasets المختلفة كما شرحنا سابقًأ، والتي يمكنك مباحثتها واختيار أنسبها لمشروعك الخاص ولتدريب نموذجك عليه، ويمكنك أيضًا مشاركة مجموعات البيانات التي نظمتها مع المطورين الآخرين، ليساعدوك في تحسينها وتعزيزها. البحث العلمي: تعرض منصة Hugging Face جمعًا من الأوراق والمواضيع البحثية في المجالات المختلفة من الذكاء الاصطناعي، مثل: معالجة اللغات الطبيعية Natural Language Processing والبيانات الضخمة Big Data، وتستطيع المشاركة في هذه الأبحاث مع مجموعة من مهندسي الذكاء الاصطناعي الخبراء للارتقاء بمجال الذكاء الاصطناعي والمضي به قدمًا. ما أهم مصطلحات منصة Hugging Face؟ تتعدد المصطلحات المهمة في منصة Hugging Face، ومنها: المحولات Transformers: تعد المحولات نوعًا من الشبكات العصبية المشهورة في مجال معالجة اللغات الطبيعية، وتتميز بقدرتها على فهم الكلام المكتوب بشكلٍ أفضل من غيرها من الشبكات العصبية، أمَّا المحولات Transformers في سياق منصة Hugging Face فهي مكتبة مفتوحة المصدر مطورة بلغة بايثون، توفر مجموعة من نماذج معالجة اللغات الطبيعية المبنية على الشبكات العصبية من نوع المحولات. المكتبات Libraries: تحوي المكتبات مقاطع من الشيفرات البرمجية التي يستخدمها المطورون بكثرة، وتختلف استخدامات المكتبات، فمثلًا تحتوي مكتبات تطوير مواقع الويب على أهم الشيفرات التي يستخدمها مطورو الويب باستمرار في غالب مشروعاتهم. مستودع Hugging Face Hub: تتشابه مستودعات Hugging Face Hub إلى حد ما مع منصة جيت هاب GitHub، ولكن مع تخصيص أكبر لمجال الذكاء الاصطناعي، إذ تحتوي على عددٍ ضخمٍ من نماذج تعلم آلة مدربة مسبقًا مفتوحة المصدر، وكذلك تحتوي على مجموعات بياناتٍ كثيرةٍ يمكن للمطور استخدامها لبناء نموذج الذكاء الاصطناعي الخاص به. الدفتر Notebook: تعد تطبيقاتٍ تفاعليةٍ تساعد علماء البيانات وخبراء تعلم الآلة على كتابة الشيفرات الجاهزة للتنفيذ واختبارها فورًا، مع كتابة نصوص توضيحية لهذه الشيفرات، ومشاركتها عبر المنصة مع خبراء آخرين. مميزات منصة Hugging Face تتعدد مزايا منصة Hugging Face، ومن أهمها: سهولة التطوير: جعلت منصة Hugging Face بناء نماذج الذكاء الاصطناعي سهلًا بتوفيرها لنماذج مدربة مسبقًا يمكن صقلها، وبتوفيرها كذلك لواجهات برمجية ذات خواصٍ تساعد مهندسي الذكاء الاصطناعي على تطوير نماذج معالجة لغات طبيعية ونماذج تعلم آلة متطورة، مما يرفع عن المطورين تحدياتٍ كانت تواجههم من صعوبة تدريب نماذج الذكاء الاصطناعي نظرًا للموارد الحاسوبية الكبيرة التي تحتاجها، وكذاك جمع البيانات لتدريب هذه النماذج. سهولة النمذجة الأولية: مع تقنية الصقل ونماذج الذكاء الاصطناعي مفتوحة المصدر بمنصة Hugging Face، باتت النمذجة الأولية لأي فكرة مشروع ذكاء اصطناعي غاية في السهولة ولا يحتاج إلى وقت كثير وجهد كبير، ولا يتطلب كذلك دفع مبالغ طائلة من المال. المجتمع الداعم: توفر منصة Hugging Face مجتمعًا داعمًا لمطوري الذكاء الاصطناعي، وتوفر مصادر كثيرة لهم لتطوير مهاراتهم، فمجتمع Hugging Face مملوء بالدورات والوثائق Documentations المجانية التي تزيد من مهارات مهندسي البرمجيات. منصة مجانية: تعد منصة Hugging Face مجانية بالأصل، ورغم أنها تتضمن بعض الخطط المدفوعة التي توفر ميزاتٍ إضافية للأعمال، ولكن حتى هذه الخطط المدفوعة ليست باهظة الثمن، ما يجعلها منصة فعالة من حيث التكاليف لاستخدامها في مشروعات الذكاء الاصطناعي الخاصة. عيوب منصة Hugging Face رغم مميزات منصة Hugging Face الكثيرة إلَّا أنَّ بها تحدياتٍ ستواجهك عند استخدامها كذلك، وأهمها: تحيز النماذج: تعاني بعض نماذج الذكاء الاصطناعي على منصة Hugging Face من تحيز الذكاء الاصطناعي AI Bias، وهو توليد النماذج لنتائج تسيء لفئة معينة أو تنحاز لطرف على حساب آخر، فيجب أن تحرص على اختبار النموذج الذي ستبني عليه نموذج الخاص قبل بنائه، لتتأكد أن ليس هذا النموذج متحيزًا. كثرة النماذج: كما أنَّ كثرة النماذج على المنصة ميزةٌ، فإنه بذات الوقت عيبٌ لصعوبة الوصول إلى النموذج المناسب لاحتياجاتك الخاصة، لذا توفر منصة Hugging Face توفر كثيرًا من المحددات Filters التي يمكنك استخدامها أثناء البحث لتسهيل وتسريع الوصول إلى النموذج المناسب لك. ضعف الأمان: تتفاوت درجات الأمان في نماذج الذكاء الاصطناعي على منصة Hugging Face نظرًا لتفاوت مستويات مطوريها، فيجب أن تحرص أثناء اختيارك للنموذج المناسب لمشروعك على بحث معايير الأمان لدى المطور واختبار النموذج أمنيًا مرارًا وتكرارًا للتيقن من سلامة وخصوصية العملاء والحرص على نماذج طورتها جهات معروفة. الخلاصة سرنا خلال رحلتنا في هذا المقال عبر مواضيعٍ متعددة، بدءًا من تعريف منصة Hugging Face وتوضيح ماهيتها، مرورًا بإيضاح مميزات المنصة واستخداماتها، وصولًا إلى تبسيط أهم مصطلحات المنصة وتبيان مزاياها وعيوبها، والآن دورك لتجرب هذه المنصة وتشاركنا في التعليقات بانطباعاتك عنها وخططك لاستخدام منصة Hugging Face وتضمينها في أعمالك. اقرأ أيضًا اسأل مهندس الذكاء الاصطناعي: أسئلة شائعة حول الذكاء الاصطناعي مشاركة نموذج ذكاء اصطناعي على منصة Hugging Face كيف أستخدم تقنيات الذكاء الاصطناعي في عملي؟ تطبيقات الذكاء الاصطناعي
  2. إنَّ التطبيق العملي أمر ضروري لإتقان أي مجال تقني ولا سيما مجال الذكاء الاصطناعي، فإذا كنت مهتمًا بالعمل في هذا التخصص وبدأت تعلمه بالفعل لكنك لاتزال مبتدئًا ولا تعرف ماهي مشاريع الذكاء الاصطناعي التي يمكنك تنفيذها لتطبيق معلوماتك النظرية وتوظيفها في مشاريع عملية تحسن خبراتك وتعزز معرض أعمالك فهذا المقال لك، إذ نقترح لك فيه مجموعة من المشاريع العملية متفاوتة الصعوبة في مجالات الذكاء الاصطناعي المختلفة لتساعدك على تحسين مستواك وصقل مهاراتك. مشاريع ذكاء اصطناعي في مجال تعلم الآلة يعد تعلم الآلة Machine Learning (ML) من أهم المجالات الفرعية لتخصص الذكاء الاصطناعي Artificial Intelligence (AI) فهو مجالٌ يسمح للأجهزة الحاسوبية بالتعلم من البيانات وحل المشكلات واتخاذ القرارات دون الحاجة إلى البرمجة الصريحة لكل جزء من أجزاء المشروع، ويهتم مهندسو تعلم الآلة بتطوير خوارزميات حاسوبية تتطور ذاتيًا باستخدام البيانات. لمجال تعلم الآلة استخدامات وتطبيقات عديدة، من بينها أنظمة التوصية المدمجة في منصات عديدة، كالمتاجر الإلكترونية التي تقترح عليك سلعًا تلائمك، ومنصات الفيديو التي تقترح عليك مقاطع جديدة بناءً على تاريخ مشاهداتك، ومواقع التواصل الاجتماعي التي تُظهِرُ لك منشوراتٍ تبعًا لإعجاباتك وتعليقاتك السابقة. ومن أهم مشاريع الذكاء الاصطناعي المقترحة لمهندسي تعلم الآلة: مشروع تصنيف صور بالذكاء الاصطناعي. مشروع توقع أسعار العقارات بالذكاء الاصطناعي. مشروع كشف الاحتيال المالي بالذكاء الاصطناعي. لنشرح المزيد عن كل مشروع من هذه المشاريع وآلية تنفيذه. 1. مشروع ذكاء اصطناعي لتصنيف صور مستوى الصعوبة: سهل. يعد نموذج تصنيف الصور باستخدام خوارزميات تعلم الآلة من مشاريع الذكاء الاصطناعي السهلة المناسبة للمبتدئين، إذ تقوم فكرة المشروع على بناء نموذج ذكاء اصطناعي يستطيع التمييز بين صورٍ مختلفة لأنواعٍ متعددةٍ من أشياء محددة، مثل: نموذج يميز بين صور الأنواع المختلفة من الحيوانات، ويكون هذا بمنح النموذج قاعدة بيانات بها عدد كبير من الصور المرتبة لكل نوع من الأنواع التي نريد أن يميز النموذج بينها مع نص يوضح ماهية كل نوع ومواصفاته، كأن نمنح النموذج صورًا لكلابٍ وقططٍ مع التوضيح النَّصي أنَّ هذه كلاب وقطط، ويتدرب النموذج على هذه البيانات محاولًا اكتشاف أنماط وسمات كل نوع، ففي مثالنا يحاول النموذج اكتشاف صفات الكلب والقطة، ثم يكون قادرًا على التعرف عليهما من صور أخرى لم يتدرب عليها قبلًا. نمر خلال عملية تطوير نموذج تصنيف صور على خطوات متعددة، وهي: جمع البيانات: يمكنك جمع الصور التي سيتدرب عليها النموذج بنفسك، كما يمكنك العثور على مجموعة بيانات Dataset جاهزة عبر الإنترنت، مثل مجموعات بيانات CIFAR-10. معالجة البيانات: إذا جمعت البيانات التي سيتدرب النموذج عليها بنفسك فعليك معالجتها وتصنيفها ووضع صور الكلاب تحت تصنيف واحد وتوضح أنَّ هذه صور كلاب، وتضع صور القطط تحت تصنيف واحد وتوضح أنها صور قطط، أمَّا إذا حمَّلت مجموعة بيانات جاهزة من الإنترنت فيمكنك الانتقال للخطوة التالية مباشرةً. بناء النموذج: يشير بناء النموذج إلى عملية إنشاء الشبكة العصبية Neural Network التي ستتدرب على البيانات وتتمكن من تصنيف الصور بعد التدريب، وغالبًا ما تستخدم في هذه المرحلة أطر عمل جاهزة لتسهيل وتسريع عملية التطوير مثل تينسرفلو TensorFlow. تدريب النموذج: تمنح النموذج مجموعة البيانات الجاهزة ليبدأ النموذج في محاولة استكشاف الأنماط بين الصور، ويسعى لفهم سبب وضع كل صورة ضمن تصنيفها، فيبدأ بفحص صور القطط ويحاول فهم السمات المميزة لكل قطة حتى يتمكن من التعرف على صور القطط خارج مجموعة البيانات التي تدرَّب عليها. اختبار النموذج: هنا يحين موعد اختبار مدى نجاح المشروع، فتسأل النموذج عن صور لكلابٍ وقططٍ أو أيٍّ كان ما درَّبتَ نموذجكَ عليه، على أن تكون هذه الصور خارج مجموعة البيانات التي تدرَّب عليها النموذج، فإن أجاب بدقة فقد نجح المشروع، وإن أخطأ فتأكد من دقة تصنيفك للبيانات أولًا، فإن كانت مصنفة وموصوفة بدقة فامنحه مزيدًا من البيانات للتدرب عليها ثم أعد اختباره. 2. مشروع توقع أسعار العقارات مستوى الصعوبة: متوسط. يعد نموذج توقع أسعار العقارات من أفكار مشاريع الذكاء الاصطناعي المفيدة متوسطة الصعوبة، ويساعدك نموذج توقع أسعار العقارات على تحديد السعر المناسب للعقار بناءً على معطيات عديدة، بدءًا من موقع العقار، مرورًا بمساحته وعدد الغرف فيه، وصولًا إلى رفاهيات العقار، مثل وجود فناء خلفي ومسبح. لا تختلف خطوات تنفيذ مشروع نموذج توقع أسعار العقارات كثيرًا عن خطوات تنفيذ مشروع نموذج تصنيف الصور، وكذا سائر مشاريع الذكاء الاصطناعي في مجال تعلم الآلة، فكلُّ مشاريع تعلم الآلة تتفق في خطوات جمع البيانات ومعالجتها وبناء النموذج وتدريبه واختباره، ولكن تختلف المشاريع فيما بينها في أحجام البيانات ومدى تعقيدها، ووظائف النموذج ومدى تعقيد خوارزمياته وطريقة تعامله مع البيانات وتعلمه منها. يمكنك في مرحلة جمع البيانات لهذا المشروع الاستعانة بمجموعات البيانات التي توفرها المواقع الرسمية للحكومات حول الإسكان، أو البحث في مواقع العقارات لجمع البيانات المُرادة، ثم معالجة بياناتك وتنظيفها، فإذا كانت هنالك بعض المعلومات المفقودة كمساحة عقار أو ما شابه فيمكنك ملؤها بمتوسط المساحات أو أن تحذف هذه القطعة من البيانات. ينصح في مرحلة بناء النموذج استخدام خوارزميات الانحدار الخطي Linear Regression فهي قادرة على اكتشاف العلاقات بين البيانات المختلفة كالعلاقة بين مساحة العقار وموقعه وسعره، كما يمكنك الاستعانة بمكتبات التحليل التنبؤي للبيانات مثل مكتبة ساي كيت ليرن Scikit-Learn المكتوبة بلغة بايثون. بعد ذلك عليك أن تمرر مجموعة البيانات التي جمعتها للنموذج كي يتدرب عليها ويستكشف الأنماط المختلفة بين البيانات، ويفهم لماذا كان العقار باهظ الثمن في منطقة ما وكان زهيدًا في منطقة أخرى، ويتعلم العلاقة بين المساحة وسعر العقار وغيرها من البيانات ذات الصلة، ويمكنك أخيرًا اختبار مشروعك مع عقارات بمعطياتٍ غير تلك الموجودة في مجموعة البيانات التي تدرب عليها مسبقًا. 3. مشروع كشف الاحتيال المالي مستوى الصعوبة: متقدم. تقع نماذج الكشف على الاحتيال ضمن أهم مشاريع الذكاء الاصطناعي، ولا سيما تلك المتعلقة بالاحتيال المالي، حيث تساعد هذه النماذج على كشف العمليات الاحتيالية في المعاملات المالية بناءً على معطيات عديدة، منها مثلًا التاريخ الإنفاقي للعميل، فإن أُجريَت عملية مالية مفاجئة بمبلغ أعلى بكثيرٍ من متوسط إنفاق العميل تُصنَّف العملية احتيالًا، وكذلك إذا تتابعت العديد من العمليات دون فروق زمنية واسعة تصنفها نماذج الكشف عن الاحتيال كعملياتٍ احتيالية. تكمن صعوبة تطوير مشروع ذكاء اصطناعي للكشف عن الاحتيال في صعوبة جمع ومعالجة البيانات التي سيتدرب عليها النموذج، حيث تحتاج لإنشاء مجموعة بيانات تحتوي على عدة تواريخ إنفاقية مع تفاصيل عن عملائها، وإضافة مجموعة من العمليات إلى مجموعة البيانات هذه ثم تصنيفها كعملياتٍ آمنة وعملياتٍ احتيالية، ثم ومعالجة البيانات والتأكد من اكتمال الخانات وعدم فراغ أيٍّ منها. يمكنك استخدام عدة خوازرميات في تطوير نموذج الكشف عن الاحتيال، مثل خوارزمية الانحدار اللوجستي Logistic Regression التي تستطيع توقع احتماليات الاحتيال في العمليات المالية بناءً على المدخلات، كما يمكنك استخدام خوارزمية الغابة العشوائية Random Forest التي تستطيع اكتشاف العمليات المشبوهة والاحتيالية عن الطبيعية بدقة كبيرة، ويوجد خورازميات أخرى تفيد في هذا المجال مثل خوارزمية تعزيز التدرج Gradient Boosting. بعد كتابة خوارزميات النموذج عليك تزويده بالبيانات ليتدرب عليها ويكتشف العمليات الاحتيالية من بين تاريخ العمليات لكل بطاقة أو حساب موجود في مجموعة البيانات، وما إن ينتهي من التدرب على البيانات يمكنك حينئذٍ اختباره على معاملات مالية جديدة. مشاريع ذكاء اصطناعي في مجال معالجة اللغات الطبيعية يعد مجال معالجة اللغات الطبيعية Natural Language Processing (NLP)‎ واحدًا من المجالات الفرعية الحيوية في الذكاء الاصطناعي، وهو يختص بتمكين الآلات والحواسيب من فهم اللغات البشرية، كالعربية والإنجليزية وغيرها، سواءً كانت اللغة مدخلة نصيًا أو صوتيًا وله تطبيقات عديدة منتشرة، بدءًا من روبوتات الدردشة وأشهرها شات جي بي تي ChatGPT وجوجل جيميني Google Gemini، مرورًا بالمساعدين الصوتيين مثل مساعد جوجل Google Assistant وأليكسا Alexa وسيري Siri، وصولًا إلى أدوات الترجمة بمساعدة الحاسوب وأهمها ترجمة جوجل Google Translation. تتعدد مشاريع الذكاء الاصطناعي المقترحة لمهندسي معالجة اللغات الطبيعية، ومنها: مشروع روبوت دردشة لخدمة العملاء باستخدام الذكاء الاصطناعي. مشروع ذكاء اصطناعي لتحليل مشاعر جمهور مواقع التواصل الاجتماعي. مشروع ذكاء اصطناعي للترجمة الآلية. لنوضح المزيد حول كل مشروع من هذه المشاريع وآلية تنفيذه ومستوى صعوبته. 1. مشروع روبوت دردشة لخدمة العملاء بالذكاء الاصطناعي مستوى الصعوبة: سهل. يعد روبوت الدردشة لخدمة العملاء مشروع ذكاء اصطناعي للمبتدئين، ويتمحور بشكلٍ أساسيٍّ حول بناء روبوت دردشة يفهم استفسارات العملاء ويجيب عليها تلقائيًا بإجاباتٍ واضحةٍ كافيةٍ صحيحةٍ، ويعتمد روبوت الدردشة لخدمة العملاء على خوارزميات معالجة اللغات الطبيعية في المقام الأول، ثم على خوارزميات تعلُّم الآلة في المقام الثاني. نبدأ بناء روبوت دردشة خدمة العملاء بتطوير كل جزء منه على حدة، بدءًا من أساس روبوت الدردشة والذي يمكنك بناؤه مستخدمًا إحدى منصات تطوير روبوتات الدردشة عبر واجهة أمامية بسيطة، مثل Chatfuel، أو أن تكتب شيفرات روبوت الدردشة بنفسك مستعينًا بمكتبات وأطر عمل مساعدة مثل مكتبة NLTK بلغة باثيون ثم نطور بعد ذلك نظام التعرف على النوايا Intent Recognition في روبوت الدردشة، والذي يحاول معرفة المغزى وراء الأمر المُدخل من العميل، كتحديد ما إن كان عميل متجر إلكتروني يتساءل عن سياسات الاسترجاع أو تتبع طلبه أو غيرها. نشرع بعد ذلك في تطوير نظام استخراج الكيانات المُسمَّاة (named entity extraction)، والذي يعمل على استخراج التفاصيل المهمة من رسالة العميل، مثل رقم المنتج واسمه أو رقم الطلب وغيرها، وبعد ذلك نبني منهجية تدفق المحادثة التي تساعد روبوت الدردشة على إدارة المحادثة بكفاءة وكتابة ردود مناسبة لاستفسارات العميل ومساعدته على حل مشكلاته، وأخيرًا نجمع كل هذه الأجزاء ونُضمِّنها ليتكون روبوت الدردشة، ثم نبدأ في اختبار كفاءته في إدارة المحادثات. 2. مشروع ذكاء اصطناعي لتحليل مشاعر جمهور مواقع التواصل الاجتماعي مستوى الصعوبة: متوسط. يعمل نموذج تحليل مشاعر جمهور مواقع التواصل الاجتماعي على تحليل المنشورات والتغريدات، ومحاولة تحديد المشاعر العاطفية خلف الكلمات المكتوبة، فيصنف المنشورات بين منشورات إيجابيةٍ ومنشوراتٍ سلبيةٍ وأخرى طبيعية أو عادية، ويساعد هذا النوع من النماذجِ الأعمالَ على تخصيص حملاتهم التسويقية تبعًا للفئة المستهدفة، ويساعدهم كذلك على إطلاق حملات تسويقية ذات كفاءة، وذلك بتحليل أحجام ضخمة من المحتوى المكتوب من هذه الفئة المستهدفة. نبدأ في العمل على تطوير نموذج تحليل مشاعر منشورات مواقع التواصل الاجتماعي بجمع البيانات، فالبيانات في حالتنا هي منشورات التواصل الاجتماعي، ولأنَّ هذا النوع من البيانات غالبًا ما يكون فوضويًا وغير مهيكل فنحتاج جهدًا كبيرًا في معالجة بيانات هذا المشروع، فيمكننا تطوير برنامج يعيد الجملة إلى تكوينها الأصلي، فيزيل الرموز ويحول الحروف الكبيرة إلى صغيرة، ثم يختصر الجملة ما أمكن. بعد ذلك نبدأ في اختيار منهجية معالجة اللغة الطبيعية المناسبة، ولتكن النهج القائم على المعجم Lexicon-Based Approach، والذي يُقسِّم الجملة إلى كلماتٍ ويُحدِّد ماهية كل كلمة على حدة ما إذا كانت كلمة إيجابية أم سلبية أم عادية، فكلما زادت الكلمات الإيجابية في المنشورات صنَّفها ضمن المنشورات الإيجابية، وكذلك كلما زادت الكلمات السلبية في المنشورات صنَّفها ضمن المنشورات السلبية. وأخيرًا بعد تجهيز البيانات وتحديد المنهجية نبدأ في تطوير النموذج، ونعطيه البيانات ليتدرب عليه، ثم نختبره على محتوى ليس ضمن مجموعة البيانات وننظر هل سيصنفه بشكلٍ صحيحٍ أم يخطئ في التصنيف. ولمزيدٍ من التفاصيل حول مشروع نموذج تحليل المشاعر ننصحك بمطالعة مقال تحليل المشاعر في النصوص العربية باستخدام التعلم العميق. 3. مشروع ذكاء اصطناعي للترجمة الآلية مستوى الصعوبة: متقدم يعد المترجم الآلي متعدد اللغات من أهم مشاريع الذكاء الاصطناعي، وتتمحور فكرته حول تمكين المستخدم من الترجمة بين لغة وأخرى، مع دعم لغات عديدة ومتنوعة، وذلك مع تحري الدقة في الترجمة والمقارنة بين الترجمات المختلفة للكلمة الواحدة واستخدام الترجمة الأنسب لها، وأخيرًا تكوين جملة واضحة مفهومة سليمة. الخطوة الأولى من عملية تطوير مترجم آلي متعدد اللغات هي جمع البيانات وتنظيفها ومعالجتها، وتحتاج في هذا المشروع بالذات للبحث عن مجموعة بيانات جاهزة تحتوي على الكلمات بمرادفاتها في اللغات المختلفة مع أمثلة للكلمة في سياقات حديثية عديدة بكل لغة، ثم تعالج هذه البيانات بالبحث فيها عن الترجمات الناقصة أو المفقودة، ثم تترجمها بنفسك. بعد ذلك تختار منهجية الترجمة ونقترح عليك منهجية الترجمة الآلية العصبية Neural Machine Translation (NMT) لدقة عالية في الترجمة، ومن بعد ذلك تكتب خوارزميات النموذج التي ستتدرب على البيانات، ثم تمنح مجموعة البيانات للنموذج ليتدرب عليها، وتجدر الإشارة لأنَّ هذا المشروع هو من مشاريع الذكاء الاصطناعي التي تتطلب الكثير من الموارد الحاسوبية وقدرات معالجة قوية قادرة على التدرب على البيانات الضخمة. ثم ما إذا انتهى النموذج من التدرب على البيانات يمكنك اختبار دقته في الترجمة بين اللغات المختلفة. مشاريع ذكاء اصطناعي في مجال الرؤية الحاسوبية يعد مجال الرؤية الحاسوبية Computer Vision أحد المجالات الحيوية من مجال الذكاء الاصطناعي ويمكن تنفيذ العديد من مشاريع الذكاء الاصطناعي التي تستفيد من قدرة الآلات على تفسير الصور ومقاطع الفيديو وسائر المرئيات والتعرف على محتوياتها مثل تطبيقات التعرف على الوجوه والتعرف على الأشياء وتتبع الحركة، كما تدخل فيه تطبيقات أعقد من ذلك، مثل أنظمة السيارات ذاتية القيادة، وأنظمة الروبوتات، وغيرها. ومن مشاريع الذكاء الاصطناعي المهمة لمهندسي الرؤية الحاسوبية: مشروع التعرف على الوجوه بالذكاء الاصطناعي. مشروع ذكاء اصطناعي لتتبع الأشياء المرئية. مشروع سيارة ذاتية القيادة. وإليك شرحًا أوفى عن كل مشروع من هذه المشاريع وطريقة تنفيذه. 1. نظام التعرف على الوجوه بالذكاء الاصطناعي مستوى الصعوبة: سهل. يعد نظام التعرف على الوجوه مشروع ذكاء اصطناعي للمبتدئين، وتدور فكرة المشروع حول تطوير برنامج يمكنه تحديد الوجوه في الصور والتعرف على أصحابها، وذلك باستخدام تقنيات تعلم الآلة وتقنيات الرؤية الحاسوبية. في أولى الخطوات وهي خطوة جمع البيانات نجد صور المشاهير خيارًا جيدًا لتدريب النموذج عليها، إذ تتوفر صورٌ لهم من زوايا مختلفة عبر الإنترنت، فيمكنك تحميل مجموعة من الصور لكل شخص وتصنيفها داخل مجموعة البيانات حيث تكون جميع صور الشخص تحت تصنيفٍ باسمه، ثم بعد ذلك تبني النموذج باستخدام المكتبات وأطر العمل الجاهزة، مثل مكتبة face_recognition في لغة بايثون. ثم تسمح للنموذج بالتدرب على البيانات والتعرف على الوجوه وتحديد أصحاب هذه الوجوه، ثم إذا ما انتهى من التدرب على مجموعة البيانات يمكنك اختباره على صورٍ غير الموجودة في مجموعة البيانات لنفس الأشخاص الذين كانوا فيها. طالع المزيد عن أنظمة التعرف على الوجوه بقراء مقال إعداد شبكة عصبية صنعية وتدريبها للتعرف على الوجوه. 2. مشروع ذكاء اصطناعي لتتبع الأشياء المرئية مستوى الصعوبة: متوسط. يشير نظام تتبع الأشياء المرئية إلى نظام برمجي يستخدم الذكاء الاصطناعي للتعرف على الأشياء المختلفة في مقاطع الفيديو وتتبعها، كالتعرف على السيارات وتتبعها في أنظمة الرادارات، والتعرف على الأجساد البشرية وتتبعها في أنظمة كاميرات المراقبة. نبدأ تطوير النموذج بجمع مقاطع للأشياء المرئية التي تود تتبعها، مثل مقاطع متعددة لسياراتٍ تجري على طريقٍ سريع، مع إضافة مربعات حول الأشياء المراد تتبعها في مقاطع الفيديو، ثم تطور نموذجك بإحدى المنهجيتين YOLO أو SSD، ثم تمنح النموذج مجموعة البيانات ليتدرب عليها ويحاول التعرف على الأشياء الموجودة في مقطع الفيديو وتتبع الشيء المطلوب منه تتبعه، ثم تختبر النموذج. 3. مشروع سيارة ذاتية القيادة مستوى الصعوبة: متقدم. يعد بناء نظام لسيارة ذاتية القيادة أمرًا صعبًا، نظرًا لتعقيد هذه الأنظمة وكثرة وظائفها وخواصها، ولكنه مشروعٌ تتعلم منه الكثير، وتتضمن أنظمة السيارات ذاتية القيادة أنظمة تتبع للأشياء، كما تتضمن أنظمة لرسم الخرائط وتحديد الطرق. تمر خلال مشروع تطوير نظام سيارة ذاتية القيادة بمراحلٍ ثلاث: الإدراك: تعمل في هذه المرحلة على بناء النظام الإدراكي للسيارة، والذي يساعدها على رسم الخرائط ثلاثية الأبعاد للمكان المحيط، ويساعدها على التقاط صور للطريق ومعرفة الأشياء أمامها، وكذلك يتضمن النظام الإدراكي نظامًا لتحديد السرعة والمسافة، ويعمل أيضًا على معرفة معلومات عامة عن الموقع المحيط باستخدام نظام تحديد الموقع العالمي GPS. تخطيط المسار: تبني لنظام السيارة ذاتية القيادة في هذه المرحلة نظامًا داخليًا لرسم الخرائط عالية الجودة، ونظامًا لتحديد أفضل المسارات وأسرعهم للسير فيه مع النظر للظروف الحالية من أجواءٍ وغيرها، كما نُعلِّم النظام كيفية تجنُّب الحواجز من بشرٍ وسياراتٍ أخرى وغيرها من الحواجز. اتخاذ القرارات: نجعل النظام قادرًا على السير في المسار الذي خططه قبلًا، ونزده بنظام توقعٍ لحركات المركبات المجاورة، ونحرص في هذه المرحلة على تطوير منطق اتخاذ القرارات التي تؤدي إلى سلامة وأمان الراكب والسيارة. مشاريع ذكاء اصطناعي في مجال برمجة الروبوتات تشير برمجة الروبوتات Robotics Programming إلى عملية استخدام إحدى لغات برمجة الروبوتات لتطوير النظام الذي يستطيع به جسد الروبوت أن يبدأ في تنفيذ مهامه، وتساعد برمجة الروبوتات الروبوت على أن يدرك بيئته، ويضع خططًا، ويتخذ قراراتٍ، وينفذ مهامًا، فمثلًا عند تطوير روبوت للتنقل الأرضي نحتاج إلى تزويد نظامه بخوارزميات الرؤية الحاسوبية التي تسمح له بالإدراك والتعرف على الأشياء من حوله، كما نحتاج إلى جعل النظام قادرًا على رسم خرائط، ويحتاج أيضًا إلى خوارزميات لتخطيط مسارٍ والسير فيه، وخوارزميات للتحكم في محركاته وأجزائه الفيزيائية، وغيرها. ومن أهم مشاريع برمجة الروبوتات: مشروع تحريك ذراع روبوت في مسار محدد. مشروع مساعدة روبوت على تجنب العقبات. مشروع روبوت يتفاعل مع البيئة ويتعلم ويتطور باستقلالية. وإليك المزيد حول كل مشروع من هذه المشاريع الذكية. 1.مشروع لتحريك ذراع الروبوت في مسار محدد مستوى الصعوبة: سهل يهتم هذا المشروع بتطوير خوارزمية لذراع الروبوت تجعله قادرًا على التحرك في مسار محدد مسبقًا لحمل شيء من مكان إلى آخر، ونرى تطبيقات هذا المشروع بكثرة في المصانع المعتمدة كليًا أو جزئيًا على الآلات في تصنيع منتجاتها، إذ تتواجد فيها أذرع روبوتات تنقل المنتجات وتدخلها وتخرجها من آلات التصنيع، ثم تغلفها وتجعلها جاهزة للبيع. تحتاج أولًا في هذا المشروع إلى ذراع روبوت لتطور الخوارزمية له وتختبرها عليه، فما إن حصلت عليه فابدأ بفحصه وتعرف على مواصفاته وعدد مفاصله والنطاق الحركي لكل مفصل، وتعرف على سائر المستعشرات المدمجة فيه، ثم ابدأ بتحديد المسار المناسب للذراع بناءً على هذه المواصفات، وبعد ذلك ابدأ في تحويل هذا المسار إلى شيفرات برمجية تساعد الذراع على التحرك حركةً بحركة، وحدد سرعة تنفيذ كل حركة في المسار، ثم ثبت النظام على ذراع الروبوت واختبر مدى دقته في التحرك من مكان إلى آخر. 2. مشروع مساعدة روبوت على تجنب العقبات مستوى الصعوبة: متوسط يهدف مشروع تطوير نظام يساعد الروبوت على تجنب العقبات إلى تمكين الروبوت من التحرك الحر في بيئة مع تجاوز العقبات المختلفة وعدم الاصطدام بها. يعتمد هذا المشروع على كتابة خوارزميات لمستشعرات الروبوت، ونمر فيه بثلاث خطوات، أمَّا الأولى فهي تحصيل المستشعرات وبرمجتها بحيث يعرف الروبوت من خلالها ما حوله من مرئيات وماديات، ويتعرف على العقبات المحتملة في طريقه، وأمَّا الخطوة الثانية فهي تحديد الخوارزمية المناسبة للنظام حسب حجم الروبوت والهدف منه وسرعته، وتختار بين الخوارزميات الثلاث: خوارزمية متابعة الحائط Wall-Following أو خوارزمية الميادين المحتملة Potential Fields أو خوارزميات الأخطاء Bug Algorithms، وهذه الخوارزميات مسؤولة عن رسم مسار الروبوت وتجنب العقبات أثناء السير في المسار، وأمَّا الخطوة الثالثة والأخيرة هي اختبار النظام على روبوت حقيقي ومراقبة مدى كفاءته في تجاوز العقبات. 3. مشروع روبوت يتفاعل مع البيئة ويتعلم ويتطور باستقلالية مستوى الصعوبة: متقدم يعد نظام روبوت يتفاعل مع البيئة ويتعلم ويتطور باستقلالية واحدًا من أهم وأصعب مشاريع الذكاء الاصطناعي وبرمجة الروبوتات، وكما يتضح من اسم المشروع فإنَّ الهدف منه هو تطوير نظام روبوت يدرك البيئة المحيطة به ويفهم ماهية الأشياء من حوله، ويستطيع أن يتعامل مع المهام المختلفة في مجال محدد ويعالجها، ويتمكن كذلك من التعلم المستمر عن المجال الخاص به والتطور وزيادة القدرة على تنفيذ المهام المتنوعة. تحتاج أولًا إلى جسد روبوت لتنفيذ هذا المشروع، فإذا ما حصلت عليه فابدأ بتطوير المهام الأساسية للروبوت، بدءًا من التعرف على الأشياء والتقاطها، مرورًا بتخطيط المسارات، وصولًا إلى تخطي العقبات، وغيرها من المهام الأساسية للروبوت، وبعد ذلك طوِّر النظام الحركي للروبوت وطوِّر كذلك النظام الإدراكي له، والذي يساعده على معرفة الأشياء في البيئة حوله والتفاعل معها. ابدأ بعد ذلك في تطوير خوارزميات تعلم الآلة الخاصة بالروبوت، ونقترح عليك تطويرها بنهج التعلم المعزز Rainforcement Learning، وزوِّد الروبوت بمجموعات ضخمة من البيانات التي تضم معلومات عن المجال التي تود من الروبوت فهمه بعمق وإتقانه، وغالبًا ما تأخذ هذه المرحلة من تطوير الروبوت الوقت الأطول، ولكنها ضرورية لتمكين الروبوت من فهم المجال المختار جيدًا وتعلمه دون الحاجة إلى إشراف بشري، فإذا ما أنهيتها فأعطِ الروبوت مهامًا في هذا المجال لاختباره وتحديد مدى دقته ومدى نجاح المشروع. تنفيذ مشاريع الذكاء الاصطناعي بلغة البايثون إذا كنت تتساءل ما هي أفضل لغة برمجة لتنفيذ مشاريع الذكاء الاصطناعي فإننا ننصحك باعتماد لغة بايثون فهي تعد لغة رائدة في مجال الذكاء الاصطناعي وتسهل عليك تنفيذ مشاريعك لما تتضمنه من مكتبات وأطر عمل ذكاء اصطناعي قوية من أبرزها: تنسرفلو (TensorFlow) بايتورش (PyTorch) كيراس (Keras) نومباي (NumPy) سايباي (SciPy) سكيت-ليرن (Scikit-learn) بلوتلي (Plotly) ماتبلوتليب (Matplotlib) وإن أردتَّ التعرف على مزيد من مشاريع الذكاء الاصطناعي غير المذكورة في هذا المقال بلغة بايثون فيمكنك الاطلاع على كتب الذكاء الاصطناعي المتنوعة التي توفرها أكاديمية حسوب مجانًا، وأهمها كتاب عشرة مشاريع عملية عن الذكاء الاصطناعي. وإن كنت مهتمًا بالتأسيس السليم في مجال الذكاء الاصطناعي والتعلم على يد خبراءٍ في المجال، مع التطبيق العملي المستمر على كل مصطلح من مصطلحات الذكاء الاصطناعي ننصحك بمطالعة دورة أكاديمية حسوب في الذكاء الاصطناعي، والتي تُحدَّث دوريًا بالمصطلحات والمفاهيم الجديدة في مجال الذكاء الاصطناعي وتساعدك على تنفيذ العديد من مشاريع الذكاء الاصطناعي العملية المفيدة والتي توائم متطلبات سوق العمل. دورة الذكاء الاصطناعي احترف برمجة الذكاء الاصطناعي AI وتحليل البيانات وتعلم كافة المعلومات التي تحتاجها لبناء نماذج ذكاء اصطناعي متخصصة. اشترك الآن اقرأ أيضًا دليلك الشامل لتعلم الذكاء الاصطناعي تطبيقات الذكاء الاصطناعي اسأل مهندس الذكاء الاصطناعي: أسئلة شائعة حول الذكاء الاصطناعي تطوير تطبيق 'اختبرني' باستخدام ChatGPT ولغة جافاسكربت مع Node.js بناء تطبيق بايثون يجيب على أسئلة ملف PDF باستخدام الذكاء الاصطناعي أهم مصطلحات الذكاء الاصطناعي للمبتدئين
  3. مع التطور المستمر في مجال الذكاء الاصطناعي يزداد استخدامنا لمفردات ومصطلحات الذكاء الاصطناعي بشكل كبير، وتظهر مصطلحات جديدة باستمرار، وقد تكون بعض هذه المصطلحات صعبة ومربكة لا سيما لغير المختصين والمبتدئين في تخصص الذكاء الاصطناعي، وسنحاول في مقال اليوم شرح أهم هذه المصطلحات بأسلوب سهل ومبسط يساعد على فهمها بسلاسة. هيا بنا نتعلم أهم مصطلحات الذكاء الاصطناعي. الذكاء الاصطناعي Artificial Intelligence (AI) لنبدأ بتوضيح مفهوم الذكاء الاصطناعي نفسه، الذي يشير إلى قدرة الأنظمة الحاسوبية على تنفيذ مهام لم يكن يقدرعلى تنفيذها سابقًا سوى البشر، ومن هذه المهام التفكير المنطقي واتخاذ القرارات وحل المشكلات وصار بمقدور الآلات فهم الكلام الطبيعي الذي ننطقه نحن البشر بمختلف لغاته ولهجاته. تتعدد الأمثلة على الذكاء الاصطناعي وتزداد تطبيقاته في حياتنا يومًا بعد الآخر، ولعل أبرزها روبوت الدردشة الشهير شات جي بي تي ChatGPT الذي يستخدم الذكاء الاصطناعي لتوليد النصوص والرد على الاستفسارات، ومنها ترجمة جوجل التي تستخدم خوارزميات ذكية لترجمة الكلام من لغة لأخرى وتمييز الحديث الصوتي وترجمته، ومن أمثلة الذكاء الاصطناعي أيضًا نظام الاقتراحات في منصة يوتيوب الشهيرة، إذ تقترح عليك مقاطع مناسبة لتفضيلاتك باستخدام خوارزميات الذكاء الاصطناعي، ومثالٌ آخر شائع على الذكاء الاصطناعي سيارات تيسلا ذاتية القيادة وغيرها من الاستخدامات العديدة الأخرى التي باتت بمتنناول الجميع. تعلم الآلة Machine Learning إنَّ الذكاء الاصطناعي مجال شامل يتفرع منه مجالاتٌ عديدة، ومن بين هذه المجالات وأشهرها مجال تعلم الآلة، وهو مجال يجعل الأنظمة الحاسوبية قادرة على التعلم وتحسين قدراتها على اتخاذ القرارات وإصدار النتائج دون الحاجة إلى برمجتها بصورة صريحة، فكما نتعلم نحن البشر من والمعارف والخبرات والتجارب السابقة التي نخوضها يمكن للأنظمة الحاسوبية أيضًا أن تستفيد من البيانات السابقة وتحللها لتحسين أدائها وتعزيز فعاليتها مع الوقت. لذا يعمل مهندسو الذكاء الاصطناعي على تطوير خوارزميات تعلم آلة تحلل البيانات وتكتشف الأنماط بينها، ثم تتعلم منها وتبدي توقعاتٍ وتستنتج استنتاجاتٍ مفيدة بناءً على هذه البيانات، وتدخل تقنيات تعلم الآلة في غالبية تطبيقات ومشاريع الذكاء الاصطناعي، بدءًا من التعرف على الكلام وتمييزه ومعالجته، مرورًا بالتعرف على الصور، وصولًا لأنظمة التوصية والترشيح، وتطبيقاتٍ أخرى مثل أنظمة كشف الاحتيال وأدوات تحسين معرض الأعمال وأنظمة السيارات ذاتية القيادة وغيرها. التعلم مع إشراف Supervised Learning يعد التعلم تحت الإشراف منهجية من منهجيات تعلم الآلة، وفيه تتدرب فيها خوارزميات الذكاء الاصطناعي على مجموعة بياناتٍ مُصنَّفة، أي مجموعة بيانات تحتوي على أمثلة من المدخلات والمخرجات الصحيحة التي يجب أن تخرج بها الخوارزميات من هذه البيانات المدخلة. على سبيل المثال، إذا أردنا تطوير خوارزمية تتعرف على الأشجار باستخدام التعلم تحت الإشراف، فعلينا أن نمنح الخوارزمية مجموعة من صور الأشجار المتنوعة مع اسم كل نوع من الأشجار (نخيل، زيتون، رمان، تفاح) ثم نسمح للخوارزمية بمحاولة اكتشاف صفات وسمات كل شجرة، ثم نأتي بصورٍ لأشجار ضمن البيانات المعطاة للخوارزمية ونسألها عن نوع الشجرة، فإن أجابت الخوارزمية إجابة صحيحة بناء على ما اكتسبته من معلومات خلال فترة تدريبها سنبدأ بعدها بتجارب تحديد أنواع الأشجار خارج البيانات التي تتدربت عليها، وإن لم تجب إجاباتٍ صحيحة كافية فنحتاج تدريبها على مجموعة أكبر من البيانات المُصنَّفة وتعديل الخوازرميات المستخدمة لتحقق لنا الدقة المطلوبة. التعلم بدون إشراف Unsupervised Learning يشير التعلم بدون إشراف إلى منهجية أخرى من منهجيات التعلم الآلي، وعلى عكس التعلم تحت إشراف فإنَّ خوارزميات الذكاء الاصطناعي المطورة بمنهجية التعلم بدون إشراف تتدرب على بيانات غير مُصنَّفة، وتحاول تصنيفها ذاتيًا بناءً على المتشابهات والفروق بين البيانات، ففي مثال تحديد نوع الشجرة إذا أردنا تطوير الخوارزمية بمنهجية التعلم بدون إشراف، فلن نعطي للخوارزمية في هذه الحالة أسماء الأشجار ولن نصنف كل نوع من الأشجار معًا، وإنما نمنح الخوارزمية الصور فقط، ثم تسعى الخوارزمية بنفسها لتصنيف كل مجموعة من الأشجار إلى أنواعٍ حسب أشكال الشجر وأحجام الورق وغيرها من المتشابهات والفروق، ويُستخدم التعلم بدون إشراف بشكلٍ أكبر في مهام المعالجة الثقيلة التي تحتاج تصنيف وترتيب البيانات ضخمة الأحجام غير المنظمة والمنسقة. التعلم المعزز Reinforcement Learning يقع التعلم المعزز ضمن منهجيات تعلم الآلة، وتعتمد منهجية التعلم المعزز على التجربة والخطأ والمكافأة، حيث تتخذ الخوارزمية القرار على القرار السابق له، فنحن نعطيها مكافأة إذا أجابت بشكل صحيح، وعقابًا إذا أجابت بشكل خاطئ وبهذا نمنحها فرصة تعزيز النتائج الصحيحة وتجنب الأخطاء حيث ستزداد المكافأة في حال أصابت في اتخاذ القرار، وستقل في حال أخطأت. ويشيع استخدام التعلم المعزز في لعبة الشطرنج، فهو يُستخدم لتدريب برامج الشطرنج وتحسين مستواها مثل برنامج ستوك فيش Stockfish وألفا زيرو Alphazero حيث تتعلم برامج الشطرنج هذه قواعد الشطرنج كاملةً عبر لعب ملايين المباريات عبر نفسها والتجربة والخطأ والمكافأة حتى تتعلم اتخاذ أذكى القرارات وحساب جميع الاحتمالات دون تدخل بشري. الشبكات العصبية الاصطناعية Artificial Neural Network تعد الشبكات العصبية الاصطناعية ANN نماذج رياضية مستوحاة من التركيب العصبي لدماغ الإنسان وتحاكي وظائفه، وتتكون من عقد مترابطة تعالج البيانات وتتعلم منها وتكتشف الأنماط بينها، يتم تدريب الشبكة العصبية بداية باستخدام مجموعة من البيانات التي تحتوي على مدخلات معروفة والمخرجات المطلوبة منها وخلال عملية التدريب، تقوم الشبكة بضبط نفسها لتقليل الخطأ وتحسين أدائها، وبعد التدريب، يمكن للشبكة العصبية أن تقوم بالتنبؤ بالنتائج أو تصنيف البيانات الجديدة التي لم تُستخدم في التدريب وتعالج المدخلات الجديدة من خلال طبقاتها المختلفة لتوليد نتائج دقيقة. تقوم على الشبكات العصبية الاصطناعي مجالات مثل تعلم الآلة، وتتعلم هذه الشبكات العصبية الاصطناعية معالجة البيانات وتفهمها وتدركها باستخدام المنهجيات المذكورة آنفًا مثل التعلم تحت إشراف والتعلم بدون إشراف والتعلم المعزز. التعلم العميق Deep Learning يعد مجال التعلم العميق أحد المجالات الفرعية من مجال تعلم الآلة، ويختلف التعلم العميق عن تعلم الآلة في أمورٍ قليلة، منها قدرة خوارزميات التعلم العميق على التعلم من البيانات غير المنظمة، كما يمكنها التعلم من البيانات مختلفة الأنواع مثل النصوص والصور، وكذلك يتميز التعلم العميق بقلة الحاجة للتدخل البشري على عكس تعلم الآلة، وذلك لاعتماده على شبكات عصبية اصطناعية ANN مكونة من عدة طبقات تعالج البيانات وتنقلها، والشبكة العصبية الاصطناعية هي مجموعة من الخلايا المتصلة ببعضها بعضًا، وتتشابه مع الخلايا العصبية في أدمغتنا البشرية، وكلما زاد عدد طبقات الشبكة الاصطناعية ازدادت قدرتها على فهم وتمثيل الأنماط المعقدة للبيانات، ما يؤدي كذلك إلى ازداد تطبيقات الشبكة العصبية في مجالات عديدة، مثل التشخيص الطبي وكشف الاحتيال. معالجة اللغات الطبيعية Natural Language Processing (NLP) حينما صار التعامل مع الحواسيب والأجهزة الرقمية جزءًا لا يُجتزأ من حياتنا أصبح من الضروري أن نساعد هذه الآلات على فهم لغاتنا، ظهر هاهنا مجال معالجة اللغات الطبيعية، وهو مجال فرعيٌّ من الذكاء الاصطناعي يختص بتمكين الحواسيب من تمييز الخطابات والكلام واللغات البشرية وفهمها، سواءً كان هذا الكلام مكتوبًا أو منطوقًا. تتعدد تطبيقات معالجة اللغات الطبيعية، ومن أهمها: روبوتات الدردشة التي اشتهرت شهرة واسعة في الآونة الأخيرة مثل جيميني Gemini وشات جي بي تي ChatGPT، وأدوات الترجمة الآلية مثل ترجمة جوجل، والمساعدين الآليين مثل أليكسا Alexa ومساعد جوجل Google Assistant وسيري Siri. الذكاء الاصطناعي التوليدي Generative AI يشير الذكاء الاصطناعي التوليدي إلى نماذج الذكاء الاصطناعي القادرة على توليد صور ومقاطع فيديو وشيفرات ونصوص مُنسَّقة ذات مغزى ومعنى مفهوم، وتتعدد الأمثلة على الذكاء الاصطناعي التوليدي، ومنها روبوتات الدردشة المذكورة سابقًا، وأدوات توليد شيفرات برمجية مثل جيتهاب كوبايلوت GitHub Copilot، وأدوات توليد الصور مثل DALL-E وميد جورني Midjourney، وأخيرًا أدوات توليد مقاطع الفيديو مثل سورا Sora من شركة OpenAI القادر على توليد مقاطع فيديو مذهلة! النماذج اللغوية الكبيرة Large Language Models تعد نماذج اللغة الكبيرة Large Language Models (LLMs)‎ نوعًا من خوارزميات الذكاء الاصطناعي التي تعمل على تزويد الشبكات العصبية الاصطناعية بمعاملات Parameters ومعلومات، لتعالجها الشبكات العصبية الاصطناعية وتتعلم منها كلام البشر وكيفية فهمه، ويتم ذلك باستخدام تقنيات التعلم تحت إشراف Supervised Learning، ومن أشهر تطبيقات نماذج اللغة الكبيرة روبوتات الدردشة وأدوات الترجمة والتلخيص وأدوات توليد الصور من النصوص. الرؤية الحاسوبية Computer Vision تعد الرؤية الحاسوبية مجالًا فرعيًا من الذكاء الاصطناعي، ويهتم مجال الرؤية الحاسوبية بتمكين النظام الإلكتروني من محاكاة النظرة البشرية إلى المرئيات، فيستطيع النظام استخراج معاني ذات فائدة من الصور ومقاطع الفيديو، ويتمكن من فهم ما يوجد في الصورة وما يجري في مقطع الفيديو. تكثر تطبيقات الرؤية الحاسوبية، وتبدأ من أنظمة التعرف على الوجوه وتحديد الأشخاص، وتضم أنظمة السيارات ذاتية القيادة، وتمر على أنظمة الروبوتات، وتدخل في أنظمة اكتشاف عيوب الصناعة، وتصل إلى أنظمة التحليل الرياضي، وتنتهي بأنظمة الكشف عن الأدوية والعلاجات الطبية. الأنظمة الخبيرة Expert Systems تعد الأنظمة الخبيرة نوعًا مهمًا جدّا من أنظمة الذكاء الاصطناعي، إذ تعمل هذه الأنظمة الخبيرة على محاكاة المهارات الإنسانية في مجال محدد حتى تكون خبيرةً في هذا المجال وتستطيع حل مشكلاته والمساعدة فيه. بداية تجمع المعرفة من الخبراء البشريين في مجال معين، وما نعنيه بالمعرفة هنا قواعد وأمثلة وحالات سابقة، ثم تخزن هذه المعرفة في شكل قواعد أو نماذج في قاعدة بيانات النظام الخبير بحيث يمكن للنظام استرجاعها واستخدامها لحل المشكلات. وعندما يواجه المستخدم مشكلة ما في مجال معين، يمكنه إدخال التفاصيل إلى النظام الخبير ليستخدم بدوره المعرفة المخزنة لمعالجة البيانات المدخلة من المستخدم وتقديم توصيات وحلول. ومن أشهر الأنظمة الخبيرة نظام Dendral المستخدم في التحليل الكيميائي، ونظام MYCIN المستخدم في التشخيص الطبي، وتتميز الأنظمة الخبيرة بالمعارف الواسعة المحفوظة والتي لا يقدر الإنسان على تخزينها وبالتواجد الدائم والقدرة على العمل في كل وقت، ومن مميزاتها أيضًا توفير كثيرٍ من التكاليف والقدرة على التوسع. الروبوتيكس أو علم الروبوتات (Robotics) يشير مصطح الروبوتيكس إلى تصميم وبناء الروبوتات وهي آلات مبرمجة تؤدي نفس المهام التي تُنفذ عادة من قبل البشر. وتُستخدم هذه الروبوتات في العديد من الصناعات مثل تصنيع السيارات والطب والتنظيف وفي بيئات العمل الخطرة على البشر. ويجمع هذا المجال بين الهندسة الميكانيكية والكهربائية والتقنية. ومن المهم أن تفرق بين هذه الروبوتات التقليدية وبين برامج الروبوتات التي تعني برامج حاسوبية تنفذ المهام بشكل مستقل بذاتها مثل روبوتات الدردشة التي تتفاعل مع المستخدمين وتجيب على تساؤلاتهم والتي لا تمتلك هيكلًا ماديًا بل برمجيًا فحسب. هندسة المُوجِّهات Prompt Engineering تعد هندسة المُوجِّهات Prompt Engineering أحد أكثر المصطلحات المرتبطة بالذكاء الاصطناعي شيوعًا اليوم، وهي تشير إلى عملية صياغة الأوامر المعطاة إلى روبوتات الذكاء الاصطناعي بطريقة تساعد على تحصيل النتائج المرجوة، والجدير بالذكر أنها ليست من جوهر مصطلحات الذكاء الاصطناعي نفسه، وإنما هي عملية للمستخدمين لتحسين تعاملهم مع الذكاء الاصطناعي والنتائج التي يوفرها لهم. ويجب أن يهتم المستخدمون بصياغة المُوجِّهات بأفضل طريقة من خلال توفير كافة التفاصيل اللازمة مع الحرص على اختزالها وتوضيحها قدر المستطاع وكتابة الموجه بصيغة الإيجاب لا النفي، فبدلًا من كتابة "اكتب مقالًا عن تأثيرات التعلم العميق ولا تذكر مجالات لا تخص الطب"، على سبيل المثال يمكن كتابة "اكتب مقالًا قصيرًا عن تأثيرات التعلم العميق في الطب والصناعات الدوائية، وضمِّن فيه أمثلة على التأثيرات في كل مجال منهم"، فهنا قد حددت حجم المقال والعناصر المحددة التي تود أن يكتب النموذج اللغوي عنها، وحددت أنَّك تريد المقال مزودًا بالأمثلة، على عكس الأمر الأول الذي كان أمرًا عامًا لن يجيبك عليه روبوت الدردشة بإجابةٍ ملائمةٍ دقيقةٍ وافية. تقنية الصقل Fine-Tuning تقنية الصقل (Fine-Tuning) من مصطلحات الذكاء الاصطناعي الشائعة اليوم، وهي تعني تعديل نموذج ذكاء اصطناعي مدرب مسبقًا على كميات ضخمةمن البيانات، وجعله يتكيف مع مهام معينة أو بيانات جديدة. فبدلاً من بدء التدريب من الصفر، يستخدم نموذج مُدرب بالفعل لكن هذه المرة باستخدام بيانات جديدة ومخصصة للمهمة المطلوبة مما يوفر الكثير من الوقت والجهد مقارنة بالتدريب من البداية. على سبيل المثال، إذا كان لديك نموذج مدرب على فهم اللغة العامة (مثل GPT-4)، يمكنك استخدام تقنية الصقل لتكييف هذا النموذج مع مجال أو تخصص بعينه، مثل الطب أو الاقتصاد وتدريبه على بيانات محددة تتعلق بذلك التخصص فقط، لتجعل النموذج أكثر فعالية في تنفيذ المهام الخاصة بك والإجابة على أسئلتك بدقة وكفاءة أكبر. التحيز Bias يشير مصطلح التحيز في الذكاء الاصطناعي إلى النتائج المنحرفة أو الخاطئة من أدوات الذكاء الاصطناعي، والتي تنعكس غالبًا من الانحياز في البيانات التي تدرب عليها نموذج الذكاء الاصطناعي، وتظهر مخاطر الانحياز في مجالات حساسة مثل التوظيف والتعليم والقضاء، فيمكن للخوارزميات المتحيزة أن توصي برفض توظيف شخصٍ كفؤ لا لشيءٍ إلا لجنسيته أو لجنسه مثلًا، وكذلك في القضاء ربما توصي بحكمٍ ظالمٍ على شخصٍ لهيئته فقط. تتعدد حلول التحيز في الذكاء الاصطناعي، ومنها مثلًا تنويع مصادر البيانات وتحديد مبادئ أخلاقية لنموذج الذكاء الاصطناعي، والتدقيق المنتظم للنموذج وحل تحيزاته، والشفافية مع النموذج وتعريفه معاني التحيز وأمره بتجنبها. هلوسة الذكاء الاصطناعي AI Hallucination تشير هلوسة الذكاء الاصطناعي إلى توليد الذكاء الاصطناعي لمعلوماتٍ خاطئةٍ وعرضها كأنَّها حقائق مُسلَّمة، وغالبًا ما تحدث هذه الهلوسات لقصورٍ أو قِدَمٍ في البيانات التي تدربت عليها الخوارزمية أو النموذج، وتتعدد أشكال الهلوسة في الذكاء الاصطناعي، فقد يخطئ في حدثٍ تاريخي حيث أخطأ روبوت الدردشة بارد Bard (النسخة السابقة من جوجل جيميني) عن سؤاله عن أول صورة لكوكب خارج المجموعة الشمسية، فأجاب أنَّ أول صورة لكوكب خارج المجموعة الشمسية التُقِطَت باستخدام تيليسكوب جيمس ويب، وهذا غير صحيح، فأول صورةٍ ملتقطة لكوكب خارج المجموعة الشمسية كانت عام 2004، بينما أُطلِق تيليسكوب جيمس ويب عام 2021. كذلك من هلوسات الذكاء الاصطناعي تلفيق المعلومات، فيمكنه توليد معلومات عن أناسٍ لا وجود لهم، ويقدم هذه المعلومات على أنها حقائق لا جدال فيها، ومن هلوسات الذكاء الاصطناعي توليده لمعلومات كاذبة عن أشخاص حقيقيين، على سبيل المثال قال ChatGPT ذات مرة أنَّ عمدة أستراليا كان مدانًا في قضية رشوة في أواخر التسعينات، بينما كان في الواقع هو المُبلِّغ عنها. قابلية التفسير والشرح Interpretability and Explainability تشير قابلية التفسير Interpretability إلى فهم الأسباب وراء التوقعات والنتائج المُولَّدة من نموذج الذكاء الاصطناعي فإذا كان لدينا نموذج ذكاء اصطناعي يتنبأ بإمكانية إصابة شخص بمرض معين، فإن قابلية التفسير تعني القدرة على معرفة العوامل التي أثرت في هذا التنبؤ مثل العمر والتاريخ الطبي ونمط الحياة …إلخ. بينما تشير قابلية الشرح Explainability إلى مدى سهولة شرح كيفية عمل نموذج الذكاء الاصطناعي وهي تفيد المطورين في شرح آلية عمل النموذج للآخرين، سواء كانوا خبراء في المجال أو غير خبراء، ويساعد الفهم العميق لنموذج الذكاء الاصطناعي على معرفة نقاط قوة وقصور النموذج، وبالتالي تحسين أدائه وزيادة دقته وفعاليته وحل مشكلاته وقصوره من هلوسة وتحيز وغيرها، وعمومًا يُستخدم المصطلحان بالتبادل في أحيان كثيرة. مصادر لتعلم مصطلحات الذكاء الاصطناعي إذا كنت مهتمًا بالتعرف على مفاهيم ومصطلحات الذكاء الاصطناعي بشكل احترافي ودمجها في تطبيقات عملية مفيدة ومطلوبة في سوق العمل، ننصحك بالاطلاع على مصادر التعلم المتنوعة، مثل دروس ومقالات الذكاء الاصطناعي، إلى جانب كتب الذكاء الاصطناعي المجانية المشروحة بأسلوب منظم وشامل يتضمن كمًا وافرًا من المفاهيم النظرية والعملية التي تحتاجها كي تتعلم الذكاء الاصطناعي. كما توفر أكاديمية حسوب دورة الذكاء الاصطناعي التي تُعد واحدة من أفضل الدورات العربية في هذا المجال. إذ تبدأ الدورة معك من الصفر وتعلمك أساسيات البرمجة وتحليل البيانات، وخوارزميات الذكاء الاصطناعي، ومفاهيم تعلم الآلة، والتعلم العميق، والشبكات العصبية وغيرها من المفاهيم، وتكامل بين الشرح النظري والتطبيق العملي من خلال مشاريع حقيقية تتوافق مع احتياجات سوق العمل، كما تمنحك شهادة معتمدة تعزز حصولك على فرصة عمل مناسبة خلال زمن قياسي. الخلاصة تحدثنا في مقال اليوم عن أهم مصطلحات الذكاء الاصطناعي وأكثرها شهرة، فبدأنا بالحديث عن ماهية الذكاء الاصطناعي ومجالاته، ثم انتقلنا للحديث عن بعض تطبيقاته، وكذلك عرفنا مصطلحات تتعلق بتحديات تطبيق واستخدام الذكاء الاصطناعي من هلوسةٍ وتحيز وقابلية للشرح والتفسير، وننوه في الختام لأن فهم هذه مصطلحات الذكاء الاصطناعي هذه لم يعد حكرًا على التقنيين والمتخصصين في المجال، بل أصبح ضرورة لكل شخص يسعى لمواكبة التطور التقني. وإذا كان لديك التباسٌ في فهم أي مصطلح من مصطلحات الذكاء الاصطناعي لا تتردد في السؤال حوله في قسم التعليقات أسفل المقال. اقرأ أيضًا الذكاء الاصطناعي: دليلك الشامل لغات برمجة الذكاء الاصطناعي تعلم الآلة Machine Learning كيف تبدأ في مجال الذكاء الاصطناعي مستقبل الذكاء الاصطناعي
  4. يتصدر الذكاء الاصطناعي اليوم المشهد العالمي، وذلك لأسبابٍ عدة من بينها دخول أدواته وتقنياته في شتى المجالات، ومنها أيضًا أنَّ المجال صار متاحًا للعامة بعدما كان حكرًا على الباحثين والمتخصصين، مما حفز الكثيرين على لدراسة هذا المجال المتطور الذي تزداد أهميته يومًا بعد يوم. في مقال اليوم سنوضح لك ما هو الذكاء الاصطناعي؟ وما طريقة دراسة الذكاء الاصطناعي والعمل فيه؟ وكيف تتعلم الذكاء الاصطناعي من الصفر حتى الاحتراف ما هو الذكاء الاصطناعي؟ يعرف الذكاء الاصطناعي بأنه قدرة الآلة على أداء مجموعة من الوظائف المعرفية المشابهة للوظائف البشرية كالإدراك والتفكير والتعلم والإبداع وحل المشكلات، وقد تطور الذكاء الاصطناعي اليوم على نحو غيرمسبوق وصارت تقنيات الذكاء الاصطناعي وأدواته وتطبيقاته تستخدم في العديد من المجالات وتساعد الأفراد والشركات على حدٍ سواء، فهي تساعد الأفراد على توفير الوقت والجهد وزيادة الإنتاجية بتنفيذ المهام الروتينية بدلًا عنهم، كما تساعد الشركات على رفع مستوى الكفاءة والإنتاجية وزيادة معدل الأرباح، هذا زاد الطلب على المتخصصين في مجال الذكاء الاصطناعي من جهة وزاد من أهمية دراسة الذكاء الاصطناعي من جهة أخرى. إيجابيات دراسة الذكاء الاصطناعي تتعدد إيجابيات دراسة الذكاء الاصطناعي والعمل فيه، ومنها أبرزها نذكر: إن نمو مجال الذكاء الاصطناعي يومًا بعد الآخر توسع تقنياته وتكامله مع تخصصات ومجالاتٍ أخرى عديدة مثل الطب والمواصلات والاقتصاد والترفيه وغيرها، جعله مجالًا آمنًا تعلو فيه فرص التوظيف ودفع الكثير للتوجه نحو دراسته للتآلف مع هذه التقنيات وفهم آلية عملها. توفر دراسة الذكاء الاصطناعي الكثير من فرص العمل في السوق العالمي والعربي، ورغم ما وصل إليه مجال الذكاء الاصطناعي من تطور كبير إلا أنَّه لا يزال في بداياته ولازال عدد دارسيه قليلًا نسبيًا وبالتالي فإن سارعتَ وسابقتَ إلى تعلمه ودراسته الآن ستتاح لك الكثير من الفرص الواعدة والمميزة في المستقبل حينما يزداد المجال توسعًا وطلبًا. تتميز دراسة الذكاء الاصطناعي بالمرونة إذ لا يحتاج مهندس الذكاء الاصطناعي لتأدية مهامه إلا حاسوبه واتصالًا بالإنترنت، وهذا يجعل العمل عن بعد متاحًا في هذا المجال ويوفر لدارسي الذكاء الاصطناعي مرونةً كبيرةً في العمل في أي زمان ومكان. تحديات دراسة الذكاء الاصطناعي لا تخلو دراسة الذكاء الاصطناعي من بعض التحديات من بينها: يعد تخصص الذكاء الاصطناعي من المجالات التقنية المتقدمة والصعبة نسبيًا وهو مرتبط بشكل وثيق بالعديد من المجالات العلمية كالرياضيات والإحصاء وعلوم الحاسوب وعلم البيانات وصولًا إلى علم الأعصاب في تخصصات دقيقة مثل صناعة الروبوتات. ينمو تخصص الذكاء الاصطناعي بشكل مستمر وعلى الرغم من كون النمو المستمر يعد أحد الجوانب الإيجابية لهذا التخصص إلا أنه يتطلب من دراس الذكاء الاصطناعي أن يتعلم كثيرًا وباستمرار نظرًا للتغير المتسارع والمتواصل في المجال وتقنياته، فإن تقاعس متخصص الذكاء الاصطناعي عن مواصلة التعلم فحتمًا سيكون مصيره التقادم والاستغناء عن خدماته. مجالات الذكاء الاصطناعي يعد الذكاء الاصطناعي مجالًا واسعًا ويتضمن تعلمه العديد من التخصصات والمجالات الفرعية، ومن أهم هذه المجالات: تعلم الآلة Machine Learning التعلم العميق Deep Learning معالجة اللغات الطبيعية Natural Language Processing لنتعرف أكثر على كل تخصصٍ على حدة وما المفاهيم التي ستتعلمها فيه. تعلم الآلة Machine Learning يهتم تخصص تعلم الآلة Machine Learning أو ML اختصارًا بتطوير خوارزميات حاسوبية تساعد الآلات على التطور والتحسن تلقائيًا باستخدام البيانات، حيث تساعد هذه الخوارزميات الذكية الحواسيب أو الآلات عمومًا على إنجاز مهام مثل تحليل البيانات والتعلُّم منها واتخاذ قرارات بناءً على هذه التحليلات دون الحاجة إلى تدخل برمجي من المطورين. يكمن الفرق بين تعلم الآلة والبرمجة التقليدية أنَّ البرمجة التقليدية تعتمد على اتباع الحاسوب لمجموعة من الأوامر المتتالية حتى يصل إلى النتيجة النهائية بناءً على هذه الأوامر، أمَّا في تعلم الآلة فيمنح المطورُ للخوارزمية مجموعة ضخمة من البيانات ويمنحها النتائج التي يجب الوصول إليه من هذه البيانات، لتبدأ الخوارزمية في التجربة والتدرب حتى تصل إلى النتيجة المناسبة،. على سبيل المثال لتطوير برنامج ذكي يميز صور القطط باستخدام تعلم الآلة فلن نمنحه المواصفات العامة للقطة، وإنما سنمنحه صورًا لآلاف القطط ليتعلم منها بنفسه مواصفات القطة، ثم يكون قادرًا على التعرُّف على القطط بعد ذلك، وتزداد دقة خوارزميات تعلم الآلة كلما ازداد حجم ودقة البيانات المعطاة لها. التعلم العميق Deep Learning يعد التعلم العميق Deep Learning أو DL اختصارًا فرعًا حيويًا من تعلم الآلة، ويركز هذا المجال على تنفيذ خوارزميات تمكن الآلة من محاكاة طريقة عمل العقل البشري في فهم ومعالجة النصوص واللغات والصور وغيرها من أنواع البيانات. يكمن الفرق بين التعلم العميق وتعلم الآلة هو أن التعلم العميق يستخدم هيكلًا معقدًا من الخوارزميات المعقدة التي تحاكي طريقة عمل دماغنا البشري والشبكات العصبية، لاكتشاف الأنماط في البيانات كما أنه يحتاج بيانات أكثر لتحسين دقته، في حين يستخدم تعلم الآلة خوارزميات قادرة على التعلم من البيانات المنظمة لاكتشاف الأنماط في تلك البيانات التنبؤ بالمخرجات دون برمجتها بشكل صريح. معالجة اللغات الطبيعية Natural Language Processing معالجة اللغة الطبيعية Natural Language Processing أو NLP اختصارًا هي تخصص مهم في دراسة الذكاء الاصطناعي حيث تركز على فهم وتحليل النصوص وبيانات الكلام البشري ويمكنها التعامل مع الفروقات في اللهجات والكلمات العامية والاختلافات النحوية، وقد اشتهرت تطبيقات هذا الفرع من الذكاء الاصطناعي كثيرًا في الآونة الأخيرة، ولعل أبرزها روبوتات الدردشة Chatbot مثل شات جي بي تي ChatGPT، وأدوات الترجمة وتلخيص النصوص بالذكاء الاصطناعي. ما هي مواد تخصص الذكاء الاصطناعي؟ بعد أن تعرفنا على تخصصات الذكاء الاصطناعي لنتعرف على أبرز المواد التي عليك تعلمها لدراسة الذكاءالاصطناعي والتي تشمل: الرياضيات Mathematics لغات برمجة وأطر عمل الذكاء الاصطناعي علم البيانات Data Science خوارزميات الذكاء الاصطناعي AI Algorithms خدمات الذكاء الاصطناعي AI Services أمان الذكاء الاصطناعي AI Security ديف أوبس DevOps (اختياري) لنعرف مزيدًا من التفاصيل عن كل مقرر من هذه المقررات وما الأساسيات التي عليك تعلمها خلال دراستها. الرياضيات Mathematics يحتاج مهندس الذكاء الاصطناعي لدراسة أسس الرياضيات ومفاهيم التفاضل والتكامل والجبر الخطي والإحصاء، فمصطلحات هذه الفروع مستخدمة بكثرة في الذكاء الاصطناعي، وهي مصطلحاتٌ ضروريةٌ لحل مشكلات الذكاء الاصطناعي وفهم تطبيقاته المتنوعة، لذا تعد دراسة الرياضيات وفروعها ضمن المهارات الأساسية والضرورية لأي متخصص في الذكاء الاصطناعي. لغات البرمجة وأطر عمل الذكاء الاصطناعي لدراسة الذكاء الاصطناعي ستحتاج لأن تستخدم لغات البرمجة في كتابة الخوارزميات وتطوير التطبيقات الذكية وهذا يجعل من دراسة البرمجة والخوارزميات والتفكير المنطقي أحد أهم مواد ومهارات مهندس الذكاء الاصطناعي. ولغات البرمجة كثيرة ومتنوعة ومن أشهر لغات البرمجة التي ينصح بها لدراسة الذكاء الاصطناعي نرشح ما يلي: بايثون Python: تعد بايثون أبرز لغات الذكاء الاصطناعي، وذلك نظرًا لسهولتها واحتوائها على كثيرٍ من المكتبات وأطر العمل المميزة في هذا المجال مثل مكتبة تينسر فلو TensorFlow وإطار عمل باي تورش PyTorch. لغة سي بلس بلس C++‎: تتميز لغة C++‎ بسرعة ادائها وهي لغة مميزة في إدارة العتاد الحاسوبي، وتصلح لكتابة خوارزميات متطورة عالية الكفاءة، ما يجعلها خيارًا مميزًا في مشاريع الذكاء الاصطناعي المعقدة مثل مشاريع الرؤية الحاسوبية. لغة جافا Java: يشيع استخدام لغة جافا في دراسة الذكاء الاصطناعي، ولا سيما في تطبيقات المعالجة اللغوية ومشاريع روبوتات الدردشة، وتتميز بقابليتها للتوسع وقدرتها على معالجة أحجام ضخمة من البيانات والإدارة الجيدة للعتاد. لغة R تبرز لغة R في العديد من التطبيقات كالتحليل الإحصائي وتحليل البيانات والتمثيل الرسومي، ما يجعلها تلعب دورًا مهمًا في تطوير تطبيقات الذكاء الاصطناعي وأدوات البحث العلمي والتحليل الاقتصادي وتحليلات وسائل التواصل الاجتماعي. علم البيانات Data Science يقوم مجال الذكاء الاصطناعي على البيانات والتعلم منها واستخراج العلاقات بين البيانات وبناء القرارات عليها، ما يوجب على المهتمين بدراسة الذكاء الاصطناعي فهم علم البيانات، التي تضم بدورها مجالاتٍ فرعية عديدة، وأهمها: نمذجة البيانات Data Modelling وتعني جمع البيانات وتنقيحها وتنسيقها لتكون جاهزةً للتحليل والاستخدام، كما يحتاج المتخصص في الذكاء الاصطناعي لفهم لتعامل مع قواعد البيانات وأدواتٍ مثل Apache Spark وHadoop. تحليل البيانات Data Analysis: واستخراج إحصاءات واستنتاجات مفيدة منها، ويتعلم متخصص الذكاء الاصطناعي التعامل مع أدواتٍ مثل: SparkSQL وApache Flink، كما يتعلم أهم مبادئ تحليل البيانات الضخمة Big Data. خوارزميات الذكاء الاصطناعي AI Algorithms يعد فهم خوازرميات الذكاء الاصطناعي مثل خوارزميات تعلم الآلة أمرًا ضروريًا خلال دراسة الذكاء الاصطناعي، ويتضمن ذلك معرفة أنواع خوازرميات تعلم الآلة مثل خوارزميات التعلم الخاضع للإشراف Supervised Learning وخوارزميات التعلم غير الخاضع للإشراف Unsupervised Learning وتعلم خوارزميات التعلم العميق، مثل الشبكات العصبية التلافيفية Convolutional Neural Networks (CNNs)‎ والشبكات العصبية المتكررة Recurrent Neural Networks (RNNs)‎ وغيرها من الخوارزميات المتنوعة وما ومتى نستخدم كل نوع منها. خدمات الذكاء الاصطناعي AI Services يفيد التعامل مع أدوات الذكاء الاصطناعي القائم على السحابة Cloud-Based AI وخدمات تعلم الآلة ML Services كذلك في دراسة الذكاء الاصطناعي ولا سيما الأدوات المقدمة من كبار مقدمي الخدمات، مثل Azure ومنصة جوجل السحابية، إذ توفر هذه الخدمات مجموعة من الأدوات وواجهات برمجة تطبيقات APIs ونماذج ذكاء اصطناعي جاهزة توفر كثيرًا من الوقت والجهد وتجعل من عمليات تطوير التطبيقات الذكية أسهل وأسرع. أمان الذكاء الاصطناعي AI Security من أساسيات دراسة الذكاء الاصطناعي الاهتمام بأمور سلامة وتأمين البيانات، ذلك لأن مجال الذكاء الاصطناعي كله قائم على البيانات المستخدمة في تدريب النماذج والخوارزميات، لذا المهم أن يقع تأمين بيانات المستخدمين على رأس أولويات خبير الذكاء الاصطناعي. ديف أوبس DevOps ليس بالضرورة أن يتعلم مهندس الذكاء الاصطناعي ديف أوبس، فغالبًا ما يكون هناك مهندس ديف أوبس متخصص في مقر العمل، ولكن يُفضَّل التعرف على أساسيات هذا المجال ليتمكن من نشر تطبيقات الذكاء الاصطناعي بنجاح. كيف أتعلم الذكاء الاصطناعي؟ لديك خياران متاحان لتعلم ودراسة الذكاء الاصطناعي، إمَّا الدراسة الجامعية لتخصص الذكاء الاصطناعي والتي تتميز بالمنهجية الواضحة وتلزمك بالمتابعة والاستمرارية، لكن يعيبها طول مدة الدراسة ودراسة مواد نظرية مملة لن تفيدك في عملك الحقيقي، والطريقُ الثاني هو الدراسة الذاتية المستقلة لمجال الذكاء الاصطناعي من دروس ومقالات ودورات عبر الإنترنت تتعلم من خلالها أهم المواد والمقررات المطلوبة لفهم التخصص، ويتميز هذا الطريق بالتركيز على سوق العمل وقِصَر مدة الدراسة نسبيًا، ولكن من تحدياته الرئيسية صعوبة الالتزام والانضباط. إذا كنت مهتمًا بدارسة الذكاء الاصطناعي من الصفر حتى الاحتراف، ستساعدك دورة الذكاء الاصطناعي من أكاديمية حسوب في طريقك في الدراسة الذاتية بمنهجٍ شامل وفريد عربيًا ومُحدَّثٍ حسب احتياجات سوق العمل، كما تساعدك على الانضباط والمتابعة والتعلم المستمر وتوفر لك مدربين أكفاء يساعدونك في رحلة تعلمك ويجيبون على أي تساؤول ويشرحون لك أي فكرة لا تستطيع فهمها. كما ستجد في أكاديمية حسوب العديد من مصادر التعلم المفيدة التي تعينك على دراسة الذكاء الاصطناعي من دروس ومقالات تنشر بصورة دورية، إلى جانب كتب الذكاء الاصطناعي الشاملة المتاحة للتحميل مجانًا، وإذا كنت مشتتًا ولا تعرف من أين تبدأ أنصحك بالبدء من صفحة تعلم الذكاء الاصطناعي الشاملة التي توفر لك كل الإرشادات والنصائح التي تحتاجها. الأسئلة الشائعة حول دراسة الذكاء الاصطناعي نختم المقال بأهم الأسئلة حول دراسة الذكاء الاصطناعي والفرق بينه وبين المجالات القريبة منه. ما عدد سنوات دراسة الذكاء الاصطناعي؟ تأخذ الدراسة الجامعية لتخصص الذكاء الاصطناعي أربع سنوات في غالبية الجامعات، أما الدراسة الذاتية للمجال فتعتمد على عوامل عديدة، منها: خبراتك السابقة والتخصص الفرعي المختار والوقت الذي تخصصه للدراسة، فلا يمكن تحديد مدة محددة لإتقان الأساسيات، ولكن على كل حال تشير بعض المقالات إلى أنَّ متوسط مدة تحصيل أساسيات المجال تقع بين ستة أشهر إلى اثني عشر شهرًا. هل دراسة الذكاء الاصطناعي صعبة؟ ربما يكون تخصص الذكاء الاصطناعي صعبًا نسبيًا، ولا سيما لمن لا يملك خبراتٍ برمجيةٍ سابقة، ولكن مع التعلم المستمر من المصادر الصحيحة والممارسة والتطبيق يمكنك أن تتقن المجال وتصبح ماهرًا فيه، واحرص على التأسيس القوي في البرمجة وعلم البيانات وخوارزميات تعلم الآلة، فهي عواميدُ المجال. أيهما أفضل: تعلم الذكاء الاصطناعي أم البرمجة؟ يحتاج مهندسُ الذكاء الاصطناعي إلى دراسة البرمجة، بل والتعمُّق فيها وفهمها جيدًا، للتمكُّن من تطوير برمجيات ذكاءٍ اصطناعي، أمَّا عن التفضيل بين الذكاء الاصطناعي ووظائف البرمجة التقليدية فلا يمكن التفضيل بين مختلفين، فللذكاء الاصطناعي تطبيقاته وحالات استخدامه وكذلك البرمجة التقليدية واختيار مجال التخصص التقني يعتمد على تفضيلاتك الشخصية والمجال الذي تجد شغفك فيه في المقال الأول. ما الفرق بين الذكاء الاصطناعي وهندسة الروبوتات؟ يدخل الذكاء الاصطناعي في تطوير نظام تشغيل الروبوتات فقط، أمَّا هندسة الروبوتات فتهتم ببناء عتاد الروبوت وضبط حركاته، ثم يأتي دور الذكاء الاصطناعي في تحديد وظائف الروبوت ووضع خطوات لتنفيذ هذه الوظائف، فالذكاء الاصطناعي وهندسة الروبوتات مجالان مختلفان يتقاطعان في نقطة محددة، لكنهما يظلان مختلفين، فمهندسو الذكاء الاصطناعي يهتمون بالجانب البرمجي فقط، بينما يهتم مهندسو الروبوتات بالعتاد أولًا، ثم فيزياء وحركة هذا العتاد، وأخيرًا ربط هذا العتاد بنظام التشغيل البرمجي. ما الفرق بين الذكاء الاصطناعي وعلم البيانات؟ يقوم مجالا الذكاء الاصطناعي وعلم البيانات بشكلٍ رئيسيٍّ على البيانات، ولكن تختلف أهدافهما، فيهدف الذكاء الاصطناعي إلى تطوير الآلات من خلال منحها هذه البيانات وتمكينها من تحليلها والتعلم منها، بينما يهدف علم البيانات إلى استخدام الخوارزميات والإحصاء للخروج بنتائج مفيدة من مجموعة من البيانات المنظمة. ما الفرق بين دراسة الذكاء الاصطناعي والأمن السيبراني؟ يختلف الذكاء الاصطناعي عن الأمن السيبراني إذ يركز متخصص الذكاء الاصطناعي على تطوير أنظمة ذكية تحاكي العقل البشري في التعلم وحل المشكلات، بينما يركز متخصص الأمن السيبراني على تأمين التطبيقات والأنظمة والشبكات والبيانات من محاولات الاحتيال والاختراق. لكن في الآونة الأخيرة بدأ مجالا الذكاء الاصطناعي والأمن السيبراني يتكاملان معًا بشكل جليَ، فبدأ مهندسو الأمن السيبراني في استخدام تقنيات الذكاء الاصطناعي لأتمتة الكشف عن التهديدات، وكذلك استخدم مهندسو الذكاء الاصطناعي تقنيات الأمن السيبراني لتأمين برمجيات الذكاء الاصطناعي وبيانات تدريب النماذج الذكية. اقرأ أيضًا تعلم الذكاء الاصطناعي مجالات الذكاء الاصطناعي تعرف على أفضل دورات الذكاء الاصطناعي علم البيانات Data science: الدليل الشامل برمجة الروبوت: الدليل الشامل فوائد الذكاء الاصطناعي
  5. ازداد الإقبال على الألعاب ومجالات الترفيه في الآونة الأخيرة بين أوساط المستخدمين، وهو يزداد يومًا بعد الآخر لاسيما بعد انتشار ألعاب الجوال التي سهلت عملية الوصول للألعاب والتسلية بها، واليوم تعد صناعة الألعاب صناعة رائجة ومربحة وتُقام لها مسابقاتٌ بأموالٍ طائلة، وهذا زاد من الطلب على مبرمجي الألعاب ورفع من فرصهم التوظيفية، وفي مقال اليوم نشرح لكم ما هي برمجة الألعاب؟ وما أهم تقنياتها؟ وما مراحل برمجة لعبة إلكترونية؟ ما هي برمجة الألعاب؟ تعد برمجة الألعاب واحدة من أهم تخصصات البرمجة، وهي مرحلة هامة في صناعة الألعاب الإلكترونية تأتي بعد العديد من المراحل السابقة بدءًا من وضع فكرة اللعبة وكتابة قصتها وتحديد شخصياتها وقواعدها، مرورًا بتصميم اللعبة ثم برمجتها وكتابة المنطق البرمجي اللازم لتحويلها من فكرة وتصماميم إلى لعبة فعلية يمكن لعبها، وصولًا إلى إصدارها للمستخدمين وإتاحتها للتحميل على المتاجر المخصصة وتحديثها وصيانتها بصورة مستمرة. تعرف برمجة الألعاب بأنها عملية كتابة الكود البرمجي اللازم لعمل الألعاب الإلكترونية باستخدام مجموعة متنوعة من التقنيات ولغات البرمجة، وهي تتطلب إلى جانب توفر المهارات التقنية لوجود معرفة جيدة بالرياضيات مثل الأشعة الرياضية والرسوم المتجهة، والجبر الخطي، وفهمًا جيد لتصميم الألعاب وأنواعها كالألعاب ثنائية الأبعاد 2D وثلاثية الأبعاد 3D، وامتلاك مهارات إبداعية وتفكير منطقي لإنشاء ألعاب احترافية وحل مشكلاتها وصناعة ألعاب محببة يمكن اللعب بسلاسة واستمتاع. أهمية برمجة الألعاب لا تقتصر أهمية برمجة الألعاب على الترفيه والتسلية، وإنما تتعدد فوائدها وتمتد إلى مجالاتٍ أخرى، وإليك قائمة توضح أهم هذه الفوائد: تسهيل التعليم: دخلت الألعاب إلى عملية التعليم وزادت الألعاب التعليمية زيادةً ملحوظة في الآونة الأخيرة، فنجد لُعَبًا لتعليم البرمجة، مثل: سكراتش ومايكروسوفوت ميك كود، ويوجد ألعابٌ لتعليم اللغات المختلفة، وألعابٌ أخرى لتعليم مبادئ الرياضيات والفيزياء. تطوير القدرة على الإبداع وحل المشكلات: تحفز غالبية الألعاب الفرد على ابتكار طرق جديدة للتفوق على أقرانه في اللعبة، مما يزيد من قدراته الإبداعية والابتكارية، وكذلك أثناء ابتكار هذه الطرق تواجهه مشكلات عديدة يسعى لحلها، فتتطور عنده مهارة حل المشكلات. تنمية المهارات الناعمة: باتت كثيرٌ من الألعاب تعتمد على تشكيل الفرق واللعب ضمن مجموعات، ما يساعد على تنمية مهارات التعاون والتواصل والقيادة وغيرها. ولمطالعة المزيد من المعلومات حول أهمية برمجة الألعاب وأهم النصائح التي تساعدك لتصبح مطور ألعاب محترف، ننصحك بمطالعة مقال تعرف على أهمية صناعة الألعاب الإلكترونية. ما لغات برمجة الألعاب الإلكترونية؟ تكثر لغات برمجة الألعاب الإلكترونية، ويشتهر منها أربع لغات: سي بلس بلس⁦ C++ سي شارب #C⁦ جافا Java بايثون Python يعتمد اختيار اللغة البرمجية المناسبة لبرمجة الألعاب على متطلباتك وطبيعة اللعبة التي تطورها، لنتعرف على المزيد من المعلومات عن كل لغة من هذه اللغة، وأبرز مزايا وعيوب استخدامها في برمجة الألعاب. سي بلس بلس ++C⁦ تعد سي بلس بلس إحدى أهم لغات البرمجة في مجال برمجة الألعاب، إذ لديها قدرة قوية على إدارة الذاكرة والعتاد بكفاءة، كما تتميز الألعاب المطورة باستخدام سي بلس بلس بالسرعة والأداء المرتفع، وكذلك تحظى لغة سي بلس بلس بدعم واسع من محركات الألعاب المختلفة، ما يجعلها لغة مميزة في برمجة الألعاب الثقيلة والمعقدة، ولا يعيب سي بلس بلس سوى صعوبة تعلمها وطول الوقت المتوقع للانتهاء من برمجة لعبة. سي شارب #C⁦⁦ تتشابه لغة البرمجة سي شارب في مميزاتها مع لغة سي بلس بلس، من سرعة إلى إدارة مميزة للعتاد ودعم واسع من مختلف محركات الألعاب، إلا أن سي شارب تعد أقل تعقيدًا وأسرع تعلمًا من سي بلس بلس، ما يجعلها خيارًا مناسبًا للمبتدئين في برمجة الألعاب، وكذلك تعد لغة سي شارب متعددة المنصات؛ أي يمكن باستخدامها برمجة ألعاب لأنظمة تشغيل الحواسيب وأنظمة تشغيل الهواتف سواءً. جافا Java تشتهر لغة جافا في برمجة ألعاب نظام تشغيل أندرويد، وتتميز الألعاب المبنية على لغة جافا بالقدرة الهائلة على التوسع وتحمل الزيادة المستمرة في أعداد المستخدمين دون حدوث أعطال في اللعبة، وكذلك توفر لغة جافا أدواتٍ مميزة للتعامل مع الرسوم Graphics والرسوم المتحركة Animations، ما يساعد المطور على برمجة ألعاب معقدة بصريًا بسهولة. بايثون Python لعل ما يميز بايثون في مجال برمجة الألعاب هو سهولتها، ولذلك تُستخدم لغة بايثون في برمجة الألعاب البسيطة الخالية من التعقيدات الرسومية، وكذلك تُستخدم بايثون للنمذجة الأولية للألعاب المعقدة قبل الشروع في تطويرها باستخدام لغة أخرى. ما أهم التقنيات المستخدمة في برمجة الألعاب؟ إلى جانب لغات البرمجة التي شرحناها سابقُا، هناك العديد من التقنيات التي يتوجب على مبرمجي الألعاب معرفتها وتعلم استخدامها وأبرز هذه التقنيات: محركات الألعاب Game Engines برامج التصميم أو النمذجة ثلاثية الأبعادوالتحريك 3D Modeling and Animations برامج تصميم رسومات البكسل Pixel Art محركات الألعاب Game Engines تعد محركات الألعاب بيئات مجهزة لتطوير وتشغيل الألعاب، وتضم مجموعة من المحركات الأخرى، مثل: محرك الفيزياء الذي يساعد المبرمج على محاكاة الحركات الحقيقية في اللعبة، ومحرك الرسوم الذي يعالج الرسوم ثنائية الأبعاد وثلاثية الأبعاد في اللعبة، ومحرك الصوت المسؤول عن معالجة التأثيرات الصوتية في اللعبة، ومحرك الرسوم المتحركة، وغيرها من المحركات. لعل أبرز فوائد محركات اللعبة هي تسهيلها لعملية برمجة الألعاب وتوفيرها للكثير من الوقت على المبرمج، إذ كانت هذه العملية قبلًا شديدة التعقيد، ولكن بفضل محركات اللعبة صارت عملية سهلة وزادت إمكانيات الألعاب من رسوم وأداء وغيرها، ومن أشهر محركات الألعاب نذكر محرك يونتي Unity ومحرك أن ريل Unreal Engine ومحرك الألعاب جودو Godot. برامج التصميم أو النمذجة ثلاثية الأبعاد والتحريك 3D Modeling and Animations تشير النمذجة ثلاثية الأبعاد إلى عملية التمثيل المرئي للأبعاد الثلاثة وهم الطول والعرض والارتفاع لعنصرٍ في اللعبة باستخدام النقاط والخطوط والمضلعات، مثل: تمثيل إحدى شخصيات اللعبة مرئيًا على هيئة رسم ثلاثي الأبعاد، كما تتضمن نمذجة تحريكات العناصر، علي سبيل المثال نمذجة تحريك النباتات حول الشخصية أثناء سيرها، أو نمذجة سير الشخصية نفسها. تتضمن عملية النمذجة ثلاثية الأبعاد تحديد حجم الكائن أو العنصر وهيئته وتحديد طريقة حركته وتناغمه مع باقي عناصر اللعبة، ويعد التصميم ثلاثي الأبعاد مهمًا لزيادة واقعية اللعبة وتحسين رسومها وجاذبيتها، ومن أشهر البرمجيات المستخدمة في هذه العملية: برنامج Blender وAutodesk. برامج تصميم رسومات البكسل Pixel Art يعد فن البكسل فنًا رقميًا يستخدم في العديد من المجالات ومن ضمنها رسومات الألعاب، إذ يعمل مصمم رسوم البكسل على تصميم الصورة أو الرسم على مستوى البكسل، وهو الوحدة الأصغر من مكونات الصورة ويستخدمون فيها عددًا محددًا من الألوان، ولتبيين هذا المفهوم بدقة أكبر انظر الصورة التالية: ولعل أبرز لعبة مبنية على هذا النوع من الرسوم هي لعبة ماين كرافت الشهيرة، ومن أشهر برامج تصميم فن البكسل نذكر برنامج Aseprite وبرنامج PyxelEdit. وللتنويه لا يحتاج مبرمجو الألعاب لإنشاء رسومات البكسل بأنفسهم فهناك العديد من المواقع التي توفر مكتبات مجانية أو مدفوعة من رسومات البكسل التي يمكن استيرادها إلى محركات الألعاب والبدء بكتابة المنطق البرمجي الخاص بها. ما مراحل برمجة لعبة فيديو؟ تتضمن عملية برمجة لعبة فيديو عديدًا من المراحل، منها: التخطيط: تبدأ عملية برمجة لعبة فيديو بالتخطيط لها، وتبدأ عملية التخطيط بابتداع فكرة ثم تطوير هذه الفكرة، كما تضم مرحلة التخطيط عملية تحديد نوع اللعبة؛ هل هي لعبة رعب أم حرب أم رياضة أو غيرها؟ وتضم أيضًا تحديد طراز اللعبة؛ ثنائية الألعاب كانت أو ثلاثية الأبعاد، وكذلك تتضمن تحديد محرك الألعاب ولغة البرمجة والتقنيات التي ستستخدمها لبرمجة اللعبة. ما قبل التطوير: تضم هذه المرحلة خطوات عديدة، فمنها مثلًا كتابة قصة اللعبة وخلق عالمها وشخصياتها وتحديد صفات كل شخصية، ومنها أيضًا النمذجة الأولية للعبة وإنشاء تصاميم أولية لأشكال الشخصيات، وكذلك تحديد أسلوب التصميم والألوان المستخدمة في اللعبة حسب القصة ونوع اللعبة. التطوير: تعد المرحلة الأهم والأطول في عملية برمجة لعبة فيديو، ويعمل خلالها المطور على كتابة شيفرات اللعبة وتحويل التصاميم الأولية إلى لعبة حقيقية، كما يعمل فنانو الصوت على تسجيل الحوارات بين الشخصيات، ويعمل المصممون على تصميم الرسوم المتحركة للعبة، ويعمل مصممو الصوت على إضافة التأثيرات الصوتية للعبة، ثم تُجمع هاته الإبداعات المختلفة معًا عبر محرك اللعبة لتكون اللعبة جاهزة للاختبار. الاختبار: يُختبر في هذه المرحلة جميع أجزاء اللعبة، بدءًا من الشيفرات لاستخراج الثغرات الأمنية وتنقيحها، مرورًا بالأداء لتحسينه وتحسين تجربة المستخدم الكلية، وصولًا إلى تناغم الأجزاء المختلفة من اللعبة عمومًا مع بعضها، وكذلك تُختبر مدى صعوبة اللعبة، وغيرها من الأجزاء المختلفة في اللعبة، ثم تُجمَع الأخطاء المكتشفة وتُنقَّح قبل إطلاق اللعبة. ما قبل الإطلاق: تتضمن هذه المرحلة التسويق للعبة وكتابة إعلانات تسويقية عنها، كما تتضمن إطلاق نسخة مبدئية للعبة لتجربتها والحصول على آراء أولية قبل الإطلاق الرسمي لها، ما يساعدك على تحسين اللعبة وإطلاقها في أفضل هيئة لها. الإطلاق: أصبحت اللعبة جاهزة وحان موعد الإطلاق؛ في هذه المرحلة تنشر اللعبة على المنصات المخطط لها، ولكن لم تنتهِ المراحل بعض فلا تزال اللعبة تحتاج تحديثاتٍ. التحديث: لا تنتهي هذه المرحلة أبدًا، إذ تستمر في إصدار التحديثات تحديثًا بعد الآخر لإضافة مميزات جديدة تزيد من متعتها وتُحسِّن من تجربة المستخدم، كما تسد الثغرات والمشكلات المكتشفة بعد إطلاق اللعبة. إذا كنت مهتمًا بدخول عالم تطوير الألعاب فقد وفرت لك أكاديمية حسوب دورة تطوير الألعاب لتحويل شغفك إلى مهارة عملية. ستتعلم في هذه الدورة كيف تبني ألعابك الخاصة باستخدام محرك الألعاب جودو Godot، وستتقن برمجة الألعاب وتطور شخصيات ألعاب تتفاعل مع بعضها بذكاء وإبداع. دورة تطوير الألعاب ابدأ رحلة صناعة الألعاب ثنائية وثلاثية الأبعاد وابتكر ألعاب ممتعة تفاعلية ومليئة بالتحديات. اشترك الآن ما الفرق بين برمجة ألعاب الجوال وبرمجة ألعاب الحاسوب؟ تتعدد الفروق بين برمجة ألعاب الجوال وبرمجة ألعاب الحواسيب، ومن أهمها: الإمكانيات: يفوق عتاد الحواسيب عتاد الجوالات قوةً وقدراتٍ، ما يزيد من إمكانيات ألعاب الحواسيب، بدءًا من الرسوم فتكون رسوم ألعاب الحواسيب أكثر تعقيدًا، مرورًا بالأداء المرتفع لألعاب الحواسيب، وصولًا إلى توسعية اللعبة وحجم بياناتها وتعقيدها. محركات الألعاب: تكثر محركات ألعاب الحواسيب وتتفوق على محركات ألعاب الجوال في المواصفات والإمكانات، ومن أشهرها: محرك الألعاب Unreal Engine ومحرك CryEngine، بينما يعد Unity محرك الألعاب الأشهر في برمجة ألعاب الجوال. التكلفة: تعد تكلفة تطوير لعبةٍ للحاسوب أكثر من تكلفة تطوير لعبة للجوال، إذ تتضمن ألعاب الحاسوب تعقيداتٍ أكثر وتأخذ أوقاتًا أطول لبرمجتها من ألعاب الجوال. الخاتمة استكشفنا في مقال اليوم عالم برمجة الألعاب الإلكترونية وحظينا بنظرةٍ شاملةٍ عن ماهيتها وتعرفنا على مجموعة متنوعة من لغات البرمجة المستخدمة في تطوير الألعاب، مع تسليط الضوء على مميزات كل لغة وأهم تقنياتها ومحركاتها، ومراحل تطوير لعبة والفرق بين برمجة ألعاب الجوال وبرمجة ألعاب الحاسوب. وختامًا إذا كنت مهتمًا بمجال برمجة الألعاب ننصحك بأن تبدأ رحلتك في تطوير الألعاب بخطوة صحيحة من خلال تحديد متطلبات اللعبة التي تود صناعتها واختيار اللغة ومحرك الألعاب المناسب، والاستمتاع في تنفيذ أفكارك الإبداعية وتحويلها للعبة مميزة مليئة بالتحديات والإنجازات. اقرأ أيضًا ألعاب الفيديو: تطورها وأهميتها وخطوات برمجتها كيف تصبح مبرمج ألعاب فيديو ناجح تعرف على أهمية صناعة الألعاب الإلكترونية تعرف على أفضل برنامج تصميم الألعاب الإلكترونية أشهر أنواع الألعاب الإلكترونية
  6. يتساءل كل مبتدئ في البرمجة ما هي برامج البرمجة وما أهم البرمجيات التي أحتاجها لتعلم كتابتها بصورة صحيحة، فإذا كنت في المراحل الأولى من تعلم البرمجة ولا تعلم أين تكتب الشيفرات أو الأكواد البرمجية الخاصة بك ولا كيف تنفذها بعد كتابتها وترى نتائج عملية التنفيذ، ولا تدري كيف تتحقق من أدائها ومدى أمانها، ننصحك بأن تقرأ هذا المقال حيث نستعرض فيه أهم برامج البرمجة المستخدمة بكثرة خلال العمل على تطوير التطبيقات وكتابة الشيفرات بكفاءة وسرعة. ما هي برامج البرمجة؟ تعد برامج البرمجة مجموعةً من الأدوات التي يستعملها المبرمج لتطوير تطبيقات برمجية مختلفة بسرعة وفعالية، ولبرامج البرمجة استخداماتٌ عديدة، فهي تساعد المطور على كتابة الكود البرمجي وتقدم له مميزات وخيارات عديدة لتسريع عمله مثل ميزة الاستكمال التلقائي للشيفرات، وكذلك تساعده على أتمتة المهام المتكررة، مثل أتمتة اختبارات الأمان والأداء، كما تساعده على كشف وإحصاء أخطاء الشيفرات البرمجية وتنقيحها ما توفر عليه الكثير من الوقت والجهد. فوائد برامج البرمجة تعد برامج البرمجة بالغة الأهمية على أصعدة عديدة، من أهمها: توفير وقت المبرمج: لعل توفير الوقت أبرز فائدة من استخدام برامج البرمجة، إذ تساعد هذه البرمجيات المطور على أتمتة مهام عديدة، وتوفر له قوالب جاهزة للوظائف البرمجية المستخدمة بكثرة، وكثيرًا من الخيارات والمميزات الأخرى التي سيلي ذكرها خلال المقال. زيادة القدرة على التوسع: تعمل بعض أنواع برامج البرمجة على مزامنة عمليات معالجة البيانات، وبالتالي تساعد هذه البرمجيات على زيادة كمية البيانات التي يمكن معالجتها في آنٍ واحد، ما يؤدي تبعًا إلى سهولة توسعة المواقع وتطوير البرمجيات وزيادة قدرتها على تحمُّل الأعداد الضخمة من المستخدمين. رفع فرص التوظيف: كلُّ برنامجٍ يتعلم المبرمج التعامل معه سيزيد من كفاءته ويعززفرصه في التوظيف، فهذه البرمجيات تساعد المبرمج على كتابة شيفرات أفضل وتسريع عملية التطوير، وهذا بالضبط ما يحتاجه أصحابُ الأعمال. أنواع البرامج المستخدمة في البرمجة تتفرع البرامج المستخدمة في البرمجة إلى أنواع عديدة، ولكل نوعٍ استخداماته، ومن أهم أنواعها: برامج تعلم البرمجة Programming Studying Programs المترجمات والمفسرات Compiler and Interpreter بيئات التطوير المتكاملة IDEs⁦ منقّحات الأخطاء Debuggers أنظمة التحكم في الإصدارات Version Control Systems برامج البرمجة المعتمدة على الذكاء الاصطناعي لنتعرف على كل نوع من هذه البرامج بمزيد من التفصيل. برامج تعلم البرمجة Programming Studying Programs لا نعني هنا التطبيقات والبرمجيات المخصصة لتدريس أو تعليم من خلال الدورات التعليمية والتدريب المستمر على كتابة الشيفرات التي تحل مشكلات معينة، ولكن نعني بها الأدوات والبرمجيات التعليمية التي تساعد المبتدئين على دخول تعلم البرمجة وفهم أساسياتها من خلال واجهات رسومية تعتمد على البلوكات أوالكتل التي يمكنك من خلالها تركيب الشيفرات بأسلوب سهل ومبسط وتعلم أساسيات البرمجة من خلالها ومن أبرز هذه البرامج سكراتش Scratch والذي يمكن أن يصنف كلغة برمجة مرئية مصممة بهدف تعلم مفاهيم البرمجة للطلاب في أعمار مبكرة ومساعدتهم في إنشاء ألعاب وقصص ورسوم متحركة ومواضيع تفاعلية تعليمية بطريقة محببة وسهلة وهذه البرامج تناسب المبتدئين بشكل كبير وسنشرح المزيد عنها لاحقًا. المُصرِّفات والمفسرات Compilers and Interpreters تحتاج لغات البرمجة عالية المستوى إلى برنامج حاسوبي لترجمة الشيفرات إلى لغة الآلة machine language كي يفهمها الحاسوب قبل تنفيذها، ويوجد نوعان رئيسيان من هذه البرمجيات: المُصرِّف Compiler: وهو برنامج يترجم الشيفرات أو الأكواد البرمجية كاملةً قبل تنفيذها، وما إذا كان في الشيفرات أخطاء فلن تُنفَّذ، وتتميز لغات البرمجة المُصرَّفة بالسرعة والأمان. المُفسِّر Interpreter: وهو برنامج ينفذ شيفرات البرنامج سطرًا بسطر، ويبدأ تنفيذ البرنامج ولو كان في الشيفرات أخطاء، ولكن سرعان ما يتوقف التنفيذ إذا وصل المُفسِّر إلى شيفرة بها خطأ برمجي. بيئات التطوير المتكاملة IDEs⁦ تعد بيئات التطوير المتكاملة Integrated Development Environments أو IDEs اختصارًا من برامج البرمجة المفيدة التي تساعد المطورين على كتابة الشيفرات البرمجية بسرعة وكفاءة، فهي تحتوي على مميزات عديدة تجعل عمل المطور أسهل، من خواص استكمال تلقائي للشيفرات إلى خواص تصحيح فوري للأخطاء في صيغة الشيفرة، كما تحوي بيئات التطوير المتكاملة عدة أدواتٍ مدمجة مفيدة للمطور، مثل: محرر الأكواد ومُنقِّح الأخطاء ومترجم الشيفرة والأكمال التلقائي للكود، وتوفر كذلك إمكانية تثبيت العديد من الإضافات الخارجية المساعدة في عملية التطوير. تتعدد بيئات التطوير المتكاملة، ومن أشهرها نذكر: فيجوال ستوديو كود Visual Studio Code: ذاع صيت فيجوال ستوديو كود حتى صارت بيئة التطوير الأشهر والأكثر استخدامًا بين المبرمجين، وذلك لتعدد مميزاتها، بدءًا من دعمها لغالب لغات البرمجة الحية وجميع لغات البرمجة الشهيرة، مرورًا بتوفيرها لإضافاتٍ عديدة تجعل من كتابة الشيفرات أمرًا يسيرًا على المطورين، وصولًا إلى بساطة واجهتها وسهولة التعامل معها، وكذلك من أبرز ما يميزها مجانيتها وأنها بيئة تطوير مفتوحة المصدر. بايشارم PyCharm: تُستخدم بيئة التطوير المتكاملة بايشارم من مطوري لغة البرمجة بايثون خاصة، وتعد بيئة تطوير مدفوعة، وتدعم بايشارم بالكاد جميع أطر عمل ومكتبات لغة بايثون، كما توفر أدواتٍ مخصصة لاختبار شيفرات بايثون وتنقيح أخطائها، وتدعم تضمين نظام التحكم في الإصدارات غيت داخل بيئة التطوير لتسريع عملية تتبع النُّسخ المختلفة من الشيفرات. إنتيليج إيديا IntelliJ IDEA: بيئة تطوير مدفوعة مصممة لمطوري تطبيقات الأندرويد، وتدعم لغات البرمجة جافا وكوتلن وسكالا وجروفي، وهي أشهر لغات تطوير تطبيقات الأندرويد وأكثرها استخدامًا، وتتميز بيئة التطوير إنتليج إيديا بالدعم الجزئي لعدة لغات برمجة أخرى، مثل: بايثون Python و php وروبي Ruby وغيرها. بي إتش بي ستورم PhpStorm: تعد بيئة تطوير مدفوعة موجهة خصيصًا لمطوري لغة بي إتش بي، وتدعم جميع أطر العمل الشهيرة للغة بي إتش بي، كما تدعم أشهر قواعد البيانات المستخدمة مع بي إتش بي لتطوير تطبيقات الويب، وتدعم تقنيات بناء الواجهة الأمامية لتطبيقات الويب، مثل: لغة HTML ولغة CSS ولغة جافا سكريبت وتايب سكريبت وغيرها. إكس كود XCode: بيئة تطوير مجانية مخصصة لتطوير التطبيقات الموجهة لجميع أنظمة تشغيل آبل، والتي تتضمن نظام تشغيل هواتف آبل أي أو إس iOS، ونظام تشغيل الأجهزة اللوحية أي باد أو إس iPadOS، ونظام تشغيل الحواسيب المحمولة ماك أو إس MacOS، وكذلك نظام تشغيل الساعات الذكية WatchOS، وسائر أنظمة تشغيل آبل. مُنقِّحات الأخطاء Debuggers تدخل عمليتا الاختبار وتنقيح الأخطاء ضمن المهام الأساسية للمطور، ويعد مُنقِّح الأخطاء أداةً تساعد المطور على اختبار التطبيق وتحديد أماكن الخطأ في الشيفرات ثم تنقيحها، ما يساهم في تأمين التطبيق من الثغرات والاختراق. برامج سطر الأوامر Command Line Interpreters تعد برامج سطر الأوامر من البرامج المفيدة التي تسمح للمطور بإدخال أوامر كتابية وتوجيهها إلى نظام التشغيل لتنفيذها، ومن أشهر برامج سطر الأوامر نذكر: موجه الأوامر CMD.exe: وهو البرنامج الافتراضي لنظام التشغيل ويندوز، ويكون على هيئة نافذةٍ سوداءٍ بسيطة يمكن للمبرمج من خلالها كتابة أوامر لتأدية وظائف عديدة، منها مثلًا إنشاء ملفات جديدة والتعديل عليها وحذفها وتغيير مسارها، والتعرُّف على معلومات النظام والشبكة والتحكم فيهما، ويساعد موجهُ الأوامر المطورَ على توفير الكثير من الوقت المستهلك في تنفيذ نفس المهام يدويًا عبر الواجهة الرسومية. ويندوز باورشيل Windows PowerShell: يعد مفسر سطر أوامر مدمج في نظام تشغيل ويندوز، وهو يتشابه كثيرًا مع موجه الأوامر CMD إلا أنه أكثر تطورًا منه ويحوي بعض الخصائص الإضافية، ومنها مثلًا الوصول إلى البرمجيات السحابية لمايكروسوفت. سيمدر CMDER: مفسر أوامر مجاني ومفتوح المصدر متاحٌ على الإنترنت، ويتميز بالواجهة القابلة للتعديل وإمكانية تغيير أحجام الخطوط وألوانها، كما يسمح بتنفيذ بعض سطور أوامر نظام تشغيل لينكس على نظام تشغيل ويندوز، وكذلك يدعم التحكم مع نظام إدارة الإصدارات غيت، ما يجعله مفسر أوامر قوي ومميز. باش Bash: يعد باش مفسر الأوامر الافتراضي لنظامي تشغيل لينكس وماك أو إس، ويتميز بكفاءته في التحكم في نظام التشغيل وإمكانية الوصول إلى أجزاء منه لا يمكن الوصول لها عبر الواجهة الرسومية، كما يساعد على أتمتة مهام عديدة، مثل: الاختبارات الدورية للخوادم. أنظمة التحكم في الإصدارات Version Control System يشير مفهوم التحكم في الإصدارات إلى عملية إدارة التحديثات والتطويرات المتتابعة لشيفرات البرنامج، أما نظام التحكم في الإصدارات فهو نظامٌ يُستخدم لتسجيل النسخ المختلفة من الشيفرات، حتى يتسنى للمطور العودة لأيِّها شاء وقتما أراد وهو أمر يحتاجه أي مبرمج إذ تتعدد فوائد أنظمة التحكم في الإصدارات، ومنها تحسين تعاون فريق المبرمجين وتنظيم تعديلاتهم المختلفة على الشيفرات، كما تعد نسخ الشيفرات المخزنة في نظام التحكم في الإصدارات بمثابة نسخ احتياطية مستقرة يستطيع المطور العودة إليها ما إذا أطلق تحديثًا للبرنامج ثم اكتشف فيه ثغرةً قد تؤدي به إلى الاختراق. يعد غيت Git أشهر برنامج للتحكم في الإصدارات بالمجتمع التقني، ويتتبع غيت التعديلات على شيفرات كل ملف من ملفات البرنامج، ويمكن الوصول إلى النسخ المختلفة من الملفات المُخزَّنة على غيت عن طريقين؛ إما بسطر الأوامر أو بأداة للتحكم في ملفات غيت، ومن أشهر أدوات التحكم في غيت أداة غيت هاب GitHub وأداة غيت لاب GitLab، وتساعد هذه الأدوات على تخزين ملفات المشروع سحابيًا، ما يجعل الوصول إليها سهلًا بين جميع أعضاء الفريق البرمجي. برامج البرمجة المعتمدة على الذكاء الاصطناعي لقد ازدادت إمكانيات البرامج المستخدمة في البرمجة من خلال تعزيزها بقدرات الذكاء الاصطناعي مما سهل على المطورين والمبرمجين عملهم بشكل كبير، ومن أبرز هذه البرامج نذكر: أمازون كود ويسبيرر AWS CodeWhisperer فيجوال ستوديو إنتيليكود Visual Studio IntelliCode ديفن Devin لنعلم أكثر عن كل برنامج من هذه البرامج وكيف تستفيد من الذكاء الاصطناعي في مجال البرمجة. أمازون كود ويسبيرر AWS CodeWhisperer يتشابه أمازون كود ويسبيرر في وظيفته مع جيتهاب كوبايلوت، إلا أنَّه يناسب فئة مختلفة من المطورين، إذ يعد أكثر تخصيصًا وتوجهًا لمهندسي الحوسبة السحابة ومستخدمي خدمات AWS، وكذلك يتميز أمازون كود ويسبيرر عن جيتهاب كوبايلوت بتوافر نسخة مجانية منه. فيجوال ستوديو إنتيليكود Visual Studio IntelliCode تعد فيجوال ستوديو إنتيليكود إضافة مجانية لبيئة التطوير فيجوال ستوديو كود، ولا تدعم إلا لغات برمجة محددة، وهي بايثون وجافا سكريبت وتايب سكريبت وجافا، وتقل إمكانيات فيجوال ستوديو إنتيليكود بشكلٍ ملحوظ عن نظائره جيتهاب كوبايلون وأمازون ويسبيرر. ديفن Devin يعد برنامج Devin الذي أنتجته شركة Cognition أحد برامج البرمجة الأحدث فقد أُعلن عنه بكونه أول مهندس برمجيات في العالم يعتمد على الذكاء الاصطناعي وهو قادر على كتابة أكواد البرمجة بنفسه وتصحيح أخطائها ونشرها كما أنه قادر على التفكير المنطقي والتخطيط واتخاذ القرارات وتحسين أدائه باستمرار. برامج البرمجة للمبتدئين إليك مجموعة من أهم برامج البرمجة التي توفر أدوات مفيدة تساعد المبتدئين على الولوج إلى عالم تطوير البرمجيات دون صعوبات وتعقيدات لغات البرمجة: سكراتش Scratch مايكروسوفت ميك كود Microsoft MakeCode تينكر Tynker لنشرح أكثر عن كل برنامج من برامج البرمجة التي ينصح بها للمبتدئين. سكراتش Scratch يعد سكراتش من أشهر برامج تعليم البرمجة للأطفال والمبتدئين فهو يعتمد على تعلم أساسيات البرمجة من خلال واجهة رسومية تتكون من عدة كتل برمجية لاستخدامات متعددة وتعتمد على سحب وإسقاط الكتل البرمجية المطلوبة لبناء المنطق الصحيح لعمل البرنامج، وهو سهل التعامل ويجعل عملية تعلم البرمجة ممتعة ومشوقة. وينصح به لمساعدة الأطفال على تحسين مهاراتهم في حل المشكلات والتفكير المنطقي، وهما مهارتان من أهم مهارات المبرمج المحترف، وكذلك يتيح سكراتش للمستخدمين مشاركة برمجياتهم ومشاريعهم، مما يخلق جوًا من المتعة والتنافسية ويؤدي إلى الرغبة في التحسن الدائم. مايكروسوفت ميك كود Microsoft MakeCode يتبنى برنامج مايكروسوفت ميك كود نهجًا مشابهًا لمنهج سكراتش في تعليم البرمجة، إذ يساعد المبتدئين والأطفال على تعلم البرمجة بتركيب كتل من الشيفرات البرمجية الجاهزة، ولكنه يختلف عنه في ماهية البرامج المُطوَّرة، فيركز مايكروسوفت ميك كود على تطوير الألعاب البسيطة، وكذلك يتدرج برنامج مايكروسوفت ميك كود مع المبرمج في مستويات الصعوبة حتى ينتهي بالمبتدئ إلى أن يكون قادرًا على تعلُّم لغة جافا سكريبت. تينكر Tynker يعد تينكر أحد أهم برامج البرمجة للمبتدئين، ورغم استناده إلى نفس نهج سكراتش ومايكروسوفت ميك كود في تعليم البرمجة، إلا أنه يبرز عنهما بتطوره، إذ يوفر دوراتٍ في مجالاتٍ حديثة، مثل علوم البيانات والذكاء الاصطناعي وتعلم الآلة، كما يتدرج بالمطور المبتدئ إلى مستويات أعلى من نظيريه سكراتش ومايكروسوفت ميك كود. ولكن يتوفر سكراتش ومايكروسوفت ميك كود مجانًا دون الحاجة لدفع أية رسوم، بينما يعد تينكر مدفوعًا، وذلك نظرًا لتقدمه وصعوبة توفير دوراته ومنهاجه المميز في التعليم بشكل مجاني. وأخيرًا تذكر أن تعلُّم البرمجة اليوم لم يعد صعبًا كما كان في السابق، إذ تتوفر اليوم الكثير من البرمجيات التي تُسهِّل عملية التعلُّم يومًا بعد يوم، كل ما عليك هو اتخاد قرار بالبدء في التعلُّم والحرص على الالتزام والمثابرة، وإذا كنت لا تعلم من أين تبدأ في رحلة تعلم البرمجة فيمكنك الاطلاع على دورات أكاديمية حسوب المميزة التي أعدها خبراء في البرمجة والتي تأخذ بيدك في تعلم البرمجة من الصفر وصولًا للاحتراف والحصول على فرصة عمل في أحد مجالات البرمجة المميزة. الخلاصة تعرفنا في هذا المقال على مجموعة متنوعة من برامج البرمجة التي يحتاجها المطورون في مختلف المجالات، سواء برامج تعلم البرمجة أو برامج كتابة وتنقيح الشيفرات ومفسرات سطر الأوامر كما تطرقنا إلى برامج البرمجة الحديثة التي تعتمد على الذكاء الاصطناعي في عملية البرمجة، وختمنا المقال بذكر أهم برامج البرمجة الموجهة للمبتدئين في عالم البرمجة، هل هناك برنامج مفيد في عملية البرمجة تجده مفيدًا في رحلة تعلم البرمجة يسرنا أن تشاركنا تجربتك في التعليقات أسفل المقال. اقرأ أيضًا أسهل لغات البرمجة فوائد تعلم البرمجة ما هي مدة تعلم البرمجة؟ اكتشف ما هي البرمجة وما أهمية تعلمها برمجة الحاسوب للمبتدئين لماذا يجب أن تعلم طفلك البرمجة؟
  7. يعد مجال هندسة الحاسوب Computer Engineering واحدًا من أهم المجالات التقنية وأعرقها، كما تلعب هندسة الحاسوب دورًا رئيسيًا في تطوير أنظمة حاسوبية متكاملة تُستخدم في مختلف المجالات والتخصصات. ويوفر لك هذا المقال لمحة شاملة عن هندسة الحاسوب، بدءًا من تعريفها وأقسامها، مرورًا بموادها ويوضح أبرز الفروق بين تخصص هندسة الحاسوب وبين تخصصات مشابهة مثل هندسة البرمجيات وعلوم الحاسوب، ويختتم بتعريفك على أهم مهارات مهندس الحاسوب والوظائف التي تتاح لك عند دراسة هندسة الحاسوب. ما هي هندسة الحاسوب؟ تعد هندسة الحاسوب أحد فروع الهندسة وهي تخصص شامل وواسع يجمع بين علوم متعددة مثل تصميم الأجهزة وعلم الإلكترونيات وتطوير البرمجيات، إذ تعتمد هندسة الحاسوب على مبادئ من علوم الحاسوب وهندسة الإلكترونيات لتطوير أنظمة حاسوبية مدمجة ومتكاملة تُستخدم في مختلف المجالات، مثل: الصناعة والطب والاتصالات والنقل. يبدأ عمل مهندسي الحاسوب من تصميم الدوائر الإلكترونية والشرائح الإلكترونية للحاسوب، ثم كتابة البرمجيات منخفضة المستوى لتشغيل هذه الدوائر والشرائح وتشغيل عتاد الحاسوب عامة، ثم تطوير أنظمة التشغيل لإدارة موارد الحاسوب، وأخيرًا تطوير البرمجيات الملائمة لاحتياجات المستخدم لتثبيتها على الحاسوب. وتدخل هندسة الحاسوب كما ذكرنا للتو في كثيرٍ من المجالات المختلفة، ما يجعلها إحدى أهم المجالات المعاصرة، ومن هذه المجالات: الصناعة: يساعد مهندسو الحاسوب على تطوير الآلات وتسهيل أتمتة العمليات، ما يزيد إنتاجية المصانع وبالتالي زيادة دخلها وتحسين جودة المنتجات. الطب والخدمات الصحية: يعمل مهندسو الحاسوب على بناء أجهزة طبية متطورة وتطوير برمجياتها وتحديثها باستمرار لزيادة دقتها في تشخيص المريض وتحديد حالته والدواء المناسب له. الاتصالات: يساهم مهندسو الحاسوب في تصميم وتطوير بنية الشبكات التي تدعم اتصالات البيانات بين الأجهزة المختلفة وتطوير برمجيات ت وتطبيقات تسهل عمليات الاتصال ونقل البيانات عبر الشبكات. الاقتصاد: تعزز هندسة الحاسوب من النمو الاقتصادي من خلال تطوير حلول رقمية ومنصات تجارة إلكترونية توسع الوصول إلى الأسواق وتسهل العمليات التجارية. ما أقسام هندسة الحاسوب؟ تتعدد أقسام هندسة الحاسوب وتتفرع، ومن أشهر أقسامها: قسم هندسة البرمجيات Software Engineering قسم هندسة الشبكات Networks Engineering قسم الذكاء الاصطناعي Artificial Intelligence قسم أمن المعلومات Information Technology لنشرح بتفصيلٍ أكبر كل قسم من هذه الأقسام. قسم هندسة البرمجيات Software Engineering يعد قسم هندسة البرمجيات أحد أشهر أقسام هندسة الحاسوب وأكثرها انتشارًا، ويعمل مهندسو البرمجيات على توظيف التقنيات البرمجية من لغات برمجة وأطر عمل وقواعد بيانات وغيرها من التقنيات لتطوير برامج للمستخدمين. وتتعدد المجالات الفرعية من مجال هندسة البرمجيات، ومن أشهرها مجال تطوير الويب، والذي يهتم بتطوير تطبيقات الويب التي يتصفحها المستخدمون عبر متصفحات الويب، وكذا يعد تطوير تطبيقات الجوال أحد المجالات الفرعية من هندسة البرمجيات، وهو المجال المختص في تطوير تطبيقات موجهة إلى أنظمة تشغيل الهواتف الجوالة، مثل: أندرويد وأي أو إس iOS، وكذلك مجال تطوير تطبيقات سطح المكتب الذي يُعنى بتطوير تطبيقات لأنظمة تشغيل الحواسيب، ومنها ويندوز ولينكس وماك أو إس MacOS. قسم هندسة الشبكات Networks Engineering يعمل مهندسو الشبكات على تصميم الشبكات وبنائها وصيانتها دوريًا، والشبكة هي نظامٌ رقميٌّ يسمحُ للأجهزة الإلكترونية بالتواصل وتناقل البيانات، ولا يكاد مجالٌ تقنيٌّ أن يظهر إلا بالاعتماد على الشبكات، ما يجعل من هندسة الشبكات أحد أهم أقسام هندسة الحاسوب. قسم الذكاء الاصطناعي Artificial Intelligence يظفر قسم الذكاء الاصطناعي برواج واسعٍ في الآونة الأخيرة سواءً بين المبرمجين أو غيرهم، وذلك نظرًا للتقدم السريع والكبير في هذا المجال، ويعد الذكاء الاصطناعي قسمًا من أقسام هندسة الحاسوب، ويجمع مهندسو الذكاء الاصطناعي بين مجالات تعلم الآلة وتحليل البيانات ومجالات أخرى لتطوير برمجيات لأتمتة المهام الروتينية، ما يزيد من إنتاجية الشركات ويقلل التكاليف ويرفع الأرباح. قسم أمن المعلومات Information Technology يهتم قسم أمن المعلومات بإدارة أنظمة التشغيل وتنظيم العمليات عليها وحمايتها، كما يهتم بإدارة قواعد البيانات، ما يجعله مجالًا واسعًا يحتاج متخصصوه مهاراتٍ عديدة، منها: إدارة أنظمة التشغيل وإدارة الشبكات وإدارة قواعد البيانات والاختبار وتنقيح الأخطاء وتأمين التطبيقات وغيرها من المهارات. ما هي مواد هندسة الحاسوب؟ يدرس مهندسو الحاسوب مواد عديدة، منها: أساسيات الهندسة الكهربائية Electrical Engineering أساسيات علوم الحاسوب Computer Science أنظمة التشغيل Operating Systems الشبكات Networking التصميم والتحليل الهندسي Engineering Design and Analysis لنتعرف بعمقٍ عن ماهية كل مادة وأهميتها. أساسيات الهندسة الكهربائية تتفرع الهندسة الكهربية من مجال الهندسة، وتهتم الهندسة الكهربية بدراسة التطبيقات الكهربية في الأجهزة الحديثة، ولا سيما الدوائر الإلكترونية المتكاملة Integrated Circuits والترانزستورات Trasistors، واللذان يُعدَّان من القطع الأساسية في عتاد أي حاسوب، كما تهتم الهندسة الكهربية أيضًا بدراسة الإشارات ومعالجتها Signal Processing، وكذلك يدرس الإلكترونيات الدقيقة وأشباه الموصلات Microelectronics and Semiconductors. أساسيات علوم الحاسوب تشير علوم الحاسوب إلى دراسة الحاسوب والأنظمة الحاسوبية وطريقة عملها، ويتضمن ذلك دراسة البرمجة ولغاتها، ودراسة الخوارزميات وهياكل البيانات وتحليل البيانات وتأمين التطبيقات البرمجية، كما يتضمن دراسة أساسيات معمارية الحاسوب، والتي تهتم بمكونات الحاسوب الداخلية من معالج إلى الذاكرة العشوائية والذاكرة الصلبة وكيفية عمل هذه القطع معًا. أنظمة التشغيل يهتم مهندس الحاسوب بدراسة نظام التشغيل ومكوناته وطريقة عمله، ويتعرف على طريقة تطوير وظائف نظام التشغيل، مثل: إدارة الموارد وإدارة العمليات وإدارة الشبكات وغيرها، ويعلم أيضًا عوامل أمان نظام التشغيل وكيفية تطبيقها أثناء تطوير نظام تشغيل ومن ضمن ذلك اختبار النظام وتنقيح أخطائه، كما يدرس كيفية ارتباط هذا النظام بعتاد الحاسوب والتوافق معه. الشبكات تدخل دراسة الشبكات الحاسوبية ضمن مواد هندسة الحاسوب، إذ يدرس مهندس الحاسوب ماهية الشبكة ومكوناتها من حواسيب وخوادم وحواسيب مركزية وأجهزة أخرى، وطريقة عمل الشبكة وبروتوكولات تبادل المعلومات والبيانات والموارد والخدمات عبر الشبكة، ويعرف أنواع الشبكات المختلفة ومعايير اختيار النوع المناسب من الشبكات حسب احتياجات العمل، كما يتعلم بناء الشبكة ومبادئ تأمينها وحمايتها من الاختراق. التصميم والتحليل الهندسي يشير التصميم الهندسي في هندسة الحاسوب إلى عملية تصميم هيكل حاسوب أو جهاز إلكتروني وتحديد مواصفاته وإمكانياته، وتصميم نظام تشغيله وعمليات نظام التشغيل أيضًا، أما عملية التحليل الهندسي في هندسة الحاسوب فهي إحدى خطوات عملية التصميم الهندسي، ويشير التحليل الهندسي إلى عملية تحديد المشكلات التي يواجهها المهندس أثناء عملية التصميم وتفكيكها إلى مشكلات صغيرة وحل هذه المشكلات الصغيرة واحدة تلو الأخرى حتى يصل إلى حل للمشكلات الكبيرة في التصميم. ما الفرق بين علوم الحاسوب وهندسة الحاسوب وهندسة البرمجيات؟ تركز هندسة البرمجيات أساسيًا على دراسة البرمجيات ومكوناتها وطريقة عملها، ودراسة لغات البرمجة والنظريات البرمجية وطريقة تطوير برنامج ذي أداء سريعٍ وأمانٍ عالٍ، بينما تدرس هندسة الحاسوب عتاد الأجهزة الإلكترونية وكيفية بناء جهاز إلكتروني والمكونات الدقيقة للأجهزة، كما تدرس البرمجيات أيضًا ولا سيما التطبيقات منخفضة المستوى المستخدمة لتشغيل قطع العتاد المختلفة داخل الحاسوب. تتشابه علوم الحاسوب مع هندسة البرمجيات تشابهًا كبيرًا، ولكنها تختلف معها في دراسة العتاد، إذ يدرس طلاب علوم الحاسوب أمورًا عن عتاد الحاسب وكيفية عملها، ولكنها تختلف عن هندسة الحاسوب في مدى التعمق في دراسة العتاد، إذ يدرس مهندسو الحواسيب العتاد بعمق، حتى يدرسوا أدق أنواع العتاد، مثل: الدوائر الإلكترونية المتكاملة والترانزستورات، بينما لا يدرس طلاب علوم الحاسوب عن العتاد إلا علومًا نظريةً قليلة. ما هي أهم مهارات مهندس الحاسوب الناجح؟ تعد مهارات مهندس الحاسوب الناجح عديدة، ولعل أهمها: الشهادة التفكير المنطقي التفكير النقدي حل المشكلات المهارات الناعمة لنأخذ لمحة سريعة عن كل مهارة من هذه المهارات وأهميتها لمهندس الحاسوب. الشهادة لا شك أن الشهادة الجامعية في مجال هندسة الحاسوب مفيدة، فالتعليم الجامعي يساعدك على التعلُّم المنظم ويضمن وجود رقيب يتابع تطور مستواك، ولكنها كذلك ليست ضرورية للنجاح في تخصص هندسة الحاسوب وقد تعدلها الدراسة الذاتية والتطبيق العملي والخبرة في المجال فكثير من جهات العمل اليوم تشترط الخبرة في المجال أكثر من اشتراط الشهادات. فمصادر التعلم الذاتي كثيرة ومنوعة ومن بين مصادر التعلم البارزة عربيًا أكاديمية حسوب التي توفر لك من خلال دوراتها البرمجية في مختلف المجالات التقنية مميزات التعليم الأكاديمي من منهجية واضحة في التعلم وشهادة تثبت ما تعلمته ورقابة من خبير في هندسة الحاسوب، كما تمنحك مميزات التعليم الذاتي من مرونة التعلُّم وسهولته وسرعته وغيرها مما لا توفره الجامعة. دورة علوم الحاسوب دورة تدريبية متكاملة تضعك على بوابة الاحتراف في تعلم أساسيات البرمجة وعلوم الحاسوب اشترك الآن التفكير المنطقي لا يستطيع مهندس الحاسوب مزاولة مهنته دون مهارات التفكير المنطقي فهو الذي يجعلك تكر بشكل منظم يساعدك علة فهم عتاد وبرمجيات الحواسيب ويوفر له مهارة التخطيط الجيد ويمنحك القدرة على اتباع خطواتٍ متسلسلة مرتبة مفصلة للوصول إلى أفضل حل للمشكلات التي تواجهها. التفكير النقدي يحتاج كل مهندس حواسيب إلى عقلٍ نقديٍّ يساعده على تحديد مواطن الضعف في برنامجه أو جهازه، فنقاط الضعف في البرنامج الرقمي ينتج عنها وصول المخترقين والمحتالين إلى بيانات المستخدمين، ما يؤدي إلى فقد الموثوقية والمصداقية، أما مواطن الضعف في الأجهزة سواءً حواسيب أو هواتف جوالة أو غيرها فإنَّها تؤدي إلى سوء تجربة المستخدم، مما يؤدي أيضًا إلى خسارة الموثوقية والمصداقية من العملاء. حل المشكلات تواجه مهندس الحاسوب مشكلاتٌ كثيرةٌ أثناء بناء الأجهزة والتطبيقات، مما يُحتِّم عليه تعلُّم مهارة حل المشكلات، وهذه المهارة مرتبطةٌ ارتباطًا وثيقًا بمهارة التفكير المنطقي، إذ يساعد التفكير المنطقي على وضع خطوات متسلسلة للوصول إلى أفضل حلٍّ للمشكلة؛ سواءً كانت هذه المشكلة برمجية أو مشكلة في تصميم الجهاز وتحديد الموارد والخامات أو غيرها. المهارات الناعمة عادةً ما يعمل مهندسو الحاسوب ضمن فرق عمل، فلا يستطيع مهندس حاسوب واحد تنفيذ جميع مهام من بناء جهاز إلكتروني إلى تطوير نظام تشغيل له ثم تطوير برمجيات موجهة لهذا الجهاز، وذلك يجعل تعلُّم مهارات التعامل مع الأصدقاء في فريق العمل أمرًا ضروريًا. ما وظائف هندسة الحاسوب؟ تفتح لك هندسة الحاسوب أبوابًا عديدة أمام وظائفٍ كثيرة، ومنها: متخصص دعم تقني مهندس DevOps خبير أمن معلومات خبير ذكاء اصطناعي مطور تطبيقات لنعرف مزيدًا من المعلومات عن كل وظيفة على حدة. متخصص دعم تقني يعمل متخصص الدعم التقني على تكوين النظام التقني للشركة، بدءًا من تنصيب الخوادم والشبكات، مرورًا باختبار النظام واستخراج نقاط ضعفه وحلها، وصولًا إلى صيانة النظام وترقيته دوريًا لضمان استمرار عمله على أفضل وجه. مهندس DevOps ينتشر مجال ديف أوبس DevOps بسرعة شديدة رغم حداثته، وذلك لما له من فوائد في تسريع عملية تطوير البرمجيات، ولتصبح مهندس DevOps عليك تعلُّم مجموعة من المهارات، أهمها: كتابة الشيفرات البرمجية لأتمتة المهام وإدارة أنظمة التشغيل والشبكات والخوادم، والتعامل مع الحاويات Containers وأشهرها دوكر Docker، وتنفيذ مهام الحوسبة السحابية ومنهجية التكامل المستمر والنشر المستمر CI|CD، وتأمين البنية التحتية اللازمة لتشغيل التطبيقات والخدمات وإدارة السجلات Logs ومراقبة حالة النظام Monitoring للكشف أي أخطاء فور وقوعها. خبير أمن معلومات يشرف خبير أمن المعلومات على اسكتشاف والثغرات الأمنية سواءً في عتاد الحواسيب أو في برمجياتها وحل هذه الثغرات ويعد أمن المعلومات أحد أهم وظائف هندسة الحاسوب، ويجب أن يكون خبير أمن المعلومات على دراية واسعة بأمن الشبكات ونظم التشغيل وقواعد البيانات، ويكون خبيرًا في الأمن السيبراني واختبار التطبيقات وتنقيح أخطائها. خبير ذكاء اصطناعي يعد الذكاء الاصطناعي واحدًا من وظائف البرمجة الحديثة الأكثر طلبًا في سوق العمل اليوم، وتتفرع منه مجالاتٌ عديدة، مثل: تعلم الآلة والتعلم العميق ومعالجة اللغة الطبيعية وغيرها، ويحتاج خبير الذكاء الاصطناعي إلى إتقان لغة برمجة، وتشتهر لغة البرمجة بايثون بشدة في هذا المجال، كما يحتاج إلى معرفة بأطر عمل الذكاء الاصطناعي وتعلُّم الآلة وأشهرها إطار عمل باي تورش PyTorch وتنسر فلو TensorFlow، وأن يتعرف أيضًا على مبادئ الإحصاء والرياضيات وتحليل البيانات، وكذا ينبغي عليه المعرفة بماهية الرؤية الحاسوبية Computer Vision والحوسبة السحابية Cloud Computing. مطور تطبيقات يتعلم مهندس الحاسوب العديد من لغات البرمجة والتقنيات خلال دراسته وتمكنه هذه المعرفة التقنية من تطوير العديد من أنواع التطبيقات ما بين تطبيقات ويب وتطبيقات هاتف وتطبيقات سطح مكتب، فلكلٍّ منها لغات برمجة وأطر عمل ومهارات خاصة به، لذا يشترك مطورو التطبيقات بجميع أنواعها في حاجتهم لدراسة لغة برمجة وإطار عمل وقاعدة بيانات ونظام تحكم في الإصدارات، بينما تختلف نوعية اللغات وأطر العمل بين التطبيقات المختلفة، فمثلًا يحتاج مطورو الويب لمعرفة إحدى لغات الويب، مثل: جافا سكريبت أو PHP أو روبي أو بايثون وغيرها، بينما يحتاج مطورو تطبيقات الهاتف إلى معرفة بلغة البرمجة جافا أو كوتلن لتطبيقات أندرويد وسويفت لتطبيقات أي أو إس iOS، أما مطورو تطبيقات سطح المكتب فيحتاج لمعرفة لغة البرمجة جافا Java أو سي بلس بلس ⁦C++⁧⁧⁧ الخاتمة إلى هنا نكون قد وصلنا لنهاية مقالنا الشامل الذي شرحنا فيه كل ما يخص هندسة الحاسوب التي تعد مجالًا واسعًا يوفر لدارسيه فرصًا وظيفية مميزة ذات رواتب مجزية ويفتح لمن يتقن مهاراته الواسعة الكثير من المجالات والتخصصات، وهو مجالٌ ذو مستقبلٍ مميز ولا سيما مجالاته المتعلقة بالذكاء الاصطناعي لذا ننصحك بالبدء بتعلم مهاراته من الآن واللحاق بركب التطور التقني الحاصل في شتى المجالات. اقرأ أيضًا تعرف على تخصص هندسة البرمجيات تعرف على وظائف البرمجة الأعلى أجرًا مدخل إلى تطوير البرمجيات Software Development الأخطاء السبع القاتلة لأيّ مشروع برمجيات شهادات البرمجة: أهميتها وسبل الحصول عليها ما هي مدة تعلم البرمجة؟
  8. تمثل لغات البرمجة عالية المستوى نسبة تزيد عن ثمانين بالمائة من أشهر خمسين لغة برمجة في المجتمع التقني، ما يجعلنا نتساءل: ما هي لغات البرمجة عالية المستوى؟ ولماذا تعد مشهورة إلى هذا الحد؟ وما أشهر استخدامات هذا النوع من لغات البرمجة؟ تعريف لغات البرمجة عالية المستوى تتعدد مستويات لغات البرمجة، فمن لغات البرمجة لغات منخفضة المستوى تساعد المطور على التخاطب المباشر مع عتاد الحاسوب، ما يجعلها مميزة في إدارة موارد الحاسوب، ويوجد كذلك لغات برمجة عالية المستوى، وتعد أكثر تجريدًا عن عتاد الحاسوب وتجعل تركيز المطور ينصبُّ على خواص التطبيق ومميزاته، وهي أسهل من اللغات منخفضة المستوى وأقرب منها إلى اللغات البشرية. تعد لغات البرمجة عالية المستوى نوعًا من لغات البرمجة يسمح للمطور بتطوير برمجيات مجردة عن عتاد الحاسوب، بمعنى أنَّ المطور لا يحتاج إلى وصف طريقة تعامل الأجزاء المختلفة من البرنامج مع المكونات الداخلية للحاسوب مثل: المعالج والذاكرة المؤقتة والذاكرة الدائمة، وتهدف لغات البرمجة عالية المستوى إلى تسهيل عملية تطوير البرمجيات وزيادة إنتاجية المطور، وكذلك تقريب بنية لغات البرمجة إلى بنية اللغات البشرية حتى تسهُل قراءة الشيفرات وكتابتها. أنواع لغات البرمجة عالية المستوى يجب ترجمة كل برنامج مكتوب بلغة برمجة عالية المستوى إلى لغة الآلة قبل تنفيذه، وتنقسم لغات البرمجة عالية المستوى إلى نوعين رئيسيين تبعًا لطريقة ترجمة الشيفرات، وهما: لغات برمجة مترجمة Compiled Programming Languages: يعد المترجم برنامجًا حاسوبيًا يعمل كوسيط بين برنامجك الرقمي والآلة، ويعمل على ترجمة شيفرات البرنامج كاملة إلى لغة الآلة ثم تنفيذها دفعةً واحدة، ويتميز هذا النوع من لغات البرمجة بالسرعة والكفاءة، ومن أشهر أمثلته لغة سي بلس بلس C++‎ وراست Rust وجو Go. لغات برمجة مفسرة Interpreted Programming Languages: يتشابه المفسر مع المترجم في وساطته بين البرنامج والآلة ولكنه يختلف في طريقة الترجمة، إذ يقرأ المفسر الشيفرات واحدة تلو الأخرى ويترجمها إلى لغة الحاسوب وينفذ كل شيفرة مباشرة بعد ترجمتها، ويتميز هذا النوع بالسهولة والمرونة، ومن لغاته بايثون Python وجافا سكريبت JavaScript وبي إتش بي PHP. تُستخدم لغات البرمجة عالية المستوى في كل مجال برمجي تقريبًا، فهي تُستخدم في المجالات الكلاسيكية، مثل: تطوير الويب وتطبيقات الهاتف وتطبيقات سطح المكتب، وكذلك تُستخدم في المجالات الحديثة، مثل: الذكاء الاصطناعي وتحليل البيانات، كما تدخل في مجالات الأمن السيبراني ومجالات سلسلة الكتل Blockchain والعملات الرقمية وسائر المجالات التقنية الأخرى، ومن أشهر لغات البرمجة عالية المستوى لغة بايثون وجافا و PHP و R و كوتلن وجو و C وC#‎. الفرق بين لغات البرمجة عالية المستوى ولغات البرمجة منخفضة المستوى تعد لغات البرمجة منخفضة المستوى نوعًا من اللغات البرمجة يوفر تواصلًا مباشرًا مع عتاد الحاسوب، وتشبه بنيتها بنية لغة الآلة، ومن أبرز الفروق بينها وبين اللغات عالية المستوى نذكر التالي: تتميز لغات البرمجة عالية المستوى بسهولة قراءة وكتابة الشيفرات ما يجعل تطوير البرمجيات سهلًا وسريعًا، وكذلك تسهُل عمليتا الاختبار ومعالجة الأخطاء مما يساعد على حفظ أمان البرنامج، بينما تتميز اللغات منخفضة المستوى بالوصول المباشر لعتاد الجهاز واستهلاك موراده بالطريقة الأمثل. تُستخدم لغات البرمجة عالية المستوى في جميع المجالات البرمجية تقريبًا،مثل برمجة تطبيقات الويب والجوال وتطبيقات الذكاء الاصطناعي وتحليل البيانات، أما لغات البرمجة منخفضة المستوى فتُستخدم اليوم في مجالات محدودة تحتاج للتعامل مع عتاد الحاسوب مباشرة، مثل: تطوير أنظمة التشغيل وتطوير الأنظمة المدمجة. أنواع لغات البرمجة عالية المستوى تعد النماذج البرمجية منهجيات لكتابة الشيفرات وحل المشكلات البرمجية وتختلف أهداف كل نموذج برمجي عن الآخر، وقد تدعم لغة البرمجة الواحدة أكثر من نموذج برمجي، وتتعدد أنواع لغات البرمجة عالية المستوى تبعًا للنماذج البرمجية، منها: لغات البرمجة كائنية التوجه Object-Oriented Programming Languages لغات البرمجة الوظيفية Functional Programming Languages لغات البرمجة الإجرائية Procedural Programming Languages لغات البرمجة المنطقية Logical Programming Languages لنشرح بمزيد من التفصيل مميزات كل نوع من هذه الأنواع وأشهر لغات البرمجة التي تندرج ضمنه. لغات البرمجة كائنية التوجه Object-Oriented Programming Languages يعد نموذج البرمجة كائنية التوجه أشهر نموذج برمجي في المجتمع التقني؛ ذلك لتقسيمه البرنامج كاملًا إلى مجموعات صغيرة من الشيفرات القابلة لإعادة الاستخدام في مواضع أخرى، ما يساعد على تقليل إجمالي عدد الشيفرات النهائي للبرنامج وبالتالي تحسين أدائه، وكذلك يساعد على تنظيم الشيفرات وتسهيل عملية اختبار البرنامج ومعالجة أخطائه مما يرفع من أمان البرنامج. يقوم نموذج البرمجة كائنية التوجه على مفهوم الأصناف Classes التي تحتوي على كائنات Objects، والكائنات هي بيانات البرنامج التي تمتلك واصفات Attributes وطرق أو توابع Methods، والواصفات هي المتغيرات Variables التي تتضمن نوع بيانات الكائن وحجمها وتفاصيلها، وأما الطرق فهي الدوال البرمجية التي تحقق الوظائف Functions التي تقوم بها الكائنات. ويمكننا تشبيه الصنف في نموذج البرمجة كائنية التوجه بنموذج تصنيع لسيارة، فالواصفات في هذا المثال هي مواصفات السيارة بدءًا من لونها مرورًا بسرعتها وصولًا إلى سعرها، أما التوابع فهي أفعال السيارة، مثل: التشغيل وزيادة السرعة وتغيير الاتجاه، أما الكائنات فهي السيارات النهائية الناتجة عن هذا الصنف. class Car: # These are the attributes of the object: color = 'Red' speed = "180KM\H" price = "5500 USD" # These are the methods of the object: def turn_on(self): return 'Car is turned on' def increase_speed(self): return 'Speed is increased' def change_direction(self): return 'Direction is changed' the_car = Car() # This is the object print(the_car.color) # Output: Red print(the_car.turn_on()) # Output: Car is turned on تدعم لغاتُ برمجةٍ عديدة نموذجَ البرمجة كائنية التوجه، ولعل أشهرهم بايثون وجافا وسي بلس بلس C++‎ وجافا سكريبت وروبي وبي إتش بي PHP وكوتلن. وتُستخدم لغات البرمجة كائنية التوجه في مجالات عديدة، منها: تطوير تطبيقات الويب وتطوير تطبيقات الهاتف. لغات البرمجة الوظيفية Functional Programming Languages تعتمد لغات البرمجة الوظيفية على بناء البرنامج كاملًا من مجموعة من الوظائف البرمجية Functions، ويعد نموذج البرمجة الوظيفية مبنيًا على مصطلح الوظائف النقية Pure Functions، وهو نوع من الوظائف تعتمد نتائجه اعتمادًا كليًّا على البيانات الداخلة له، ولا تحتاج الوظيفة إلى تعديل البيانات الداخلة أو تعيين متغيرات للتمكُّن من إصدار النتائج. def pure_function(a, b): return a + b print(pure_function(2, 3)) # Output: 5 def impure_function(a, b): new_a = a + 3 new_b = b + 4 new_data = a + b return new_data print(impure_function(2, 3)) # Output: 19 تتميز لغات البرمجة الوظيفية بقابلية إعادة استخدام الشيفرات وسهولة الاختبار وحل المشكلات، وتُستخدم لغات البرمجة الوظيفية بكثرة في المجالات المعتمدة على تحليل أحجام ضخمة من البيانات، مثل: معالجة البيانات والذكاء الاصطناعي والحوسبة العلمية والحوسبة الرياضية ومزامنة الأنظمة، ومن أشهر لغات البرمجة الوظيفية هاسكل وسكالا وإرلانج وليسب، كما تدعم بايثون هذا النموذج البرمجي. لغات البرمجة الإجرائية Procedural Programming Languages تعد البرمجة الإجرائية نموذجًا برمجيًا سهلًا يساعد على كتابة البرنامج على هيئة خطوات برمجية منطقية متسلسلة، ويساعد نموذج البرمجة الإجرائية على تنظيم شيفرات البرنامج بطريقة وجعلها سهلة القراءة ومنطقية التسلسل، وتُستخدم لغات البرمجة الإجرائية عادةً لكتابة الخوارزميات والعمليات الحسابية ولكتابة برمجيات التشغيل الآلي أو الأتمتة Automation، كما تُستخدم أحيانًا لتطوير أنظمة التشغيل، وتدعم هذا المجال لغاتٌ مثل لغة ++C‎ وجافا وباسكال. def greet_user(): name = input("Enter your name: ") # Procedure 1: Asking the user about his name # Procedure 2: Storing the name of the user in a variable print(f"Hello {name}!") # Procedure 3: Constructing the greeting message greet_user() # Procedure 4: Displaying the greeting message for the user لغات البرمجة المنطقية Logical Programming Languages تعتمد البرمجة المنطقية على المنطق الرسمي Formal Logic، وهو نظام لتحليل وتقييم النتائج المحتملة بناءً على حقائق Facts وقواعد Rules، ثم استخراج النتيجة السليمة والمنطقية للتساؤلات Queries، وتعد لغة برولوج Prolog أشهر لغة برمجة منطقية، ويشيع استخدام لغات البرمجة المنطقية في مجالات الذكاء الاصطناعي والتعلُّم الآلي ومعالجة اللغة الطبيعية. likes(Mohammed, Apples). % This is a fact that Mohammed likes apples likes(Ahmed, Grapes). likes(Mahmoud, Pizza). % This is a rule that people who share the same food preferences are good friends good_friends(Person1, Person2) :- likes(Person1, Food) likes(Person2, Food) مميزات لغات البرمجة عالية المستوى التجريد Abstraction: تعد اللغات عالية المستوى مجردة عن عتاد الحاسوب، أي إن المطور يعمل على تطوير البرنامج ليناسب نظام التشغيل، ويحاول مراعاة مكونات الحاسوب لكن دون حاجة إلى توصيف طريقة تعامل البرنامج مع العتاد، مما يوفر كثيرًا من الوقت والجهد ويجعل عملية التطوير أسهل ويزيد من كفاءة التطبيقات وخواصها. الأمان: تضم معظم لغات البرمجة عالية المستوى مكتباتٍ وأدواتٍ تساعد على اختبار شيفرات البرنامج واستخراج ثغراتها ثم سد هذه الثغرات، ما يساهم في تقليل احتمالية اختراق التطبيق وتعسير الوصول إلى بيانات المستخدمين. التوافقية Portability: تدعم غالبية اللغات عالية المستوى تعدد المنصات، والتي تعني قدرة البرنامج على العمل على أنظمة تشغيل مختلفة، كأن يعمل برنامج سطح المكتب على ويندوز ولينكس وMacOS، كما تتوافق لغات البرمجة عالية المستوى مع مواصفات العتاد المختلفة للحواسيب أيضًا. تعدد الاستخدامات: تُستخدم لغات البرمجة عالية المستوى في مجالات لا حصر لها، بدءًا من تطوير التطبيقات للمنصات المختلفة، مرورًا بتطوير الألعاب، وصولًا إلى تطوير برمجيات الذكاء الاصطناعي وتحليل البيانات وغيرها. سهولة الاستخدام: يسهل تعلم لغات البرمجة عالية المستوى، وذلك لتشابه الكثير من شيفراتها باللغة الإنجليزية، وكذلك يسهل العمل بها لقلة عدد الشيفرات المطلوبة لتطوير البرمجيات. أمثلة على لغات البرمجة عالية المستوى تنتشر لغات البرمجة عالية المستوى وتكثر، ومن أشهرها: بايثون Python سي بلس بلس C++‎ جافا Java جافا سكريبت JavaScript بي إتش بي PHP سويفت Swift لنستعرض ماهية كل لغة ونماذجها البرمجية المدعومة وحالات استخدامها. لغة بايثون Python تعد بايثون إحدى لغات البرمجة العصرية التي يزداد رواجها في الأوساط البرمجية، وهي لغة عالية المستوى مفسرة، تدعم البرمجة كائنية التوجه والبرمجة الوظيفية والبرمجة الإجرائية، وتعد لغة عامة الاستخدامات، إذ تُستخدم في مجالات عديدة ومختلفة، مثل: الذكاء الاصطناعي وتحليل البيانات وتطوير الويب وتطوير تطبيقات سطح المكتب وغيرها. لغة C++‎ تقع لغة C++‎ ضمن أشهر لغات البرمجة عالية المستوى المترجمة، وتدعم البرمجة كائنية التوجه والبرمجة الإجرائية كليًا، وتدعم بعض خواص البرمجة الوظيفية، وتتعدد استخدامات لغة C++‎‎‎، ومن أشهر استخداماتها تطوير أنظمة التشغيل وتطوير الألعاب وتطوير تطبيقات السحابة وإنترنت الأشياء. لغة جافا Java تعد جافا لغة برمجة عالية المستوى كائنية التوجه تدعم التنفيذ كلغة مترجمة وكلغة مفسرة أيضًا، وتشتهر كثيرًا في مجال تطوير تطبيقات الهاتف ولا سيما الموجهة منها إلى نظام تشغيل أندرويد، كما يشيع استخدامها في مجال تطوير الألعاب. لغة جافا سكريبت JavaScript تتعدد النماذج البرمجية للغة جافا سكريبت، فهي تدعم البرمجة الإجرائية والبرمجة الوظيفية، وكذلك تعد داعمة لنموذج البرمجة كائنية التوجه، وتعد لغة مفسرة، وتبرز جافا سكريبت بشدة في مجال تطوير الواجهات الأمامية لتطبيقات الويب. لغة PHP تعد لغة PHP واحدة من لغات البرمجة المفسرة الكلاسيكية التي لا تزال مستخدمة إلى يومنا هذا، وهي داعمةٌ للبرمجة كائنية التوجه والبرمجة الإجرائية، وتُستخدم في تطوير جهة الخادم Server-Side في تطبيقات الويب. لغة سويفت Swift تحظى لغة سويفت بشعبية واسعة رغم حداثتها وظهورها متأخرًا في الأوساط البرمجية، وهي لغة مترجمة وتتلاءم بشدة مع نموذج البرمجة كائنية التوجه، وكذلك تدعم بعض النماذج البرمجية الأخرى مثل البرمجة الوظيفية، وتُستخدم سويفت لتطوير تطبيقات الجوال الموجهة إلى نظام تشغيل iOS. الخلاصة تعرفنا في مقال اليوم على أهمية لغات البرمجة عالية المستوى وأبرز أنواعها وتطبيقاتها، ويمكن القول أنه لا يمكن الاستغناء عن لغات البرمجة عالية المستوى في عصرنا الحالي، بل يسعى خبراء المطورين لتحديثها وتعديلها تارةً بتارةٍ حتى تكون أسهل وأقرب إلى اللغات البشرية، ولكي تصبح أكفأ وأسرع وأكثر أمانًا، وتُوائِم التغيرات السريعة في عالم التقنية، فاحرص على حجز وظيفتك في المستقبل بتعلُّم إحدى لغات البرمجة عالية المستوى من دورات أكاديمية حسوب المميزة. اقرأ أيضًا ما هي مدة تعلم البرمجة اكتشف ما هي البرمجة وما أهمية تعلمها دليلك الشامل إلى لغات البرمجة لغات برمجة الذكاء الاصطناعي دليلك إلى لغات برمجة الألعاب
  9. أدَّى التطور البرمجي المذهل في السنوات الأخيرة إلى تيسير الكثير من المهام وتسهيل تنفيذها، وبدأ التحول الرقمي يدخل في شتى المجالات عامًا بعد عامٍ، وهذا جعل البرمجة إحدى الوظائف الضرورية في عصرنا الحاضر، فما هي البرمجة ومن هو المبرمج؟ وما السبيل لتصبح مبرمجًا محترفًا بسهولة، هذا ما سنجيبك عليه في مقال اليوم؟ ما هي البرمجة ومن هو المبرمج المحترف؟ تشير البرمجة إلى عملية كتابة الشيفرات أو الأكواد البرمجية التي تخبر الحواسيب أو غيرها من الآلات الذكية ما الذي يجب عليها فعله، وتعد البرمجة جزءًا من عملية أكبر وهي تطوير البرمجيات، أما المبرمج فهو الشخص المسؤول عن توظيف كافة الأدوات البرمجية المختلفة ولا سيما لغات البرمجة وأطر العمل لتحويل أي فكرة أو مهمة يود تنفيذه إلى تطبيق أو برنامج حاسوبي فعلي يمكن للمستخدمين استعماله والاستفادة منه في تأدية مهامهم. ونقول عن المبرمج أنه مبرمج محترف إذا كان لا يقتصر على كتابة البرامج وتطوير التطبيقات التي تؤدي المطلوب فحسب، بل إذا تمكَّن من كتابة أكواد هذه التطبيقات بشيفرات برمجية منظمة وخالية من الثغرات الأمنية واتبع في كتابتها كافة قواعد البرمجة الصحيحة للحصول على أداء مثالي وفعال. كما يكون المبرمج محترفًا كلما كان قادرًا على التعامل مع المشكلات البرمجية الحاسوبية بسرعة وكفاءة، وكلما استطاع كتابة برمجيات تحلُّ مشكلاتٍ عديدة من مشكلات المستخدمين، واستطاع تقديم فائدة حقيقية في سوق البرمجيات كما سنشرح المزيد من السمات لاحقًا بمزيد من التفصيل في فقرة ممارسات المبرمج المحترف. أشهر وظائف البرمجة تتعدد فرص العمل في مجالات البرمجة نظرًا لتعدد أنواع البرمجيات التي يمكن تطويرها، ولعل أكثر الوظائف البرمجية انتشارًا ما يلي: مبرمج تطبيقات الويب Web Applications Programmer مبرمج تطبيقات الجوال Mobile Applications Programmer مبرمج تطبيقات سطح المكتب Desktop Applications Programmer مبرمج تطبيقات ذكاء اصطناعي Artificial Intelligence Programmer مطور ألعاب إلكترونية Game Developer مبرمج تطبيقات الأمن السيبراني Cyber Security Applications Programmer ما الفرق بين المبرمج المحترف ومهندس البرمجيات؟ تتعدد الفروق بين المبرمج ومهندس البرمجيات، ومنها: المسؤوليات: يعد مهندس البرمجيات مسؤولًا عن صناعة التطبيق البرمجي بالكامل، ويعد مسؤولًا عن التواصل مع العميل وفهم احتياجاته جيدًا، ثم تحويل هذه الاحتياجات إلى تصميم أولي للتطبيق، ثم تحسين هذا النموذج الأولي، ثم كتابة شيفرات التطبيق، ثم اختبارها وتنقيح أخطائها، وأخيرًا إطلاق التطبيق والإشراف على تحديثاته، أما المبرمج فليس مسؤولًا عادة إلا عن تحويل تصميم التطبيق إلى شيفرات تفهمها الآلة. المهمة في دورة تطوير البرنامج: يشرف مهندس البرمجيات على جميع مراحل تطوير البرنامج، بدءًا من النمذجة أو التصميم الأولي، انتهاءً بالاختبار ومعالجة الأخطاء وإصدار التطبيق، أما المبرمج فلا يقع عمله إلا في مرحلة واحدة من مراحل تطوير التطبيق وهي مرحلة كتابة الشيفرات واختبارها وتنقيح أخطائها. المهارات: يحتاج مهندس البرمجيات مجموعة واسعة من المهارات، والتي تتضمن معرفة قوية بالرياضيات وخبرة في البرمجة وقدرة على التعامل مع الأدوات السحابية، بينما لا يحتاج المبرمج إلا معرفة قوية بلغة برمجة والتعمُّق فيها والتدرُّب على كتابة الخوارزميات باستخدامها. هل أحتاج للدراسة الأكاديمية لأصبح مبرمجًا محترفًا؟ تعد الدراسة الأكاديمية مهمة ومفيدة وتختصر كثيرًا من الوقت والجهد، ولا سيما في مجالات تطوير البرمجيات، فالجامعة أو الجهة الأكاديمية تضع منهجًا واضحًا وخطة طريق من اليوم الدراسي الأول إلى اليوم الدراسي الأخير، مما ينقذ الطالب من التشتت بين المصادر الكثيرة التي لا حصر لها على الإنترنت. لكن بالرغم من هذه الأهمية البالغة للدراسة الأكاديمية إلا أنَّ الخبر الجيد أن مجال البرمجة لا يعد محصورًا على الأكاديميين، ويسهل الحصول على وظيفة مرموقة في المجال إذا امتلكت المهارات المطلوبة، وقد أسفرت إحصائية ستاك أوفر فلو لعام 2023 عن نتائج مذهلة تتعلق بالدراسة الأكاديمية، إذ صرَّح ثمانون بالمائة من المشتركين في الإحصائية عن تعلُّمهم للبرمجة من الدورات عبر الإنترنت وهناك أمثلة عديدة على مبرمجين بارزين تعلموا البرمجة بصورة ذاتية وبرعوا بها! فإذا كنت مهتمًا لتصبح مبرمجًا محترفًا خلال فترة زمنية قصيرة وترغب في مصدر موثوق للتعلم يمكنك الاطلاع على دورات أكاديمية حسوب للجمع بين مزايا التعلُّم الأكاديمي من منهج مميز وخطة طريق واضحة، ومزايا التعلم عبر الإنترنت من حرية في تنظيم الوقت وسهولة الوصول للمعلومات، وتضمن لك أكاديمية حسوب استرداد استثمارك إذا ما لم تحصل على وظيفة في مجال البرمجة خلال ستة أشهر من إنهاء الدورة، كما توفر الأكاديمية مجموعة من المصادر المجانية لتعلُّم البرمجة، بدءًا من الكتب المميزة في المجالات البرمجية المختلفة، مرورًا بالمقالات الكثيرة والمميزة، وصولًا إلى قسم الأسئلة والأجوبة الذي يساعدك فيه المبرمجون المحترفون على حل المشكلات التي تواجهك في البرمجة. دورة علوم الحاسوب دورة تدريبية متكاملة تضعك على بوابة الاحتراف في تعلم أساسيات البرمجة وعلوم الحاسوب اشترك الآن ما هي المهارات المطلوبة لتصبح مبرمجًا محترفًا؟ يمتلك المبرمج المحترف مجموعة من الأدوات والتقنيات البرمجية التي تجعله مميزًا عن المبرمج العادي، ومنها: الخوارزميات: تساعد الخوارزميات المبرمج المحترف على التفكير بمنطقية، وهي مهارة ضرورية لكل مبرمج، إذ إن الحواسيب والأجهزة الرقمية تعمل بتسلسل ومنطقية شديدة وبالتالي يجب أن يكون المبرمج منطقيًا أثناء التعامل معها، وكذلك تساعد الخوارزميات على تحسين أداء التطبيق وجعله فعالًا. أساسيات الحاسوب: يعد التعرُّف على أساسيات الحاسوب من مكونات وطريقة عمل أمرًا ضروريًا للمبرمج المحترف، إذ يجعلك قادرًا على فهم الآلة مما يؤدي إلى تسهيل التعامل معها وكتابة برامج تتعامل مع موارد الآلة بكفاءة. أساسيات البرمجة: يحظى المبرمج المحترف بتأسيس برمجي سليم وقوي يساعده على التوغُّل في أي مجال كان ، إذ إنَّ أساسيات البرمجة تجمع لك أهم المفاهيم المشتركة بين لغات البرمجة، واستيعاب هذه المفاهيم البرمجية المجردة يجعلك قادرًا على تعلُّم أي لغة برمجة بسهولة فيما بعد. التركيز على مجال برمجي محدد: يختار المبرمج المحترف مجالًا برمجيًا محددًا ليتوغل فيه ويتعلَّم جميع أدواته ومهاراته المطلوبة، بدءًا من لغة البرمجة المفضلة في المجال، مرورًا بإطار العمل المناسب، وصولًا إلى النموذج البرمجي الأمثل لكتابة هذا النوع من البرمجيات، وغيرها من مهارات المجال. هياكل البيانات: يهتم كل مبرمج محترف بفهم هياكل البيانات جيدًا لما لها من أهمية في تحسين استغلال الموارد وفي تحسين الوصول إلى البيانات، كما تساعدك هياكل البياننات على تصميم خوارزميات فعَّالة وقوية. أنماط التصميم: تعد أنماط التصميم Design Patterns مجموعة من الحلول الموضوعة مسبقًا لحل مشكلات برمجية شائعة، وتعلم أنماط التصميم أمر اختياري لكنه يساعد المبرمج على شيفرات منظمة وقابلة للاختبار والصيانة وتتسم بالكفاءة والأمن، ما يجعل شيفراته أكثر احترافية ويوفر عليه الكثير من الوقت والجهد. قواعد البيانات: لا يستغني أي مبرمجٌ عن استخدام قواعد البيانات، وذلك لما لها من أهمية قصوى في تنظيم بيانات التطبيق وتأمينها، وجعل الوصول إليها سهلًا يسيرًا سريعًا، والمبرمج المحترف هو القادر على اختيار نوع قواعد البيانات الأنسب لتطبيقه. الشبكات: تهدف الشبكة إلى تسهيل مشاركة البيانات ومشاركة الموارد، كما تهدف أيضًا إلى تمكين مستخدمي التطبيق من التواصل، وتختلف أهمية تعلُّم الشبكات من مجال إلى آخر، فهي شديدة الأهمية للمبرمج الذي يعمل على برمجة التطبيقات من جانب الخادم، لكنها ليست كذلك للمبرمج المختص في تطوير تطبيقات سطح مكتب تعمل على الحاسوب المحلي مثلًا. واجهة برمجة التطبيقات: تساعد واجهات برمجة التطبيقات Application User Interface أو اختصارًا API على توفير الكثير من وقت وجهد المبرمج،وتمكنه من تضمين مميزات جاهزة للتطبيق دون الحاجة إلى إعادة برمجتها، مثل تضمين الخرائط في تطبيق استئجار سيارات، أو تضمين بوابة دفع في متجر إلكتروني وهي ميزات يحتاجها أي مبرمج محترف في برمجة التطبيقات. أمن المعلومات: لا يخفى على أي مبرمج محترف أهمية تعلُّم مبادئ تأمين الشيفرات، فالتطبيق غير الآمن المُعرَّض للاختراق لن يثق به المستخدمون والعملاء، وبالتالي لن يحقق أهدافه سواءً البيعية أو غيرها، وكذلك سيكون عرضة لمشكلات قضائية إذا ما تسربت بيانات المستخدمين، ولذلك ينبغي على كل مبرمج تعلُّم أساسيات تأمين البيانات والتطبيقات والشبكات. ما أهم الأدوات التي تساعدك لتصبح مبرمجًا محترفًا؟ تعد الأدوات التي تساعد المبرمج على الاحتراف وإتقان البرمجة كثيرة وعديدة، ومنها: بيئات التطوير المتكاملة IDEs‎. أنظمة التحكم في الإصدارات Version Control Systems. الطرفية أو سطر الأوامر Command Line. أدوات الاختبار وتنقيح الأخطاء Testing and Debugging Tools. أدوات تحديد الأداء Performance Profiling Tools. لنعرف أكثر عن كل أداة واستخدامها وأهميتها. بيئات التطوير المتكاملة IDEs تعد بيئات التطوير Integrated Development Environments أو IDEs اختصارًا تطبيقات برمجية مهيئة لكتابة الشيفرات واختبارها وتنقيح أخطائها، وتكون بيئات التطوير المتكاملة مزودة بخواص مميزة تجعل عمل المبرمج أسهل، مثل: الإكمال التلقائي للشيفرات Auto-Completion، وتظليل صيغ لغة البرمجة Syntax Highlighting، وغيرها من المميزات التي توفر على المبرمج كثيرًا من الوقت والجهد، وتعد بيئة تطوير فيجوال ستوديو Visual Studio أشهر بيئة تطوير في الأوساط البرمجية. نظام تحكم في الإصدارات Version Control System أصبحت أنظمة التحكُّم في الإصدارات جزءًا ضروريًا من عمل كل فريق برمجي، إذ تسمح للمبرمجين بتتبع التحديثات المتتالية لشيفرات البرنامج، كما تسمح باستعادة نسخة محددة من الشيفرات، وكذلك تساعد على تنظيم التعديلات المختلفة لشيفرات البرنامج من كل مبرمج في فريق البرمجة، ويترأس نظام التحكم في الإصدارات جيت Git أنظمة التحكُّم الحديثة. الطرفية أو سطر الأوامر Command Line تعد الطرفية أو واجهة الأوامر من الأدوات المساعدة لأي مبرمج إذ يمكنه من خلالها تنفيذ مهام كثيرة في وقتٍ قصير، فهي تسمح له مثلًا بإنشاء أعدادٍ ضخمة من الملفات بأمر واحد، كما تسمح بتعديل محتوى هذه الملفات، فضلًا عن أهميتها في إدارة الشبكات وإدارة أنظمة التشغيل والوصول إلى عناصر جوهرية لا يمكن الوصول لها عبر الواجهة الرسومية. أدوات الاختبار وتنقيح الأخطاء Testing and Debugging Tools تساعد أدواتُ الاختبار المبرمجَ على استخراج أخطاء الشيفرات وثغراتها ومناقب ضعفها، ثم تساعده أدوات تنقيح الأخطاء على سد هذه الثغرات، وتوفر بيئة تطوير فيجوال ستوديو أداة Visual Studio Debugger لتنقيح أخطاء غالبية لغات البرمجة، كما توفر معظم المتصفحات أدوات تطوير DevTools تساعد مبرمجي الويب في عملية تصحيح الأخطاء البرمجية. أدوات تحليل أداء البرمجيات Performance Profiling Tools يجب اختبار أداء التطبيق كما يجب اختبار أمانه، فالأداء واحدٌ من أهم معايير تجربة المستخدم، وتساعد أدوات تحديد الأداء، مثل: Chrome Performance Tab و Apache JMeter المبرمج المحترف على تحليل أسباب ضعف الأداء وتنقيحها والوصول بالبرنامج إلى أسرع مستوياته. ما أهم ممارسات المبرمج المحترف؟ يتميز أي مبرمج محترف باتباع مجموعة من الممارسات كعاداتٍ دائمة، وتساعده هذه الممارسات على كتابة شيفرات متقنة لا تشوبها شائبة، ومن هذه الممارسات: حل المشكلات: احرص على حل مشكلات برمجية يوميًا، فما البرمجة إلا بضع مشكلات عليك الوصول إلى أفضل حل لها، وتوجد مواقع مختصة للتدرُّب على مهارة حل المشكلات، وأشهرها موقع هاكر رانك HackerRank الذي يوفر مسائلًا برمجيةً لكثيرٍ من لغات البرمجة على مستوياتٍ مختلفة. التفكير المنطقي: اقرأ كتبًا في المنطق، وتعلَّم الخوازميات، وفكِّر بمنطقية وتسلسل، وحُلَّ كثيرًا من الألغاز والأحاجي التي تتطلب تفكيرًا منطقيًا لحلها، فالحاسوب شديد المنطقية وهو ينفذ الشيفرات بالتسلسل واحدة تلو الأخرى، ولا يستطيع تخطي شيفرة بها مشكلة لاستكمال تنفيذ البرنامج، فعليك أن تحاكي بدورك أسلوبه في العمل لكتابة خوارزميات قادرة على حل المشكلات بأفضل هيئة ممكنة. التفكير النقدي: سَل نفسك دائمًا قبل كتابة كل شيفرة؛ لماذا أكتب هذه الشيفرة في هذا المكان بالضبط؟ هل ستؤثر هذه الشيفرة على أداء وأمان التطبيق سلبًا أم إيجابًا؟ يساعدك التفكير النقدي على تجنُّب المشكلات قبل ظهورها، كما يساعدك على حلِّها ما إذا ظهرت، وكذلك يساعدك على تحسين أداء وأمان التطبيق باستمرار. الاختبار وتنقيح الأخطاء: اختبر برنامجك باستمرار، ولا تكتفِ باختبارٍ واحد وإنما اختبره دوريًا، إذ تتكشف لك أخطاءٌ جديدة في كل اختبار، فتعمل على تنقيحها حتى تصل بتطبيقك إلى أفضل مستوى من الأداء والأمان. التطبيق الدائم: طبِّق ما تتعلمه في مشاريع عملية باستمرار، ويمكنك البحث عبر الإنترنت عن أفكار مشاريع مناسبة لمستواك ومعارفك، فالتطبيق الدائم يجعلك قادرًا على استذكار المعارف القديمة وربطها بحديث الدراسة، ويكشف لك عن الاستخدامات العملية للعلم الخام الذي تدرسه. المهارات الناعمة: لا تهمل دور المهارات الناعمة في طريقك لاحتراف البرمجة، وابنِ علاقاتٍ جيدة مع المبرمجين الآخرين، فهذا يوفر لك فرصًا عظيمة للتوظيف، كما يساعدك على تطوير مهاراتك البرمجية ومستواك البرمجي، وهذه العلاقات لن تنجح دون المهارات الناعمة، بدءًا من مهارات تكوين العلاقات، مرورًا بمهارات التواصل، وصولًا إلى مهارات العمل ضمن فريق وغيرها. قواعد كتابة الشيفرات النظيفة: تعلَّم مبادئ وقواعد كتابة الشيفرات النظيفة Clean Codes، وهي الشيفرات سهلة القراءة والاختبار والتنقيح، وتكمُن أهمية مبادئ كتابة الشيفرات النظيفة في توفير وقت وتكاليف صيانة التطبيق، كما تساعدك على تحسين أداء التطبيق وأمانه. التعلُّم المستمر: زِد حصيلتك العلمية يوميًا، فمجال البرمجة يتطور يومًا بعد الآخر، وتزداد مهام المبرمج والمهارات التي عليه تعلُّمها في كل يوم وحتى لو تمكنك من الحصول على وظيفة أو عمل حر بالمهارات التي تمتلكها لا تتوقف عن التعلم والتحصيل المستمر لكل ما هو جديد لتحافظ على الصدارة والتميز. وإذا كنت تبحث عن مصادر تعليمية تساعدك على احتراف البرمجة باللغة العربية، فستجد في أكاديمية حسوب الكثير من المصادر التعليمية الحديثة والموثوقة التي تناسبك سواء كنت مبتدئًا أو محترفًا في البرمجة من دروس ومقالات دورية وتوثيقات مرجعية شاملة وكتب تعليمية ومقاطع فيديو مميزة ودورات تدريبية احترافية لمختلف لغات البرمجة والتخصصات المطلوبة في سوق العمل. الخاتمة تعرفنا في مقال اليوم على مفهوم المبرمج المحترف والفرق بين المبرمج ومهندس البرمجيات، وعرفنا مهارات وأدوات وممارسات المبرمج المحترف، وفي الختام أود أن أنصحك باتخاذ خطوة تعلم البرمجة إذا لم تكن بدأت بها بعد، فتعلم البرمجة يقدم لك مجموعة من الفوائد أهمها تعزيز طريقة تفكيرك المنطقي والإبداعي والوصول إلى أفضل حل للمشكلات في عملك أو حياتك الشخصية كما يساعدك على مجاراة التطور التقني المتسارع، وأخيرًا توفر البرمجة أمانًا وظيفيًا ورواتب مجزية للمبرمج المحترف. اقرأ أيضًا تعلم البرمجة تعلم أساسيات البرمجة للمبتدئين تعرف على وظائف البرمجة الأكثر طلبًا الطريقة الأمثل لدراسة تخصص هندسة البرمجيات مجالات البرمجة
  10. تتكون الحواسيب والأجهزة الحديثة من شطرين أساسيين هما العتاد Hardware والبرمجيات Software، وتقع أنظمةُ التشغيل Operating System في رأس البرمجيات الضرورية لتشغيل الأجهزة الحديثة، إذ يعد نظام التشغيل البرنامج الأساسي الذي يساعد على تثبيت برمجيات فرعية على الجهاز واستخدامها واستخدام العتاد بالشكل المطلوب، فما هي أنظمة التشغيل، وما مكوناتها؟ ما هي أنظمة التشغيل؟ يشير نظام التشغيل إلى الطبقة الفاصلة بين المستخدم وعتاد الجهاز، ويضم نظام التشغيل مجموعة من البرمجيات المستخدمة في إدارة عتاد الجهاز وموارده، من معالج إلى ذاكرة الوصول العشوائي RAM والذاكرة الصلبة HDD وغيرها من العتاد، وكذلك يوفر نظام التشغيل خدمات إضافية للمستخدم، منها تثبيت التطبيقات الرقمية وتشغيلها وإغلاقها وحذفها. ويعد الهدف الأهم لأنظمة التشغيل هو تسهيل التعامل مع التطبيقات وجعلها جذابة وإضافة واجهة أمامية لها، فبدون نظام تشغيل كانت إدارة التطبيقات ستقتصر على واجهة الأوامر البدائية البسيطة، وبالتالي لم تكن التطبيقات الإلكترونية لتتطور وتمتلئ بالخصائص كما تطورت، ما يجعل أنظمة التشغيل شطرًا أساسيًا من أي تطور تقني حديث. وليس الهدف الأوحد لأنظمة التشغيل هو تسهيل التعامل مع التطبيقات، وإنما لأنظمة التشغيل وظائف عديدة، فمنها مثلًا إدارة موارد الجهاز، وكذلك يساعد نظام التشغيل على تنظيم ومزامنة العمليات على الجهاز، كما يعمل على تنظيم البيانات، فلا تتداخل بيانات أحد التطبيقات مع بيانات تطبيق آخر فتحدث مشكلات أمنية أو فقدان للبيانات. تتعدد أنظمة التشغيل وتكثر، ومن أشهر أنظمة تشغيل الحواسيب نظام ويندوز Windows ونظام لينكس Linux ونظام ماك أو إس MacOS لأجهزة أبل، بينما يشتهر بين أنظمة تشغيل الهواتف نظاما تشغيل أندرويد Android وأي أو إس iOS. ما مكونات نظام التشغيل؟ تتنوع مكونات نظام التشغيل وتختلف من نظام لآخر، لكن تشترك أنظمة التشغيل في مجموعة من المكونات أو البرمجيات التي تؤدي إجراءاتٍ ووظائف محددة، وهي تشمل: استدعاءات النظام System Calls مدير العمليات Processes Manager الإشارات Signals مدير الملفات Files Manager مدير الشبكات Networks Manager مدير الأمن Security Manager مدير أجهزة الإدخال والإخراج I\O Devices Manager مدير الذاكرة الرئيسية Main Memory Manager مدير الذاكرة الثانوية Secondary Memory Manager مترجم الأوامر Commands Interpreter لنشرح كل مكون ووظائفه بمزيدٍ من التفاصيل. استدعاءات النظام System Calls يعد نظام التشغيل وسيطًا بين المستخدم وعتاد الجهاز، وكذلك تعد استدعاءات النظام وسيطًا بين برامج المستخدم ونواة نظام التشغيل، فلو كان الوصول من البرمجيات إلى نظام التشغيل مباشرًا دون وسيط لكان اختراق هذا النظام سهلًا يسيرًا. تدخل استدعاءات النظام في كثيرٍ من عمليات نظام التشغيل، مثل: إدارة الملفات وإدارة العمليات وإدارة الذاكرة الرئيسية والذاكرة الثانوية وإدارة أجهزة الإدخال والإخراج، ما يجعل هذه الاستدعاءات شديدة الأهمية في نظم التشغيل. مدير العمليات Processes Manager تشير العملية Process إلى برنامج قيد التنفيذ، وتتكون العملية من عناصر عديدة أهمها بيانات البرنامج وشيفراته، ويجب أن تكون شيفرات البرنامج قابلة للتنفيذ؛ أي لا تحوي أخطاءً برمجية تمنع من تنفيذها. ويعمل مدير العمليات على إجراء استدعاءات للنظام لإنشاء عملية جديدة أو إنهاء عملية حالية، ويساعد مدير العمليات على مزامنة تنفيذ البرامج المختلفة على الجهاز، حتى لا تتداخل بيانات البرمجيات المختلفة في بعضها بعضًا؛ ما يؤدي إلى حفظ هذه البيانات من التلف، وكذلك يؤدي تنظيم العمليات إلى تقليل احتمالية حدوث خرق أمني نتاج تداخل البرمجيات وبياناتها. الإشارات Signals تُستخدم الإشارات لتنبيه المستخدم إلى حدث محدد متعلق بالعملية، سواءً انتهاء العملية بنجاح أو حدث خطأ أثناء تنفيذها، وتعمل الإشارات على تعليق العملية حتى يتخذ المستخدم الإجراء المناسب بناءً على الإشعار الظاهر له. مدير الملفات Files Manager يعمل مدير الملفات على تنظيم الملفات على الجهاز، فيُجرِي استدعاءاتٍ للنظام للتحكُّم في الملفات، مثل: استدعاء النظام لإنشاء ملف جديد في مُجلَّد محدد أو استدعاء النظام لقراءة بيانات من ملف أو استدعاء للكتابة في ملف أو استدعاء لحذف ملف. مدير الشبكات Networks Manager يوفر مدير الشبكات مجموعة من العمليات والإجراءات التي تساعد على تحديد الوصول إلى الشبكة وتأمينها، كما يساعد مدير الشبكات مسؤولي الشبكات على تحصيل معلومات متقدمة ومتقدمة عن شبكاتهم ومكوناتها، وكذلك يفحص العمليات المتوالية على الشبكة، ما يساعد مسؤولي الشبكات على تطوير الشبكة وتحسينها واختبارها وسد ثغراتها. مدير الأمن Security Manager يعد مدير الأمن أحد أهم أجزاء نظام التشغيل، إذ يعمل على تنظيم الوصول إلى جوهر النظام وتحديد الوصول إلى العتاد، فيسمح للبرمجيات الموثوقة بالتحكم في الجهاز والوصول إلى موارده، بينما يمنع البرمجيات الخارجية وغير الموثوقة من الوصول للموارد حتى يأذن لها المستخدم بنفسه. مدير أجهزة الإدخال والإخراج I\O Devices Manager يعمل مدير أجهزة الإدخال والإخراج على تنظيم عمليات إدخال البيانات عبر أجهزة الإدخال، مثل: لوحة المفاتيح والفأرة، وكذلك يعمل على تنظيم عمليات عرض البيانات وإخراجها عبر أجهزة الإخراج والتي تتضمن شاشة العرض والطابعة وغيرهما، ويعمل مدير أجهزة الإدخال والإخراج على تنظيم العمليات حسب الأولوية، فمثلًا عندما يضغط المستخدم ضغطتين بالفأرة على أحد التطبيقات لتشغيله؛ يقطع مدير أجهزة الإدخال والإخراج جميع العمليات الأخرى لتنفيذ هذه العملية العاجلة. مدير الذاكرة الرئيسية Main Memory Manager تشير الذاكرة الرئيسية إلى الذاكرة العشوائية RAM، وهي ذاكرة مؤقتة تُستخدم لتخزين بيانات البرنامج أثناء تنفيذه، ثم تنتقل هذه البيانات إلى الذاكرة الثانوية أو الدائمة إذا أراد المستخدم أن يحتفظ بها. يعمل مدير الذاكرة الرئيسية على حجز الكمية المناسبة من الذاكرة العشوائية للبرنامج دون تفريط لكيلا تحدث مشكلات بالجهاز، ودون اختزال حتى لا يكون البرنامج المُنفَّذ بطيئًا. مدير الذاكرة الثانوية Secondary Memory Manager تشير الذاكرة الثانوية إلى الذاكرة الدائمة أو قرص التخزين الصلب Hard Disk Storage، ويعمل مدير الذاكرة الثانوية على حجز المساحة المناسبة للبرنامج وبياناته على القرص الصلب، وكذلك يعمل على فصل وتنظيم الملفات والبيانات المُخزَّنة فيها حتى لا يحدث تداخل بينها. مترجم الأوامر Commands Interpreter تعد واجهة سطر الأوامر إحدى الطرق الكلاسيكية في التعامل مع الأجهزة الإلكترونية ولا سيما الحواسيب، ولا تزال ضرورية لكل مبرمج حتى عصرنا هذا، ويسمح مترجم سطرالأوامر للمستخدم بكتابة أوامر متنوعة، مثل: إنشاء ملف أو نسخ ملف أو حذف ملفات أو قراءة معلومات عن النظام وغيرها، ثم يعمل المترجم على ترجمة أوامر المستخدم إلى لغة الآلة ثم تنفيذها، ويشتهر كل من cmd.exe و PowerShell بين مترجمات أوامر نظام تشغيل ويندوز، في حين يبرز مترجم الأوامر Bash لنظام لينكس، بينما يذيع صيت مترجم الأوامر Terminal لنظام تشغيل ماك أو إس. ما الفرق بين مكونات نظم التشغيل؟ تتفرع أنواع أنظمة التشغيل، وتختلف مكونات كل نظام تشغيل عن نظيره اختلافًا طفيفًا، ومن أشهر أنظمة التشغيل: ويندوز Windows لينكس Linux ماك أو إس MacOS أندرويد Android أي أو إس iOS لنستعرض أبرز المكونات الفريدة لكل نظام تشغيل بمزيد من التفصيل. ويندوز Windows يعد ويندوز نظام تشغيل حاسوبي تابع لشركة مايكروسوفت Microsoft، ويتميز بواجهته الرسومية الجذابة وسهلة الاستخدام، ويتكون ويندوز من عدد ضخم من العناصر،ومن أبرزها: لوحة التحكم Control Panel: والتي تساعد المستخدم على تخصيص عناصر نظام التشغيل لملائمة احتياجاته. أداة Windows Update لتثبيت التحديثات الأمنية مركز التحكم Action Center: للتحكم في الشبكات الحاسوبية وأصوات النظام وغيرها. مستكشف الملفات والمجلدات File Explorer. نافذة أوامر Command Prompt، البرمجيات الأساسية لعمل النظام مثل برنامج Svchost.exe لإدارة العمليات ونواة ويندوز Ntoskrnl.exe لإدارة عتاد الجهاز وخدمات نظام التشغيل. لينكس Linux يشتهر نظام تشغيل لينكس بشدة بين المبرمجين ومطوري البرمجيات، ويعد نظام تشغيل حاسوبي، ويتميز في إدارة الشبكات وإدارة عتاد الجهاز، ويتكون نظام التشغيل لينكس من خمسة طبقات رئيسية، وهي: طبقة العتاد Hardware Layer: مسؤولة عن إدارة مكونات عتاد الحاسوب جميعًا، بدءًا من المعالج، مرورًا بالذاكرة الصلبة والعشوائية، وصولًا إلى أجهزة الإدخال والإخراج. النواة kernel: الطبقة الأساسية في نظام تشغيل لينكس، وهي المسؤولة عن بدء العمليات ومزامنتها وتنظيمها وتنفيذها، وتعمل النواة أيضًا على إدارة الموارد والسماح لكل عملية باستهلاك القدر المناسب لها من الموارد. القشرة Shell: الفاصل بين المستخدم والنواة، ويوجه المستخدم أوامره للنواة عبر القشرة، ويوجد نوعان من القشرة، أولاهما واجهة المستخدم الرسومية وتتميز بسهولة الاستخدام والجاذبية، والأخرى واجهة الأوامر والتي يكتب فيها المستخدمُ أوامرَه التي يريد من النواة تنفيذها. مكتبات النظام System Libraries: مجموعة من الوظائف المُبرمَجَة مسبقًا، والتي تسمح لأي برنامج خارجي بالوصول إلى مميزات النواة، وهي أساس بناء أي تطبيق رقمي موجه لنظام تشغيل لينكس. خدمات النظام System Utilities: الوظائف الإدارية بنظام التشغيل، والتي تسمح للمستخدم بإدارة الملفات والشبكات، وإدارة سائر أجزاء نظام التشغيل. ماك أو إس MacOS يعد ماك أو إس نظامًا حاسوبيًا لأجهزة أبل Apple، ويتكون من واجهة أمامية سلسة وجذابة وفعالة تُسمَّى أكوا Aqua، ويحظى بتطبيقات مخصصة مطورة بلغات برمجة، مثل: جافا وسويفت، وكذلك يتميز نظام ماك أو إس برسوم Graphics جذابة مبنية على إطاري عمل Quartz وQuickTime ومكتبة OpenGL، وتعد النواة الأساسية لنظام التشغيل ماك أو إس هي داروين Darwin، والذي يعد نظام تشغيل مبني على نظام تشغيل UNIX، ويعد نظام ماك أو إس بالكامل مبنيًا على نظام تشغيل داروين. أندرويد Android يعد أندرويد نظام تشغيل للهواتف المحمولة، ويعد مبنيًا على نظام لينكس، ويحوي خمسة مكونات رئيسية، وهي: نواة لينكس Linux Kernel: يعد المكون المسؤول عن إدارة عتاد الهاتف بأكمله وإدارة العمليات والشبكات والذاكرة الدائمة والذاكرة العشوائية وغيرها. مكتبات المنصة Platform Libraries: تحتوي هذه الطبقة على بعض المكتبات المساعدة على إدارة النظام، مثل: مكتبات لدعم تشغيل الوسائط، ومكتبات لدعم عرض الرسوم، ومكتبات لدعم التخزين في قواعد بيانات مختلفة، وغيرها. وقت تشغيل أندرويد Android Runtime: توفر هذه الطبقة بيئة تشغيل تحتوي على الخدمات الضرورية لتشغيل التطبيقات المُثبَّتة على الهاتف. أطر عمل التطبيقات Application Frameworks: الطبقة المسؤولة عن إدارة تطبيقات الهاتف، وكذلك تعد مسؤولة عن إدارة الإشعارات وإدارة الواجهة الأمامية للهاتف وأسلوب عرض التطبيقات. التطبيقات Applications: تشير إلى التطبيقات المثبتة على الهاتف، سواءً كانت تطبيقات داخلية، مثل: الكاميرا ومتصفح الصور، أو تطبيقات خارجية مثبتة من المتجر، وتعمل التطبيقات في طبقة وقت تشغيل أندرويد بمساعدة الخدمات المُقدَّمة من طبقة أطر عمل التطبيقات. أي أو إس iOS يعد أي أو إس نظام تشغيل للأجهزة الجوالة التابعة لشركة أبل، مثل: هاتف أيفون iPhone وأي باد iPad وغيرهما، ويتكون نظام تشغيل أي أو إس من أربعة طبقات رئيسية، وهي: نواة نظام التشغيل OS Core: تحوي أطر العمل المسؤولة عن الوظائف الأساسية للنظام، مثل: البلوتوث والأمن والتفويض المحلي. الخدمات الأساسية Core Services: تضم أطر العمل المسؤولة عن وظائف أخرى متعددة، مثل: التخزين السحابي وإدارة البيانات. الوسائط Media: تعد الطبقة الثالثة من مكونات أي أو إس، وهي المسؤولة عن تشغيل الصور والمقاطع الرسومية، طبقة Cocoa Touch: تجعل المستخدم قادرًا على تنفيذ عمليات اللمس والتحريك لاستخدام التطبيقات. ما مراحل إنشاء مكونات نظام التشغيل؟ تمر مكونات نظام التشغيل على مراحل عديدة قبل تجميعها وإطلاق نظام التشغيل، وهي: هيكلة النظام: قبل البدء في تطوير النظام يجب التخطيط له بتحديد الهيكل الأولي له والمميزات التي سيحويها، وتحديد الهدف من تطوير النظام. اختيار محمِّل الإقلاع Boot-loader: يعد محمِّل الإقلاع هو الجزء المسؤول عن تشغيل نظام التشغيل بنقله للذاكرة العشوائية للجهاز، ويمكن تطوير محمل إقلاع خاص كما يمكن استخدام محمل إقلاع موجود بالفعل، مثل: محمل الإقلاع GRUB. اختيار تصميم النواة: تتعدد تصاميم نواة نظام التشغيل kernel، فمنها مثلًا النويات المتجانسة Monolithic Kernels والتي تتميز بالسرعة والأداء المرتفع وتجعل نظام التشغيل سلسًا، ومنها النويات الصغيرة Micro Kernels والتي تتميز بتجريد أفضل لنظام التشغيل عن عتاد الجهاز. تطوير البرمجيات الخدمية: يعمل المطور في هذه المرحلة على تطوير كل برنامج من برامج نظام التشغيل على حدة، فيطور مدير الملفات ويختبره، ويطور مدير الشبكات ويختبره، ويطور بقية البرامج ثم يجمعها معًا في نظام التشغيل. اختبار نظام التشغيل: يختبر المطور نظام التشغيل لاستخراج المشكلات الأمنية ومعرفة الثغرات وحلها قبل إصداره. الخاتمة تعرفنا في مقال اليوم على مكونات أنظمة التشغيل التي تعد جزءًا أساسيًا من جميع الأجهزة الحديثة القابلة للبرمجة، واستعرضنا بإيجاز المكونات الأساسية لكل نظام تشغيل، ونذكر ختامًا أن هذه الأنظمة في تطورٍ دائمٍ وتحديثاتٍ متوالية، لذا ينبغي أن تحرص على تحديث نظام التشغيل لجهازك باستمرار لتضمن له أداءً مستقرًا وآمنًا. اقرأ أيضًا تعرف على نظام لينكس Linux وأبرز مميزاته وعيوبه تثبيت لينكس مع نظام ويندوز كيفية تثبيت توزيعة أوبنتو من لينكس بأبسط طريقة مدخل إلى نظام التشغيل ويندوز 11 وطريقة تثبيته
×
×
  • أضف...