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

لوحة المتصدرين

  1. Ola Saleh

    Ola Saleh

    الأعضاء


    • نقاط

      7

    • المساهمات

      11


  2. غريب الشيخ

    غريب الشيخ

    الأعضاء


    • نقاط

      3

    • المساهمات

      17


  3. Adnane Kadri

    Adnane Kadri

    الأعضاء


    • نقاط

      2

    • المساهمات

      5247


  4. Mustafa Suleiman

    Mustafa Suleiman

    الأعضاء


    • نقاط

      2

    • المساهمات

      18940


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 10/13/24 في كل الموقع

  1. 2 نقاط
  2. هلا هون دولة ميلاد ولا الدولة الي انا فيها
    1 نقطة
  3. الدولة التي تقيم بها حاليًا والمسجلة في بطاقة الهوية الخاصة بك، أي بطاقة الرقم القومي أو البطاقة التعريفية في بلدك أيًا يكن المسمى، في السعودية تسمى بطاقة الهوية الوطنية.
    1 نقطة
  4. مبارك لك وسام على انتهائك من الدورة بالتوفيق لك في القادم بإذن الله. الدولة هنا هي الدولة التي تمتلكي جواز سفر خاص بها أو هوية شخصية مثل البطاقة أو سكان البلد الأصليين يمتلكونها، فإذا كنتي لديك جواز سفر دولة ما يعني أنك تمتلكي جنسية هذه الدولة ويمكنك استخدمها هنا، إذا كنت تمتلكي أكثر من جنسية يعني تمتلكي أكثر من جواز سفر يمكنك استخدام ما تريدي منهم. من الممكن أن تكوني ولدتي في مكان ولا تمتلكي جواز سفر لهذا أو هوية خاصة بك في هذا المكان أي لا تمتلكي جنسيتها. بإختصار استخدمي اختاري الدولة المدونة في جواز سفرك أو هويتك الشخصية وليس محل الميلاد. يمكنك التحدث مع مركز المساعدة أيضا للإيضاح أكثر حول هذا الأمر.
    1 نقطة
  5. تطرق بسمعي أنه هنالك بعض من الأسئلة التي تسأل أثناء ال Job Interview تكون عن ال Clean architecture، فما هو هذا ال Clean architecture؟ وفي أي مسار يجب علي تعلمه؟ لم أتلقاه في دورة "علوم الحاسوب" المقدمة من الأكاديمية!
    1 نقطة
  6. العمارة النظيفة Clean Architecture هو مفهوم في هندسة البرمجيات يهدف إلى تنظيم الكود بطريقة تجعل النظام سهل التطوير، الاختبار، الصيانة، والتوسع. تم تقديم وتنظيم وتنظير هاته المفاهيم أول مرة من قِبَل روبرت مارتن (المعروف بـ Uncle Bob) في كتابه Clean Architecture: A Craftsman’s Guide to Software Structure and Design لخلق تصميم قوي وقابل للتغيير دون التسبب في فوضى معقدة في الكود مع الوقت. وهي بشكل بسيط مجموعة من المبادئ والممارسات منها: فصل المسؤوليات. عزل التبعيات. قابلية الاختبار. يحدث أحيانا خلط بينها وبين الشيفرة النظيفة Clean Code، والتي هي نفسها مجموعة مفاهيم تم تنظيرهرا أول مرة من قبل العم بوب في كتابه Clean Code: A Handbook of Agile Software Craftsmanship بحيث يهتم بتقديم إرشادات وعادات لكتابة كود نظيف، مفهوم، وقابل للصيانة. ويهتم بالتفاصيل الدقيقة للكود، مثل تسمية المتغيرات، تجنب التعقيد، وتقليل التكرار. وهما عموما مفهومان يكملان بعضهما البعض، فإذا كنت تطبق Clean Architecture دون الالتزام بمبادئ Clean Code، فقد يصبح النظام معقدًا وغير قابل للصيانة رغم حسن التنظيم وتوزيع المسؤوليات على الكلاسات بصورة صحيحة. والعكس صحيح: حتى لو كتبت كودًا نظيفًا، فإن غياب التصميم الجيد سيؤدي إلى صعوبة في صيانة النظام. حقيقة، كلاهما كتابان ثوريان في المجال، وينصح بل يجب بالإطلاع عليهما من قبل أي مهندس برمجيات يمطح إلى إنشاء برمجيات عالية المستوى. بالنسبة للدورة، فقد لا يتم التطرق إليها بشكل صريح فهي أشبه بفلسفة في إنشاء البرمجيات، ولكن يتم تنظيمها وطرحها ضمن مفاهيم أخرى مثل ما تم في مسار إعادة تصميم البرمجيات Refactoring أو مسار أساسيات هندسة البرمجيات.
    1 نقطة
  7. شكرا لك على التوضيح دكتور, هل يمكنك تقديم كود يوضح طريقة العمل لتتضح الفكرة اكثر
    1 نقطة
  8. لغات البرمجة نوعان فإما أن تكون لغات ذات دلالات ثابتة static semantics ومن الأمثلة عليها لغة سي وجافا وفي هذه اللغات يتوجب علينا تحديد خصائص البرنامج -مثل أنماط بيانات المتغيرات- في زمن التصريف compile time فعندما تعرف أي متغير في البرنامج يتوجب عليك تحديد نمط بيانات محدد له ولا يسمح لك بتغييره عند تنفيذ البرنامج. وإما أن تكون لغات ذات دلالة ديناميكية dynamic semantics مثل لغة بايثون هنا تمنحنك اللغة مرونة وتمكّنك من تغيير نمط بيانات المتغير وقت تشغيل البرنامج فيمكن استخدام نفس المتغير لتخزين أنواع بيانات مختلفة مثلًا يمكن ان تسند لمتغير num عدد صحيح ثم تسند له لاحقًا في سياق التنفيذ سلسلة نصية عندها سيتغير نمط بياناته ديناميكيًا حسب سياق التنفيذ. هذا يعطي اللغة مرونة أكبر لكنه يجعلها أكثر عرضة للأخطاء.
    1 نقطة
  9. بعد تعلم أساسيات Git ستتمكن من رفع مجلد المشروع بما به من ملفات ومجلدات على مستودع GitHub. بخصوص مجلد البيئة الإفتراضية فلا نقوم برفعه، يجب رفع الكود المصدري فقط على المستودع وتجاهل أية ملفات ومجلدات أخرى وذلك بكتابة ذلك في ملف باسم .gitignore ووضعه في مجلد الجذر (الرئيسي) للمشروع أي المجلد الذي به كود المشروع. وإليك قالب لذلك الملف لأغلب مشاريع بايثون: __pycache__/ *.py[cod] *$py.class # C extensions *.so # Distribution / packaging .Python build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ share/python-wheels/ *.egg-info/ .installed.cfg *.egg MANIFEST # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec # Installer logs pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ .nox/ .coverage .coverage.* .cache nosetests.xml coverage.xml *.cover *.py,cover .hypothesis/ .pytest_cache/ cover/ # Translations *.mo *.pot # Django stuff: *.log local_settings.py db.sqlite3 db.sqlite3-journal # Flask stuff: instance/ .webassets-cache # Scrapy stuff: .scrapy # Sphinx documentation docs/_build/ # PyBuilder .pybuilder/ target/ # Jupyter Notebook .ipynb_checkpoints # IPython profile_default/ ipython_config.py # pyenv # For a library or package, you might want to ignore these files since the code is # intended to run in multiple environments; otherwise, check them in: # .python-version # pipenv # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. # However, in case of collaboration, if having platform-specific dependencies or dependencies # having no cross-platform support, pipenv may install dependencies that don't work, or not # install all needed dependencies. #Pipfile.lock # PEP 582; used by e.g. github.com/David-OConnor/pyflow __pypackages__/ # Celery stuff celerybeat-schedule celerybeat.pid # SageMath parsed files *.sage.py # Environments .env .venv env/ venv/ ENV/ env.bak/ venv.bak/ # Spyder project settings .spyderproject .spyproject # Rope project settings .ropeproject # mkdocs documentation /site # mypy .mypy_cache/ .dmypy.json dmypy.json # Pyre type checker .pyre/ # pytype static type analyzer .pytype/ # Cython debug symbols cython_debug/ لاحظ التالي في الكود: # Environments .env .venv env/ venv/ ENV/ env.bak/ venv.bak/ تلك هي الأسماء الممكنة لمجلد البيئة الإفتراضية فإن كان لديك مختلف عليك كتابته أيضًا.
    1 نقطة
  10. وعليكم السلام ورحمة الله وبركاته. يفضل أولا تعلم أساسيات Git قبل إستخدامه وبعد ذلك يمكنك تطبيق ما قمت بمذاكرته حتي تتعلم الطريقة الصحيحة للأوامر وكيفية تنفيذها . ماذا تقصد برفع كامل الملف هل تقصد رفع مشروع معين على مستودع github ؟ إذا كنت تقصد هذا الأمر فإنه قد تم شرح كيفية رفع المشروع كاملا في أكثر من إجابة على الموقع ويمكنك متابعة الإجابة التالية : أما إذا كنت تقصد رفع المشروع على github pages كموقع إستضافة ويتم تشغيل موقعك من خلال إستضافة github فيمكنك مشاهدة الفيديو التالي لشرح إستخدام github pages : ويفضل أولا مذاكرة الفيديو التالي الخاص بأساسيات Git قبل أى شئ أخر : أما بخصوص ملفات البيئة الإفتراضية فلا يجب رفعها ويجب وضعها في ملف .gitignore وهو ملف يتم كتابة في المجلدات والملفات التي يتم جعل github أن يتجاهلها ولا يقوم برفعها ومنها ملفات البيئة الإفتراضية حيث تلك الملفات خاصة بالمستخدم فقط ولا يجب مشاركتها وذلك لكبر حجمها وإعتمادها على نظام التشغيل . والذي يجب رفعه هو فقط ملف requirements.txt والذي يجب أن يحوى متطلبات المشروع من الحزم ويقوم فقط الشخص الذي يقوم بتحميل المشروع من github يتحميل تلك الحزم من ملف requirements.txt دون الحاجة لتحميل كامل ملفات البيئة الإفتراضية من github.
    1 نقطة
  11. وعليكم السلام، إليك بعض المواقع التي توفر اختبارات وتمارين تفاعلية في أساسيات بايثون وهياكل البيانات: HackerRank LeetCode Exercism Codewars GeeksforGeeks Real Python
    1 نقطة
  12. بالإضافة للشرح الرائع في التعليق السابق يجب أن تعرف أن لتعلم أنماط التصميم قيمتين أساسيتين: أولاً فهم الحل: يزود فهم أنماط التصميم بمجموعة متنوعة من الحلول المثبتة والموثوقة في عالم تطوير البرمجيات، فإنه من المرجح جدًا (بنسبة حوالي 95%) أن تكون المشكلة التي تواجهها قد تم حلها من قبل آخرين. توفر أنماط التصميم حلا مختبرًا ومثبتًا يمكنك تطبيقه في حل المشكلة الخاصة بك. من خلال التعرف على هذه الأنماط، تكتسب فهمًا لأفضل الممارسات والطرق الفعالة للتعامل مع التحديات الشائعة في تطوير البرمجيات. ثانياً عندما يكون أفراد الفريق على بمفاهيم أنماط التصميم، يصبح التواصل أكثر فعالية. على سبيل المثال، قول "استخدم الـنمط Singleton لذلك" يتم الفهم والعمل بشكل أسرع دون الحاجة إلى شرح ما هو الـ Singleton إذا كان الجميع في الفريق يفهمون النمط. من المهم أيضًا أن ندرك الحالات التي قد لا يكون فيها نمط التصميم المعروف مناسبًا أو لا يوفر الحل الأمثل.
    1 نقطة
  13. يتضمن مجال تطوير الويب قسمين أساسين هما تطوير الواجهة الأمامية front-end (فرونت إند) وتطوير الواجهة الخلفية back-end (باك إند) وهما من المجالات الرائدة اليوم فجميع النشاطات التجارية والأشخاص يسعون للتواجد على شبكة الإنترنت ويحتاجون لمطوري ويب لإنشاء مدونات أو مواقع أو تطبيقات أو متاجر إلكترونية خاصة بهم. سنخصص مقال اليوم للحديث عن تطوير الواجهة الأمامية ونوضح كافة المفاهيم المرتبطة وكافة الخطوات والتقنيات التي تحتاجها لتتعلم كي تصبح مطور واجهات محترف فإذا كنت مهتمًا بهذا المجال لكنك لا تملك أدنى فكرة عن كتابة الشيفرات البرمجية أو إنشاء صفحات الويب ولا تعرف من أين تبدأ أنصحك بأن تقرأ المقال للنهاية. ما هو تطوير الواجهة الأمامية Front End Web Development؟ قبل أن نشرح تطوير الواجهة الأمامية front-end تحتاج لأن تعرف مراحل بناء أي موقع إلكتروني، فإنشاء أي موقع أو تطبيق يبدأ بتحديد فكرته وتوثيقها، بعدها ترسل هذه الفكرة إلى مصمم الواجهات الأمامية الذي يرسم واجهات الموقع وصفحاته كلها بمختلف تفاصيلها وحالتها، حيث تُراجع هذه الواجهات ثم ترسل إلى مطور الواجهات لتكويدها وبرمجتها وهنا تقسم العملية إلى برمجة واجهات أمامية وخلفية وتبرمج كل واجهة وتتفاعل الواجهتان مع بعضهما للحصول على المواقع المتكامل. فمطور الواجهة الأمامية front end web developer أو ما يعرف بمطور واجهات المستخدم user interface developer هو المبرمج المسؤول عن إنشاء كافة الأجزاء المرئية التي يراها المستخدم ويتفاعل معها عند زيارة مواقع وتطبيقات الويب وبرمجة كافة الواجهات ومكوناتها من أزرار وقوائم ونصوص ورسومات وصور ونماذج وغيرها وتحديد كيف سيبدو كل جزء من موقع الويب وكيف سيتفاعل المستخدم معه. الفرق بين تطوير الواجهة الأمامية front-end وتطوير الواجهة الخلفية back-end والتطوير الكامل Fullstack من الضروري أن تفهم أبرز الفروقات بين تطوير الواجهة الأمامية وتطوير الواجهة الخلفية والتطوير الكامل والتي تعكس في واقع الأمر تخصصات تطوير الويب أو بمعنى آخر الدور الذي يساهم به مطور الويب عند بناء المواقع والتطبيقات والتقنيات التي يستخدمها لأداء عمله، كما أنها تعبر عن مكان تشغيل الشيفرات البرمجية لهذه المواقع والتطبيقات. بدايةً يجب أن تعرف أن عرض موقع الويب على جهازك يتم دومًا في لغة HTML وهي لغة توصيفية يستخدمها مطورو الويب لإنشاء وعرض الصفحات، هناك عدة تقنيات يمكنك إنشاء المواقع من خلالها لكن مهما كانت التقنية المستخدمة فإن عرض الموقع لديك في نهاية المطاف سيكون بلغة HTML. الآن يمكن أن تحدث عملية عرض ملفات المواقع مباشرة على جهازك كما في حال المواقع البسيطة ذات المحتوى الثابت فهي تخزن على خادم الويب بالأساس بشكل ملفات HTML وترسل لك هذه الملفات مباشرة عند طلبها وتعرض لك كما هي على متصفحك. من ناحية أخرى قد تتطلب عملية عرض المواقع بعض المعالجة المسبقة التي تحدث على جانب خادم الويب أو يسمى الخادم البعيد مثل مواقع الويب الديناميكية التي لا تعرض نفس المحتوى لجميع المستخدمين وتتغير بناء على إدخالات المستخدم، فعندما ترسل طلبًا لعرض صفحة ما من موقع ديناميكي يقوم الخادم بمعالجة طلبك هذا وبعد الانتهاء ويجلب لك البيانات المطلوبة والعرض الأخير على جهازك يكون بشيفرة HTML. كل ما يتعلق بأمور عرض الموقع من جانب متصفح الويب أو يسمى طرف العميل client side يندرج تحت مجال تطوير الواجهة الأمامية للموقع، وكل ما يتعلق بأمور معالجة الموقع من طرف خادم الويب من معالجة البيانات وتخزينها وحفظها وإجراء عمليات عليها وغيرها يندرج تحت مجال تطوير الوجهة الخلفية للموقع ولكل منهما تقنياته وأدواته، على سبيل المثال عندما تسجل في موقع يطلب تاريخ ميلادك، تراه يعرضها لك أحيانًا بشكل عمر أي عدد وليس تاريخ، هذه المعالجة تُرسل عادة من طرف الخادم. ليس لزامًا عليك كمطور ويب تعلم تطوير الواجهة الأمامية أو الخلفية معًا بل يمكنك التخصص في إحداهما فقط، فإذا كنت تحب تنفيذ الجوانب المرئية لواجهات المستخدم وجعلها تعمل وفق التصميم المقترح سيناسبك تطوير الواجهة الأمامية أكثر، وإذا كنت تفضل حل المشاكل المنطقية والتعامل مع قواعد البيانات وواجهات برمجة التطبيقات والخوادم والخدمات السحابية فإن تطوير الواجهة الخلفية يناسبك. أما إذا كنت متحمسًا للقيام بكل ما سبق وكانت لديك القدرة لتعلم كافة التقنيات والمهارات اللازمة لتطوير الواجهة الأمامية وتطوير الواجهة الخلفية والقيام بالأمرين معًا عندها سيطلق عليك اسم المطور الكامل fullstack developer وستفتح أمامك الكثير من الفرص المجزية. وإذا كنت مهتمًا بمعرفة مزيد من التفاصيل حول مجالات تطوير الويب أنصح بمطالعة مقال المدخل الشامل لتعلم تطوير الويب وبرمجة المواقع ومقال دليلك الشامل إلى تطوير الواجهة الخلفية Backend. أهمية تطوير الواجهة الأمامية في سوق العمل إذا كنت مهتمًا بتطوير الويب فدعني أخبرك أن تبدأ به دون تردد فهو واحد من أكثر مجالات العمل نموًا مقارنة بباقي الوظائف فبحسب استبيان عام 2022 لموقع ستاك أوفر فلو الشهير الذي يضم آلاف خبراء البرمجة حول العالم فإن 25.96% من المشاركين في الاستبيان وعددهم 61,302 متخصصون في تطوير الواجهة الأمامية front-end، ويحتل هذا المجال المرتبة الثالثة بين أنواع المطورين بعد تطوير الواجهة الخلفية back-end والتطوير الكامل full-stack وهذا إن دلَّ على شيء فإنما يدل على مدى أهمية هذا المجال والطلب المرتفع عليه. أضف إلى ذلك فإن رواتب مطوري الواجهة الأمامية مرتفعة ومجزية ورغم كونها تتفاوت وتختلف حسب نوع الشركة ومقرها والمهارات المطلوبة للوظيفة ومستوى الخبرة إلا أن اكتسابك لمهارات عالية واحترافك لتطوير الواجهة الأمامية سيضمن لك الحصول على رواتب مرتفعة جدًا فمعظم جهات العمل تبحث عن مطور واجهة أمامية موهوب يمكنه إنشاء مواقع بتصاميم فريدة وبتجربة محسنة من شأنها زيادة رضا العملاء وجعل المواقع تتفوق على منافسيها. الجدير بالذكر أن أصعب جزء في مجال تطوير الواجهة الأمامية هو أنه متجدد باستمرار لذا يحتاج المطور للاطلاع بصورة دائمة على أحدث التقنيات في تطوير الويب ليتمكن من الاحتفاظ بالصدارة في سوق العمل لكنه مجال مجزٍ ويستحق الجهد. ما هي مهام مطور الواجهة الأمامية؟ مطور الواجهات الأمامية هو المسؤول بشكل عام عن إنشاء أجزاء المواقع والتطبيقات التي تعمل من جانب العميل (أو المتصفح)، وهذه المهمة تتضمن القيام بالعديد من المهام والتي تشمل: كتابة شيفرات HTML و CSS وجافا سكريبت لتنفيذ تصميم الموقع التي تكون عادة بشكل صور مصممة من قبل مصمم الواجهات الأمامية المسؤول عن تصميم واجهة المستخدم وتجربة المستخدم UI / UX بواسطة برامج متخصصة مثل فيجما Figma أو Sketch أو فوتوشوب. التواصل مع مطور الواجهة الخلفية المسؤول عن تحقيق وظائف الموقع والتأكد من توافق الواجهة الأمامية مع الواجهة الخلفية للموقع. تحسين أداء موقع الويب والتأكد من سرعة تحميله وتوفر تجربة مستخدم سهلة ومحسنة. التأكد من أن الموقع متوافق مع كافة متصفحات الويب ويعمل بالشكل الصحيح ومعالجة أي مشاكل توافق إن وجدت. التأكد من كون الموقع متجاوب ومتكيف مع كافة أحجام الشاشات بما في ذلك شاشات الهواتف الجوالة والأجهزة اللوحية وأجهزة الحاسوب. أهم أدوات تطوير الواجهة الأمامية إذا قررت التخصص في تطوير الواجهات الأمامية للويب ستجد الكثير من الخيارات المتاحة، فاللغات الثلاث الأساسية لأي مطور واجهة أمامية هي HTML و CSS وجافا سكريبت كما يمكنه إلى جانب ذلك استخدام العديد من اللغات وأطر العمل والمكتبات الأخرى الكثيرة التي تسهل عمله في تطوير الواجهات وفي الفقرات التالية سنسلط الضوء على أبرز هذه الأدوات. أهم لغات برمجة الواجهة الأمامية HTML CSS جافا سكريبت JavaScript تايب سكريبت TypeScript لنتناول بتفصيل أكثر كل لغة من هذه اللغات ودورها في تطوير الواجهات الأمامية للمواقع والتطبيقات. لغة HTML لغة HTML هي اختصار لعبارة HyperText Markup Language أي لغة ترميز النص التشعبي وهي اللغة الأساسية لتطوير الواجهة الأمامية للمواقع والتطبيقات وهي لغة وصفية أو لغة ترميز تصف البنية العامة لصفحات الويب ومحتوياتها من نصوص وأزرار وصور وقوائم باستخدام الوسوم وهي علامات موضوعة ضمن قوسي زاوية <> تحدد نوع المحتوى أو هيكليته على سبيل المثال لإنشاء صفحة ويب تتضمن عنوان وصورة ونص نكتب كود HTML التالي: <!DOCTYPE html> <html dir="rtl"> <head> <title>عنوان الصفحة</title> </head> <body> <h1>عنوان الصفحة</h1> <img id="myImage" src="html.png"> <p> HTML هي اختصار لـHyperText Markup Language أي لغة ترميز النص التشعبي وهي الأساسية لتطوير الواجهة الأمامية للمواقع والتطبيقات </p> </body> </html> احفظ الكود أعلاه في ملف نصي باسم index.html وقم بعرضه في متصفح الويب، عندها ستظهر الصفحة بالشكل التالي: للمزيد من المعلومات أنصح بمطالعة مقال تعلم لغة HTML الذي يشرح لك كافة الأساسيات التي تحتاجها للعمل مع هذه اللغة والاطلاع على توثيق HTML الشامل على موسوعة حسوب. لغة CSS لغة CSS هي اختصار لـ Cascading Style Sheets وهي لغة تصميم تستخدم لتحديد تنسيق صفحة الويب واختيار الألوان والخطوط والخلفيات وما إلى ذلك كما أنها تستخدم في جعل مواقع الويب متجاوبة مع مختلف الشاشات من خلال كتابة شيفرات تغير تنسيق وتخطيط العناصر بحسب أبعاد الشاشة. تستخدم لغة CSS قواعد تنسيق تستهدف عناصر HTML التي نريد تصميمها على سبيل المثال سنكتب التعليمات التالية لتنسيق صفحة الويب التي أنشأناها باستخدام HTML نكتب شيفرات CSS التالية ضمن الوسم <head>: <style> body { font-family: 'Cairo', sans-serif; background-color: #f2f2f2; margin: 0; padding: 0; } h1 { font-size: 36px; color: #333; text-align: center; margin: 50px 0; } img { display: block; margin: 0 auto; max-width: 100%; height: auto; } p { font-size: 18px; color: #666; text-align: center; margin: 50px; line-height: 1.5; } </style> تظهر الصفحة بعد إضافة التنسيقات كما يلي: وللمزيد من المعلومات يمكنك مطالعة سلسلة دروس CSS على أكاديمية حسوب إلى جانب توثيق CSS الشامل على موسوعة حسوب. لغة جافا سكريبت JavaScript بعد أن تقوم بتخطيط عناصر الواجهة الأمامية باستخدام HTML وتنسقها باستخدام CSS قد تحتاج إلى إضافة بعض التفاعلات إلى صفحاتك وهنا يأتي دور لغة جافا سكريبت JavaScript التي تعد واحدة من أشهر لغات البرمجة وأكثرها استخدامًا فهي تمكنك من تطوير كل من الواجهة الأمامية والخلفية. قد يكون تعلم جافا سكريبت هو الخطوة الأصعب لك كمطور واجهة أمامية لا سيما إن لم تكن تملك خبرة سابقة في البرمجة لكن بمجرد تعلمها ستتمكن من نقل الموقع إلى مستوى جديد وإضافة التأثيرات الديناميكية لصفحاته والاستجابة لتفاعل المستخدمين مع عناصره بدلًا من جعله يعرض معلومات ثابتة فقط. على سبيل المثال يمكنك كتابة شيفرات جافا سكريبت لعرض قائمة منسدلة أو إظهار رسالة منبثقة عند النقر فوق زر ما على الصفحة، أو إرسال طلب للتحقق من اسم المستخدم وكلمة المرور بعد النقر فوق زر تسجيل الدخول أو أي شكل من أشكال التفاعل مع الصفحة من طرف العميل. لنفرض أنك تحتاج لتكبير حجم صور الموقع قليلًا عند مرور مؤشر الفأرة فوقها، لن تتمكن من هذا إذا لم تكن تعرف جافا سكريبت وتدمجها مع HTML و CSS بدايةً عليك إضافة أكواد CSS التالية بعد الأكواد التي كتبتها في الخطوة السابقة: .zoom { transition: transform .2s; /* Add any other styles you want */ } .zoom:hover { transform: scale(1.5); /* Change the scale value to adjust the level of zoom */ } وبعدها عليك أن تضيف أكواد جافا سكريبت التالية قبل الوسم </body> ضمن كود HTML: const image = document.getElementById("myImage"); image.addEventListener("mouseover", function() { image.classList.add("zoom"); }); image.addEventListener("mouseout", function() { image.classList.remove("zoom"); }); تستمع شفرة جافا سكريبت هذه إلى حدث مرور مؤشر الفأرة فوق الصورة وتضيف تنسيق التكبير zoom إليه عند وقوع هذا الحدث. كما أنها تستمع إلى حدث خروج مؤشر الفأرة من عنصر الصورة وتزيل تنسيق التكبير منه عند وقوع هذا الحدث، وعند عرض الصفحة في المتصفح نحصل على التأثير التالي: للمزيد من التفاصيل أنصح بمطالعة مقال تعلم جافا سكريبت من الصفر حتى الاحتراف، كما توفر موسوعة حسوب توثيق لغة جافا سكريبت باللغة العربية يمكنك من خلالها تعلم كافة ما يتعلق بهذه اللغة. لغة TypeScript تعد لغة TypeScript لغة برمجة مفتوحة المصدر طورتها مايكروسوفت عام 2012 لتوفر ميزات إضافية تساعد على تطوير تطبيقات جافا سكريبت فهي تجعل تعليمات جافا سكريبت مفهومة بشكل أكبر وتوفر إمكانية تحديد أنواع المتغيرات كي تقلل من أخطاء الكود، وقد تزايدت شعبيتها بشكل كبير في الآونة الأخيرة لما توفره من ميزات لتحسين جودة التطبيقات وتسريع عملية التطوير . يمكنك مطالعة المزيد من المعلومات حول هذه اللغة وإمكانياتها من خلال مجموعة دروس TypeScript المتوفرة على أكاديمية حسوب أهم أطر عمل تطوير الواجهة الأمامية ظهرت أطر العمل frameworks والمكتبات البرمجية لتسهيل عمل المطور وتسريع عمله، لذا ستحتاج لاستخدامها في سوق العمل بدلًا من كتابة كل شيء بيدك من الصفر، وأطر عمل الواجهات الأمامية كثيرة ومن أبرزها: بوتستراب Bootstrap رياكت React أنغولار Angular فيو Vue جي كويري jQuery دعنا نلقي نظرة على كل تقنية منها ونشرح بمزيد من التفصيل دورها وأهميتها في تطوير الواجهة الأمامية. بوتستراب Bootstrap بوتستراب هو إطار ويب مجاني مفتوح المصدر مخصص للواجهة الأمامية فهو يستخدم لتصميم مواقع وتطبيقات ويب متجاوبة مع كافة أحجام الشاشات وذات مظهر احترافي بسرعة وسهولة فهو يحتوي على قوالب تصميم ومكونات جاهزة مكتوبة بلغة HTML ولغة CSS كما يوفر بالإضافة لذلك ملحقات تصميم مكتوبة بلغة جافا سكريبت. للاطلاع على المزيد من المعلومات يمكنك متابعة المقالات الدروس حول إطار عمل بوتستراب على أكاديمية حسوب إضافة لتوثيق بوتستراب الشامل على موسوعة حسوب. رياكت React رياكت React هي مكتبة جافا سكريبت مفتوحة المصدر طورتها شركة فيسبوك عام 2013 وهي تعد اليوم واحدة من أشهر مكتبات تطوير الواجهة الأمامية التي يمكنك من خلالها إنشاء مكونات قابلة لإعادة الاستخدام وتطوير واجهات مستخدم متجاوبة بسرعة وسهولة. يمكنك مطالعة المزيد حول هذه المكتبة وتعلم طريقة بناء واجهات المواقع والتطبيقات باستخدامها من خلال الدروس والمقالات الاحترافية حول React على أكاديمية حسوب وأيضًا توثيق React على موسوعة حسوب. أنغولار Angular أنغولار Angular هو إطار عمل مفتوح المصدر يعتمد على لغة TypeScript أطلقته شركة جوجل وهو يتميز بقدرته على تطوير تطبيقات ويب متطورة وضخمة وإدارتها بسهولة كبيرة فهو يوفر الكثير من الميزات التي تساعد مطوري الواجهة الأمامية مثل إدارة حالة التطبيق والتحقق من الصحة. كما يمكنك مطالعة المزيد من الدروس والمقالات الاحترافية حول Angular على أكاديمية حسوب لتتعرف على طريقة استخدامها في تطوير مواقع ويب احترافية. فيو Vue فيو Vue هو إطار عمل جافا سكريبت مفتوح المصدر طوره Evan You المبرمج في جوجل عام 2014 لتطوير واجهات المستخدم وتطبيقات الصفحة الواحدة وهو اليوم واحد من أكثر أطر عمل الواجهة الأمامية شيوعًا واستخدامًا. ما يميز إطار فيو Vue أنه مرن وخفيف الوزن وسهل الاستخدام فقد أزال كل المكونات الإضافية والمفاهيم غير الضرورية التي تأتي مع أطر عمل الواجهة الأمامية الأخرى مثل أنغولار Angular ورياكت React. وللمزيد من التفاصيل أنصح بمطالعة مقال مقارنة بين أطر الواجهات الأمامية: Angular و React و Vue لمعرفة الإطار الأنسب لمتطلباتك، كما أنصح بمتابعة الدروس والمقالات حول Vue التي توفرها أكاديمية حسوب بشكل دوري لتعلم المزيد حول استخدامات هذا الإطار. جي كويري jQuery جي كويري jQuery هي مكتبة مبنية بالاعتماد على لغة جافا سكريبت وهي توفر لمطوري الواجهة الأمامية الكثير من القوة والمرونة وتتضمن الكثير من الميزات التي تجعل كتابة شيفرات جافا سكريبت أبسط وأكثر اختصارًا. لمعرفة المزيد حول طريقة استخدام مكتبة jQuery عند تطوير مواقع الويب أنصح بمطالعات مجموعة المقالات والدروس حول jQuery المتوفرة على أكاديمية حسوب، كما أنصح بمطالعة توثيق jQuery على موسوعة حسوب. تقنيات وأدوات مهمة لتطوير الواجهة الأمامية إضافة لما سبق، يحتاج أي مطور واجهة أمامية لقائمة طويلة من المعارف والمهارات والأدوات الإضافية التي تعزز أداءه وتساعده في تطوير واجهات المستخدم وتكويدها بسرعة واحترافية، وإليك قائمة بأبرز هذه الأدوات نذكر: شجرة DOM والتعامل معها. معرفة أساسية بالشبكات وشبكة الإنترنت وأشهر برتوكولات التواصل مثل HTTP. لمحة عن قواعد التصميم وأساسيات تصميم واجهات المستخدم وتجربة المستخدم UX/UI. التصميم المتجاوب responsive design مع كافة أحجام الشاشات. التوافق مع المتصفحات Cross-browser. واجهة برمجة التطبيقات API. لمحة عن Node.js وأنظمة إدارة الحزم تحديدًا npm. نظام التحكم في الإصدارات git. شجرة DOM من الضروري أن يعرف أي مطور واجهة أمامية مهارات التعامل مع نموذج كائن المستند Document Object Model أو اختصارًا DOM أو شجرة DOM ومعالجته عبر لغة جافا سكريبت، و DOM هو مجموعة من المواصفات التي تمثل مستند الويب بشكل كائن وتعد أحد الطرق الأساسية في بناء مواقع تفاعلية حيث أنها تنشئ واجهة برمجة تطبيقات API تسمح للغات البرمجة مثل جافا سكريبت بالوصول لكافة عناصر صفحات الويب ومعالجتها والتحكم بها. ستساعدك معالجة DOM في تحديث بيانات الصفحة أو تغيير تخطيطها دون إعادة الحاجة لإعادة تحميلها على سبيل المثال يمكنك من خلال DOM إضافة عناصر HTML للصفحة أو إزالتها أو تعديل تنسيقات CSS لها عند وقوع حدث ما أو عند إعادة تحميل صفحة الويب. معرفة أساسية بالشبكات يحتاج مطور الواجهة الأمامية لامتلاك معلومات أساسية حول طريقة عمل الويب والشبكات الحاسوبية وشبكة الإنترنت ومفهوم العميل والخادم وكيفية التفاعل بينهما وبروتوكولات الاتصال عبر الويب مثل HTTP و HTTPS و SSL ومفهوم خدمة اسم المجال DNS فهذه المعرفة تمكنه من عرض واستدعاء المحتوى من الشبكة والاتصال مع الخادم بشكل آمن وتوفير تجربة مستخدم أفضل. للاطلاع على مزيد من المعلومات يمكنك مطالعة سلسلة المقالات والدروس حول الشبكات على أكاديمية حسوب. قواعد التصميم وأساسيات UX/UI ذكرنا سابقًا أن مطور الواجهة الأمامية قد يكون مسؤولًا عن تصميم موقع ويب من الصفر أو قد يكون مسؤولًا عن تحويل التصاميم الجاهزة إلى شيفرات برمجية، لكن في كلتا الحالتين أجد أنه من الضروري لأي مطور واجهة أمامية أن يعرف أفضل النصائح والقواعد لتصميم واجهة المستخدم والمبادئ والقواعد الأساسية في تصميم تجربة المستخدم UX وتصميم واجهة المستخدم UI فهذا من شأنه أن يساعده على فهم الواجهات وكيفية تفاعل المستخدمين معها بشكل أفضل وكيفية إنشاء واجهات أكثر جاذبية وسهولة في الاستخدام وبالتالي سيتمكن من كتابة شيفرات الواجهة الأمامية بشكل أفضل ويضمن أنها مطابق للقواعد التصميمة الصحيحة. التصميم المتجاوب مع كافة أحجام الشاشات التصميم المتجاوب Responsive Design هو تصميم يقوم بتغيير حجم عناصر صفحات الموقع أو إخفائها أو تصغيرها أو تكبيرها ليضمن ظهورها بطريقة واضحة وسهلة الاستخدام مهما كان نوع الجهاز المستخدم لعرضها. يحتاج مطور الواجهة الأمامية لمعرفة أساسيات تصميم الويب المتجاوب Responsive Web Design وطرق كتابة استعلامات الوسائط Media Queries في CSS بشكل صحيح كي يضمن ظهور المواقع بكفاءة على جميع أنواع وأحجام الأجهزة التي يستعملهما المستخدمون سواء الحواسيب ذات الشاشات الكبيرة أو الهواتف المحمولة ذات الشاشات الصغيرة. التوافق مع المتصفحات Cross-browser أحد المهارات الضرورية التي يجب على مطور الواجهة الأمامية تعلمها هو التأكد من أن الواجهات التي يبرمجها متوافقة مع مختلف المتصفحات وتظهر بشكل سليم ومتسق على المتصفحات الشهيرة مثل كروم وفايرفوكس وسفاري وEdge وOpera ويتعلم كيف يجري اختبارات التوافق مع المتصفحات cross-browser testing ويعالج أي مشكلات تواجهه في التوافق. يمكنك الاستعانة ببعض الأدوات والتقنيات المساعدة في اختبار توافق المتصفح Cross-browser مثل Markup Validation Service و CrossBrowserTesting و LambdaTest …إلخ. لكن تجدر الإشارة بأن أطر عمل الواجهات الأمامية مثل رياكت React وأنجولار Angular يمكنها أن تقوم بهذه المهمة عنك ولن تجعلك تكترث لها، يكفي أن تحدد لها أي نوع متصفح تريد أن نستهدف وهي تتولى الأمر لأنها تعالج دومًا الشيفرة التي تكتبها. استدعاء واجهة برمجة التطبيقات واجهات برمجة التطبيقات API هي صلة الوصل بين تطبيقات الواجهة الأمامية وبين النظم والوجهات الخلفية وبالرغم من أنك لا تحتاج كمطور واجهة أمامية لمعرفة كيفية كتابة واجهات برمجة التطبيقات لكونها مهمة مطور الواجهة الخلفية لكنك تحتاج لمعرفة طريقة الاتصال بهذه الواجهات وجلب البيانات منها وعرضها بشكل مناسب ومعرفة التقنيات المرتبطة بها مثل RESTful ومفهوم JSON. باختصار، يجري التواصل بين الواجهة الأمامية والواجهة الخلفية عبر واجهة برمجة التطبيقات وعادة ما ترسل البيانات من الواجهة الخلفية إلى الواجهة الأمامية بصيغة JSON لذا من الضروري معرفة هذه الصيغة، ويمكنك الرجوع إلى مقال تعلم JSON. تعلم Node.js وأنظمة إدارة الحزم يحتاج مطور الواجهة الأمامية إلى تعلم أحد أدوات إدارة الحزم Package Manager التي تجعل عملية تطوير الواجهة الأمامية أسرع وأسهل، فأدوات إدارة الحزم هي برمجيات تسمح لك بتثبيت الحزم المطلوبة للتطوير وإعدادها وتحديثها وإدارة تبعياتها وضمان عدم تعارضها بشكل تلقائي بدلًا من القيام بذلك بشكل يدوي ومن أشهرها npm و Yarn. وعادة يستعمل مطور الواجهات الأمامية مكتبة Node.js التي تأتي مع نظام إدارة الحزم الشهير npm والذي سيستعمله في تنزيل حزم المشروع وإدارتها ومكتبة Node.js هي أول أداة سيثبتها المطور على جهازه فبدونها لن يعمل مع لغة جافاسكريبت على الإطلاق، لذا يجب أن يتعرف عليها وعلى مدير الحزم npm. وقد شرحنا في مقال أساسيات إدارة الحزم في تطوير الويب من طرف العميل كل ما يتعلق باستخدام مدير الحزم وكيفية استخدامه في إدارة مشاريع الواجهة الأمامية. نظام التحكم في الإصدارات git يساعد نظام التحكم في الإصدار وأشهرها Git مطور الواجهة الأمامية على تتبع التغييرات التي يجريها على المواقع ويمكنه من العودة إلى إصدار كود سابق بكل سهولة إذا حدث خطأ ما في الكود كما يفيده في حال العمل على نفس المشروع مع فريق تطوير. تتوفر في أكاديمية حسوب مجموعة غنية ومنوعة من المقالات والدروس حول Git التي تساعدك في تعلم كافة المهارات اللازمة للتعامل مع نظام التحكم بالإصدارات Git. كانت هذه التقنيات جزءًا يسيرًا من التقنيات والأدوات التي على مطور الواجهة الأمامية معرفتها، وفي الفقرة التالية سنوضح المزيد من هذه التقنيات ونضع لك خارطة طريق منظمة تساعدك في تعلم تعلم تطوير الواجهة الأمامية. خارطة طريق تعلم تطوير الواجهة الأمامية إليك خارطة طريق لتعلم مجال تطوير الواجهات الأمامية والذي يعرض بوضوح طريق مطور الواجهات الأمامية بالكامل بدءًا من المرحلة المبتدئة وحتى المتقدمة وأغلب تلك المواضيع تجد عنها في أكاديمية حسوب وموسوعة حسوب: أهم مصادر تعلم تطوير الواجهة الأمامية إذا كنت مبتدئًا ولا تملك أي خبرة مسبقة وتبحث عن أقصر طريقة لتعلم تطوير الواجهة الأمامية أنصحك بالاطلاع على دروة تطوير واجهات المستخدم التي توفرها أكاديمية حسوب فهي دورة شاملة ومنظمة تزيد على 60 ساعة فيديو تدريبية ومن مسارات متعددة تبدأ معك من أساسيات تطوير واجهات المستخدم التي تشرح لك كل المفاهيم واللغات الأساسية وأطر ومكتبات العمل وتنتهي بك ببناء مشاريع عملية متقدمة ترسخ كل هذه الأساسيات وتساعدك في بناء معرض أعمالك. لن تكون وحدك خلال هذه الدورة بل سيكون معك فريق من المدربين لمساعدتك وإجابتك على أي تساؤل أو مشكلة تواجهك في رحلة التعلم، وفي نهاية الدورة ستحصل على شهادة معتمدة من أكاديمية حسوب تعزز سيرتك الذاتية. إضافة إلى ذلك توفر أكاديمية حسوب الكثير من مصادر التعلم المجانية باللغة العربية من دروس ومقالات وسلاسل تعلمية حول تطوير الويب تتعلم من خلالها كافة تقنيات ولغات برمجة الواجهات الأمامية وأطر العمل الشهيرة التي أوردناها في سياق المقال. وإن كنت تفضل الدراسة من الكتب بسبب شموليتها وتسلسلها في الشرح فإن الأكاديمية توفر لك مجموعة من الكتب القيمة التي تهم أي مطور واجهة أمامية من بينها: كتاب فهم أعمق لتقنيات HTML5 كتاب ملاحظات للعاملين في CSS كتاب البرمجة بلغة جافا سكريبت كتاب تصميم تجربة المستخدم سلسلة تطوير الويب وأخيرًا إذا كنت ترغب بمعرفة المزيد من المعلومات حول الواجهات الأمامية وأهم تقنيات برمجتها ومسار تعلمها أنصحك بمشاهدة هذا الفيديو. الخلاصة بهذا تكون وصلت إلى نهاية هذه المقالة الشاملة التي تناولنا فيها كل ما يتعلق بأساسيات تطوير الواجهة الأمامية front-end أو ما يعرف بتطوير واجهة المستخدم وتعرفنا على أهم اللغات وأطر العمل والأدوات التي تحتاجها كمطور واجهة أمامية لتنجز الجزء المرئي من الموقع الذي يتفاعل المستخدمون من خلاله مع التطبيقات والمواقع، كما شرحنا في ختامة أهم خطوات تعلم تطوير الواجهة الأمامية ومصادر تعلمها باللغة العربية. وفي حال كان لديك أي سؤال يتعلق بتطوير الويب وتحديدًا تطوير الواجهات الأمامية للويب فلا تتردد في كتابته في قسم التعليقات أسفل المقال، أو طرحه في قسم الأسئلة والأجوبة في أكاديمية حسوب ليجيبك عليه مبرمجون خبراء. اقرأ أيضًا المدخل الشامل لتعلم تطوير الويب وبرمجة المواقع برمجة مواقع الويب: دليلك المختصر ما الفرق بين تصميم المواقع الإلكترونية وتطوير المواقع الإلكترونية؟ عالم الويب ومعاييره ما هي صفحات الويب؟
    1 نقطة
  14. يحتاج أي مطور محترف للتعرف على أنواع لغات البرمجة المختلفة ومعرفة ميزاتها ومحدوديتها كي يتمكن من استخدام النوع الأنسب عند في كتابة برامجه وتطبيقاته، وفي مقال اليوم سنتعرف على مفهوم لغة البرمجة الإجرائية التي هي أحد أقدم وأبسط نماذج البرمجة ونكتشف استخداماتها وآلية عملها وطريقة كتابة البرامج باستخدامها ونستعرض أهم خصائصها وعيوبها ومميزاتها. أنواع لغات البرمجة تختلف لغات البرمجة وتتفاوت في عدة أوجه ما يجعل علماء البرمجة والمطورين يصنفونها وفق تصنيفات مختلفة وفق السمات أو الخصائص المشتركة فيما بينها. ومن بين المعايير التي يتم اعتمادها لتصنيف أنواع لغات البرمجة هو أسلوب هيكلة الشيفرة وطريقة تنظيم عناصر البرنامج حيث تقسم لغات البرمجة بناء على هذا المعيار إلى ثلاثة أصناف أو نماذج رئيسية هي: لغات البرمجة الإجرائية Procedural Programming لغات البرمجة الوظيفية Functional Programming لغات البرمجة الكائنية Object-Oriented Programming من الضروري لك كمبرمج أن تفهم الفروقات بين هذه النماذج البرمجية واختيار النموذج المناسب لمشروعك، وسنخصص فقراتنا التالية لشرح لغات البرمجة الإجرائية والتي تعد أحد أقدم نماذج البرمجة ونكتشف معًا طريقة عملها وأشهر لغات البرمجة التي تعتمدها وأبرز مزاياها وعيوبها. إذا كنت مهتمًا بمعرفة المزيد من المعايير التي تصنف وفقها لغات البرمجة وأهم مميزات كل نوع يمكنك مطالعة مقال أنواع لغات البرمجة. ما هي البرمجة الإجرائية Procedural Programming؟ البرمجة الإجرائية Procedural Programming هي أحد نماذج البرمجة التي تعتمد بشكل أساسي على إخبار الحاسوب بالمهام التي تريد منه القيام به بدقة وخطوة بخطوة من خلال كتابة إجراءات procedures أو دوال برمجية functions تؤدي كل منها مهمة محددة. سابقًا في بدايات البرمجة كانت البرامج تتألف من إجراء واحد يتكون من سلسلة متتالية من التعليمات البرمجية التي تنفذ بالتسلسل من أعلى الكود إلى أسفله لتؤدي المطلوب وكان هذا يجعل الكود مكررًا وطويلًا جدًا، أما مع أسلوب البرمجة الإجرائية أصبح بإمكان المبرمج تقسيم البرامج الطويلة إلى مجموعة من الإجراءات تحل كل منها مشكلة فرعية منفصلة وإعادة استخدامها عند الحاجة ضمن الإجراء الرئيسي أو ضمن إجراءات أخرى لتحقيق الهدف الكلي للبرنامج. فالإجراءات procedures أو الدوال functions أو ما يعرف أيضًا البرامج الفرعية subroutines أو الوظائف هي عبارة عن كتل من التعليمات البرمجية لها اسم محدد تحصل على المدخلات من المستخدم وتعالجها بطريقة معينة لأداء المهمة المطلوبة ثم تعيد مجموعة من النتائج كمخرجات. وتجدر الإشارة بأنه لا يتم تنفيذ تعليمات الإجراءات مباشرة عند كتابته بل يجب استدعاء الإجراء من خلال كتابة اسمه وتمرير قيم المتغيرات المناسبة له ليتم تنفيذ كتلة تعليماته البرمجية، بعبارة أخرى الإجراء البرمجي هو كتلة من التعليمات المجمعة بشكل وحدة واحدة والتي تؤدي مهمة محددة ويتم استخدامها في البرامج عند الحاجة لتنفيذ هذه المهمة المعينة. تصنف البرمجة الإجرائية كذلك بأنها أحد أنواع البرمجة الأمرية imperative وهي برمجة نعطي فيها الحاسوب مجموعة من الأوامر أو التعليمات أو الخطوات المرتبة لنخبره بشكل مفصل بما يجب عليه القيام به من أجل تحقيق مهمة ما. أمثلة على لغات برمجة إجرائية قد تدعم بعض لغات البرمجة نموذج البرمجة الإجرائية فقط، لكن في الغالب ستجد أن معظم لغات البرمجة تدعم أكثر من نموذج برمجة بذات الوقت للاستفادة من ميزات كل نموذج ومنح المبرمج مزيدًا من المرونة في كتابة برامجه على سبيل المثال تدعم لغة بايثون Python ولغة C++‎ كلًا من نموذج البرمجة الإجرائية والبرمجة كائنية التوجه بذات الوقت. من الأمثلة الشائعة على لغات البرمجة الإجرائية نذكر: سي C: لغة برمجة إجرائية شهيرة تم تطويرها عام 1972 وتستخدم في العديد من المجالات أهمها تطوير نظم التشغيل والتطبيقات المضمنة وألعاب الفيديو. بيسك BASIC: لغة برمجة عالية المستوى تم تطويرها في عام 1964 بهدف جعل البرمجة سهلة التعلم والفهم للمبتدئين وكانت تستخدم لتطوير التطبيقات الإدارية البسيطة والبرامج التعليمية والألعاب. فورتران FORTRAN: من لغات البرمجة الإجرائية الشهيرة وهي أقدم لغة برمجة عالية المستوى طورت في خمسينيات القرن الماضي لتسهيل كتابة البرامج الرياضية والعلمية ولا تزال لليوم في المجالات العلمية والهندسية مثل التنبؤ بالطقس والفيزياء الحاسوبية والتحليل العددي. كوبول COBOL: لغة برمجة إجرائية قديمة عالية المستوى طورت بهدف تقديم لغة برمجة سهلة ومفهومة من قبل المبرمجين وهي لا تزال لليوم تستخدم في عالم الأعمال والمصارف (البنوك). الغول ALGOL: هي لغة برمجة إجرائية تستخدم لتطوير التطبيقات العلمية والهندسية وهي أول لغة برمجة أدخلت مفهوم الكتل البرمجية وسمحت بتداخل الإجراءات والدوال داخل بعضها البعض وتعد لغة مرجعية لتطوير معايير لغات البرمجة الأخرى. آدا Ada: لغة برمجة إجرائية صممت لتكون لغة آمنة وموثوقة للاستخدام في الأنظمة البرمجية المعقدة المستخدمة من قبل المنظمات الحكومية والمؤسسات الأكاديمية فهي تتضمن ميزات مثل الكتابة الصارمة ومعالجة الاستثناءات. باسكال Pascal: لغة برمجة عالية المستوى صممها عالم الحاسوب نيكلاوس ويرث بداية السبعينيات لتوفير لغة برمجة صارمة ومنظمة للمبتدئين في تعلم البرمجة، واستخدمت في البدايات لتطوير برامج معالجة البيانات وتطوير الألعاب وأثرت في تطوير العديد من لغات البرمجة الأخرى مثل دلفي وآدا. مثال عملي لبرنامج مكتوب بأسلوب البرمجة الإجرائية لتفهم البرمجة الإجرائية بشكل أفضل دعني أوضح لك الأمر بمثال عملي، إذا فكرنا بكتابة برنامج بلغة C لحساب المتوسط الحسابي لعلامات طالب ما، يمكن أن نفكر بكتابته مباشرة دون استخدام الإجراءات من خلال تخزين العلامات في مصفوفة ثم نستخدم حلقة for للتكرار خلال عناصر المصفوفة لحساب المتوسط وعرض قيمته ضمن البرنامج الرئيسي كما يلي: #include <stdio.h> int main() { int marks[] = {60, 70, 88, 95, 59}; int size = sizeof(marks) / sizeof(marks[0]); int sum = 0; for (int i = 0; i < size; i++) { sum += marks[i]; } float avg = (float)sum / size; printf("Average: %f", avg); return 0; } الآن لو احتجنا لحساب المتوسط الحسابي لدرجات طالب آخر سنحتاج لتعريف مصفوفة أخرى تتضمن علامات هذا الطالب ونكرر نفس الكود على المصفوفة الثانية ويصبح الكود كالتالي: #include <stdio.h> int main() { int marks1[] = {60, 70, 88, 95, 59}; int size1 = sizeof(marks1) / sizeof(marks1[0]); int sum1 = 0; for (int i = 0; i < size1; i++) { sum1 += marks1[i]; } float avg = (float)sum1 / size1; printf("Average1: %f", avg); int marks2[] = {76, 93, 78, 93, 86}; int size2 = sizeof(marks2) / sizeof(marks2[0]); int sum2 = 0; for (int i = 0; i < size2; i++) { sum2 += marks2[i]; } float avg2 = (float)sum2 / size2; printf("Average2: %f", avg2); return 0; } والآن ماذا لو أردنا حساب متوسط درجات 100 طالب تخيل حجم تكرار الكود الذي سيحصل في البرنامج! لذا سيكون من الأفضل التفكير في تعريف إجراء أو دالة تغلف تعليمات حساب المتوسط ونعيد استخدامها في البرنامج الرئيسي عند الحاجة كما يلي. لكتابة هذا البرنامج سنعرف إجراءً يسمى average()‎ يأخذ مصفوفة الدرجات كوسيط ويحسب هذا الإجراء حجم المصفوفة ومجموع كل العناصر في المصفوفة ويعيد المتوسط بقسمة المجموع على حجم المصفوفة. وفي الدالة main()‎ التي تمثل البرنامج الرئيسي نكتفي بتعريف مصفوفات الدرجات ونمررها كوسطاء للدالة average()‎ لنحصل مباشرة على النتيجة المطلوبة. #include <stdio.h> float average(int arr[]); int main() { int marks1[] = {60, 70, 88, 95, 59}; int marks2[] = {76, 93, 78, 93, 86}; printf("Average1: %f", average(marks1)); printf("Average2: %f", average(marks2)); return 0; } float average(int arr[]) { int size = sizeof(arr) / sizeof(arr[0]); int sum = 0; for (int i = 0; i < size; i++) { sum += arr[i]; } return (float)sum / size; } كما تلاحظ عندما استخدمنا الدوال أو الإجراءات لتحقيق المطلوب تمكنا من تنظيم البرنامج بشكل أفضل واختصرنا حجم الشيفرات البرمجية المكررة وأصبح بإمكاننا إعادة استخدام الإجراءات عدة مرات. خصائص البرمجة الإجرائية يتضمن نموذج البرمجة الإجرائية مجموعة من الخصائص أو الميزات الرئيسية وأبرزها: النمطية الدوال المعرفة مسبقًا تصميم البرنامج من أعلى لأسفل تمرير المعاملات parameters المتغيرات العامة المتغيرات المحلية لنتعرف على المزيد من التفاصيل حول كل خاصية من هذه الخاصيات! 1. النمطية تعني ميزة النمطية تقسيم البرامج المعقدة إلى وحدات أو أجزاء أصغر مستقلة بحيث يسهل حلها. كل قسم يؤدي مهمة محددة ثم يتم تجميعهما لأداء مهمة أكبر، تسمى هذه الوحدات في لغات البرمجة الإجرائية باسم الإجراءات أو الدوال وهي تساعد على تقليل تعقيد الأنظمة بشكل كبير وتجعل الكود أكثر كفاءة. 2. الدوال المعرفة مسبقًا تتضمن كافة لغات البرمجة الإجرائية دوال مضمنة أو معرفة مسبقًا predefined functions لا تضطر المبرمج إلى ترميز كل شيء من البداية حيث تؤدي هذه الدوال المدمجة في اللغة وظائف محددة مثل العمليات الحسابية أو عمليات إدخال أو إخراج البيانات وتُضمَّن في مكتبات قياسية جاهزة يمكن للمبرمج استدعاؤها مباشرة والاستفادة منها. 3. هيكلة البرنامج من أعلى لأسفل عندما تفكر في تطوير برنامج باستخدام إحدى لغات البرمجة الإجرائية تفكر من الأعلى للأسفل أي أنك تقسم البرنامج إلى أجزاء أصغر يتم تنفيذها بطريقة متسلسلة. حيث تفكر بداية في الهدف الأساسي العام للبرنامج ثم تقوم بتقسيمه إلى أجزاء أصغر لتنفيذ هذا الهدف وتكتب كافة الإجراءات أو الدوال المطلوب لتشغيله وتتحكم في تدفق الكود من خلال استدعاء هذه الدوال بالترتيب المناسب. 4. تمرير المعاملات تعتمد البرمجة الإجرائية على ميزة تمرير المعاملات parameter passing إلى الإجراءات أو الدوال والتي تمثل دخل الإجرائية وهي البيانات اللازمة لتنفيذ عمليات الإجرائية ثم إرجاع خرج، أي لكل إجرائية عادةً دخل تعطي بمقابله خرج ما. 5. المتغير المحلي Local Variable المتغير المحلي هو متغير يعرف ضمن كتلة تعليمات الدالة البرمجية ويمكن استخدامه فقط داخل الدالة المعرف فيها. فعند انتهاء تنفيذ الدالة وعودة التحكم إلى البرنامج مرة أخرى لا يمكن استخدام المتغيرات المحلية. 6. المتغير العام Global Variable المتغير العام هو متغير يعرف خارج كتلة تعليمات الدالة البرمجية وبالتالي يمكن استخدامه في أي مكان في البرنامج وفي أي دالة أخرى ضمن البرنامج ويمكن لأي وظيفة في البرنامج قراءته وتغيير قيمته، وتجدر الإشارة لضرورة استخدام المتغيرات العامة بحذر شديد ضمن كودك البرمجي. استخدامات اللغات الإجرائية تعد لغات البرمجة الإجرائية مناسبة للاستخدام في مجال تعليم البرمجة للمبتدئين لكونها تتميز بالوضوح وسهولة الفهم، كما أنها تستخدم لتطوير الأنظمة البرمجية البسيطة غير المعقدة التي لا تحتاج للكثير من المعالجات الفرعية وكتابة إجراءات متداخلة مع بعضها البعض. تناسب لغات البرمجة الإجرائية كذلك تطوير برامج الحسابات وحل كافة أنواع المشكلات العلمية والتقنية الواضحة. مميزات وسلبيات البرمجة الإجرائية يوفر نموذج البرمجة الإجرائية الكثير من المميزات للمبرمجين والمطورين لكنه لا يخلو من بعض العيوب التي قد تجعلهم يفضلون استخدام نماذج برمجة أخرى، وفيما يلي نناقش أهم إيجابيات وسلبيات البرمجة الإجرائية. مميزات البرمجة الإجرائية تتسم لغة البرمجة الإجرائية بالبساطة وسهولة الفهم ولهذا السبب يبدأ معظم من المبرمجين بتعلم إحدى لغات البرمجة الإجرائية وفهم أساسياتها قبل الانتقال لأساليب برمجة أخرى. تعتمد لغة البرمجة الإجرائية على تقسيم الكود إلى أجزاء أصغر مما يسهل على المبرمجين تنظيم العمل ومتابعة سير عمل البرنامج واختبار وتصحيح الأخطاء البرمجية بشكل أسرع. توفر البرمجة الإجرائية ميزة تعريف الإجراء مرة واحدة واستدعائه كلما دعت الحاجة مما يقلل الكثير من تكرار الشيفرات البرمجية ضمن البرنامج. تسهل البرمجة الإجرائية إعادة استخدام الكود في برامج خارجية من خلال حفظ هذه الإجراءات ضمن مكتبات واستيرادها إلى البرامج عند الحاجة. تسهل البرمجة الإجرائية ميزة توزيع المهام على فريق من المبرمجين عند العمل على البرامج الكبيرة حيث يمكن لكل مبرمج تطوير قسم من الإجراءات المطلوبة لإكمال البرامج بشكل أسرع. سلبيات لغة البرمجة الإجرائية في لغة البرمجة الإجرائية لا توجد حماية فعلية أو عزل للبيانات حيث يمكنك تمرير البيانات إلى الإجراءات واستخدامها وتعديلها لذا قد لا تكون أفضل لغة برمجة للتطبيقات التي تتضمن بيانات حساسة. استخدام مفهوم المتغيرات العامة في لغات البرمجة الإجرائية التي يمكن الوصول إليها وتعديلها بواسطة أي جزء من كود البرنامج قد يصعب عملية الصيانة ومعرفة مصدر الخطأ. يمكن للمطورين إعادة استخدام الإجراءات التي يكتبونها في نفس المشروع لكن لا يمكنهم إعادة استخدامها أو الاستفادة منها في مشاريع أخرى. في البرمجة الإجرائية لا يمكن تغيير البيانات بعد إنشائها داخل كود البرنامج ما يعطي بعض القيود في توسيع وتطوير البرامج. تعد لغات البرمجة الإجرائية أبطأ في التنفيذ مقارنة بأنواع لغات البرمجة الأخرى. قد لا تكون البرمجة الإجرائية هي النموذج الأنسب لتطوير برامج معقدة أو متقدمة كتطبيقات التعلم الآلي والذكاء الاصطناعي التي تتضمن الكثير من المعالجات. ما الفرق بين لغة البرمجة الإجرائية ولغة البرمجة كائنية التوجه؟ يقسم البرنامج في البرمجة الإجرائية إلى مجموعة من المتغيرات وهياكل البيانات والإجراءات وتكون هذه الإجراءات هي العناصر الأساسية للبرنامج فهي التي تتعامل مع المتغيرات وهياكل البيانات، بينما في البرمجة بالكائنات أو البرمجة كائنية التوجه OOP فيقسم البرنامج إلى مجموعة من الكائنات تمثل عناصره الرئيسية ويكون لكل كائن منها بياناته الخاصة والإجراءات التي تعالج هذه البيانات. ففي البرمجة الإجرائية تكون الإجراءات أو الدوال مكونات مستقلة قائمة بذاتها في البرنامج، بينما في البرمجة كائنية التوجه تكون الإجراءات جزءًا من بينة الكائنات نفسها وكما ذكرنا سابقًا لا تكون البرمجة الإجرائية هي أفضل لغة للمشاريع الحساسة للبيانات لذا توفر البرمجة بالكائنات نموذجًا أفضل لحماية البيانات ومنع التعديل عليها خارج الكائن. كما أن التحكم في سير تنفيذ كود البرنامج يتم في البرنامج الإجرائية يحدد من خلال ترتيب استدعاء الدوال أو الإجراءات في حين يتم التحكم به في البرمجة كائنية التوجه بالاعتماد على الحلقات والتعليمات الشرطية وعبارات التحكم الأخرى. وفيما يلي جدول مختصر للمقارنة بين البرمجة الإجرائية ولغة البرمجة كائنية التوجه: البرمجة الإجرائية البرمجة كائنية التوجه تركز لغة البرمجة الإجرائية على تنفيذ مجموعة من الخطوات المتسلسلة لحل المشكلة المطلوبة تركز البرمجة كائنية التوجه على البيانات التي يجب استخدامها لحل المشكلة المطلوبة الدوال هي العناصر الأساسية للبرنامج الأصناف والكائنات هي العناصر الأساسية للبرنامج لا تضمن حماية البيانات وأمانها تضمن حماية البيانات بشكل كبير عن طريق إخفاء البيانات الحساسة عن المستخدمين مناسبة للتطبيقات البسيطة عامة الأغراض وأنظمة التشغيل والبرامج المضنمة مناسبة للتطبيقات الكبيرة والمعقدة لا تمكنك من نمذجة مشكلات العالم الحقيقي بفعالية. تمكنك من نمذجة مشكلات العالم الحقيقي بفعالية ومرونة. وللمزيد من المعلومات حول البرمجة كائنية التوجه وأهم مفاهيمها واستخداماتها أنصحك بمطالعة مقال البرمجة كائنية التوجه. الخلاصة تعرفنا في مقال اليوم على كل ما يخص لغة البرمجة الإجرائية التي تعتمد بشكل أساسي على إخبار الحاسوب بما يجب القيام به خطوة بخطوة باستخدام قائمة واضحة ودقيقة من التعليمات المضمنة داخل إجراءات والتي تعامل البيانات والإجراءات ككيانين مختلفين ضمن البرامج الحاسوبية. فإذا كنت تخطط لتعلم البرمجة يمكنك أن تبدأ رحلة تعلمك بإحدى لغات البرمجة الإجرائية وتتعلم كيفية حل المشكلات باستخدامها وتقسيم برامجك إلى إجراءات فرعية واستدعاءها بالشكل المناسب. اقرأ أيضًا دليلك الشامل إلى لغات البرمجة تعلم أساسيات البرمجة قواعد البرمجة ببساطة للمبتدئين
    1 نقطة
  15. نسلط الضوء في مقال اليوم على فوائد تعلم البرمجة التي تشكل حجر الأساس لكافة التطبيقات والبرمجيات التي نستخدمها يوميًا سواء على أجهزة الحواسيب أو الجوالات أو غيرها من الأجهزة الذكية القابلة للبرمجة، فبدون البرمجة لن تكون كل هذه الأجهزة قادرة على تلبية متطلباتنا. إذا كنت مهتمًا بالتعرف أكثر على ماهية البرمجة والمميزات التي ستحصل عليها عند تعلم البرمجة واكتساب القدرة على كتابة الشيفرات البرمجية وفهمها على الصعيد الشخصي والعمل فتابع قراءة المقال للنهاية. ما هي البرمجة؟ قبل أن نشرح أهمية تعلم البرمجة دعنا نوضح بداية ما هي البرمجة بالتحديد وما هي استخدامات البرمجة ولماذا ينبغي عليك تعلمها؟ يمكنك التفكير في البرمجة على أنها طريقة تمكننا نحن البشر من إرسال التعليمات لأجهزة الحاسوب باستخدام لغة يمكن للحواسيب فهمها تسمى لغة البرمجة، وبعبارة أخرى البرمجة هي وسيلة للتخاطب مع الأجهزة الإلكترونية المختلفة مثل الحواسيب أو الهواتف الذكية أو أي أجهزة قابل للبرمجة وجعلها تحل مشكلة ما أو تنجز مهمة محددة. تتعدد أنواع لغات البرمجة مثل بايثون وجافا سكريبت وجافا و C#‎ وروبي …إلخ. لكن يمكن القول بأن كل هذه اللغات تتشارك نفس المفاهيم فالبرامج الحاسوبية ما هي إلا شيفرات برمجية مكونة من سلسلة مرتبة من الأوامر والتعليمات اللازمة لتأدية مهمة أو حل مشكلة ما، ثم يقرأ الحاسوب هذه التعليمات وينفذها واحدة تلو الأخرى ليعطينا النتائج المطلوبة. يتطلب تعلم البرمجة معرفة أساسية في عدة مواضيع منها الرياضيات والجبر والتفكير المنطقي، كما يحتاج امتلاك قدرة على تحليل المشكلات وفهمها بشكل صحيح وتحويلها إلى خوارزميات ثم البدء ببرمجة هذه الخوارزميات باستخدام لغات البرمجة وهذا يعني أنك قبل أن تتمكن من كتابة الشيفرات البرمجية يجب أن تمتلك تصورًا واضحًا لحل المشكلة بالشكل الصحيح. بناء على ذلك، يعتبر تعلم الخوارزميات أحد الخطوات الأساسية في تعلم البرمجة فإذا لم يكن لديك خوارزمية صحيحة تحقق الهدف المطلوب فلن يكون لديك برنامج صحيح، وتُعرَّف الخوارزمية بأنها تسلسل منطقي يوضح كافة الخطوات اللازمة لحل مشكلة أو مسألة ما وهو مفهوم لا يقتصر استخدامه على البرمجة أو تطوير البرامج بل يمكنك تطبيقه لحل أي مشكلة حياتية تواجهك، ويمكنك مطالعة المزيد حول الخوارزميات وطرق كتابتها في مقال المرجع الشامل إلى تعلم الخوارزميات للمبتدئين. مستقبل البرمجة ازدادت أهمية تعلم البرمجة اليوم أكثر من أي وقت مضى نظرًا للتطور التقني الحاصل في مجال التقنية والبرمجيات والذكاء الاصطناعي فلا يكاد يوجد عمل اليوم لا يتطلب استخدام البرامج الحاسوبية ما جعل البرمجة أحد المهارات الأساسية المطلوبة بكثرة في سوق العمل. أضف إلى ذلك فإن تعلم البرمجة سيحولك من مستهلك للتقنية إلى منتج لها ويكسبك القدرة على التعامل مع الأجهزة والبرمجيات باحترافية ومرونة كما يكسبك القدرة على إنتاج حلول تقنية وبرامج مفيدة لحل المشكلات التي تواجهها ويطور مهاراتك في التفكير. لذلك السبب، نجد أن معظم البلدان اليوم ومن بينها دول عربية قد أدركت فوائد تعلم لغات البرمجة و أدرجتها في المناهج الدراسية بدءًا من المراحل الابتدائية المبكرة لتهيئة الجيل الجديد للمستقبل وتوسيع أفق تفكيرهم ومساعدتهم على مواكبة التطور التقني بسهولة فمن يتعلم البرمجة في سن مبكرة سيفهم التقنية ويتعامل معها بشكل أفضل من أولئك الذين لا يتعلمونها. فوائد تعلم لغات البرمجة إن فوائد تعلم البرمجة كثيرة منها مساعدتك على تأدية الأعمال بكفاءة أكبر وتضمن لك مستقبلًا واعدًا كما تقدم لك العديد من الفوائد الأخرى على صعيد العمل والحياة الشخصية. من أهم فوائد تعلم البرمجة: ضمان الحصول على عمل الحصول على رواتب مجزية إمكانية العمل عن بعد محو الأمية الرقمية مواكبة التطور التقني تحسين التفكير والقدرة على حل المشكلات أتمتة الأعمال اليومية وزيادة الإنتاجية تحسين مهارات التواصل اكتساب الصبر والتركيز لنناقش بمزيد من التفصيل كل فائدة من الفوائد الواردة أعلاه! ضمان الحصول على عمل نظرًا للطلب الكبير على المبرمجين بمختلف تخصصاتهم فإن أحد أهم فوائد تعلم البرمجة تحقيق الأمان الوظيفي وضمان العثور على فرصة مناسبة في سوق العمل لذا ابدأ من الآن بتعلم البرمجة كي تضمن العثور على الكثير من الفرص في حياتك المهنية. وحتى لو لم تكن ترغب بالعمل في مجال التقنية وتطوير البرمجيات إلا أن تعلم البرمجة هو مهارة أساسية تفيدك في كل مجال فكل الصناعات اليوم تعتمد على الحواسيب للقيام بالأعمال وترغب بالتأكيد في توظيف شخص يعرف كيفية عمل هذه الحواسيب ويستخدمها باحترافية. الحصول على رواتب مجزية تعد البرمجة من أكثر المهن المربحة التي تضمن لك أجرًا مرتفعًا لا سيما إذا كنت تملك الخبرة والمهارة الكافية ولديك معرض أعمال قوي فالطلب على المطورين والمبرمجين من مختلف التخصصات في تزايد مستمر. وبالرغم من أن رواتب المبرمجين تختلف حسب الموقع الجغرافي وعدد سنوات الخبرة والتخصص البرمجي إلا أن متوسط رواتب المبرمجين بشكل عام يبقى أعلى من متوسط الرواتب لبقية المهن. إمكانية العمل عن بعد أحد فوائد تعلم البرمجة الجلية التي ستجنيها من تعلمها والعمل بها هي حرية اختيار العمل عن بعد من داخل منزلك أو أي مكان هادئ تفضله والتعاقد مع أي عميل حول العالم أو العمل الحر بشكل مستقل خلال أوقات عمل مرنة لا تلزمك بساعات محددة يفرضها عليك صاحب العمل. فإذا كنت ممن يفضل العمل عن بعد على بيئات العمل التقليدية وتجد أن هذا يساهم في زيادة تركيزك وإنتاجيتك ومردودك فقرار تعلم البرمجة لبدء مهنة جديدة هو فرصتك لتحقيق هذا الأمر. محو الأمية الرقمية يمكن القول أن عدم القدرة على كتابة وفهم التعليمات البرمجية في عصرنا الحالي يكافئ عدم القدرة على القراءة والكتابة من سنوات قليلة مضت، فمعظم الوظائف اليوم تتطلب معرفة أساسية بالتعامل مع الحاسوب واستخدام التطبيقات والبرامج المختلفة. فإذا كنت لا تريد أن توصف بالجهل الرقمي أنصحك بأن تبدأ بتعلم البرمجة وتفهم كيفية عمل التطبيقات والبرامج التي تستخدمها في حياتك اليومية وتكون مرنًا ومتكيفًا مع المتطلبات المتغيرة في عالم التقنية سريع التطور. مواكبة التطور التقني من منا اليوم لا يستخدم التقنيات والتطبيقات والأجهزة الذكية! بدءًا من التسوق عبر الإنترنت ودفع الفواتير ووصولًا للسيارات المبرمجة ذاتية القيادة والروبوتات الذكية التي أصبحت تنوب عنا في أداء الأعمال اليومية. فقد أصبح كل شيء حولنا اليوم مزودًا بالتقنيات الحديثة وتعلم البرمجة يكسبنا القدرة على فهم طريقة عمل هذه التقنيات والتآلف معها بسرعة أكبر. تحسين التفكير والقدرة على حل المشكلات فتعلم إحدى لغات البرمجة شبيه بتعلم لغة ثانية ومن شأنه أن يزيد قدرات عقلك ويوسع مداركك، كما أن تعلم البرمجة يجعل تفكيرك أكثر تنظيمًا وإبداعًا ويكسبك مرونة أكبر في التعامل مع أي مشكلة تواجهك وحلها بذكاء، وهذا لا ينطبق على المشكلات التقنية فقط بل ينعكس على كافة مجالات الحياة والعمل. فالبرمجة مهارة تفيد الجميع وليست حكرًا على المبرمجين، وهنا تحضرني مقولة شهيرة لمؤسس شركة آبل ستيف جوبز: أتمتة الأعمال وزيادة الإنتاجية من فوائد تعلم البرمجة إكسابك القدرة على أتمتة الأعمال والمهام اليدوية المتكررة من خلال كتابة أكواد برمجية تنجز لك هذه المهام بسرعة ودون أخطاء وبهذا يمكنك استثمار وقتك وزيادة إنتاجيتك. على سبيل المثال إذا احتجت لتحميل مجموعة كبيرة من الملفات من موقع ما أو احتجت لإعادة تسمية عدة مستندات أو تصنيف رسائل البريد الإلكتروني الخاصة بك في مجلدات مخصصة فكل ما عليك هو كتابة بضعة أسطر من التعليمات البرمجية لإنجاز العمل بدلًا من قضاء ساعات في تأديته بصورة يدوية. تحسين مهارات التواصل تحتاج في مجال العمل البرمجي للتواصل مع أعضاء فريق التطوير أو مع زملاء في العمل من أقسام مختلفة أو ربما مع عملاء مختلفين متواجدين في أي مكان حول العالم إذا كنت تعمل بشكل مستقل وتعلم البرمجة يساعدك على تحسين مهارات التواصل وتوصيل الأفكار المعقدة للآخرين. حتى لو لم تكن تنوي احتراف البرمجة فإن أحد فوائد تعلم البرمجة هو مساعدتك على التواصل مع الموظفين التقنيين في بيئة عملك وفهمهم والنقاش معهم بشكل أفضل. تعلم الصبر والتركيز مهنة البرمجة من أكثر المهن التي تتطلب الهدوء والصبر والتركيز فعند العمل على حل مشكلة برمجية قد تحتاج لقضاء ساعات في كتابة الشيفرات البرمجية وحل الأخطاء وتحسين النتائج حتى تحصل على النتيجة المرجوة. ستجد بعد مدة من ممارسة البرمجة أنك تميل للصبر والهدوء عندما تواجه أي عقبات أو صعوبات في عملك أو حياتك اليومية وهذه مهارة مهمة نحتاجها جميعًا. نصائح لتعلم البرمجة بكفاءة بعد أن تعرفت على فوائد تعلم البرمجة لا بد أنك متحمس الآن لبدء رحلة تعلم البرمجة واحترافها لذا سأختم المقال بجملة من النصائح السريعة التي تساعدك على تعلم البرمجة بسرعة وتجنبك الفشل. البرمجة ليست مجرد كتابة شيفرات برمجية بل هي تعلم طريقة التفكير بطرق مبتكرة وحل المشكلات المعقدة لذا حسّن مبادئ التفكير المنطقي والخوارزمي لديك وجرب حل التحديات والألغاز البرمجية قبل أن تبدأ تعلم إحدى لغات البرمجة. إليك جملة نصائح لتعلم البرمجة بكفاءة: ابدأ بتعلم لغة برمجة سهلة وتناسب المبتدئين مثل بايثون Python أو جافا سكريبت JavaScript أو روبي Ruby كما يمكنك البدء بإحدى لغات البرمجة المرئية المعتمدة على الكتل مثل لغة سكراتش التي تعلمك البرمجة بطريقة ممتعة ومسلية. تعلم أساسيات البرمجة مثل الشروط والحلقات والمتغيرات والدوال وهياكل البيانات data structures وتأكد من إتقانها قبل الانتقال لمواضيع أكثر تقدمًا. ستجد الكثير من مصادر التعلم المتنوعة عبر الإنترنت، وهذا أمر رائع لكنه قد يشتتك لذا احرص على اتباع مصدر محدد وموثوق والتزم بالتعلم منه وفي حال واجهت صعوبة في فهم أمر ما يمكنك البحث عن مصادر إضافية. احرص على التطبيق العملي وممارسة كل ما تتعلمه فالاكتفاء بالمعلومات النظرية ومشاهدة الدروس ومقاطع الفيديو لن يساعدك على تعلم البرمجة بطريقة احترافية. لا تتوقف عن التعلم وتطوير مهاراتك والاطلاع على أحدث الأدوات والتقنيات واستخدامها في مشاريعك البرمجية. الخلاصة البرمجة كنز ثمين لمن يتعلمها ومهارة قوية تضمن مستقبلك وتهيئك لمواكية التطورات التقنية المتسارعة والنجاح في مجالات العمل المختلفة، ونأمل أن يكون هذا المقال قد ساعدك في التعرف على أهم فوائد تعلم البرمجة والمميزات التي ستعود عليك إذا احترفتها. ابدأ من الآن خطوتك الأولى لتعلم البرمجة فقد تكون أنت من سيطور برامج رائعة تخدم البشرية! اقرأ أيضًا مدخل إلى الخوارزميات أسهل لغات البرمجة أهمية البرمجة وأهم لغات البرمجة المرجع الشامل إلى تعلم لغة بايثون
    1 نقطة
  16. تُعد منصة Google Colab من أفضل منصات غوغل، والتي تمنحنا القدرة على بناء نماذج معقدة للتعلم الآلي وخوارزميات التعلم العميق. يتيح غوغل كولاب للمستخدمين التعامل مع مجموعة كبيرة من البيانات بالتالي فهو خيار مناسب لتحليل البيانات الضخمة وتنفيذ مشاريع الذكاء الاصطناعي. ويتميز Google Colab بوجود العديد من المكتبات المثبتة مسبقًا وتوافر خيارات GPU وTPU وموارد الحوسبة المتقدمة. سيساعدك هذا المقال على اكتشاف أهم الميزات المتوفر في منصة Google Colab، وسنقدم لك من خلاله العديد من النصائح والحيل التي تساعدك على توفير الوقت وتحسين تجربتك على هذه المنصة. استخدم اختصارات لوحة المفاتيح ووفر الوقت تساعد اختصارات لوحة المفاتيح على زيادة الإنتاجية لأنها تسهّل الوصول إلى الوظائف والأدوات. ورغم أن تعلّمها يستغرق بعض الوقت، لكن بمجرد أن تتعود عليها فستتمكن من إكمال عملك بطريقة أسرع. يمكنك التعرف على جميع الاختصارات الموجودة في منصة Google Colab بالانتقال إلى علامة التبويب "Tools" ثم اختيار "Keyboard shortcuts". وأهم الاختصارات المستخدمة في المنصة هي: التراجع عن الإجراء الأخير (داخل الخلية): Ctrl + Z البحث: Ctrl + H إدخال خلية التعليمات البرمجية أعلاه: Ctrl + A إدخال خلية التعليمات البرمجية أدناه: Ctrl + B حذف الخلية: Ctrl + D تنشيط GPU وTPU يستخدم غوغل كولاب افتراضيًا وحدة المعالجة المركزية GPU. ويوفر إمكانية تمكين دعم GPU وTPU للمهام التي تحتاج قدراتٍ سحابية أعلى مثل تدريب نماذج التعلم العميق. لتغيير نوع وحدة المعالجة الذي تريد استخدامه انقر فوق “Runtime” في علامة التبويب، ثم اختر “Runtime type change”، ثم حدد الجهاز المطلوب. يمكنك التحقق بسهولة مما إذا كانت وحدة معالجة الرسومات مُفعلة عن طريق تنفيذ الشيفرة التالية: import tensorflow as tf tf.test.gpu_device_name() ربط Google Colab بمنصة GitHub يمكنك ربط حسابك على غوغل كولاب مع حسابك على منصة GitHub. افتح مستند Notebook مُستضاف على GitHub، انتقل إلى colab.research واختر علامة التبويب GitHub ثم أدخِل عنوان المفكرة الذي تريد فتحه. يمكنك حفظ ملفاتك بسهولة في GitHub من خلال الانتقال إلى علامة التبويب "file" في Google Colab، ثم اختيار "save a copy in GitHub". منع Google Colab من قطع الاتصال يعاني مستخدمو غوغل كولاب من قطع الاتصال المتكرر. عندما تفتح غوغل كولاب وتنتقل لاستخدام برنامج آخر وتترك جهاز الحاسوب يعمل لساعة من الوقت أو أكثر، ومن ثم تعود لمنصة غوغل كولاب ستلاحظ أن غوغل كولاب أوقف دفتر الملاحظات عن العمل وتوقف تدريب النموذج. السبب أن Google Colab يفصل دفتر الملاحظات ويُغلق الجلسة عند تركه خاملًا لأكثر من ثلاثين دقيقة. تتوفر حيلة برمجية لتعديل وقت الجلسة يمكنك استخدامها بسهولة، من خلال فتح Chrome DevTools بالضغط على F12 وتشغيل شيفرة JavaScript التالية في وحدة التحكم: function KeepClicking(){ console.log("Clicking"); document.querySelector("colab-toolbar-button#connect").click() }setInterval(KeepClicking,60000) في هذه الشيفرة تمثل القيمة 60.000 مللي ثانية ما يعادل دقيقةً واحدة. يقوم هذا الجزء الصغير من التعليمات البرمجية بالنقر فوق شاشة Colab بعد كل 60 ثانية. وبالتالي يعتقد كولاب أن دفتر الملاحظات ليس خاملًا ولا داعي للقلق بشأن قطع الاتصال. إنشاء مقتطفات في Google Colab أحد أكبر المشكلات التي تواجه المبتدئين في علم البيانات هي عدم تذكر بنية التعليمات البرمجية. لذلك غالبًا ما يواجه الطلاب صعوبةً بالغة في تعلم علم البيانات ويفقدون حافزهم بسرعة. أفضل طريقة للتعامل مع هذه المشكلة هي إنشاء مقتطفات للتعليمات البرمجية الأكثر استخدامًا، أو التي تجد صعوبةً في إتقانها. المقتطف هو جزء من التعليمات البرمجية التي يمكن إعادة استخدامها في أي وقت تحتاجه. وهذه الطريقة رائعة لتنقذ نفسك من صداع تذكر الشيفرات ولتركز على مفاهيم علم البيانات. يتيح لك Google Colab إمكانية إنشاء وحفظ المقتطفات وتخصيصها. وللقيام بذلك يجب عليك أولًا إنشاء دفتر ملاحظات في غوغل كولاب، ثم إضافة خلية نصية وكتابة اسم المقتطف الذي تريد إنشاءه. أضف بعد ذلك خلايا التعليمات البرمجية واكتب التعليمات البرمجية التي تريدها، بالتالي ستتمكن من استخدام هذا المقتطف في دفتر ملاحظات جديد، وذلك بالانتقال إلى الأدوات ثم فتح الإعدادات: ستظهر نافذة منبثقة كما توضح الصورة. وكل ما عليك فعله هو لصق رابط دفتر الملاحظات الذي يضم المقتطفات البرمجية. بعض مقتطفات التعليمات البرمجية المفيدة ربط غوغل درايف بغوغل كولاب Google Colab. from google.colab import drive drive.mount(‘/content/drive/’) %cd ‘/content/drive/My Drive/ml_projects/obj_det’ #your project path رفع ملفات. from google.colab import files files.upload() تحميل ملف. from google.colab import files files.download(‘path/to/file’) إظهار تفاصيل وحدة معالجة الرسومات المستخدمة. ! nvidia-smi إظهار تفاصيل وحدة المعالجة المركزية. ! cat / proc / cpuinfo توسيع ذاكرة الوصول العشوائي تبلغ ذاكرة الوصول العشوائي المتوفرة في غوغل كولاب 13 غيغابايت. قد يكون هذا الحجم غير كافٍ في بعض الحالات، لأن العديد من نماذج التعلم العميق تتطلب مساحةً أكبر بكثير. توجد حيلة رائعة لتوسيع ذاكرة الوصول العشوائي في هذه المنصة. ولاستخدام هذه الحيلة أدخِل الشيفرة البرمجية التالية في الخلية البرمجية في Google Colab، وانتظر تعطل كولاب. i = [] while(True): i.append(‘a’) وبذلك ستتضاعف ذاكرة الوصول العشوائي الحالية البالغة 13 غيغابايت. بمجرد تعطل النظام الأساسي بسبب نقص ذاكرة الوصول العشوائي، سيعرض النظام تلقائيًا خيارًا للمستخدمين: "Your Session Crashed After Using All Available RAM"، والذي يعني توقف الجلسة بعد نفاد ذاكرة الوصول العشوائي المتاحة. ستحتاج إلى النقر فوق خيار "Get More RAM"، للحصول على حجم إضافي لذاكرة الوصول العشوائي. بمجرد النقر على الخيار سيظهر مربع حوار يتضمن رسالة تأكيد للحصول على ذاكرة وصول عشوائي إضافية، وعند النقر على "نعم" ستحصل على حجم ذاكرة وصول عشوائي يصل إلى 25 غيغا بايت. كيفية طلب المساعدة لغات البرمجة حساسة للأحرف ومن الصعب على المبتدئين تذكر جميع الكلمات الرئيسية وأسماء الوظائف، لذلك تقدم منصة غوغل كولاب المساعدة لهم. يمكنك طلب المساعدة في أي وقت وذلك باتباع الخطوات التالية: الخطوة الأولى: افتح دفتر ملاحظات جديد واكتب الشيفرة التالية في الخلية البرمجية: import torch الخطوة الثانية: شغّل الشيفرة البرمجية بالضغط فوق زر التشغيل الموجود يسار الخلية. الخطوة الثالثة: أضف خلية برمجية جديدة واكتب الشيفرة البرمجية التالية: Tensor = torch أصبح بإمكانك طلب المساعدة الحساسة للسياق من خلال النقر على المفتاح Tab في لوحة المفاتيح. ستظهر مجموعة الوظائف المتوفرة كما توضح لقطة الشاشة التالية: تثبيت مكتبات التعلم الآلي تدعم منصة Google Colab معظم مكتبات التعلم الآلي المتوفرة في لغة البرمجة بايثون، ويمكن تثبيت هذه المكتبات بسهولة. فيما يلي سنلقي نظرةً على أهم مكتبات التعلم الآلي وكيفية تثبيتها في غوغل كولاب. لتثبيت مكتبة يمكن استخدام أحد الخيارين: !pip install أو !apt-get install مكتبة Keras مكتبة Keras هي إحدى مكتبات بايثون، وتتيح إمكانية إنشاء نماذج أولية سهلة وسريعة لتطبيقات الشبكات العصبونية. وهي تدعم شبكات CNN والشبكات المتكررة، ولتثبيت هذه المكتبة استخدم الأوامر البرمجية التالية: !pip install -q keras مكتبة PyTorch هي حل مثالي لتطوير تطبيقات التعلم العميق. وهي مكتبة مُحسنّة، ويمكن تثبيتها باستخدام الأمر البرمجي التالي: !pip3 install torch torchvision مكتبة MixNet وهي أيضًا مكتبة مُخصصة لنماذج التعلم العميق، وهي مرنة وفعالة ولتثبيتها عليك فقط تشغيل الأمر البرمجي التالي: !apt install libnvrtc8.0 !pip install mxnet-cu80 مكتبة OpenCV هي مكتبة رؤية حاسوبية مفتوحة المصدر لتطوير تطبيقات التعلم الآلي. تحتوي على أكثر من 2500 خوارزمية محسّنة تدعم العديد من التطبيقات، مثل التعرف على الوجوه وتحديد الكائنات وتتبع الأجسام المتحركة. هذه المكتبة مُستخدمة من قبل أكبر المواقع الموجودة على الإنترنت مثل غوغل وياهو ومايكروسوفت، وهي مناسبة لتطوير تطبيقات الرؤية المتزامنة. لتثبيت OpenCV، استخدم الأمر التالي: !apt-get -qq install -y libsm6 libxext6 && pip install -q -U opencv-python مكتبة XGBoost هي عبارة عن مكتبة تعزيز التدرج الموزع التي تعمل في البيئات الموزعة الرئيسية مثل Hadoob. تُعد من المكتبات عالية الكفاءة والتي تمتلك قدرةً كبيرة على التحمل. تقوم بتنفيذ خوارزميات ML في إطار تعزيز التدرج. لتثبيت XGBoost، استخدم الأمر التالي: !pip install -q xgboost==0.4a30 مكتبة Graphviz مكتبة مفتوحة المصدر لتصورات الرسم البياني. تُستخدم لتطبيقات التصور في الشبكات والمعلوماتية الحيوية وتصميم قواعد البيانات. لتثبيت GraphViz استخدم الأمر التالي: !apt-get -qq install -y graphviz && pip install -q pydot خاتمة قدّمنا في هذا المقال قائمةً بأهم النصائح والحيل التي يمكنك استخدامها لتسهيل استخدام غوغل كولاب. ولايزال هناك الكثير من الميزات التي توفرها هذه المنصة ومن الصعب حصرها في مقالٍ واحد. يمكنك اكتشاف المزيد من الحيل والميزات مع الاستخدام المتكرر لجوجل كولاب. اقرأ أيضًا دليل استخدام Google Colab
    1 نقطة
  17. سنتعرف في مقال اليوم على مفهوم صفحات الويب وكيف تعمل ونتعرف على أهم مكوناتها ونميز بين أنواع صفحات الويب الثابتة والديناميكية، وأخيرًا نوضح أهم الخطوات والتقنيات التي عليك تعلمها لتصمم وتبرمج هذه الصفحات. تعريف صفحة الويب Web Page قد تتساءل، ما هي صفحة الويب؟ سأجيبك، هي مستند مكون من سلسلة من التعليمات البرمجية المكتوبة بإحدى لغات الويب ويتم عرضها داخل تطبيق مخصص يسمى متصفح الويب Web Browser. تستخدم صفحات الويب بشكل أساسي لعرض المعلومات بأشكال مختلفة من نصوص ورسومات وصور ومقاطع الفيديو وروابط لصفحات ويب أخرى وإتاحتها عبر شبكة الإنترنت وتشكل مجموعة صفحات الويب المتعددة المرتبطة مع بعضها البعض موقع ويب يمكن لصفحات الويب أن تكتب بأنواع مختلفة من لغات البرمجة مثل HTML و CSS وجافا سكريبت و PHP وغيرها من اللغات والتقنيات وفق ما تقتضي الحاجة، لكن تعد لغة HTML التقنية الأساسية لبناء صفحة الويب، فصفحات الويب بتنسيق HTML هي المعيار للمحتوى الذي يعرضه متصفح الإنترنت. وتجدر الإشارة إلى أن HTML ليست لغة برمجة بالمعنى المتعارف، بل لغة توصيفية markup language تعتمد على رموز خاصة تسمى الوسوم Tags، هذه الوسوم مسؤولة عن وصف بنية صفحات الويب وطريقة عرض محتوياتها وإظهارها بالبنية التي نريدها، كعرضها بشكل فقرات أو جداول أو تعدادات نقطية …إلخ. تتميز لغة التوصيف HTML بكونها مفهومة ومعبرة فكل ما تقوم به هو وصف أسلوب عرض المحتوى للمتصفح وطريقة تخطيط صفحة الويب، على سبيل المثال لإدراج عنوان رئيسي وفقرة في صفحة الويب نكتب اكتب العنوان بين علامتي <h1> و <h1/> ولكتابة فقرة نصية اكتبها بين علامتي <p> و <p/> بالشكل التالي: <h1> هذا هو عنوان الفقرة</h1> <p> هذا هو محتوى الفقرة</p> قم بكتابة الكود السابق في أي محرر نصوص مثل المفكرة واحفظه بالامتداد ‎.html أو ‍‎.htm وسمه بأي اسم تختاره ليكن example.html، ستلاحظ أن أيقونة الملف قد تحولت إلى صفحة ويب وعند فتحها تعرض في المتصفح الافتراضي لديك وتظهر بشكل مشابه للصورة التالية: لاحظ أن النص (هذا هو عنوان الفقرة) ظهر كعنوان غامق لأننا غلفناه بعلامات خاصة بالعنوان، بينما ظهر النص (هذا هو محتوى الفقرة) كنص عادي لأننا وضعناه بين علامتين تدلان على كونه فقرة نصية. تحتاج هذه الصفحة للكثير بالطبع من أكواد HTML الإضافية كي تبدو صفحة ويب متكاملة الأركان، كما تحتاج لإضافة تنسيقات مختلفة من خطوط وألوان وتخطيطات لجعل مظهرها أكثر احترافية وهو ما تقوم به لغة CSS التي تتكامل مع لغة HTML حيث تضاف شيفرات CSS بعدة طرق إلى صفحة الويب، فهي إما أن تكتب في ملف ‎.html نفسه، أو تضاف في ملف نصي مستقل بالامتداد css. بأي اسم تختاره وليكن styles.css ثم تربط مع ملف ‎.html من خلال كتابة الكود التالي: <link rel="stylesheet" type="text/css" href="styles.css" /> <h1> هذا هو عنوان الفقرة</h1> <p> هذا هو محتوى الفقرة</p> لسنا بصدد شرح أكواد CSS في هذا المقال لكننا سنكتب بعض التنسيقات البسيطة لصفحتنا لتفهم الفكرة التي تعمل من خلالها صفحات الويب، على سبيل المثال لجعل العنوان الذي أضفناه بالصفحة باللون الأحمر والفقرة باللون الأزرق تكتب في ملف التنسيقات الأكواد التالية: h1 { color: red; } p { color: blue; } بعدها عند عرض الصفحة ستظهر لنا بالشكل المنسق التالي: للمزيد حول تصميم صفحات الويب وكتابة أكواد CSS يمكنك مطالعة مقال HTML و CSS للمبتدئين: كيف تصمم أول صفحة ويب لك ومقال أساسيات CSS، كما يمكنك تعلم المزيد حول ربط أكواد مع ملف ‎.html من خلال مقالة كيفية بناء موقع باستخدام CSS. ما هو متصفح الويب؟ ذكرنا في الفقرات السابقة كلمة متصفح عدة مرات وذكرنا أنه برنامج يستخدم لفتح صفحات الويب وعرضها، ولعلك تتساءل ما هو دور المتصفح في صفحات الويب التي هي بالأساس مستندات نصية تكتب ضمن محررات نصوص أو محررات أكواد برمجية؟ وإليك الجواب: كي تتمكن من فتح صفحات الويب على جهازك تحتاج لوجود برنامج متصفح الويب وهو عبارة عن تطبيق يمكنك من الوصول إلى المعلومات المضمنة في صفحات الويب وعرضها بالشكل الصحيح، فهو بمثابة حاوية تعرض كافة محتويات الصفحة. هناك الكثير من متصفحات الويب وأشهر خمس متصفحات هي: جوجل كروم Chrome فايرفوكس Firefox مايكروسوفت إيدج Microsoft Edge أوبرا Opera سفاري Safari كي تتمكن متصفحات الويب من عرض صفحات الويب فهي تستخدم محرك عرض Rendering Engine أو ما يسمى بمحرك التخطيط Layout Engine مهمته أخذ كافة معلومات المحتوى والتصميم الواردة في التعليمات البرمجية التي كتبت بها هذه الصفحة وتفسيرها وعرضها بالشكل النهائي لك. يستخدم كل متصفح محرك عرض مختلف عن الآخر، على سبيل المثال يستخدم فايرفوكس محركًا يسمى Gecko ويستخدم كل من كروم وأوبرا محرك باسم Blink كما أن بعض المتصفحات قد تستخدم تقنيات خاصة بها غير متوفرة في متصفحات أخرى، ما يهمك في هذا الأمر أن تفهم سبب وجود الاختلافات عند طريقة عرض صفحات الويب من متصفح لآخر، أو سبب عدم عمل بعض الميزات في متصفح بينما تعمل بشكل مثالي في متصفح آخر، ولهذا السبب يحرص مصممو المواقع على معالجة المشاكل الشائعة للتوافق مع المتصفحات في HTML و CSS. كيف أفتح صفحات الويب؟ يملك كل موقع ويب اسم نطاق Domain name مميز خاص به لا يستخدمه أي موقع آخر ويجب حجزه من خلال دفع رسوم شهرية أو سنوية لشركات تسجيل أسماء المجالات على سبيل المثال اسم المجال الرئيسي لشركة حسوب هو hsoub.com وهذا المجال هو جزء من عنوان الموقع الكامل URL وهو https://www.hsoub.com/‎. حيث تمتلك كل صفحة ويب عنوان URL فريد يميزها ويحدد موقعها الدقيق على شبكة الإنترنت فمن أجل فتح صفحة الويب وعرض محتواها كل ما عليك هو فتح المتصفح المثبت على جهازك وكتابة عنوان URL الخاص بها في شريط عنوان المتصفح عندها سيطلب المتصفح أو ما يعرف بالعميل Client جلب محتويات هذه الصفحة من خادم الويب البعيد Server ويعرضها لك. على سبيل المثال للوصول للصفحة الرئيسية لأكاديمية حسوب كل ما عليك هو إدخال العنوان https://academy.hsoub.com/‎‏‏‏ في شريط عنوان المتصفح، وللوصول إلى الصفحة الخاصة بدروس البرمجة في الأكاديمية يمكنك كتابة العنوان https://academy.hsoub.com/programming/‎ أما إذا كنت لا تعرف العنوان الخاص بصفحة أو موقع ما يمكنك البحث عن اسمه بأحد محركات البحث والوصول له من خلال نتائج البحث وهذه الطريقة هي الأمر الشائع لدى المستخدمين بدلًا من حفظ العناوين الخاصة بكل صفحة. محرك البحث Search Engine هو نوع خاص من مواقع الويب يتم الوصول لها من خلال متصفح الويب ليساعدك في العثور على مواقع وصفحات الويب وأشهرها على الإطلاق محرك بحث جوجل الذي يتميز بدقة نتائجه، ومؤخرًا برز اسم محرك بحث Bing من شركة مايكروسوفت الذي يعمل بتقنيات الذكاء الاصطناعي. ما الفرق بين موقع الويب وصفحة الويب؟ يتكون موقع الويب عادة من عدة صفحات ويب مرتبطة ببعضها البعض بطرق مختلفة والتي تشترك في اسم مجال أو عنوان فريد خاص بها. يمكن تشبيه صفحة الويب بصفحة من كتاب والموقع بالكتاب نفسه الذي يجمع في طياته كل هذه الصفحات تحت عنوان واحد مشترك ويكون لكل صفحة منها عنوانها الخاص الذي يميزها. ينظم موقع الويب على شكل صفحات مرتبطة مع بعضها البعض بروابط تشعبية وأهم هذه الصفحات هي الصفحة الرئيسية وهي الصفحة الأولى التي يراها المستخدم عند دخوله إلى موقع الويب وهي تعطيك نظرةً شاملةً عن محتوى الموقع ومنها تنتقل عبر صفحات الموقع الفرعية الأخرى، ويجب أن يحرص مصمم الموقع على جعل التنقل في صفحات الموقع واضحًا وسهل الاستخدام كي لا يشتت زوار الموقع. ما هي عناصر صفحة الويب؟ تختلف العناصر أو الأقسام التي تحتويها صفحات الويب وطريقة توزيع المحتوى ضمن هذه الأقسام بحسب الهدف من هذه الصفحة وطبيعة المحتوى الذي تتضمنه لكن يمكن القول أن معظم صفحات الويب تتضمن العناصر التالية: ترويسة الصفحة: وهي تتضمن عادة اسم الموقع أو شعار الموقع وشريط التنقل بين صفحات الموقع وصندوق للبحث في محتوى الموقع، وقد تتضمن بعض الإشعارات أو العروض المميزة أو الصور المميزة التي تريد لفت نظر المستخدمين لها. الشريط الجانبي للصفحة: وهو قسم اختياري في الصفحة يعرض المعلومات التي لا تكون جزءًا من المحتوى الرئيسي للصفحة. وقد يتضمن إعلانات أو عبارات دعوة لاتخاذ إجراء CTA أو روابط لأجزاء أخرى من موقع الويب وقد يتضمن رابط الرجوع إلى أعلى الصفحة لا سيما في الصفحات ذات المحتوى المكثف. المحتوى الأساسي للصفحة: وهو يتضمن عادة عنوان صفحة الويب ومحتوى منوع من فقرات وصور وروابط لصفحات أخرى حسب الحاجة. تذييل الصفحة: هو القسم الذي يعرف المستخدم أنه وصل إلى نهاية صفحة الويب ويجب أن يتضمن التذييل أي معلومات مهمة عن الموقع وعبارة حقوق النشر وقد يتضمن بعض الروابط لصفحات هامة مثل صفحة سياسة الخصوصية ومعلومات الاتصال وروابط للشبكات الاجتماعية. أنواع صفحات الويب ستجد في شبكة الانترنت نوعين من صفحات الويب منها ما هو بمحتوى ثابت لا يتغير مثل صفحات السيرة الذاتية أو معارض الأعمال وأخرى بمحتوى ديناميكي متجدد مثل الصفحات الإخبارية وصفحات المدونات وصفحات وسائل التواصل الاجتماعي، وإليك الفرق بين هذين النوعين. صفحات الويب الثابتة Static Web Pages هي صفحات تمتلك محتوى ثابت مخصص للقراءة فقط ويظهر لكافة المستخدمين بنفس الشكل، وهذه الصفحات تكتب عادة بلغة HTML حيث يتوجب عليك إنشاء ملف بالامتداد ‎.html لكل صفحة جديدة تضيفها للموقع. ويمكن أن تتضمن الصفحات الثابتة موارد أخرى مثل تنسيقات CSS للتحكم في مظهرها وأكواد بلغة جافا سكريبت JavaScript لإضافة تأثيرات تفاعلية إليها إلى جانب ملفات الوسائط مثل الصور والأصوات ومقاطع الفيديو وغيرها من الوسائط التي تعرض على صفحات الويب. كي تغير محتوى صفحات الويب الثابتة تحتاج لأن تصل إلى ملفات الشيفرات البرمجية لهذه الصفحة وتقوم بتعديل ما تريد بنفسك وتجدر الإشارة لأن جميع مواقع وصفحات الويب كانت ثابتة في بدايات ظهور الويب. واليوم لا تزال الصفحات الثابتة مستخدمة لعرض أي محتوى يكتب لمرة واحدة ولا يحتاج لتخصيص أو تحديث بشكل متكرر مثل مواقع السيرة الذاتية ومعارض الأعمال وصفحات الهبوط والصفحات التعريفية للشركات. لكن ماذا لو كانت المواقع ذات محتوى متغير بشكل متكرر أو يحتاج لأن يخصص حسب المستخدم أو يتفاعل معه؟ عندها تحتاج لأن تصمم صفحات ويب ديناميكية. صفحات الويب الديناميكية Dynamic Web Page هي صفحات يتم تغيير محتواها باستمرار بالاعتماد على مدخلات المستخدم وتفاعله مع الصفحة وغيرها من العوامل ومن الأمثلة عليها تطبيقات الويب التفاعلية ووسائل التواصل الاجتماعي ومواقع التجارة الإلكترونية وما شابه، ويمكن لهذه الصفحات عرض تقديم معلومات مختلفة للزوار المختلفين، على سبيل المثال موقع التواصل الاجتماعي فيسبوك هو موقع ديناميكي لأن محتوى صفحة فيسبوك التي تظهر لي مختلف عن محتوى الصفحة التي تظهر لك، كما أنك في كل مرة تزور فيها صفحتك تجد فيها معلومات مختلفة عن المرة السابقة. تصمم صفحات الويب الديناميكية باستخدام لغات برمجة تعمل على الخادم مثل PHP أو بايثون أو روبي ..إلخ، إضافة للغات HTML و CSS وجافا سكريبت وغالبًا ما تحتوي على عناصر ديناميكية تتفاعل مع مدخلات المستخدم وتستخرج المعلومات المطلوبة المخزنة في الخادم لإنشاء صفحة الويب النهائية التي يشاهدها المستخدم في متصفحه. ولمطالعة مزيد من المعلومات حول الطريقة التي تعمل بها صفحات الويب الدينامكية أنصح بمطالعة مقال نظرة على تفاعلات الخادم مع العميل في موقع ويب ديناميكي. تعلم برمجة وتصميم صفحات الويب قد تكون مهتمًا بمعرفة الطريقة التي تبرمج بها صفحات الويب وتتساءل كيف يمكنني تعلم برمجة وتصميم صفحات الويب وإدارتها بسرعة واحترافية وما هي اللغات والأدوات الواجب تعلمها. إليك أهم الخطوات التي يمكنك اتباعها لتعلم برمجة صفحات الويب: تعلم كيف يعمل الويب تعلم الأدوات والتقنيات اللازمة لتطوير صفحات الويب تعلم تصميم المواقع الإلكترونية اختر مصادر تعلم موثوقة ومنظمة لا تتوقف عن التعلم لنتعرف كل خطوة من هذه الخطوات بمزيد من التفصيل: 1. تعلم كيف يعمل الويب في هذه المرحلة عليك تعلم مجموعة من المفاهيم الأساسية مثل: كيف يعمل الويب Web. كيف تعمل مواقع الويب. ما هي مكونات الويب الرئيسية. ما هو مفهوم بروتوكولات الويب مثل HTTP و TCP/IP و وكيفية تخزين وتنظيم الصفحات والملفات المختلفة لمواقع الويب على الخادم المتصل بالإنترنت وعرضها على المتصفح أو العميل. أنواع الخوادم وكيفية إدارتها ومفهوم استضافات الويب وأنواعها. 2. تعلم الأدوات والتقنيات اللازمة لتطوير صفحات الويب في المرحلة التالية من المهم أن تتعرف على أهم الأدوات المستخدمة في بناء مواقع ويب، وتحدد التقنيات التي تريد استخدامها وكي لا تشعر بالتشتت فقد وفرنا في مقال المدخل الشامل لتعلم تطوير الويب وبرمجة المواقع معلومات شاملة تعرفك على كافة الجوانب المتعلقة بتطوير صفحات الويب والتقنيات ولغات البرمجة التي يمكنك تعلمها لتصبح مطور مواقع محترف، بعد أن تتضح لك الصورة الكاملة حدد بدقة ما هي اللغات والأدوات التي تريد استخدامها لبناء مواقع الويب وضع خطة زمنية لتعلمها. 3. تعلم تصميم المواقع الإلكترونية إذا كنت ترغب في التخصص في تصميم واجهات مواقع وتطبيقات الويب فعليك في هذه الحالة تعلم أساسيات تصميم المواقع الإلكترونية والتعرف على أفضل النصائح لتصميم واجهة المستخدم لتصمم مواقع وصفحات ويب احترافية، وتنظم بنية موقعك بأفضل طريقة ممكنة، وتختار أفضل أنواع الخطوط والألوان التي عليك استخدامها بما يتناسب وهوية الموقع والفئة المستهدفة وتحسين تجربة المستخدم. 4. اعتمد مصادر تعلم موثوقة اختر مصادر التعلم التي تفضلها سواء دروس عبر الإنترنت أو كتب أو معسكرات أو قنوات يويتوب أو دورات تدريبية، لكن تشتت نفسك بكثرتها واحرص على اختيار مصادر منظمة ومتكاملة، ولا تكتفِ بمجرد القراءة أو المشاهدة بل طبق كل ما تتعلمه وصمم مواقع تجريبية وقم بنشرها على الإنترنت لأن التطبيق العملي أفضل وأسرع طريقة للتعلم وهو يساعدك على بناء معرض أعمالك والعثور على وظيفة بشكل أسرع. ستجد في أكاديمية حسوب الكثير من الدورات التدريبية المتخصصة في تطوير مواقع الويب مثل: دورة تطوير واجهات المستخدم التي تعرفك على كل ما يخص تطوير الواجهات الأمامية لمواقع الويب وبناء عدة مواقع ويب ثابتة تعزز معرض أعمالك وتساعدك في العثور على وظيفة ملائمة. دورة تطوير التطبيقات باستخدام لغة Python التي ستتعلم فيها أساسيات لغة البرمجة بايثون وتبني من خلالها مواقع مختلفة مطلوبة في سوق العمل. دورة تطوير التطبيقات باستخدام لغة JavaScript التي ستتقن من خلالها لغة البرمجة الأكثر شهرة وانتشارًا جافا سكريبت وتتعلم تطوير العديد من أنواع التطبيقات المختلفة من خلالها. دورة تطوير تطبيقات الويب باستخدام لغة PHP التي ستتعلم من خلالها تطوير مواقع انترنت احترافية باستخدام العديد من الأدوات والتقنيات. تتكون كل دورة من هذه الدورات من مسارات غنية بالمعلومات لا تطلب منك أي معرفة مسبقة وتنتهي بتطوير العديد من مواقع الويب الاحترافية في عدة مجالات وتوفر تحديثات مستمرة ومدربين محترفين يوفرون لك إرشادات وإجابات على كافة تساؤلاتك طيلة فترة التعلم. كما ستجد الكثير من الدورس والمقالات المجانية حول تصميم صفحات الويب وتعلمك تطوير الويب من الصفر للاحترف، ليس هذا فحسب فإن كنت ممن يفضل الدراسة من الكتب لما توفره من معلومات شاملة ومنظمة ومتدرجة، ستجد في قسم الكتب في أكاديمية حسوب الكثير من الكتب الشاملة عن لغات برمجة صفحات الويب وتصميم واجهات المواقع الإلكترونية المتاحة للتحميل بالمجان. 5. لا تتوقف عن التعلم الاستمرارية في التعلم أساسية في أي مجال تقني وفي مجال تطوير الويب على وجه الخصوص لكونه مجالًا متجددًا بصورة مستمرة ويوفر الكثير من التقنيات والأدوات التي تسهل عمل المطورين وتحسن من طريقة برمجة صفحات الويب، لذا كن على اطلاع على كل جديد في هذا المجال واستفد من في الارتقاء بمستوى عملك. الخلاصة تعرفنا في مقال اليوم على مفهوم صفحات الويب ومكوناتها وأنواعها المختلفة وطريقة عملها، وأهم الخطوات التي يمكنك اتباعها لتتعلم برمجة وتصميم صفحات الويب ووفرنا مجموعة من المصادر العربية الموثوقة التي تساعدك في رحلة التعلم. اقرأ أيضًا تعلم تطوير الويب كيف يعمل الويب Web؟ عالم الويب ومعاييره كيفية التعامل مع الويب مراحل بناء مواقع الإنترنت من الصفر
    1 نقطة
  18. كثيرًا ما تتردد على مسامعنا عبارة التفكير المنطقي ونسمع نصائح حول أهميته وضرورة تحسينه واستخدامه في حل مشكلات حياتنا اليومية واتخاذ القرارات الصعبة، ولعلك تتساءل ما هو التفكير المنطقي؟ وما أهميته للمبرمج وهل فعلاً كلما كان لديك منطق أفضل ستتمكن من احتراف البرمجة بشكل أسرع؟ وهل التفكير المنطقي هو مَلَكة فطرية تولد مع الشخص أم أنه مهارة مكتسبة وقابلة للتعلم والتحسين؟ إذا كنت مهتمًا بمعرفة الإجابة على كل هذه التساؤلات تابع قراءة المقال إلى النهاية. سنتعرف في مقال اليوم على ماهية التفكير المنطقي وأهميته في مجال البرمجة وأهم الطرق والأدوات التي تساعدك على اكتساب مهارات التفكير المنطقي وتحسين طريقة تفكيرك وحل الخوارزميات المعقدة. ما هو التفكير المنطقي؟ التفكير المنطقي بشكل عام هو مهارة شخصية تكسب المرء القدرة على ضبط تفكيره وتحليل المواقف والمشكلات التي تواجهه وابتكار الحلول المناسبة بناءً على المعلومات والأدلة والحقائق المتوفرة لديه، وهو يتضمن كذلك القدرة على تقسيم المشكلات المعقدة إلى أجزاء أصغر وتقييمها بشكل منهجي للوصول إلى حل. وبما أن البرمجة ما هي إلا عملية التخاطب مع الحاسوب وتوجيهه لإيجاد حل لمشكلة ما والمبرمج هو حلال المشاكل كما يقال، فإن التفكير المنطقي للمبرمج يعزز قدرته على تحليل المشكلات واستنباط الحلول واتخاذ القرارات المناسبة وتطبيق المنطق على الكود الذي يكتبه لإنتاج برامج قادرة على معالجة وتحليل البيانات وإجراء العمليات الحسابية والمنطقية عليها بشكل صحيح. خصائص التفكير المنطقي قد تتساءل ما هي الخصائص التي يجب أن أتمتع بها كي أعتبر نفسي منطقيًا وهل لدي القدرة على التفكير بشكل منطقي من أجل حل أي مشكلة أو اتخاذ أي قرار؟ لأساعدك على الإجابة دعني أعدد لك خصائص التفكير المنطقي: العقلانية وعدم التحيز العاطفي والتأثر بالمشاعر عند اتخاذ قرار ما في أي موقف. على سبيل المثال يفكر الشخص العقلاني قبل شراء منتج ما بكل إيجابياته وسلبياته وهل سيلبي هذا المنتج متطلباته أم لا ثم يتخذ قرار الشراء من عدمه. التنظيم والتخطيط المسبق لكل شيء على سبيل المثال إذا كنت تنوي الذهاب في رحلة هل تفكر مليًا قبل ذلك في كل شيء يتعلق بتفاصيل رحلتك مثل زمان ومكان الرحلة وكيف ستقضي وقتك ومتى ستعود؟ إذا كان الجواب نعم فأنت في الغالب شخص منطقي. الانتباه ودقة الملاحظة لكل ما يحيط بك وأخذه بالاعتبار عند التفكير في حل مشكلة ما فمعظم الأخطاء تنجم عن عدم الوعي والانتباه للتفاصيل الدقيقة. الديناميكية وإيجاد حلول بديلة عند الضرورة. الفضول وحب الاستكشاف وتعلم أشياء جديدة وطرح العديد من الأسئلة لتوسيع أفق التفكير. الاعتراف بالخطأ وتصحيحه فهذا ينم عن نضج فكري لدى الشخص. الاعتماد على الحقائق والمعرفة وليس على الحدس والمعتقدات عند اتخاذ القرارات. بعد قراءة الخصائص الواردة أعلاه، هل تعتقد أنك تملك مهارة التفكير المنطقي أم لا؟ مراحل التفكير المنطقي كي تتمكن من التفكير منطقيًا وحل أي مشكلة تواجهك بطريقة منهجية يمكنك اتباع الخطوات التالية: فهم المشكلة جيدًا فإذا لم نفهم المشكلة تمامًا فلن تتوصل لأفضل حل ممكن لها أو ربما تستغرق الكثير من الوقت لتحلها. تقسيم المشكلة المعقدة وصعبة الحل إلى أجزاء صغيرة وبسيطة يسهل حلها. وضع خطة واضحة لحل كل جزء من المشكلة. البدء بتنفيذ الخطة التي وضعتها في الخطوة السابقة. العودة للخطوة الأولى. أهمية التفكير المنطقي للمبرمج لا شك أن أهمية التفكير المنطقي تبرز في كافة مجالات الحياة الشخصية والعملية، لكننا سنركز في هذه الفقرة على أهمية التفكير المنطقي في مجال البرمجة على وجه الخصوص فهو يعد أحد المهارات التي لا غنى عنها للمبرمجين والمطورين بصفة خاصة. فالبرمجة تحتاج منك للتخاطب مع الآلة، والآلة لا تفهم ولا تنفذ أوامر عامة بل تحتاج إلى تبسيط الأوامر إلى أبسط شكل، وتعد أي مهمة أو مخاطبة مع الآلة مشكلة يجب إيجاد أفضل حل وكتابة الحل الناتج بشكل برنامج، ومن هنا تأتي أهمية التفكير المنطقي في عملية البرمجة. لذا في حال رغبت بأن تصبح مبرمجًا ستكون أول نصيحة توجه لك هو تعلم مهارات التفكير المنطقي والخوارزميات لكونها خطوة أساسية تسبق مرحلة البرمجة وكتابة الأكواد، وبدون امتلاك مهارات التفكير المنطقي ستجد صعوبة كبيرة في حل المشكلات البرمجية المعقدة. وإليك جملة من فوائد التفكير المنطقي للمبرمج: يمنح القدرة على التفكير خارج الصندوق وابتكار حلول إبداعية للمشكلات البرمجية. ينشط الدماغ ويحفز الذاكرة ويساعد على ربط المعلومات ببعضها البعض. يساعد على تقسيم المشكلات إلى خطوات بسيطة ومتسلسلة منطقيًا. يعزز القدرة على تصور حل المشكلات البرمجية وصياغة طريقة الحل الأمثل قبل البدء في كتابة الكود البرمجي. يساعد على كتابة وفهم الخوارزميات وهي مجموعة من التعليمات التي تخبر الحاسوب بما يتوجب عليه القيام به لحل المشكلة بناء على معطيات دخل محددة. يسهل فهم منطق البرمجة وأكوادها واستخدام التعبيرات المنطقية والعبارات الشرطية. والجدير بالملاحظة أن المهارات التقنية ليست وحدها ما يبحث عنه أرباب العمل في المبرمجين والمطورين المرشحين للتوظيف بل تجدهم يحرصون على توافر مجموعة من المهارات والسمات الشخصية مثل التفكير المنطقي ومهارات حل المشكلات ومهارات التواصل الفعال وتنظيم الوقت وغيرها من السمات الأخرى التي يمكنك الاطلاع عليها في هذا الفيديو: التفكير المنطقي لحل المشكلات البرمجية يحتاج أي مبرمج لمهارة التفكير المنطقي لحل المشكلات البرمجية لأن حلها يتطلب طريقة معينة في التفكير ووضع خطوات الحل بطريقة مفضلة ومتسلسلة منطقيًا وقابلة للحل حاسوبيًا. على سبيل المثال إذا طلب منك حل مشكلة صنع شطيرة توست من الزبدة والمربى سيكون عليك أن تفكر بداية بالمواد المطلوبة لصنعها وهل هي متوفرة أم لا وهي الزبدة والمربى والخبز والسكين. بعد التأكد من توافر كل المعطيات اللازمة سيكون عليك التفكير بالخطوات التي تحتاجها لصنع الشطيرة. قد تخبرني أن الأمر بديهي ولا يحتاج لأي تفكير منطقي ضع الزبدة والمربى على الخبز وتناولها لكن انتبه هنا لأن هذا لن يساعدك في حل المشكلة وبناءً على ذلك قد تكون الخطوات المنطقية للعمل كالتالي: افتح كيس الخبز. خذ شريحة الخبز الموجودة في أعلى الكيس وضعها في طبق. افتح علبة الزبدة. اغمس السكين في علبة الزبدة. وزع الزيدة على شريحة الخبز. ضع السكين جانباً. خذ شريحة خبز ثانية من أعلى الكيس وضعها فوق الشريحة الأولى. افتح علبة المربى. اغمس السكين في علبة المربى وزع الزيدة على شريحة الخبز الثانية. ضع السكين جانباً. ضع شريحة الخبز الأولى فوق الثانية. الشطيرة جاهزة. قد يكون هناك أكثر من طريقة لحل المشكلة على سبيل المثال يمكن أن نختصر بعض الخطوات ونفكر في حل المشكلة كالتالي: افتح كيس الخبز وخذ شريحتين من خبز التوست. افتح علبة الزيدة. اغمس السكين في الزبدة. وزع الزبدة فوق شريحة الخبز الأولى. افتح علبة المربى. اغمس السكين في المربى. وزع المربى فوق شريحة الخبز الأولى. ضع الشريحة الأولى فوق الثانية. الشطيرة جاهزة. قد تفكر أيضًا أن الخطوات (افتح العلبة، اغمس السكين، وزع) تتكرر مرة من أجل الزبدة ومرة من أجل المربى فلم لا نحاول دمجها بوظيفة وليكن اسمها مثلًا وضع المادة المطلوبة. تسألك عن المادة التي تريدها وتطبق هذه الخطوات الثلاث دفعة واحدة في كل مرة تريد فيها تنفيذ هذه الخطوة. وقد تفكر في مناقشة بعض الافتراضات والحالات الخاصة التي قد تحدث خلال العمل وتجد حلولًا مناسبة لها كأن تناقش حالة عدم وجود المربى واستبداله بالعسل أو الشوكولا، فالخطوات المتبعة في الحل وطريقة التفكير والتنفيذ والمعالجة قد تختلف من شخص لآخر وهنا تبرز أهمية التفكير المنطقي فالجميع قد يحصل في النهاية على حل لكن بعض الحلول قد تكون أفضل من غيرها وأكثر كفاءة واختصارًا. قس على هذا أي مشكلة معقدة تحاول حلها من خلال الحاسوب. في ختام هذه الفقرة أدعوك لمشاهدة هذا الفيديو اللطيف والشيق لأب يعلم أطفاله كيف يكتبون بدقة التعليمات اللازمة لطريقة صنع شطيرة زبدة الفول السوداني مع المربى، عندما تتعامل مع الحاسوب تعامل معه كأنه ذلك الأب وأخبره بالتعليمات المطلوبة لحل مشكلتك بدقة متناهية. اكتساب التفكير المنطقي في البرمجة بعد أن تعرفت على أهمية التفكير المنطقي في تحسين البرمجة أعتقد أنك تتساءل الآن هل التفكير المنطقي هو موهبة فطرية تولد مع المبرمج وتمكنه من التوصل إلى حلول منطقية مناسبة لحل مشكلات الكود بسهولة وسلاسة، أم أنه مهارة مكتسبة يمكن تنميتها من خلال أدوات وممارسات معينة؟ لحسن الحظ رغم أن التفكير المنطقي هو ملَكَة فطرية يتميز بها البعض ويساعدهم وجودها على تعلم لغات البرمجة أسرع من غيرهم لكنه في نفس الوقت مهارة قابلة للاكتساب والتحسين والتطوير من خلال العديد من الطرق والتقنيات. إليك أهم الطرق والأدوات التي تساعدك على تحسين التفكير المنطقي في البرمجة: حلّ الألغاز والألعاب المنطقية. استخدم الورقة والقلم لوصف أي مشكلة تواجهك. تعلّم الخوارزميات. قسّم المشكلات المعقدة لأجزاء أصغر. تمكّن من أساسيات البرمجة. شارك في المسابقات والتحديات البرمجية. ادرس الشيفرات البرمجية للآخرين. تعلّم نماذج البرمجة وأنماط التصميم. دعنا نناقش كل طريقة من هذه الطرق ونتعرف على أهميتها في تنمية منطقك البرمجي حلّ الألغاز والألعاب المنطقية فحل الألغاز المنطقية وألعاب الذكاء مثل الشطرنج وألغاز الكلمات المتقاطعة وسودودكو و tic-tac-toe أو غيرها من الألغاز الرياضية والألعاب المنطقية وألغاز الذكاء IQ أمر ممتع ومفيد جدًا في تشيط عقلك وتحسين تفكيرك المنطقي وبالتالي تحسين قدراتك البرمجية. فمهارة حل الأحاجي أمر يبحث عنه معظم أرباب العمل لمعرفة مدى قوة تفكيرك وسرعة بديهتك فلا تستغرب حين تطرح عليك في مقابلات العمل مع شركات البرمجيات ألغاز من قبيل الأحجية التالية: كم عدد العملات التي تمتلكها إذا كانت جملة واحدة فقط من الجمل الثلاث التالية صحيحة: لديك عملة واحدة على الأقل. لديك خمس عملات على الأقل. عدد العملات الموجود معك أقل من خمسة. خذ وقتك في التفكير بحل هذه المسألة ويمكن أن تشاركني في التعليقات الجواب الذي توصلت إليه وكيف توصلت إليه. كما يمكن أن تتدرب على الكثير من المسائل والأحاجي المنطقية، ابحث عن ألغاز مثل لغز المئة سجين 100‎ prisoners problem أو لغز الجمل والموز camel and banana puzzle أو غيرها من الألغاز المشهورة التي تخص مجال البرمجة وعلوم الحاسب فهي متوفرة بكثرة على مواقع الإنترنت ومتاجر التطبيقات. استخدم الورقة والقلم لوصف أي مشكلة تواجهك استخدم الورقة والقلم عند التفكير واكتب كافة المعطيات المتاحة بين يديك كي لا تنسى أحدها فنحن البشر نتذكر الأشياء التي نكتبها بكفاءة أكثر، بعدها ناقش كافة الخيارات التي تخطر ببالك للحل وحاول أن تستنتج الحل الأمثل والأدق لها. ويمكنك أن ترسم مخططات توجيهية توضح لك الأمور بشكل أفضل لاسيما إذا كنت شخصًا بصريًا حينها ستساعدك المخططات والرسوم التوضيحية والمربعات والدوائر والأسهم على تصور المشكلة وفهمها بشكل أفضل وكتابة كود مناسب لحلها لاحقًا. تعلّم الخوارزميات فتعلم الخوارزميات وهياكل البيانات من شأنه أن يعزز التفكير المنطقي التحليلي والتفكير الخوارزمي الذي يغير طريقة تفكيرك في حل المشكلات ويعلمك منهجية التفكير بطريقة تشبه الطريقة التي يعمل بها الحاسوب كما أنه يساعدك لاحقًا في تعلم لغات البرمجة. يمكن أن تبدأ بالخوارزميات الأساسية مثل خوارزميات الفرز والترتيب sorting algorithms وخوازميات البحث search algorithms وخوارزميات فرق تسد divide and conquer وتفهم آلية عملها ثم تتدرج في تعلم خوارزميات أكثر تعقيدًا، كما أن فهم هياكل البيانات مثل القائمة المترابطة linked lists والمكدس stack والشجرة الثنائية binary trees واستخدامها أثناء تنفيذ الخوارزميات يسرع كثيرًا من قدرتك على حل المشكلات المعقدة. قسّم المشكلات المعقدة لأجزاء أصغر عندما تعجز عن حل مشكلة ما لماذا لا تجرب أن تحللها وتقسّمها إلى مشكلات أصغر يسهل التعامل معها، ابدأ بحل كل مشكلة منها وكافئ نفسك على تحقيق كل هدف صغير ثم اجمع كل الأجزاء لتتكامل مع بعضها البعض وتحل المشكلة الأساسية. على سبيل المثال إذا طلب منك إبجاد طريقة أو خوارزمية للبحث عن رقم ما في سلسلة من الأرقام يمكنك تقسيم المشكلة إلى مشاكل أصغر تحلها كالتالي: معرفة من أين أبدأ البحث (من بداية السلسلة أم نهايتها أم من الوسط). معرفة متى وكيف يتم إيقاف عملية البحث. تحديد كيفية مقارنة عنصرين من عناصر السلسلة لتحديد أيهما يأتي قبل العنصر الآخر. تحديد كيفية متابعة البحث عند عدم العثور على الرقم المطلوب. تمكّن من أساسيات البرمجة تأكد من الفهم الجيد لأساسيات البرمجة مثل المتغيرات وأنواع البيانات والتعليمات الشرطية والحلقات التكرارية والدوال وهياكل البيانات بالتوازي مع تطوير تفكيرك المنطقي فالبرمجة والمنطق يعززان بعضهما البعض فمن جهة يساعدك التفكير المنطقي على فهم تعليمات البرمجة ومن جهة أخرى تساعدك كتابة الأكواد البرمجية على تحسين منطقك والتفكير بالطريقة التي يفهمها الحاسوب. وتذكر أنك بدون إتقان المفاهيم الأساسية والتطبيق العملي لها من خلال حل العديد من أسئلة البرمجة وحل مشكلات رياضية بسيطة من البداية إلى النهاية بشكل منتظم فإنك لن تتمكن من تطوير تفكيرك وتعلم المفاهيم المتقدمة لاحقًا وعندما تكون عالقًا في مشكلة معينة لا مشكلة في البحث عن حلول لها على الإنترنت وفهم منطق عملها فهذا يحسن مهاراتك أيضًا. شارك في المسابقات والتحديات البرمجية شارك في المسابقات والتحديات البرمجية فهي تركز على تحديات منهجية ومتسلسلة في الصعوبة وغالبًا ما تكون مقيدة بوقت محدد لذا يساعدك حلها على تحسين وتسريع تفكيرك المنطقي. حتى لو لم تحقق نتائج عالية في هذه المسابقات ستكون التجربة مفيدة لك كما أن مناقشة حلول المشاركين الآخرين تفيدك في توسيع أفق تفكيرك. ادرس الشيفرات البرمجية للآخرين فكما ذكرنا سابقًا قد توجد أكثر من طريقة لحل مشكلة معينة لهذا قد يتبع كل مبرمج طريقة خاصة به لحل المشكلة والتعرف على وجهات نظر مختلفة يفيدك بكل تأكيد ويطور منطقك البرمجي، ستجد الكثير من الأكواد لمبرمجين خبراء في المجتمعات البرمجية ومستودعات المشاريع مفتوحة المصدر مثل GitHub. تعلم نماذج البرمجة وأنماط التصميم إن تعلم نماذج البرمجة مثل البرمجة كائنية التوجه OOP والبرمجة الوظيفية functional programming وأنماط التصميم البرمجي design patterns التي توفر حلول ونماذج للمشكلات البرمجية الشائعة فهي تساعدك في بناء حلول منطقية أكثر وضوحًا وتنظيمًا وأقل أخطاءً وتحسن مهاراتك البرمجية. عادة ما تدرس مادة الخوارزميات وحل المشكلات بما يتعلق بالتفكير المنطقي في بداية أي مسار يُعلم البرمجة تعليمًا صحيحًا، سواءً في الجامعات أو مسارات البرمجة الخاصة، فمثلًا في دورة علوم الحاسوب في أكاديمية حسوب ستتعرف على أهم الخوارزميات وطريقة كتابتها وتحليلها، وتتعرف على أهم بنى المعطيات وتتعلم أساسيات البرمجة وأنماط التصميم وتكتب الكثير من البرامج العملية التي تعزز تفكيرك المنطقي وتحسّن مستواك البرمجي بشكل كبير. نصائح إضافية لتحسين التفكير المنطقي إضافةً للطرق التي ذكرناها سابقًا، إليك قائمة من النصائح السريعة التي من شأنها كذلك أن تحسن مهاراتك وتفكيرك المنطقي وتعزز فهمك للبرمجة: احرص على القراءة فهي تغذي الدماغ وتعزز تفكيرك في الأمور. لا تكن عاطفيًا أو متحيزًا لوجهة نظرك وحاول أن تتفهم آراء الآخرين. اهتم بكل التفاصيل وحلل معنى الكلمات والجمل وافهم مدلولاتها الدقيقة. تعلم لغة جديدة فهذا من شأنه أن يقوي دماغك ويحفزه. مارس نشاطًا إبداعيًا تحبه كالرسم والكتابة. كن فضوليًا واطرح تساؤلات عن مواضيع تثير اهتمامك واستكشف إجاباتها فهذا يوسع أفق تفكيرك المنطقي. حل مشاكل جديدة كل يوم أو جرب طرقًا مختلفة لحل نفس المشكلة. طور علاقات هادفة مع أشخاص آخرين وتناقش معهم حول آراء مختلفة ووسع وجهة نظرك للأمور. تعلم التفكير النقدي من خلال تحليل الحقائق والأدلة بطريقة منطقية لفهم مشكلة أو موضوع ما بدقة. حافظ على هدوءك وتركيزك عند حل مشكلة ما، فالتوتر والاستعجال أكبر عدو للتفكير السليم. كن صبورًا ولا تستسلم بسرعة وضع أهدافًا واقعية لتحسين التفكير المنطقي وابذل جهدك لتحقيقها فتغيير السلوك أمر يستغرق وقتًا. الخلاصة تعرفنا في مقال اليوم على مفهوم التفكير المنطقي الذي يعد أحد المهارات الضرورية لأي مبرمج أو مطور برمجيات، والتي تمكنه من التعامل بكفاءة مع حل المشكلات البرمجية وجمع كل المعطيات الممكنة حولها وتحليلها وفهمها ووضع الحلول المناسبة لها أيًا كانت لغة البرمجة التي يستخدمها، وتعرفنا على مجموعة من الطرق والنصائح التي تساعد المبرمجين على تحسين تفكيرهم المنطقي وبرمجة التطبيقات بكفاءة ومرونة. وتذكر في الختام أن تركيزك على تعلم لغات البرمجة والأمور التقنية على أهميته لا يكفي لجعلك مبرمجًا جيدًا، لذا لا تهمل مهاراتك الناعمة ومن أهمها مهارات التفكير المنطقي والتواصل الفعال فهي سبيلك للتميز والحصول على فرصة العمل التي تطمح لها. اقرأ أيضًا مدخل إلى الخوارزميات المرجع الشامل إلى تعلم الخوارزميات كيف تتعلم البرمجة: نصائح وأدوات لرحلتك في عالم البرمجة برمجة الحاسوب للمبتدئين هل أنا حقا مبرمج؟ متى أسمي نفسي مبرمجًا لماذا يجب أن تعلم طفلك البرمجة؟
    1 نقطة
  19. لا شك أن مواقع الانترنت قد باتت شيئًا أساسيًا في حياتنا، سواء الغرض كان تجاريًا بحيث يعبّر عن عمل تجاري خاص بك، أو حتى موقع شخصي مخصص لإنشاء portfolio أو CV مدونة. في كل الحالات سواء التي ذكرناها أو أكتر، فوجود مواقع الانترنت صار مهمًا جدًا. وعلى هذا، سنتعرف أكثر في في الفيديو على الخطوات التي يفترض انتهاجها لبناء موقع إلكتروني متكامل من الصفر وذلك انطلاقًا من أنظمة إدارة المحتوى CMS. إذا أردت التعرف أكثر على كيفية بناء مواقع إنترنت من الصفر بواجهتيها، فننصحك بالانضمام إلى دورة تطوير واجهات المستخدم ودورة تطوير تطبيقات الويب باستخدام لغة PHP، ولا تنسَ الاستعانة خلال رحلة تعلمك وعملك بتوثيقات موسوعة حسوب المجانية. وإذا أردت متابعة المعلومات البرمجية العلمية مكتوبة فيمكنك الاطلاع على قسم البرمجة في أكاديمية حسوب، كما يمكنك متابعة جديد الفيديوهات التقنية المتاحة على يوتيوب أكاديمية حسوب مجانًا.
    1 نقطة
  20. بعد أن تحدثنا لماذا عليك أن تعلم ابنك البرمجة، لنتحدث عن الخطوات العملية والنصائح المناسبة لتعليم البرمجة للأطفال بطريقة مناسبة لعمرهم، وكيف نحببهم بالبرمجة والحواسيب ونجد المواد التعليمية المناسبة لهم. إذا أردت التعرف أكثر على مجال البرمجة ودعم تعلمك أو تعليم طفلك، فننصحك تعلم البرمجة بنفسك ومحاولة شرحها لابنك. يمكنك البدء مع دورة أساسيات علوم الحاسوب المقدمة من أكاديمية حسوب، ولا تنسَ الاستعانة خلال هذه الرحلة بتوثيقات موسوعة حسوب المجانية. وإذا أردت متابعة المعلومات البرمجية العلمية مكتوبة فيمكنك الاطلاع على قسم البرمجة في أكاديمية حسوب، كما يمكن متابعة جديد الفيديوهات التقنية المتاحة على يوتيوب أكاديمية حسوب مجانًا.
    1 نقطة
  21. البرمجة مهنة المستقبل بكل تأكيد، وأثر تعلم البرمجة على الأطفال يتجاوز التعامل مع الحاسوب بل ستحسن مهارة حل المشكلات عند طفلك، وتنمي الإبداع، وتصقل التفكير المنطقي، وتضعه على أفضل طريق لبناء مستقبله. سنتحدث في هذا الفيديو لم عليك تعليم البرمجة لطفلك. إذا أردت التعرف أكثر على مجال البرمجة ودعم تعلمك أو تعليم طفلك، فننصحك تعلم البرمجة بنفسك ومحاولة شرحها لابنك. يمكنك البدء مع دورة أساسيات علوم الحاسوب المقدمة من أكاديمية حسوب، ولا تنسَ الاستعانة خلال هذه الرحلة بتوثيقات موسوعة حسوب المجانية. وإذا أردت متابعة المعلومات البرمجية العلمية مكتوبة فيمكنك الاطلاع على قسم البرمجة في أكاديمية حسوب، كما يمكن متابعة جديد الفيديوهات التقنية المتاحة على يوتيوب أكاديمية حسوب مجانًا.
    1 نقطة
  22. يتساءل الكثير من المهتمين بدخول مجال البرمجة باستمرار حول متى يصلون إلى مرحلة يطلقون فيها على أنفسهم تسمية "مبرمجين"، أو متى يصبحون قاردين على العمل كمبرمجين، وما هو الفيصل بين وضعهم الحالي وخلال التعلم وبين المرحلة التي سيكونون فيها مبرمجين. يجيب الفيديو الآتي عن كل التساؤلات السابقة، ويوضح لك متى يكون بمقدورك نعت نفسك بالمبرمج: إذا أردت التعرف أكثر على مجال البرمجة، فننصحك بالانضمام إلى دورة علوم الحاسوب، ولا تنسَ الاستعانة خلال رحلة تعلمك وعملك بتوثيقات موسوعة حسوب المجانية. وإذا أردت متابعة المعلومات البرمجية العلمية مكتوبة فيمكنك الاطلاع على قسم البرمجة في أكاديمية حسوب، كما يمكنك متابعة جديد الفيديوهات التقنية المتاحة على يوتيوب أكاديمية حسوب مجانًا.
    1 نقطة
  23. تعرف البرمجة بأنها من الوظائف عالية المردود، لذلك نجد أن العديد من الأشخاص يتجهون إلى تعلم تخصصات البرمجة والعمل في أحد مجالاتها المختلفة رغبة منهم بالحصول على مهنة مرتفعة الدخل تضمن لهم مستقبلهم. وإذا كنت تتساءل ما هي أعلى تخصصات البرمجة مردودًا وما هي المسؤوليات المنوطة بكل تخصص في سوق العمل فأنت في المكان الصحيح حيث سنوضح لك في هذه المقالة أهم التخصصات البرمجية التي تحقق لك رواتب مجزية. ما هي أعلى تخصصات البرمجة أجرا؟ أظهر موقع Stack Overflow الشهير الذي يجمع خبرات آلاف المبرمجين لتبادل الأسئلة حول أي موضوع يتعلق بالبرمجة والتقنية، أن متوسط رواتب البرمجة قد ارتفع بنحو 23% بين عامي 2021 و2022 وقد اخترنا لكم اليوم من بين التخصصات الأعلى أجرًا وفق الاستبيان الذي أصدره الموقع نفسه نهاية عام 2022 عشرة تخصصات برمجية عالية المرود عالميًا. دعنا في الفقرات التالية نستكشف المزيد حول كل تخصص من هذه التخصصات، ونتعرف على متوسط أجره السنوي ونستعرض أهم الأعمال والمهام الوظيفية والتقنيات المنوطة بكل تخصص منها. 1. تخصص محترف أمن تكنولوجيا المعلومات Security professional محترف أمن تكنولوجيا المعلومات هو الشخص المسؤول بشكل أساسي عن حماية أجهزة الحاسوب والشبكات والبرامج والبيانات الخاصة بالشركة أو المؤسسة التي يعمل بها من الوصول غير المصرح به وحمايتها من التلف أو التخريب. يعتبر هذا التحصص أعلى تخصصات البرمجة أجرًا حيث يبلغ متوسط دخله السنوي في الولايات المتحدة الأمريكية 91 ألف دولار، ولا غرابة في ذلك فهو دور محوري ومهم ومطلوب منه أن يتعامل مع المعلومات الحساسة الخاصة بالشركات التجارية أو المستشفيات أو الدوائر الحكومية التي تخزن كميات كبيرة من البيانات والمعلومات على أنظمتها ويبقى متيقظًا دومًا للتعامل مع أي انتهاكات أمنية تطالها كي تظل آمنة. قد يضم المجال نفسه عدة تخصصات تشمل استكشاف أخطاء الشبكة وإصلاحها وإدارة جدار الحماية والاختراق الأخلاقي وإدارة النظام وتحليل أمن المعلومات …إلخ. ويحتاج العمل فيه لامتلاك مجموعة من المهارات أهمها خلفية قوية في مجال تكنولوجيا المعلومات أو علوم الحاسوب وتوفر مهارات التحليل والتفكير المنطقي، ومعرفة بمفاهيم الأمن السيبراني وآخر المستجدات في هذا المجال وفهم قواعد البيانات والشبكات والأنظمة، وخبرة في التعامل مع برامج مكافحة الفيروسات وجدران الحماية وبروكسي الويب إضافة لضرورة امتلاك معرفة كافية بقوانين وسياسات أمن المعلومات المعمول بها في بلده. 2. تخصص برمجة DevOps متخصص DevOps أو ما يعرف أحيانًا بمهندس DevOps وإذا كنت تتساءل عن معنى DevOps فهي دمج لكلمتين هما التطوير development والعمليات operations وقد ظهر هذا المفهوم لسد الفجوة الحاصلة بين تطوير البرامج وعمليات تكنولوجيا المعلومات فهو بمثابة غراء لاصق يربط كافة وظائف تكنولوجيا المعلومات مع بعضها البعض. ومتخصص DevOps هو شخص متخصص في تكنولوجيا المعلومات يعمل مع فريق مطوري البرمجيات وفريق مشغلي النظام والمسؤولين وموظفي عمليات تكنولوجيا المعلومات وغيرهم للإشراف على عمليات إصدارات الكود وضمان التعاون الفعال بينهم وإزالة العوائق التي تؤخر سير عملهم ويجعل عمليات تطوير البرمجيات أكثر كفاءة. يساوي أخصائي DevOps المحترف وزنه ذهبًا ويتقاضى راتبًا سنويًا مجزيًا يبلغ في الولايات المتحدة حوال 79 ألف دولار فهو يقدم فوائد جلية لأصحاب العمل من خلال جعل فرق التطوير وتقنية المعلومات تعمل معًا بشكل أفضل وتسريع إصدار تحديثات المنتجات وأتمتة جزء كبير من العمليات الداخلية وتوفير الكثير من الوقت على مهام أخرى. كي يقوم أخصائي DevOps بعمله على أكمل وجه عليه القيام بعدة أمور أهمها المهام الإدارية التي تحدد أوقات وأماكن وكيفية تنفيذ المشروع والتأكد من وضوح الأهداف والمواعيد النهائية للجميع وتصميم بنية تحتية تساعد على تسريع إصدار البرامج وإجراء اختبارات الأداء وتقييم جودة ووثوقية الأنظمة وأتمتة المهام المتكررة لجعلها تنفذ بوتيرة أسرع. ومن أهم المهارات التي يتوجب على متخصص DevOps امتلاكها هي المهارات الناعمة كالانضباط والتنظيم والتعامل مع الآخرين إضافة للمعرفة التقنية في هندسة البرمجيات أو علوم الحاسب فبالرغم من أن مهندسي DevOps لا يعملون بشكل مباشر على كتابة الأكواد البرمجية لتطوير المشاريع البرمجية، فهذه مهمة مطوري البرامج عادةً، إلا أنهم قد يحتاجون لكتابة أكواد برمجية لأتمتة المهام الرئيسية أو إنشاء مكونات إضافية تجعل أدوات التطوير والنشر تلبي احتياجات فرق العمل بشكل أفضل. ومن المفيد كذلك أن يتقن متخصص DevOps استخدام أي أدوات تساعده في أداء عمله وأهمها أدوات الأتمتة مثل Jenkins وأدوات التحكم بالإصدارات مثل Git ومستودعات استضافة الكود مثل Github و Bitbucket وبرامج الحاويات مثل Docker وأدوات إدارة المشاريع مثل أنا و تريللو للتحقق من تقدم أعضاء الفرق والتأكد من أن الجميع يعمل وفق المسار الصحيح. إن أردت التعرف على المجال أكثر، فارجع إلى مقال ما هو DevOps 3. تخصص محلل بيانات أو محلل أعمال Data or business analyst يتطلب كل من مجال تحليل البيانات أو تحليل الأعمال الفهم الدقيق لتحليلات البيانات ويفيد في هذا المجال استخدام تقنيات الذكاء الاصطناعي لتعزيز عملية اتخاذ القرارات، وهو من التخصصات المربحة التي يبلغ أجرها السنوي في الولايات المتحدة حوالي 69 ألف دولار ولكن قد تختلف المهام المطلوبة قليلًا بين المجالين. يحتاج محلل البيانات لامتلاك فهم قوي لكافة الأمور المتعلقة بعلوم البيانات، في حين يحتاج محلل الأعمال إلى التفاعل مع الأشخاص بصورة أكبر. فمحلل البيانات يعمل فقط مع البيانات ويستخدم العديد من الأدوات والتقنيات لجمع وتحليل البيانات وتحديد الضروري منها وإزالة كل ما هو خاطئ أو غير ضروري ثم معالجتها وإدارتها والتنبؤ بأي قرارات من شأنها مساعدة الأعمال على تحقيق أهدافها الاستراتيجية. أما محلل الأعمال فهو يعمل على حل المشكلات التنظيمية المختلفة وقد تختلف طبيعة عمله حسب احتياجات كل مؤسسة إلا أنه يكون مسؤولًا بشكل أساسي عن التحقق من متطلبات العمل وتحليل البيانات التجارية كالميزانيات ونتائج المبيعات وتقدير التكاليف والأرباح والتعاون مع فرق تكنولوجيا المعلومات لتنفيذ تغييرات معينة مثل تطوير منتج جديد أو التوسع في سوق جديد أو تحسين تجربة العملاء أو إحداث أنظمة جديدة لتكنولوجيا المعلومات بهدف تحسين العمل وحل مشاكله وزيادة أرباحه. كلا الاختصاصين ضروريان ومطلوبان بكثرة في المؤسسات المختلفة ومجالات العمل العديدة التي تولد يوميًا كمية هائلة من البيانات وتحتاج لإدارتها واستثمارها بأفضل طريقة، وهما يتطلبان وجود مجموعة مهارات أهمها معرفة قوية بالرياضيات والإحصاء والتحليل الرياضي وعلوم الحاسوب وبلغات البرمجة الإحصائية مثل Python أو R وبرامج الجداول الإلكترونية مثل Excel إضافة لمهارات جيدة أساسيات الذكاء الاصطناعي وقدرة جيدة على التواصل وإدارة المهمام. لمزيد من التفاصيل، ارجع إلى مقال الدليل الشامل إلى تحليل البيانات. دورة الذكاء الاصطناعي احترف برمجة الذكاء الاصطناعي AI وتحليل البيانات وتعلم كافة المعلومات التي تحتاجها لبناء نماذج ذكاء اصطناعي متخصصة. اشترك الآن 4. تخصص برمجة الواجهة الخلفية Back-end Development مطور الواجهة الخلفية هو المسؤول عن كتابة الكود البرمجي الذي يعمل من طرف الخادم والذي يعالج بيانات المواقع وينفذ كافة العمليات والإجراءات المطلوبة على مواقع الويب ويعمل على صيانتها وتحسين أمنها ويتعامل مع قواعد البيانات وواجهة برمجة التطبيقات API وغيرها من الوظائف الأخرى التي تجري خلف كواليس متصفحات المستخدمين عند تنفيذ أي إجراء على مواقع الويب. من أهم المهارات التقنية التي عليك تعلمها لتتمكن من العمل كمطور واجهة خلفية معرفة بأحد لغات برمجة الويب التي تعمل على الخادم مثل بايثون و PHP وروبي …إلخ. وكيفية التعامل مع قاعدة البيانات وواجهة برمجة التطبيقات API وإدارة ذاكرة التخزين المؤقت والتعامل مع الاستضافات إضافة لمعرفة أهم الأدوات وأطر العمل التي تساعده في عملية التطوير ومعرفة قواعد البرمجة التي تمكنه من بناء مواقع عالية الجودة ومكتوبة بكود نظيف. من المستحسن كذلك أن يكون لديه معرفة أساسية بتقنيات الواجهة الأمامية مثل HTML و CSS وجافا سكريبت، إضافة للمهارات الأخرى مثل التفكير التحليلي وحل المشكلات والتعاون الفعال ومهارات التواصل الشفوي والكتابة لأنه يحتاج عادة للتواصل مع مدراء المشاريع البرمجية ومطوري الواجهة الأمامية. 5. تخصص برمجة الواجهة الأمامية Front-end Development مطور الواجهة الأمامية هو المسؤول عن تطوير واجهة المستخدم UI أو الجزء الأمامي من مواقع وتطبيقات الويب وإنشاء عناصر التصميم التي يراها المستخدمون ويتفاعلون معها ويتأكد من أن مظهر وتخطيط الموقع مناسب على كافة المتصفحات وأنظمة التشغيل ومتجاوب مع كافة أحجام الشاشات وأنه سهل التصفح ويحسن من تجربة المستخدم. كما أن مطور الواجهة الأمامية قد يحترف بالتصميم أيضًا فهذا يكسبه ميزة إضافية في مجال العمل لأن مطور الواجهة الأمامية الذي يعرف كيف يصمم الموقع ويدرك نظريات التصميم ودلالات الألوان ويصمم واجهات احترافية ثم يبرمجها إلى مواقع ويب سيغني صاحب العمل عن تعيين مصمم أو الاعتماد على تصاميم جاهزة. كي تختص في مجال تطوير الواجهة الأمامية لمواقع الويب والتطبيقات عليك بداية تعلم لغات الويب التالية HTML و CSS و JavaScript التي تعمل معًا لتحديد شكل صفحات الويب وتسمح للمستخدمين بالوصول إلى الموقع والتفاعل معه. عند زيارة أحد مواقع الويب في حين يهتم مطور الواجهة الخلفية كما ذكرنا بتطوير كل ما يجري وراء الكواليس لموقع الويب هذا مثل تخزين البيانات أو الأمان أو أداء الموقع أو أي وظائف أخرى من جانب الخادم. كما أن امتلاكك للحس الفني وللمعرفة الأساسية في مبادئ تصميم واجهة المستخدم التي تحدد التخطيط الرسومي للتطبيق UI و تصميم تجربة المستخدم التي تحدد كيف يتفاعل المستخدم مع التطبيق UX واطلاعك على كل جديد في اتجاهات التصميم سيكون نقطة في صالحك. يعد تطوير الواجهة الأمامية هو أحد اختصاصات البرمجية مستمرة النمو والتي عليها طلب مرتفع في سوق العمل كما أنها توفر لك إمكانية العمل بشكل مستقل عن بعد وأنت مرتاح في منزلك ويبلغ متوسط الراتب الأساسي لمطور الواجهة الأمامية 60 ألف دولارًا كما يتوجب عليك تعلم أطر عمل هذه التقنيات وفهمها بشكل جيد لتطوير المواقع بشكل فعال واحترافي إضافة لبرامج التحكم في الإصدارات مثل GitHub التي تتعقب وتتحكم في التغييرات في الكود الخاص بك. 6. تخصص برمجة التطوير الشامل Full-stack Development التطوير الشامل Full Stack Development هو أحد مجالات البرمجة المطلوبة بكثرة في سوق العمل والتي تتطلب منك أن تكون محترفًا وخبيرًا في تطوير كل ما يتعلق بمواقع وتطبيقات الويب سواء الواجهة الأمامية من طرف العميل أو الواجهة الخلفية من طرف الخادم. توظف الشركات هذا النوع من المطورين إما ليكونوا مسؤولين عن تطوير المواقع من الألف إلى الياء لا سيما في المواقع البسيطة والمتوسطة أما في حال تطوير تطبيقات ويب كبيرة ومعقدة فتحتاج الشركات إلى تعيين مطوري واجهة أمامية وخلفية إضافة لمطور مكدس كامل بغرض الاستفادة من خبراتهم في تقديم الدعم والمساعدة لفريق تطوير الواجهة الخلفية وفريق تطوير الواجهة الأمامية على حد سواء وهم دائمًا متأهبون لتقديم المساعدة كلما دعت الحاجة كما يمكنهم العمل مع مصممي الجرافيك لتصميم ميزات جديدة للتطبيقات. مطور الويب الشامل شخص موهوب ولهذا يحظى براتب مرتفع يبلغ وسطيًا في الولايات المتحدة الأمريكية 66 ألف دولار سنويًا وهو يملك مهارات شاملة متنوعة في لغات البرمجة التي تعمل من طرف العميل مثل HTML و CSS وجافا سكربت أو التي تعمل على الخادم مثل مثل Python و Ruby و PHP ولديه معرفة جيدة في التعامل مع قواعد البيانات المختلفة مثل SQL و NoSQL والتعامل مع أنظمة التحكم في الإصدارات مثل Git وواجهات برمجة التطبيقات مثل REST إضافة لامتلاك مهارات في التصميم الجرافيكي وإدارة واجهات المستخدم UI UX. ولكونه شخص متعدد المهارات يحتاج للقيام بعدة مهام في وقت واحد لذا من الضروري أن يتمتع ببعض المهارات الشخصية مثل إدارة الوقت والقدرة على تحديد الأولويات لتسليم العمل ضمن الوقت المطلوب. أنشئ موقع احترافي لأعمالك وعزّز حضورك الرقمي صمم موقع إلكتروني فريد وجذاب لعملائك في دقائق دون خبرة برمجية باستخدام سنديان منشئ المواقع العربي أطلق موقعك الآن 7. تخصص برمجة العتاد أو التطبيقات المدمجة Embedded applications or devices Development مع تقدم التقنيات ونمو إنترنت الأشياء IoT ومساهمة البرمجة في كافة الأجهزة من حولنا كالساعات الذكية والألعاب والأجهزة الطبية وصولًا للروبوتات المختلفة، أصبح التخصص في مجال تصميم وتنفيذ برامج مخصصة لهذه الأجهزة المحددة والذي يؤدي غرضًا محددًا اسم تطوير التطبيقات المدمجة أو تطوير العتاد. هذا الاختصاص البرمجي تنافسي وعالي الأجر ضمن مجالات البرمجة فإذا كنت ترغب في العمل في تخصصات متقدمة مثل العلوم الطبية أو صناعة السيارات أو صناعة الإلكترونيات أو حتى علوم الفضاء فهذا الاختصاص يناسبك. لكنك تحتاج للعمل في هذا التخصص البرمجي إلى امتلاك مجموعة من المهارات أهمها تعلم إحدى لغات البرمجة المخصصة لتطوير العتاد مثل بايثون أو C أو C++‎ وفهم أنظمة الشرائح الإلكترونية والأجهزة المدمجة والإلكترونيات والأجهزة الطرفية والمترجمات ومعرفة جيدة بالأمن السيبراني للتأكد من أن البرامج والتطبيقات التي تطورها آمنة وموثوقة وتحتاج بالطبع لامتلاك مهارات في التواصل وحل المشكلات والقدرة على العمل ضمن فريق. كما يمكنك البدء في مجال برمجة العتاد بنفسك من خلال استخدام شرائح مثل أردوينو Arduino أو راسبيري باي Raspberry Pi فهي متوفرة في الأسواق ويمكنك من خلالها تعلم استخدام وتطوير الإلكترونيات والتحكم في الأشياء من حولك. 8. تطوير التطبيقات تجارية أو تطبيقات سطح المكتب Desktop or Enterprise Applications Development هذا التخصص البرمجي يهتم بتطوير البرامج التي تعمل على سطح المكتب وتكون مخصصة للعمل على نظام تشغيل ويندوز Windows أو ماك macOS أو لينكس Linux أو غيرها من أنظمة تشغيل سطح المكتب الأخرى. بمعنى آخر البرامج أو التطبيقات المخصصة للتثبيت والإعداد على أجهزة الحاسوب الشخصية وهي تتميز بوجود واجهة مستخدم رسومية ولا تحتاج للاتصال بالإنترنت كي تعمل ولا يخفى عليك هذا النوع من التطبيقات فأنت تستعملها يوميًا. كما يمكن تطوير تطبيقات سطح مكتب مخصصة تسمى في هذه الحالة تطبيقات الأعمال أو التطبيقات المؤسساتية enterprise applications وهي برامج تطورها الشركات لتحسين أعمالها وزيادة كفاءتها وإنتاجيتها مثل برامج المحاسبة وإدارة المخزون وبرامج إدارة رواتب الموظفين والموارد البشرية وغيرها من الوظائف المهمة لتسيير عمل المؤسسة وإدارة مواردها. كان الاعتماد على تطبيقات سطح المكتب بصورة أكبر قبل أن تشتهر تطبيقات الويب التي تكون مثبتة على خادم بعيد نصل إليه عبر متصفحاتنا إلا أن تطبيقات سطح المكتب لم تفقد زهوتها ولا زالت أجهزة حواسيبنا ممتلئة بهذه التطبيقات التي نعتمد عليها لأداء العديد من المهام ولا زال تخصص تطوير سطح المكتب مطلوبًا لاسيما للتطبيقات التي تتطلب سرعة في التنفيذ ودرجة أمان عالية ولا تتطلب الاتصال بالإنترنت وهو تخصص مجزٍ ومطلوب في سوق العمل ويبلغ متوسط راتب مطور هذه التطبيقات في الولايات المتحدة حوالي 67 ألف دولار سنويًا. كي تتخصص في مجال تطوير وبرمجة تطبيقات سطح المكتب عليك تعلم إحدى لغات البرمجة المخصصة وأبرزها جافا وبايثون و C و C++‎ و C#‎ و Java و Go …إلخ. كما يفيدك في هذا التخصص تعلم أحد أطر عمل تطوير تطبيقات سطح المكتب مثل Electron و WPF. 9. تخصص برمجة الألعاب Game Development تعد برمجة ألعاب الفيديو إحدى تخصصات البرمجة المربحة والمميزة والتي تشهد ازدهارًا كبيرًا في الآونة الأخيرة وهي تخصص يجمع بين مهارات البرمجة ومهارات تصميم الرسوميات ويصل متوسط راتبها في الولايات المتحدة إلى 63 ألف دولار سنويًا فمبرمج الألعاب هو مسؤول عن عدة أمور متقدمة من بينها تصميم كافة العناصر المرئية للألعاب كالنار والجليد والأشجار بحرفية عالية ثم البدء ببرمجتها من خلال دمج كافة العناصر المرئية والصوتية وتحويلها إلى منتج نهائي قابل للعب. للتخصص في تصميم الألعاب والرسومات تحتاج إلى معرفة جيدة بالرياضيات واستراتيجيات اللعب ورواية القصص وبإحدى لغات البرمجة المخصصة لتطوير الألعاب مثل بايثون أو جافا أو C++‎ ومعرفة منصات ومحركات الألعاب الاحترافية مثل Unity 3D و Unreal Engine/ إضافةً لمعرفة أدوات إنشاء الرسومات ثنائية الأبعاد وثلاثية الأبعاد مثل Maya و Blender و3D Max وأدوات الصوت التي تمكنك من إنشاء مؤثرات صوتية مثل Pro Tools كما تحتاج لمعرفة بالذكاء الاصطناعي في حال كنت تريد تطوير ألعاب تتضمن شخصيات ذكية تحاكي شخصيات العالم الحقيقة وقادرة على إظهار المشاعر المناسبة واكتشاف العناصر من حولها واتخاذ القرارات بشأنها من خلال التعلم الآلي. 10.تخصص برمجة تطبيقات الجوال يعد تطوير تطبيقات الهاتف المحمول أحد تخصصات البرمجة المطلوبة والرائجة في سوق العمل نظرًا للاعتماد الكبيرة على استخدام الجوالات لتسيير الأعمال اليومية كالتعلم والتسوق ودفع الفواتير …إلخ، ويصل متوسط راتبها في الولايات المتحدة إلى 56 ألف دولار سنويًا. الجدير بالذكر أن تخصصك في هذا المجال يمكنك من إنشاء تطبيقات تعمل على الهواتف الذكية والأجهزة المحمولة الأخرى وتفتح لك باب العمل ضمن شركة أو بشكل مستقل. وكي تتمكن من تعلمه عليك تعلم أساسيات علوم الحاسوب وامتلاك معرفة جيدة بلغات البرمجة المخصصة لتطبيقات الجوال مثل بايثون وجافا و كوتلن والتعامل مع أنظمة التشغيل لمختلف أنواع الأجهزة مثل iOS وأندرويد ومعرفة كيفية تخزين البيانات على الجوال وكيفية تحديثها وحذفها ومعالجتها. ويمكن أن يمتلك مطور الأجهزة المحمولة معرفة أساسية بتصميم واجهات المستخدم UX و UI أو يعتمد على مصممين متخصصين في تصميم واجهة المستخدم ومصممي UX ومصممي الجرافيك لتصميم التطبيقات التي يحتاج إلى تطويرها. الخلاصة تعرفنا في مقال اليوم على أفضل لغات البرمجة وأكثر تخصصات البرمجة المربحة التي تدر مبالغ طائلة للمتخصصين فيها وتوفر لهم مستقبلًا آمنًا ماليًا، وتعرفنا على أهم المهارات التي عليك تعلمها لتتقن كل تخصص من هذه التخصصات وتضمن مستقبلًا مهنيًا ناجحًا ومهنة مميزة ومرموقة تحقق لك أحلامك، وإذا كنت مهتمًا بمعرفة المزيد من التخصصات البرمجية التي يمكنك العمل بها ومعرفة أهم تقنياتها أنصحك بمطالعة مقال مجالات البرمجة. ما هو التخصص المفضل لك من بين هذه التخصصات وهل بدأته بتعلمه فعلًا؟ شاركنا رأيك في التعليقات أسفل المقال. اقرأ أيضًا تعلم البرمجة برمجة تطبيقات الجوال أسهل لغات البرمجة دليلك الشامل إلى برمجة التطبيقات
    1 نقطة
×
×
  • أضف...