مجالات العمل في البرمجة PDF

Summary

يقدم هذا المستند معلومات حول المجالات المختلفة في العمل بالبرمجة، ويوضح التخصصات المختلفة في هذا المجال، ويستعرض لغات البرمجة المختلفة التي يمكن استخدامها في هذا المجال.

Full Transcript

‫جماالت العمل بالربجمة‬ ‫هناك عدة تخصصات في مجال البرمجة منها على سبيل المثال‪:‬‬ ‫‪ -‬تخصص مطور البرمجيات )‪ (Software Developer‬الذي يتولى تصميم‬ ‫وبناء واختبار البرمجيات المختلفة‪ ،‬سواء كانت تطبيقات تعمل على أجهزة‬ ‫الحاسب الشخصي مثل برنامج"‪ ، "Photoshop‬أو حتى تطبيقات الهوا...

‫جماالت العمل بالربجمة‬ ‫هناك عدة تخصصات في مجال البرمجة منها على سبيل المثال‪:‬‬ ‫‪ -‬تخصص مطور البرمجيات )‪ (Software Developer‬الذي يتولى تصميم‬ ‫وبناء واختبار البرمجيات المختلفة‪ ،‬سواء كانت تطبيقات تعمل على أجهزة‬ ‫الحاسب الشخصي مثل برنامج"‪ ، "Photoshop‬أو حتى تطبيقات الهواتف‬ ‫الذكية مثل تطبيق إنستغرام أو فيسبوك أو تويتر‪.‬‬ ‫‪ -‬مهندس البرمجيات )‪ (Software Engineer‬هو الذي يطبق مبادئ هندسة‬ ‫البرمجيات لتصميم وتطوير واختبار وصيانة وتقييم برامج الحاسب المختلفة‪.‬‬ ‫‪ -‬مطور واجهة الويب األمامية )‪ (Front-end‬الذي يتولى برمجة كل ما يظهر‬ ‫أمامك على مواقع اإلنترنت التي تتصفحها يوميا‪ ،‬إذ يكتب الكود البرمجي الذي‬ ‫يأمر المتصفح بعرض معلومات محددة وكيفية عرضها‪.‬‬ ‫‪ -‬مطور الويب الخلفي )‪ (Back-end‬الذي يتولى كل ما يحدث في الكواليس‪،‬‬ ‫عند تصفحك ألي موقع هناك حسابات وتفاعالت ال تعرفها‪ ،‬وهي ما يُطلق‬ ‫عليها الواجهة الخلفية للموقع‪ ،‬هنا يُكتب المطور الكود البرمجي الذي يحدد‬ ‫طرق التواصل بين تطبيقات تلك الواجهة وبين قواعد البيانات والخوادم الخاصة‬ ‫بالموقع‪.‬‬ ‫وهو يجمع بين‬ ‫‪ -‬مطور الويب المتكامل)‪(Full-Stack Developer‬‬ ‫التخصصين مطور واجهة الويب األمامية )‪ (Front-end‬و مطور الويب‬ ‫كل من الواجهة األمامية والخلفية لمواقع‬ ‫الخلفي )‪ ، (Back-end‬ويمكنه بناء ٍّ‬ ‫الويب‪.‬وبهذا يملك القدرة على صياغة كل العناصر التي يراها المستخدم‬ ‫العادي‪ ،‬وكذلك الجزء الحسابي المتعلق بالبيانات والخوادم‪.‬‬ ‫‪ -‬مطور األلعاب الذي يصمم ويكتب أكواد األلعاب للمنصات المختلفة‪ ،‬مثل‬ ‫الحاسب الشخصي والمنصات المنزلية (باليستيشن وإكس بوكس)‪ ،‬وقد يتضمن‬ ‫تخصصه تصميم الشخصيات داخل اللعبة‪ ،‬وميكانيكا اللعبة نفسها‪ ،‬وواجهة‬ ‫المستخدم‪"User Interface".‬‬ ‫‪ -‬محلل األنظمة)‪ ، (Systems Analyst‬ويتعلق هذا التخصص باألنظمة‬ ‫وقواعد البيانات‪ ،‬ومحلل األنظمة هو َمن يفحص أنظمة البرمجيات عبر اختبار‬ ‫البنية الهندسية لتكنولوجيا المعلومات‪ ،‬ويوصي بتطويرها ببعض الحلول‬ ‫والوسائل المختلفة‪.‬‬ ‫‪ -‬مطور قواعد البيانات )‪ (Database Developer‬الذي يطور ويحافظ على‬ ‫أنظمة قواعد البيانات‪ ،‬ويعمل مع مهندس البرمجيات لتحديد متطلبات البيانات‬ ‫لكل مشروع‪ ،‬ومنها يبدأ في إنشاء قواعد البيانات وفقا لذلك‪.‬‬ ‫كل تخصص من التخصصات السابقة يحتاج إلى مجموعة مهارات وتعلم لغات برمجة‬ ‫مختلفة‪ ،‬لهذا اختيارك للتخصص ومعرفتك ما المجال الذي تريده مهم جدا للبدء في‬ ‫رحلة التعلم‪.‬‬ ‫تصنيف لغات الربجمة‬ ‫توجد المئات من لغات البرمجة‪ ،‬كل لغة فريدة من نوعها‪ ،‬ومتميزة في الهدف منها‬ ‫وما يمكن أن تقدمه‪ ،‬لكن بعض اللغات أسهل في التعلم من غيرها‪ ،‬لذا من األفضل أن‬ ‫تبدأ بها ألنها ستكون أسرع طريقة لتعلم أساسيات البرمجة‪.‬‬ ‫وتصنف لغات البرمجة بناء على درجة تجريدها إلى اربعة مستويات هي‪:‬‬ ‫لغات البرمجة منخفضة المستوى ‪Low level Programming‬‬ ‫ ‬ ‫‪Languages‬‬ ‫لغات البرمجة متوسطة المستوى ‪Medium Level Programming‬‬ ‫ ‬ ‫‪Language‬‬ ‫لغات البرمجة عالية المستوى ‪High level Programming‬‬ ‫ ‬ ‫‪Languages‬‬ ‫لغات البرمجة فائقة المستوى ‪Very High-level programming‬‬ ‫ ‬ ‫‪language‬‬ ‫نشرح في الفقرات التالية كل مستوى من هذه المستويات بمزيد من التفصيل‪.‬‬ ‫لغات البرمجة منخفضة المستوى ‪Low level Programming‬‬ ‫‪Languages‬‬ ‫لغات البرمجة منخفضة المستوى هي أحد مستويات لغات البرمجة المكتوبة بطريقة‬ ‫يسهل على أجهزة الحواسيب فهمها وتفسيرها‪ ،‬ويمكن من خاللها التخاطب مباشرة‬ ‫مع أجهزة الحاسب‪ ،‬وإنجاز العمليات على مستوى وحدة المعالجة المركزية ‪CPU‬‬ ‫والوصول المباشر إلى ذاكرة الحاسب وإدارتها والتحكم في عمليات اإلدخال‬ ‫واإلخراج‪.‬‬ ‫تعد كل من لغة اآللة ‪ Machine language‬التي تستخدم بيانات رقمية مكونة من‬ ‫‪ 0‬و ‪ 1‬فقط‪ ،‬ولغة التجميع ‪ Assembly language‬أبرز األمثلة على لغات‬ ‫البرمجة منخفضة المستوى‪.‬‬ ‫تتميز اللغات منخفضة المستوى بسرعة التنفيذ وأداء أفضل من اللغات عالية المستوى‬ ‫ألن الكود البرمجي المكتوب بها ال يحتاج إلى تفسير أو ترجمة لينفذ ويمكن للحاسوب‬ ‫فهمه وتنفيذه مباشرة‪ ،‬كما أنها تنفذ بأقل قدر ممكن من مساحة الذاكرة‪.‬‬ ‫تستخدم اللغات منخفضة المستوى عادة في كتابة نواة نظام التشغيل أو برامج تعريف‬ ‫العتاد وتشغيله ‪ device driver‬أو التطبيقات المخصصة التي تتطلب التعامل‬ ‫المباشر مع عتاد الحاسب‪ ،‬وال تستخدم من قبل المطورين بشكل مباشر ألغراض‬ ‫البرمجة المعروفة مثل تصميم مواقع الويب أو تطبيقات الجوال أو تطوير األلعاب‬ ‫وما شابه‪.‬‬ ‫‪High‬‬ ‫‪level‬‬ ‫المستوى ‪Programming‬‬ ‫عالية‬ ‫البرمجة‬ ‫لغات‬ ‫‪Languages.‬‬ ‫عا ومن أهم‬ ‫تعد لغات البرمجة عالية المستوى أكثر لغات البرمجة استخدا ًما وشيو ً‬ ‫مستويات لغات البرمجة‪ ،‬فقد تم تصميمها لتكون مفهومة من قبل البشر وهي تحاكي‬ ‫ً‬ ‫ورموزا‬ ‫اللغة اإلنجليزية إلى حد ما وتستخدم صياغة واضحة وكلمات محددة ومفهومة‬ ‫رياضية شائعة مما يمكن المبرمجين من تطوير برامجهم بسرعة أكبر ويقلل احتمالية‬ ‫حدوث األخطاء‪.‬‬ ‫هناك المئات من لغات البرمجة عالية المستوى المتفاوتة في درجة صعوبتها لكنها‬ ‫بالمجمل تبقى سهلة التعلم والتنفيذ ومن أشهر األمثلة على اللغات عالية المستوى‬ ‫جافاسكربت وبايثون وروبي و ‪ C++‬و… ‪ PHP‬إلخ‪.‬‬ ‫يعد هذا النوع من لغات البرمجة صديقًا للمبرمجين لكونها سهلة الفهم واالستخدام‬ ‫والصيانة‪ ،‬وهي تصلح لتطوير مختلف أنواع التطبيقات والبرامج كتطبيقات سطح‬ ‫المكتب ومواقع الويب واأللعاب وتطبيقات الذكاء الصنعي …إلخ‪.‬‬ ‫على سبيل المثال البرنامج التالي مكتوب بلغة "بايثون" لجمع العددين ‪ 30‬و ‪،40‬‬ ‫وكما تالحظ فهو مكتوب بشيفرة أسهل في الفهم بكثير من شيفرة لغة التجميع‪.‬‬ ‫‪x = 30‬‬ ‫‪y = 40‬‬ ‫‪sum=x+y‬‬ ‫)‪print(sum‬‬ ‫بالمقارنة مع اللغات منخفضة المستوى تتميز لغات البرمجة عالية المستوى بكونها‬ ‫أفضل منها في اإلنتاجية‪ ،‬لكنها أبطأ في التنفيذ وتستغرق وقتًا إضافيًا من أجل ترجمة‬ ‫تعليماتها وشيفراتها المصدرية إلى كود اآللة‪.‬‬ ‫لغات البرمجة متوسطة المستوى ‪Medium Level Programming‬‬ ‫‪Language‬‬ ‫نظرا للتطور الهائل الذي شهدته لغات البرمجة فقد ظهرت في اآلونة األخيرة لغات‬ ‫ً‬ ‫برمجة مرنة ومختصرة الصياغة وأسهل في الفهم وفي طريقة التنفيذ كلغة بايثون أو‬ ‫روبي …إلخ‪.‬أتاحت هذه اللغات للمبرمجين االستغناء عن كتابة الكثير من التفاصيل‬ ‫عند تطوير البرامج لذا تم تصنيفها من مستويات لغات البرمجة على أنها هي اللغات‬ ‫العالية المستوى وتمت إضافة تصنيف جديد للغات البرمجة هو لغات البرمجة متوسطة‬ ‫المستوى لتصنيف لغات البرمجة األقدم التي ظهرت في البدايات مثل ‪ C‬ولغة ‪Ada‬‬ ‫ولغة جافا بأنها لغات متوسطة المستوى‪.‬‬ ‫عل ًما أن هذه اللغات التزال تعتبر لغات عالية المستوى لكونها مفهومة من قبل البشر‬ ‫وتستخدم تعليمات بسيطة وقريبة من اللغة اإلنجليزية ويمكن استخدامها لتطوير‬ ‫التطبيقات المختلفة بسهولة لكن التصنيف وضع إلنشاء بنية تنظيمية تستوعب كافة‬ ‫لغات البرمجة‪.‬‬ ‫على سبيل المثال تعتبر لغة بايثون أعلى مستوى من لغة جافا ألن جافا أصعب في‬ ‫التعلم واالستخدام وألنك تستطيع إعادة كتابة برنامج مكتوب بلغة جافا باستخدام كود‬ ‫أبسط وأقل حج ًما في لغة بايثون‪.‬‬ ‫يمكن القول أن لغات البرمجة متوسطة المستوى تجمع بين أفضل إمكانيات اللغات‬ ‫عالية المستوى وإمكانيات اللغات منخفضة المستوى مثل لغة التجميع‪ ،‬فهي تسمح‬ ‫بإدارة الذاكرة يدويًا ومعالجة البيانات والتعامل مع البتات والبايتات والمؤشرات‬ ‫مباشرة لذا تعد لغات البرمجة األنسب للتخاطب مع التجهيزات وبرمجة األنظمة‪.‬‬ ‫لغات البرمجة فائقة المستوى ‪Very high-level programming‬‬ ‫‪language‬‬ ‫ظهرت كذلك في التسعينيات مستويات أخرى للغات البرمجة عرفت باسم اللغات فائقة‬ ‫المستوى وهو مصطلح يستخدم لوصف لغات عالية المستوى جدًا والقريبة بشكل كبير‬ ‫من لغة البشر هذه اللغات تتمتع بأعلى مستوى من التجريد وهي مصممة الستخدامات‬ ‫وتطبيقات محدودة‪.‬‬ ‫على سبيل المثال تصنف لغة برولوغ ‪ Prolog‬على أنها لغة برمجة فائقة المستوى‬ ‫وهي لغة منطقية تعريفية ‪ declarative‬تستخدم بشكل أساسي في مجاالت الذكاء‬ ‫االصطناعي‪.‬وال بد أنك سمعت بال شك بروبوت ‪ ChatGPT‬المدعوم بالذكاء‬ ‫االصطناعي والذي يعتمد على لغة ‪ GPT-3‬الخاصة بـ ‪ OpenAI‬والذي يمكنك من‬ ‫التحدث إليه بلغتك كما تتحدث مع أي إنسان حقيقي ويفهمك ويجيبك على أي أسئلة‬ ‫برمجية أو غير برمجية وبطرق ولغات مختلفة‪ ،‬وهذا من شأنه أن يجعلنا ننتقل في‬ ‫مجال البرمجة لمستويات جديدة لم نعهدها من قبل في المستقبل القريب‪.‬‬ ‫تعتمد لغات البرمجة فائقة المستوى مثل برولوغ على تنفيذ األوامر وحل المشكالت‬ ‫بناء على مجموعة القواعد ‪ Rules‬وعلى حقائق ‪ Facts‬أو قاعدة بيانات معروفة‬ ‫يمكننا االعتماد عليها التخاذ القرارات المناسبة والحصول على إجابات ألسئلة غير‬ ‫معروفة وال تحتاج هذه اللغة إلى ترجمة تعليماتها إلى لغة اآللة كما في حال اللغات‬ ‫العالية المستوى والمتوسطة المستوى‪.‬‬ ‫على سبيل المثال يمكنك كتابة برنامج باستخدام لغة برولوغ الختبار ما إذا كانت ‪X‬‬ ‫هي أخت شقيقة لـ ‪Y‬من خالل كتابة قواعد الحل أو منطق الحل كالتالي‪:‬‬ ‫كي تكون ‪ X‬هي أخت ‪ Y‬يجب أن تكون أنثى ويكون لكل من ‪ X‬و ‪ Y‬نفس الوالدين‬ ‫ونضيف لها شر ً‬ ‫طا وهو ال تكون قيمة ‪ X‬هي نفسها قيمة ‪ Y‬كل ال تكون أخت نفسها‪.‬‬ ‫‪Rules:‬‬ ‫‪sisterof(X, Y) :- female(X), parent(Z, X), parent(Z, Y), not(X‬‬ ‫‪= Y).‬‬ ‫بعدها ننشئ قاعدة بيانات تتضمن مجموعة من الحقائق مثل‪:‬‬ ‫‪male(Ali).‬‬ ‫‪male(Ahmad).‬‬ ‫‪female(Ola).‬‬ ‫‪female(Maryem).‬‬ ‫‪parents(Ali, Ola, Ahmad).‬‬ ‫‪parents(Maryem, Ola, Ahmad).‬‬ ‫اآلن يمكننا أن نسأل البرنامج أسئلة مثل "هل عال أخت علي؟" سوف يجبنا بالنفي بناء‬ ‫على القواعد والحقائق التي يملكها‪.‬‬ ‫‪sisterof(Ali, Ola).‬‬ ‫استخدامات لغات الربجمة‬ ‫‪ -‬تصميم وتطوير المواقع اإللكترونية‬ ‫إذا كنت مهت ًما بإنشاء مواقع الويب‪ ،‬فهناك جزءان متشابكان يجب النظر فيهما‪.‬‬ ‫أوالً‪ ،‬تطوير الواجهة األمامية‪ ،‬وهو جزء من تطوير الويب أو الموقع اإللكتروني‬ ‫الذي ينشئ البرنامج أو الكود الذي يعمل على متصفحك ويضبط التصميم واأللوان‬ ‫والتفاعالت‪.‬إنه الجزء الخاص بما يراه مستخدم موقع الويب‪.‬أنت تقرأ مقالنا هذا‬ ‫حاليا ً على شاشتك و الفضل يعود إلى كود الواجهة األمامية آنف الذكر‪.‬تبدأ أساسيات‬ ‫الواجهة األمامية بـ ‪ HTML‬و ‪ CSS‬باستخدام ‪ JavaScript.‬أصبحت جافا‬ ‫انتشارا في السنوات القليلة الماضية بالنسبة لعمل‬ ‫ً‬ ‫سكريبت واحدة من أكثر اللغات‬ ‫الواجهة األمامية للمواقع‪.‬‬ ‫أما الجزء اآلخر إلنشاء مواقع الويب هو تطوير كود يعمل خلف الستارة إن صح‬ ‫التعبير و هو ما يسمى بال‪ ،back-end‬والذي يرتبط بالخادم أو ال‪ ،server‬وهو‬ ‫الكمبيوتر الذي يقوم بتشغيل برنامج موقع الويب ويقدمه للعالم‪.‬يتعلق األمر في الغالب‬ ‫بالتوجيه‪ ،‬أي الصفحات التي يتم تسليمها إلى المستخدم أو القارئ عند زيارته لعنوان‬ ‫‪URL‬معين‪ ،‬كما أنه يتصل بقاعدة البيانات التي تخزن معلومات موقع الويب وترسل‬ ‫هذه البيانات إلى المستخدم‪.‬تطوير الواجهة الخلفية هذه هو المكان الذي يحدث فيه‬ ‫السحر وهناك العديد من لغات البرمجة لالختيار منها‪ ،‬يمكنك التمسك بـ‬ ‫‪Javascript‬تما ًما كما هو الحال في تطوير الواجهة األمامية ‪ ،‬أو استخدام ‪PHP‬‬ ‫و ‪ Ruby‬و ‪ C #‬و ‪ Elixir‬و‪Python.‬‬ ‫‪ -‬تطوير األلعاب‬ ‫يعد تطوير األلعاب أحد أكثر المسارات إثارة لالهتمام ‪ ،‬حيث يستمتع به العديد من‬ ‫المطورين وهناك مطورون يطورون األلعاب لمجرد االستمتاع‪.‬يتطلب إنشاء األلعاب‬ ‫ما يسمى بمحرك اللعبة‪ ،‬وهو برنامج يُستخدم كبنية أساسية لبناء اللعبة ويحدد ما‬ ‫تحتويه اللعبة وما يمكنها فعله‪.‬إذا كنت معتادًا على ‪ Epic Games‬و ‪Fortnight‬‬ ‫‪ ،‬فإن ‪ Epic Games‬هي في الواقع محرك ألعاب و ‪ Fortnight‬مبنية عليها‪.‬‬ ‫اللغات المستخدمة في تطوير األلعاب هي في الغالب ‪ C ++‬و ‪ C #‬ألنها تتطلب‬ ‫الكثير من تحسين الذاكرة واألداء السريع إلنشاء رسومات غنية‪.‬ومع ذلك ‪ ،‬ال يقتصر‬ ‫عا ما بالمحرك الذي تستخدمه والنظام‬ ‫األمر على ‪ C ++‬و ‪ ، C #‬بل يتعلق نو ً‬ ‫األساسي الذي تستهدفه‪ ،‬كما أن ‪ Lua‬و ‪ Java‬مشهوران جدًا في هذه الصناعة‪.‬‬ ‫‪ -‬تطوير تطبيقات الموبايل والحاسب‬ ‫أمرا صعبًا بعض الشيء‪ ،‬وذلك نظرا لوجود أكثر من نظام تشغيل‬ ‫يعد إنشاء تطبيقات ً‬ ‫للحاسب االلى و للهواتف المحمولة ‪ ،‬فقد يتطلب نظام التشغيل المختلف لغات برمجة‬ ‫مختلفة لهذه التطبيقات‪.‬نظام التشغيل هو جزء من البرنامج الموجود على جهازك‬ ‫والمسؤول عن التعامل مع أجهزة هذا الجهاز‪ ،‬وهو الطبقة التي تقع بين التطبيق الذي‬ ‫تنشئه والجهاز‪ ،‬سواء كان ميكروفونًا أو شاشة تعمل باللمس أو نظام تحديد المواقع‬ ‫عا هما ‪ Android‬و‪IOS.‬‬ ‫العالمي ‪ (GPS).‬أكثر أنظمة التشغيل شيو ً‬ ‫فمثال ‪ :‬يشيع استخدام ‪ Android‬في ‪ Samsung‬بينما يتم استخدام ‪ IOS‬في‬ ‫‪Apple.‬إلنشاء تطبيقات ‪ ، Android‬ستحتاج إما إلى ‪ Java‬أو ‪ ، Kotlin‬وإلنشاء‬ ‫تطبيقات ‪ ، IOS‬ستحتاج إلى ‪ Objective-C‬أو ‪ Swift.‬في اآلونة األخيرة ‪ ،‬أصبح‬ ‫من الممكن إنشاء تطبيقات جوال لكل من ‪ Android‬و ‪ IOS‬باستخدام‬ ‫‪Javascript‬أو‪Dart.‬‬ ‫خرائط التدفق‬ ‫خرائط التدفق ‪ :‬هي عرض وكتابة الـ ‪ Algorithm‬بطريقة تخطيطية تعتمد على‬ ‫الرسم ‪ ,‬وهي كذلك طريقة لحل المسألة تعتمد على الرسم البياني لتوضيح‬ ‫وترتيب العمليات الالزمة لحل المسألة ‪ ,‬وتكون مرتبة ترتيبا ً منطقيا ً إذا تتبعناه‬ ‫نصل للحل الصحيح ‪.‬‬ ‫الرموز األساسية في خرائط التدفق ‪Standard :‬‬ ‫‪Symbols‬‬ ‫عيوب خرائط التدفق‬ ‫مميزات خرائط التدفق‬ Complex logic ‫أسلوب معقد‬ Communication ‫االتصال‬ 1 Alterations ‫إجراء تعديالت‬ Effective ‫تحليل األفعال‬ 2 and modifications analysis Copying ‫النسخ‬ Proper ‫توثيق صحيح‬ 3 documentation More Details ‫كثرة التفاصيل‬ Efficient coding ‫تكويد كفء‬ 4 Proper debugging ‫تصحيح األخطاء‬ 5 Efficient program maintenance ‫كفاءة إصالح البرنامج‬ 6 : ‫أمثلة لبعض نماذج خرائط التدفق‬

Use Quizgecko on...
Browser
Browser