مقالة توضح الفرق بين المبرمج و المطور

هذه المقالة توضح الفرق بين المبرمج و المطور.

البرمجة و تطوير البرمجيات

 

مقدمة :

المقالة التالية هي لتوضيح الفرق بين البرمجة و تطوير البرمجيات  أو ( الفرق بين المبرمج و المطور )

و على الرغم من أن الأمثلة المكتوبة في هذه المقالة ستكون بلغة السي شارب C#   , إلا أنها لا تستند على أية لغة برمجية محددة , و إنه بإمكانك

و بسهولة تطبيقها على مختلف لغات البرمجة . C++  أو PHP أو python أو visual Basic

منذ زمن ليس ببعيد و حتى تاريخ اللحظة ما زالت شركة مايكروسوفت و شركة غوغل تشير إلى من يقوم بكاتبة الكود بـ “مطور البرمجيات” Software Developer , و ليس Programmer , لكن هذا لا يعني أن مصطلح “مبرمج” قد انتهى ! , فهناك عدة فروقات هامة بين المصطلحين “المبرمج” و “المطور” و لا يمكن تجاهلها أبداً .

التعريف المختصر :

البرمجة : هي بناء تطبيقات أو برامج بغرض تنفيذ عمل أو مهمة معينة ( أدوات ) .

تطوير البرمجيات : هي بناء تطبيقات , سهلة الاستخدام , يمكن للمستخدم استخدامها , و قابلة للتعديل و التغيير ( برامج مصممة بشكل جيد ) .

و أحب أن أنهي هذه المقدمة بالقول أننا جميعا ( كمبرمجين أو مطورين ) مقصرين في حق الميزات التي نمتلكها و من عدة نواحي , و هذا التقصير ليس دافع للاستسلام بقدر ما هو محفز للتركيز على هذه النواحي و تلافي التقصير فيها .

التفاصيل الفرق بين المبرمج و المطور 

منذ عدة سنوات و أنا على تواصل شبه دائم مع الكثير من المبرمجين و المطورين ( الخبراء و غير الخبراء ) و قد اطلعت على الكثير من التطبيقات

و درست كم هائل من الأكواد المنتشرة على مواقع الإنترنت، و كانت هناك ملامح و سمات تحدد خصائص كلاً منهم , و لقد تبين لي ما يلي :

المبرمج : Programmer

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

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

خصائص تطبيقاته :

– كود احترافي يعمل بشكل ممتاز و غالبا بدون أخطاء , ( لكن من الصعب فهمه أو صيانته إلا من قبله و لمدة محدودة .)

– أغلب أكواده من نوع “المعكرونة”spaghetti code

– أغلب العناصر بأسمائها الافتراضية Button1 Button2 , Form1 …

– لا يوجد ترتيب لعناصر النافذة , ولا ترتيب لمفاتيح الانتقال فيما بينها (Tab Index)

– لا يوجد معالجة للأخطاء التي قد تحصل أثناء تنفيذ الكود – Exception handling .

– لا يوجد أي تخطيط لإمكانية إعادة استعمال هذا الكود من قبل مبرمج أو مطور آخر أو حتى من قبله هو .

– الكود بدون شرح أو تعليقات .

المطور :  Developer

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

خصائص تطبيقاته

– شرح الكود أطول أو يساوي طول الكود نفسه .

– الكود مرتب و منسق .

– لن تجد عنصر واحد بتسميته الافتراضية .

– كافة الأخطاء معالجة و قد يتم تسجيلها في سجل للأخطاء (log file)  .

– يكتب الكود و كأن المستخدم سوف يقرأه .

– اهتمامه بواجهات البرنامج أكثر من اهتمامه بطريقة عمل البرنامج .

 

و اختصارا :
المبرمج : يكتب خوارزميات معقدة و يستطيع فهم أكواد معقدة , ولا يعطي أي اهتمام للمستخدم , و يكتب المكتبات ليستخدمها الآخرون .

المطور : يكون أكبر اهتمامه بواجهات التطبيق و نظرة المستخدم إلى تطبيقه , و هو مستعد لاستخدام كل المكتبات المتوفرة لديه .

الأمثلة البرمجية :

و الآن سنطلب من المبرمج و المطور صنع نفس تطبيق واحد لنا و لنلاحظ الفرق معاً , سيكون البرنامج بسيط جداً و سيكون نص الطلب كالتالي :

  • أكتب تطبيق لجمع عددين و إظهار النتيجة ؟

أولا دور المبرمج :

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

الفرق بين المبرمج و المطور
الفرق بين المبرمج و المطور

 

الآن سنقوم بتحليل ما صنعه المبرمج , نلاحظ في الصورة :

اسم النافذة افتراضي Form1

العناصر غير مرتبة .

رمز التطبيق هو رمز التطبيقات الافتراضية في Visual Studio  .

بإمكانك تغيير النتيجة  بشكل يدوي  .

إذا قمت بإدخال محرف بدل رقم فإن البرنامج سيظهر خطأ  .

و في الحقيقة البرنامج يعمل تماما كما تم طلبه من المبرمج , إنه يجمع عددين و يعطيك النتيجة !

و الآن لنلقي نظرة على نفس التطبيق الذي قام بصناعته مطور البرمجيات :

الفرق بين المبرمج و المطور
صورة لمقال : الفرق بين المبرمج و المطور

 

لنقم بتحليل الصورة معاً :

