البرمجة ما هي ؟ وكيف تسيطر على كافة نواحي حياتنا

تعلم, مواقع الكترونية

إذا لم تكن قد تعلمت البرمجة من قبل فلا بد أن لديك الكثير من الأسئلة حولها ما هي؟ أين نستخدمها؟ ولماذ؟ ما أهم لغاتها ومصادر تعلمها كيف تسيطر على حياتنا

إذا لم تكن قد تعلمتَ البرمجة من قبل فلا بد أنك تسأل عن ماهية البرمجة، الكثير منا يصل إلى المرحلة الجامعية ليتفاجأ بمادةٍ جديدة اسمها البرمجة، لم يسبق له من قبل التعرف عليها أو التعامل معها في المراحل السابقة.

إذاً ما هي البرمجة؟

أين نستخدمها؟

كيف تسيطر على كافة نواحي حياتنا؟

ما هي لغاتها؟

لمَ علينا تعلمها؟ أهم مصادر تعلمها؟

في مقالنا هذا سترافقنا في رحلة ممتعة حول البرمجة تجيب على جميع تساؤلاتك.

البرمجة ما هي؟

هي عملية إنشاء أو كتابة مجموعة من التعليمات التي تخبر الكمبيوتر بكيفية تنفيذ مهمة ما، إننا عندما نكتب برنامجاً فإننا نعطي الكمبيوتر سلسلةً من الأوامر التي تبدو وكأنها شكل غريب من اللغة الانكليزية والكمبيوتر بدوره يستمع إلى أوامرك وينفذ كل ما تطلبه منه.

إذاً ما هو الشيء المثير حول البرمجة؟

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

لغات البرمجة:

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

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

في مقالنا هذا سنحاول الإضاءة على أكثر لغات البرمجة استخداماً في السوق ومجال الأعمال:

  1. جافا  Java : هي واحدة من أقدم لغات البرمجة، منذ بداية Java تطورت البرمجة بشكل كبير، ولا يزال يتم استخدامها على نطاق واسع من قبل شركات تطوير البرمجيات المتخصصة، وعلى عكس الاعتقاد أن هذه اللغة غالباً ما تستخدم في مجال تكنولوجيا المعلومات فإنها أيضاً تستخدم في مجال الأعمال، فالعديد من مميزات Java تجعل منها مناسبة جداً ومفيدة في مجال الأعمال، كقابلية النقل والتوسع وكونها تتميز بالكفاءة والأمان والتوافق مع ال Android .
  1. بايثون  Python : تستمر البايثون في تصدر قوائم لغات البرمجة الأكثر استخداماً وشعبية حتى هذا العام، حيث تقدم بايثون مجموعة كبيرة ومتنوعة من المكتبات مفتوحة المصدر لعلوم البيانات والتعرف على الصور وغيرها الكثير، يتم استخدامها على نطاق واسع في تطبيقات الويب مثل Youtube وInstagram ومن بين الأسباب التي تجعل بايثون مفيدة في مهام عملك أنها مجانية الاستخدام، سهلة الاستخدام، بالإضافة إلى قابلية التوسع التي تتميز بها، والتواصل الفعال مع اللغات والأنظمة الأساسية الأخرى.
  1. جافا سكربت  Javascript : حيثما توجد Java بالتأكيد سيكون هناك أيضاً Javascript، ما يميز Javascript عن لغات البرمجة الأخرى هو أنها لغة الواجهة الأمامية، حيث يتم استخدامها في الأغلب لبناء تطبيقات تفاعلية أمامية. الشيء الذي يجعلها مفيدة في مجال الأعمال هو فعالية تشغيلها من جهة الخادم ومن جهة العميل، يمكن استخدامها لإنشاء محتوى صفحة الويب قبل نقله فعلياً إلى متصفح الويب، تعد سرعتها وضبطها العالي، وإطاراتها أحد أكثر مميزاتها.
  1. سي/سي بلس بلس  ++C/C : هي لغة للأغراض العامة وواحدة من لغات البرمجة الكلاسيكية، تستخدم هذه اللغة في العديد من المجالات المختلفة مثل أنظمة التشغيل وأنظمة إدارة قواعد البيانات والتطبيقات الطبية وغيرها الكثير، لكنها تستخدم في الغالب في برمجة الأنظمة والأنظمة المدمجة، ما يجعل ++C مفيدة للأعمال هو قابليتها للنقل حيث يمكن استخدامها في جميع أنظمة التشغيل دون أخطاء.
  1. جو  Go programming language : هي أحدث لغة برمجة مفتوحة المصدر، من أهم مميزاتها البساطة وقابلية التطوير، وميزة الاختبارات المضمنة التي تتيح للمطورين إجراء مئات الاختبارات الآلية شهرياً.
  1. بي اتش بي php : هي لغة برمجة سهلة الاستخدام من جانب الخادم ومفتوحة المصدر وواحدة من اللغات الرائدة المستخدمة في تطوير الويب، هناك العديد من الأسباب التي تجعل المطورين والشركات  يختارون php لحلول تكنولوجيا المعلومات منها مرونة هذه اللغة حيث يمكن استخدامها في العديد من الأنظمة الأساسية مثل Microsoft و UNIX و Linux وغيرها، تدعم هذه اللغة جميع الخوادم وقواعد البيانات تقريباً.
  1. سويفت  Swift : هي واحدة من أحدث لغات البرمجة، تم إنشاؤها بواسطة Apple، وهي لغة سريعة وتفاعلية ومفتوحة المصدر، يتم استخدامها في الغالب لتطوير تطبيقات لنظام Apple .
  1. سي شارب  #C : تعتبر مزيجاً من ++C و C وهي مشابهة تماماً للغات البرمجة مثل Java و C و Java Script على الرغم من أنه تم إنشاؤها في الغالب للتنافس مع Java، تستخدم في الغالب لتطوير التطبيقات والألعاب لأجهزة سطح المكتب، سهلة التعلم، متعددة الاستخدامات، حيث يمكنك فعل أي شيء تقريباً باستخدام #C بدءاً من تطبيقات الجوال وتطبيقات الويب وتطبيقات سطح المكتب وغيرها.
  1. روبي  Ruby :هي لغة مفتوحة المصدر يتم استخدامها في الغالب لتطوير الخلفية.

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

