FeaturesGeneral Coding Topicsبرمج

مصطلحات مهمة في عالم البرمجة

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

١. كود code 

المعنى الحرفي: شفرة

تعريفها: كلمات يفهمها الكمبيوتر، يتم من خلالها إرسال الأوامر إلى الكمبيوتر

 هناك الكثير من الناس تعتقد أن كتابة الكود، هي كتابة البرمجة. لكن هل تعرف شفرة مورس؟ إذا كتبت نص باستعمال شفرة مورس، فهذا coding. ف Coding تعني كتابة الشيء بلغة أخرى يفهمها الطرف الآخر. 

أبرز مثال على الفرق بين coding و programming هو لغتي HTML و CSS. لغة. HTML عبارة عن markup language. هي لغة، لكن ليست لغة برمجة، لأنها لا تحتوي على منطق، عبارة عن نصوص يتم ترمجتها إلى واجهة. 

أما لغة CSS، فتعتبر Styling language. أي أنها لغة أنماط. لكن التحديثات الأخيرة، تتيح ل CSS أن تحتوي متغيرات، وتكرار الكود، وفيها منطق، لذلك يختلف الناس على css أنها لغة برمجة. لكن استعمالها اليومي، يتم استعمالها على أنها ليست لغة برمجة

٢. Machine Language لغة الآلة

لغة الآلة أو اللغة الثنائية هي لغة برمجة منخضفة المستوى يفهمها الكمبيوتر بشكل مباشر. قد يصنف الناس لغة الصفر والواحد بلغة الآلة، وقد يصنفون لغة منخفضة المستوى أيضاً بلغة الآلة، تسمى Assembly Language. لغة الاسمبلي، هي اللغة التي تترجم مباشرة من قبل الهاردوير على لغة الصفر والواحد. يمكن للناس تعلم لغة الـ Assembly، فهي مفهومة بشكل أكبر من لغة الصفر والواحد طبعاً، لكن لا تزال لغة الـ Assembly صعبة الفهم جداً على المبتدئين، حيث فيها تواصل مباشر مع الهارودير. 

تتحول أغلب لغات البرمجة إلى لغة الأسمبلي أولاً من خلال عملية تسمى Compiling. أو الترجمة. ثم لغة الأسمبلي تتحول إلى لغة الصفر والواحد أو التي تعرف ب Binary Language من خلال عملية تسمى Assembling. 

٣. لغة عالية المستوى High Level Language

هي تصنيف للغات البرمجة. حيث أن لغة الكمبيوتر هي لغة الآلة المكونة من الصفر والواحد تعتبر صعبة الفهم للإنسان، لذلك اخترع الإنسان لغة عالية المستوى يمكنه فهمها، لكنها بالأخير يتم ترجمتها من قبل المحولات البرمجية Compilers إلى لغة الآلة Machine

٤. Compiler المترجم  

المحول البرمجي الذي يحول اكواد من لغة عالية المستوى إلى لغة منخفضة المستوى

لكل لغة برمجة عالية المستوى compiler خاص فيها. فمثلاً، لغة C لها كومبايلر خاص فيها، يترجمها من لغة عالية المستوى، إلى لغة منخفضة المستوى. لكن يأتي السؤال للكثير، كيف تمت برمجة هذا الكومبايلر؟ الكومبايلر يعتبر من أكثر الأمور الشيقة في عالم الكمبيوتر، لأنها عالم معقد وفيه استعمال ذكي جداً للأدوات البسيطة المتاحة, فتم برمجة كومبايلر لغة C في البداية بلغة الـ Assembly. والآن يتم استعمال لغة C لبرمجة Compilers للغات أخرى مثل Python و Java وغيرها. والجدير بالذكر أنه تم كتابة compiler لغة Kotlin باستعمال لغة Java. فلغة Kotlin تم برمجتها من قبل Java، و Java تم برمجتها من قبل C، و C تم برمجتها من قبل لغة ال Assembly، وال Assembly تم برمجتها من قبل لغة الآلة، الصفر والواحد. يارباه! شوف بني آدم وين وصل. ماودي أعقدكم زيادة، لكن حالياً يتم استعمال لغة C لبرمجة Compiler لغة C 😂. 

٥. Operating System نظام التشغيل

نظام التشغيل هو برنامج ضخم يعمل على الكمبيوتر، وهو مسؤول عن تشغيل البرامج الأخرى، مثل Word وغيرها. أمثلة على أنظمة التشغيل: iOS، MacOS، Windows10، Android, Linux 

٦. Open Source المصادر المفتوحة

برنامج الورد لا يمكنك أن ترى الكود الخاص فيه إلا إذا عملت لدى فريق مايكروسوفت. لذلك فهو لا يعتبر مفتوح المصدر. أما لغة بايثون، فيمكنك رؤية الكود الخاص فيها، ويمكنك حتى التعديل عليه، وإنشاء نسخة لغة بايثون الخاصة فيك، فهي مفتوحة المصدر، حيث يتشارك الناس في صناعة المنتج. لاحظ لو ضغطت على الرابط، ستجد أن هناك أكثر من ١٥٠٠ مساهم في بناء اللغة، منهم من يقوم بإضافة خواص كبيرة، ومنهم يقوم بإضافة اقتراحات بسيطة و تعديلات طفيفة. فبهذه الطريقة تكبر البرامج بطريقة مجانية. وبرامج مفتوحة المصدر تكون مجانية الاستعمال، على عكس بعض برامج غير مفتوحة المصدر، لا تكون مجانية مثل برنامج وورد.

