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