ما هي أهم مجالات العمل في البرمجة؟

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

مطور ألعاب فيديو  Video Game Developer:

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

مصمم تجربة المستخدم  User Experience Designer:

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

محلل ضمان المعلومات  Information Assurance Analyst:

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

مطور تطبيقات الجوال  Mobile Application Developer:

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

مدير ضمان جودة البرمجيات  Software Quality Assurance Manager:

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

عالم البيانات  Data Scientist:

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

مطور قواعد البيانات Database Developer:

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

مهندس تعلم الآلة  Machine Learning Engineer:

مهندس تعلم الآلة هو مبرمج كمبيوتر تتمثل وظيفته في إنشاء برامج تمكن الآلات من اتخاذ الإجراءات دون أن يتم توجيهها لأداء المهام.

بالإضافة إلى العديد من المجالات كمطور تطبيقات الويب وغيرها.

لماذا عليك أن تتعلم البرمجة؟

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

  1. تضمن لك الحصول على وظيفة: نحن نعيش في عصر التكنولوجيا، والنمو التكنولوجي في تطور مستمر، ومع تزايد استخدام الأجهزة التكنولوجية كل عام، سيكون هناك دائماً طلب كبير على المبرمجين.
  1. لا حاجة لدراسة أربع أو خمس سنوات: في حين أن أحد الطرق لتصبح مبرمجاً هو الحصول على درجة علمية في علوم الكمبيوتر، فإن بإمكانك أن تصبح مبرمجاً بدون شهادة، فالعديد من وظائف البرمجة لا تتطلب درجة علمية في علوم الكمبيوتر أو تكنولوجيا المعلومات أو هندسة البرمجيات، بدلاً من ذلك فهم مهتمون بقدراتك ومهاراتك على كتابة البرامج ال ( code ) ، وهذا يعني أنه على الرغم من أن الدرجة العلمية ستكون مفيدة وتفتح لك أبواباً عديدة، ولكنها ليست ضرورية، وبالطبع اذا كانت سيرتك الذاتية تحتوي على برامج وشهادات ذات صلة، فإن ذلك إلى جانب مهارتك وخبرتك سيترك انطباعاً جيداً.
  1. العمل من المنزل: نظراً لأن الوظيفة لا تتطلب سوى جهاز كمبيوتر متصل بالانترنت، فغالباً ما يتاح للمبرمجين فرصة العمل عن بعد ومع ذلك فإن هذا يعتمد على سياسة الشركة، لكن الكثير من الشركات يكون لديها هذا الخيار، وبالطبع إذا كنت تعمل كمستقل، فسيتم إنجاز عملك دائماً عن بعد.
  1. يمكنك إنشاء أي شيء تريده: تمنحك برمجة الكمبيوتر، ليس كأي مهنة أو وظيفة أخرى، الفرصة لبرمجة أفكارك وجعلها حقيقة أمام عينيك، قد تكون فكرتك مثلاً إنشاء تطبيق ما والترويج له وطرحه في السوق، إنشاء التطبيق ليس بالأمر السهل، فعليك أن تدفع للمطور لتنفيذ خططك وأفكارك، بينما في حال كونك مبرمجاً ستوفر أموالك وستتمكن من تطوير التطبيق بالطريقة التي تريدها بالضبط، ولنكن صادقين، فإنه لا يمكن لأحد تنفيذ فكرتك بالطريقة التي تريدها بالضبط.
  1. ارتفاع الدخل: قد يكون المال هو الدافع في معظم الوظائف، ولا يختلف الوضع كثيراً في مجال البرمجة، إن معظم الوظائف التي يمكنك الحصول عليها في مجال البرمجة تعد رواتبها أعلى من المتوسط، وبالطبع الراتب يعتمد على الحالة ونوع الوظيفة، متوسط الراتب لمبرمج الكمبيوتر هو 84.280 $ سنوياً بينما متوسط راتب المطور هو 103.620$ سنوياً.
  1. تفهم كيف يعمل البرنامج:  عندما تقوم باستخدام الكمبيوتر فإنك تتفاعل معه باستخدام الفأرة ولوحة المفاتيح لكننا لا نتوقف حقاً ونفكر في البرنامج الذي يعمل في الخلفية، ستجعلك البرمجة على دراية بالبرامج والأجهزة والمواقع الالكترونية وستساعدك على فهمها.
  1. تعلّمك المثابرة: إن برمجة الكمبيوتر تعلّمك أن ترى المشاكل في ضوء الحلول، وأن لكل مشكلة حل، فعند كل مشكلة تواجهها ستبدأ في تبادل الأفكار حول كيفية حلها، النتائج المثمرة التي تأتي من العصف الذهني وحل المشكلات ستمنحك نظرة إيجابية، وتقويك للتعامل مع المشكلة مهما كانت صعبة، وتصبح مصمماً على إيجاد طريقة للوصول إلى حل.
  1. تستطيع أن تفتح عملك الخاص:  العمل لحسابك الشخصي هو المسار الذي اختاره العديد من المبرمجين في النهاية، فإن معرفة البرمجة تتيح لك فتح مشروع تجاري خاص بك، قد يكون هذا المشروع متجراً عبر الانترنت، شركة تصميم مواقع الويب الخاصة بك، إنشاء تطبيقات الهواتف المحمولة، تقديم دورات حول البرمجة ودروس خصوصية، وغير ذلك الكثير، الفرص لا حصر لها، وإن الطلب على هذه الأنواع من الأعمال مرتفع جداً.

