المقدمة :
قرأت قبل يوم أو يومين مقالة مكتوبة بواسطة مبرمج لديه خبرة عملية 20 عام وهو من السويد، وهو يتكلم عن لماذا يُحب البرمجة، وطبعاً في وطننا العربي لا يوجد كثيرون يصلون لهذا المدى من الخبرة العملية من البرمجة ولايزالون يُمارسون هذه المهنة أو الصنعه إن صح التعبير، حيث أن في الدول النامية يترقى المبرمج بعد مرور عدد قليل من السنين، مثلاً سنتين إلى خمس سنين، فيصبح مدير. ليس بسبب نجاحه في البرمجة، بل بسبب قلة عدد المدراء
الفنيين، وإذا كان هذا الشخص ناجح – حسب رأيي – لأستمر أكثر في عطائه من كتابة البرامج، فهو عطاء محسوس مقارنة بعطاء اﻹدارة النظري. فما الذي يمنع مبرمج ناجح ينتج البرامج التي يستفيد منها الناس أن يستمر في هذا النجاح خصوصاً بأن كل يوم برمجة يكون له زيادة في الخبرة العملية. وعندما يُصبح المبرمج مدير، يترك البرمجة وبعد عدة سنوات يصبح ليس لديه أي مواكبة ويضيع ما بين متطلبات اﻹدارة وما بين الحاجة للتقنيات الجديدة والتي إنقطعت صلته بها، فيصبح إداري صرف. وإذا نظرنا له كمدير بسنين قليلة في الحياة البرمجية العملية ربما لا يكون مدير ناجح لإدارة مبرمجين لهم خبرة أكثر منه. واﻷسواء من ذلك هو أنه أحياناً لندرة هذه التخصصات يُنصّب مدير للمبرمجين من لم يقم بكتابة برنامج واحد في حياته (بإستثناء برنامج ضرب المصفوفات أو اﻷعداد اﻷولية في الجامعة أو الثانوي). وهذه من الأشياء التي جعلتني لا أقبل أن أتوظف ثانية، وهي أن مثل هؤلاء لايعرفون مامعني مبرمج وماذا يحتاج المبرمج ليبدع. واﻷسوء من كل هذا أن يُصبح مدير ليكون جسر لمرور البرامج التي تأتي من الغرب، ليساهم في تدمير صناعة البرمجيات وإقتصاد بلده، فبدلاً من أن يكون مبرمج مطور Developer يصبح مدمر Terminator.
ملخص النقاط التي ذكرها والتي تجعله يحب البرمجة هو:
- المتعة في صنع الأشياء: البرمجة في الأساس ترتكز حول إنشاء حلول للمشاكل. ففي نهاية اليوم مثلاً تكون قد ابتكرت شيئا لم يكن موجود في ذلك الصباح، وهذا في حد ذاته يحقق رضى للذات.
- من دواعي سروري صنع الأشياء المفيدة للآخرين: واحد من الجوانب الاكثر ارضاء في العمل كمبرمج أن تجد أن ماكتبته من كود يتم تشغليه في الواقع ويبدأ الناس بإستخدامه، خصوصاً إذا ساهم هذا في تحسين حياة الناس بشكل أو بآخر.
- المتعة في كتابة الكائنات المعقدة التي تشبه اﻷلغاز في علاقتها مع بعضها، ومشاهدتها تعمل في تناسق مع بعضها.
- . متعة التعلم بصورة دائمة: خصوصاً تعلم اﻷشياء غير المتكررة، كتابة الخوارزميات، تعلم اللغات، والأدوات، و منهجيات البرمجة
- المبرمج مثل الشاعر، يبنى قصوره في الهواء ومن مخيلته، لكن مع الفرق أن المبرمج يأتي بشيء يعمل في النهاية
- طريقة التعبير بالكود والتي تشبه اللغة العادية (اﻹنجليزية) وأنه يوجد عدد لانهائي من طرق كتابة الكود لحل مشكلة معينة، كذلك طريقة كتابة الكائنات ووضع المتغيرات والإجراءات والمنطق، كل هذا يجل للمبرمج حرية في التعبير عن الحل بواسطة الكود