٧. Front End واجهة أمامية

 مطور الواجهة الأمامية او Front End Developer هو مطور يهتم ببرمجة الواجهات وطريقة عرض المكونات على الشاشة، وطريقة تلوينها والتأثيرات التي تلحق المكونات، بالإضافة إلى كل العمليات المنطقية التي تتم في البرنامج من دون الحاجة إلى الاتصال بالانترنت. فإذا كان البرنامج لا يوجد فيه خاصية المشاركة أو الاتصال بالانترنت، فأنت تحتاج إلى مطور Front End فقط. ممكن يكون مطور الفرونت اند مطور واجهات مواقع، أو مطور واجهات برامج أيفون أو أندرويد. 

٨. Back End واجهة خلفية

مطور الواجهة الخلفية Backend Developer هو المسؤول عن جعل الفرونت اند يتصل بالانترنت ويخزن بيانات المستخدم وكل المعلومات المطلوبة في قواعد بيانات على الانترنت. لا يوجد برنامج قابل للاستخدام من قبل المستخدمين العاديين فيه فقط Backend. فالـ Backend يحتاج أن يكون متصلاً بالفرونت أند من خلال مايعرف بالـ API

٩. API 

الـ API هي اختصاراً لـ Application Program Interface. ومعناها الحرفي: واجهة برمجة التطبيقات. هي ليست واجهة مرئية، لكنها تعتبر واجهة من خلال صيغ وبروتوكولات معينة، يتفقق فيها الفرونت اند مع الباك اند بطريقة استلام القيم، ويتم ارسال البيانات من خلال ال API بشكل بروتوكول معين. هناك نوعان مهمان في برمجة المواقع من أنواع ال API.

  1. Rest API 
  2. GraphQL

وكلاهما يستعمل صيغة JSON للتعامل مع البيانات

٩. Native Applications تطبيقات محلية  

عندما يكلمك مبرمج، ويقول لك، سأبرمج لك Native iOS، هذا يعني أنه سيستعمل لغة برمجة ال iOS الأصلية. أي أنه لن يقوم بعمل صفحة ويب، تتناسب حجم الأيفون، ويضعه في برنامج ايفون، بل سيقوم ببرمجة الواجهة من الصفر من خلال لغة ال iOS الأصلية. وهناك أنظمة يمكنك استعمالها لبرمجة تطبيق Android و iOS من خلال لغة واحدة، وهي لا تعتبر Native بل تعتبر Cross Platform

١٠. Cross Platform 

برامج ال Cross Platform هي برامج لديها القدرة على أن تعمل على أكثر من جهاز من دون لاحاجة إلى تغيير اللغة، كما هو الحال باستعمال ال Native. فمثلاً، يمكنك برمجة برنامج يعمل على المتصفح، والأي أو أس و الأندرويد واللينكس، من خلال نظام برمجي واحد باستعمال لغة برمجة واحدة. من أهم الأمثلة على الكروس بلاتفورم 

  1. React Native و تستعمل لغة Javascript
  2. Flutter وتستعمل لغة Dart
  3. Xamarin ويستعمل لغة C# 

١١. Data Science علم البيانات

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

١٢. Machine Learning تعلم الآلة

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

١٣. Cybersecurity أمن السيبراني

Cyber تعني أي شيء الكتروني. فالامن السيبراني هو أمن الأجهزة الالكترونية، وغالباً الكمبيوتر. الكمبيوتر دائماً مهدد للخطر، طالما به اتصال بالانترنت، أو يتم إدخال Flash Memory فيه أو Hard Disk أو CD أو غيرها. لذلك الأمن السيبراني هو مجال متخصص في دراسة طرق المهاجمين والمخترقين على الكمبيوتر، ويركز أيضاً على جانب الحماية من المخترقين، وكيف يمكن أن نجعل برامجنا ومواقعنا آمنة للاستعمال من قِبل الجميع، من دون اختراق. الأمن السيبراني من أهم المجالات، لأن البنوك تحتاج إلى تأمين على بيانات عملائها لتأمن من اختراق حساباتهم وسرقة أموالهم. 

١٤. Automation الأتمتة

قد تبدو كلمة أتمتة غريبة، صح؟ لكنها كلمة تم اعتمادها لترمجة أوتوميشن، لكن ما الفائدة من تفسير الماء بالماء صح؟ 😂 المهم، الأتمتة هي فن جعل الإجراءات والآلات تسير وتعمل بشكل تلقائي. Automatic تعني تلقائي، وبالتالي Automation هي عملية جعل الاشياء تجري بشكل تلقائي من دون تدخل بشري.. يمكنك أن تقوم بعمل Automation لسير من الأعمال المملة المكررة، ويتم استعمال ذلك في أغلب المصانع، بحيث يأتمتون عمليات إنتاج المنتاج، من تغليف، وتقطيع، وتوزين، وكل العمليات تكون تلقائية من دون تدخل بشري، ويكون العامل البشري عامل رقابة فقط. هذا مايمكن أن تعمله أيضاً في سير عملك في الكمبيوتر. أبرز الأمثلة التي تواجهني أنا شخصياً، إنشاء شهادات التكريم. تخيل عندك دورة، وتريد تكريم ١٥٠ مشترك في يوم واحد. تخيل أن تكتب اسم اسم على الشهادة وتطبعه. ستتعب وستزيد نسبة الأخطاء. لذلك إذا قمت بعمل برنامج يقوم بكتابة اسماء الأشخاص بشكل أوتوماتيكي، ويقوم بإرسالهم الشهادات مباشرة على الإيميل، فستكون هذه العملية مريحة جداً 

١٥. SRS 

وهي اختصاراً ل 
Software Requirement Specifications
ترجمتها الحرفية: مواصفات متطلبات البرنامج

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


الختام

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