مصادر مجانية ينصح بها للدخول في عالم البرمجة:

  1. Codecademy:

يعد أحد أكبر المصادر وأكثرها شيوعاً للأشخاص الذين يتطلعون إلى البدء في البرمجة من ال HTML إلى Java وغيرها، يمنح Codecademy أي شخص يرغب في تعلم ال coding ( كتابة البرامج) الأساسيات التي يحتاجها، ومع وجود قاعدة كبيرة من مستخدمي هذا الموقع سيتمتع الطلاب بالكثير من الفوائد والمراجع من مبرمجين ومطورين أكثر تقدماً يساعدونهم في الإجابة عن أسئلتهم ومشاكلهم المستعصية.

  1. Codewars:

يضفي روحاً مرحة وتنافسية الى تعلم البرمجة

  1. freeCodeCamp:

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

  1.  Khan  Academy: 

تعتبر مصدر مجاني ممتاز لأي شخص يريد للدخول في عالم ال coding والبدء من الأساسيات.

  1. MIT OpenCourseware:

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

  1. The Odin Project:

مشروع odin هو طريقة تعاونية مفتوحة المصدر للعديد من المتعلمين الذين يعملون على نفس الأهداف، يستخدم التجربة والخطأ لتعليم أساسيات اللغات مثل JavaScript, Ruby, HTML5,CSS3 وغيرها.

  1. Coursera:

تمنح المستخدمين دورات معتمدة يدرسها أساتذة معتمدون، الأساتذة من جميع أنحاء الولايات المتحدة الأمريكية بما في ذلك جامعة كاليفورنيا، الدورات مجانية، لكن في حال كنت ترغب في الحصول على الشهادة فعليك الدفع بين الـ 30$ إلى الـ 100$ وذلك حسب الدورة.

  1. Udacity: 

هي منظمة ربحية، لكنها تقدم العديد من الدورات المجانية التي حتماً ستجدها مفيدة.

بالإضافة إلى العديد والعديد من المصادر المجانية مثل Udemy, edX, w3school وغير المجانية التي لا حصر لها.

في حال كنت تفضل مقاطع الفيديو فإن Yotube هو أداة رائعة أخرى، نتصحك بالاطلاع على    LearnCode.academy و thenewboston و قناة DigitalCrafts.

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

فإنه وعلى حد تعبير رائد عصر الكمبيوتر ستيف جوبز: “يجب أن يتعلم كل شخص كيفية برمجة جهاز كمبيوتر، ويجب أن يتعلم لغة الكمبيوتر، لأنّه يعلمك كيفية التفكير”.