الترميز «Coding» والبرمجة «Programming»، ما الفرق بينهما؟

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

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

في الأقسام التالية سنوضح هذا الفرق بين المصطلحات، ستتعلم معنى كل من الترميز “Coding” والبرمجة “Programming” والفرق بينهما.

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

إذا كان يبدو هذا وكأنه عمل كبير، فهو حقاً كذلك! خصوصاً في استيديوهات صغيرة حيثما يقوم أفراد معينين أحياناً بتنفيذ مثل هذه المهام. فمعرفة الفرق بين مصطلحي الترميز “Coding” والبرمجة Programming” يمكن أن يساعدك في تعلم كيفية كتابة تعليمات برمجية إضافة لبناء المهارات المطلوبة لتحمل المزيد من المسؤولية.

ما الفرق بين الترميز “Coding” والبرمجة “Programming”؟

يمكن أن تلحظ تبديل بين مصلحي الترميز “Coding” والبرمجة “Programming” عند استخدامهم من قبل أشخاص قليلي الخبرة، لأن المهام التي تتعلق بهم يمكن أن تبدو متشابهة، لكن الفرق بين هذه المصطلحات حقاً مطلق وسهل التلخيص، الترميز “Coding” يشير إلى كتابة تعليمات برمجية أو اللغة التقنية على وجه التحديد، ولكي تُفهَم هذه التعليمات من قبل الحاسوب أو النظام، يتم إعطاء المعاملات للمرمزين وعليهم بناء عملهم وفقاً لها.

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

ما هو الترميز “Coding”؟

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

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

ما هي البرمجة “Programming”؟

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

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

الترميز “Coding” والبرمجة “Programming”، أيّهما أسهل في التعلم؟

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

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

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

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

  • ترجمة: محمد علي
  • تدقيق علمي ولغوي: حسام عبدالله
  • المصادر: 1