العناصر مرتبة .

لا يمكنك تغيير النتيجة يدويا .

بإمكانك اختيار العملية جمع أو طرح أو قسمة .

بإمكان المستخدم ضغط زر Enter  للحصول على النتيجة . ( بدل استخدام الفأرة )

يوجد شرح بسيط عما يجب أن يفعله المستخدم .

و تم وضع رمز خاص بالبرنامج .

و الآن لنقم بقراءة الأكواد التي كتبها كلاً من المبرمج و المطور :

أولا كود المبرمج :

pro-code

و نلاحظ :
التسميات الافتراضية .

ليس هناك معالجة للأخطاء .

ليس هناك شرح للكود .

ثانيا كود المطور :

dev-code
و الآن إلى التحليل:
يوجد شرح للكود .

الأخطاء تمت معالجتها .

ليس هناك تسميات افتراضية

تم فصل الكود عن الواجهة و ذلك ببناء Class خاص للعمليات الحسابية ,SimpleMath  ( الكود الخاص بالكلاس في آخر المقالة ) و أصبح بالإمكان استخدام هذا ال Class في برامج و تطبيقات أخرى .

بالتأكيد كود المطور أطول بكثير من كود المبرمج , و لكنه أسهل للقراءة و التطوير و بالإمكان الاستفادة منه للبرامج المستقبلية , و ملاحظة هامة جداً عندما استخدم المطور Class  من  أجل العمليات الحسابية , فإنه قام بفصل الواجهة عن الكود , و هذا أمر مهم جدا في التطبيقات و خصوصا الكبيرة و تسمى اصطلاحا n-tier applications .

بالنسبة للمطور ( يأخذ وقته في كتابة الكود , لكسب الوقت فيما بعد )

كيف تحقق أفضل المعايير في البرمجة و تطوير البرمجيات :

أولاً :

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

ثانياً :

لا تعقد الأشياء أثناء كتابة الكود و إذا شعرت أن هناك شيئاً ما قد يسبب مشكلة في المستقبل , إبدا بحلها فورا , لأنها قد تسبب تراكم مشكلات و تغييرات كثيرة في الكود فيما بعد .

ثالثا :

يجب تبسيط الخوارزميات المعقدة , لا تضمنها ضمن مشروعك مباشرة , بل أنشئ مشروع جديد , و ابني الخوارزمية على شكل Class و ادرسها و عندما تنجح و تفهم عملها انقل الـ Class  إلى مشروعك . على مبدأ Keep it Simple

رابعاً :

راجع الكود بشكل مستمر , و احذف التوابع و المتحولات الغير ضرورية , و حاول ان تكتب شرح مبسط .

خامسا :

جرب البرنامج أكثر من مرة , جربه أنت أو دع شخصاً آخر يجربه لك , و يفضل شخص آخر لأنه لن يتبع نفس القواعد التي تتبعها أنت !

سادساً :

لا تكثر من Try Catch في المشروع , إذا كان لدي متحول يقبل قيمة عددية فقط , فقم بتقييد المستخدم بادخال قيمة عددية فقط !

سابعا :
            لست مجبرا على الاعتماد على أي ميزة حديثة , تقدمها لك لغة البرمجة , الميزات الحديثة قد تحتوي على أخطاء .

الخلاصة :

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


-تم الإعتماد على مصادر أجنبية و عربية –

المقال الفرق بين المبرمج و المطور  من  smart-arab.com

الفرق بين المبرمج و المطور

Comments

  1. سلام عليكم ورحمه الله
    عندي سؤال لو أمكن
    عند الرغبه ادرس برمجه أو مطور
    أيهما أفضل للمستقبل والأسهل
    جزاك الله خير

  2. السلام عليكم جزاكم الله خيرا علي هذه المقال?
    مطور برنامج
    ماذا علي ان افعل واود ان اصبح

  3. شكرا لحضرتك على المقالة الجامدة دى ……افدتنى ومتاكد انك من اعظم المبرمجين لانك ببساطة صمتت اداة تنصيب
    dotnetframework 2+3+3.1

    كثير من المواقع الاجنبية لم تستطع ذلك ! رغم شهرتها الكبيرة جداجدا
    ———-
    اود ان اسال اذا ارادت ان اتعلم البرمجة ماذا على ان افعل وكيف ابدا
    اتمنى اتمنى منك كتابة مقالات للمبتدئين فى مجال البرمجيات
    ————–
    اتمنى لك التوفيق من كل قلبى …تحياتى من مصر

    1. شكرا لك لقراءة المقالة ، و أنا سعيد جداً لأنها أعجبتك

      أستاذي الفاضل ، أسهل وسيلة لتعلم أي شيءهي مشاهدة الفيديوهات التعليمية الخاصة بذلك و بعد إكتساب الخبرة من هذه الفيديوهات

      تتجه إلى الكتب المتقدمة و الإحترافية

      لكن أفضل أن تتقن اللغة الإنكليزية أولاً و بشكل جيد لأنها أساس و مفتاح الإحتراف في مجال البرمجة.

      إبدأ بأحد كورسات شركة ليندا
      Lynda.com
      تحياتي

  4. شكراً للمقالة الرائعة اللي وضحت كتير شغلات بالنسبة الي بخصوص المطور والمبرمج والفرق بينهم :)
    وبالتوفيق الدائم :D

Leave a Reply

Your email address will not be published.