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

Uploaded by FavoriteOak
South Valley University
Tags
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 : أمثلة لبعض نماذج خرائط التدفق