تعلم البرمجة يحتاج إلى مثابرة واستعداد كبيرين، يسمونها وظيفة المثابرين، وذوي القدرة على المتابعة اليومية للجديد في عالم الكمبيوتر.. من يريد العمل بها لا بد أن يكون لديه ملكة اكتساب المهارات.. إنها وظيفة المبرمج؛ إحدى الوظائف الهامة المطلوبة في السوق العربية.
للتعريف بوظيفة المبرمج نقول أن المبرمج هو الشخص القائم على صنع تطبيقات وبرمجيات الكمبيوتر المختلفة وفقا لاستخدامه لغة برمجة معينة يخاطب بها الكمبيوتر لتحقيق أغراض المستخدمين. وبعبارة أخرى فالمبرمج هو حلقة الوصل بين الكمبيوتر والمستخدم، فكلاهما لا يعرف لغة الآخر، ولكن المبرمج يعرف لغة الاثنين.
وكما أن تطبيقات الكمبيوتر تتفاوت من حيث أنواعها فكذلك تتفاوت لغات البرمجة من حيث نوعية التطبيقات التي تصنعها، ومن حيث القوة والضعف فهناك مثلا لغات خاصة بصنع برامج الوسائط المتعددة Multimedia، وأخرى لصنع تطبيقات قواعد البيانات Database، وثالثة لصنع برامج تهدف إلى أغراض أخرى… وهكذا.
متي يبدأ المبرمج عمله؟
تصميم البرامج يحتاج إلى أكثر من شخص أو إلى شخص يجيد جميع المهام التالية، والتي ينفذها:
– محللو النظم System Analysts
وهم الأشخاص القائمون على دراسة متطلبات قيام النظام ومدخلاته ومخرجاته، وكذلك تحديد الموارد اللازمة لتنفيذه، بالإضافة إلى بيان كيفية التنفيذ وشرح ديناميكية العمل وتنظيم العلاقات المختلفة بين الكائنات الموجودة بالنظام.
– مصممو النظم System Designers
ويأتي دورهم بعد مرحلة التحليل وتحديد الاحتياجات، حيث يكون النظام بحاجة لتحديد كيفية التطبيق من حيث الشكل العام، وتصميم نماذج تحليل النظام.
– المطورون – المبرمجون Developers – Programmers
ويأتي دورهم بعد المرحلتين السابقتين، حيث يتم التنفيذ الفعلي للنماذج المصممة وكتابة الأكواد المسئولة بدورها عن بث روح الحياة في النظام. فمثلا إذا كنا بصدد إنشاء نظام يهدف إلى القيام بعملية إدارة شركة ما من الناحية المالية والتجارية، فسيقوم المحللون بدراسة الدورة المستندية لهذه الشركة، وكيفية تعاملها مع الشركات الأخرى، وديناميكية العمل من حيث المستندات المستخدمة في دورات العمل المختلفة… إلخ، وكيفية تدفق البيانات من مرحلة إلى الأخرى؛ وبالتالي تحليل النظام ككل بشكل متكامل.
بعد ذلك يأتي دور المصممين، حيث يتم تصميم نماذج وأشكال الشاشات ومواضعها وطريقة عرضها وربطها ببعضها والتي سيصنعها المبرمجون، وبعد ذلك يأتي دور المبرمجين، حيث يتم التنفيذ الفعلي لما تم تصميمه سابقا، حيث يتم كتابة الأكواد اللازمة لإنشاء كل النماذج.
وفي بعض الأحيان تقتضي وظيفة المبرمج أن يقوم المبرمج -كما تقول هالة زهير مديرة إدارة التطوير بإحدى شركات الكمبيوتر في مصر- بعمل المراحل الثلاث السابقة بنفسه، وفي هذه الحالة يكون البرنامج الذي يتم إنشاؤه صغيرا، إضافة إلى وجوب إلمام المبرمج بالخبرات الثلاث السابقة في نفس الوقت، وهو ما يتطلب منه خبرة عالية المستوى.
المواصفات الشخصية للمبرمج
ومن حسن الحظ أن مهنة البرمجة لا تتطلب الالتحاق بكلية معينة أو مدرسة بعينها، ولكنها تتطلب شروطا شخصية وتقنية يجب أن تتوافر في الشخص ليصبح مبرمجا؟.
أول هذه الشروط هو حب الإبداع ومساعدة الآخرين، بالإضافة إلى إتقان هذا الإبداع بواسطة أدوات البرمجة والتطوير باستخدام الكمبيوتر. ويعد ذلك هو المقوم الأساسي الذي تقوم عليه رحلتك من الآن وحتى احتراف البرمجة. فمهنة البرمجة ليست من المهن التي يمكن أن تعتمد على مجرد أداء للمهام فقط، وإنما تحتاج إلى فكر خصب وذهن حاضر إضافة إلى تعايش كامل للموضوع الذي تعمل به.
الشرط الثاني هو أن تكون مستخدما جيدا للكمبيوتر وتعاملت مرارا وتكرارا مع شتى أنواع البرمجيات. ولكن يجب أن تتعامل مع البرنامج بنظرة مختلفة عن المستخدم العادي لو أردت أن تصبح مبرمجا؛ وهو ما يعني أنك تنظر إلى البرنامج نظرة عميقة لمحاولة فهم كيف تم تصميمه وإنشاؤه، ومن بعدها يمكنك الدخول إلى عالم صناعة البرمجيات بمؤهلات مناسبة.
ويضيف هشام سليمان -مبرمج مصري (38 عاما)- إلى هذين الأمرين متطلبات أخرى مهمة لشخصية المبرمج منها: القدرة على اكتساب المهارات والمثابرة، وكذلك عقل يجيد التعامل مع الرياضيات. ويرى سليمان أن هذه الخصال الثلاث هي المقوم الأساسي لأي شخص إذا أراد احتراف البرمجة لا سيما أن الوظيفة تحتاج إلى متابعة يومية ودراسة مستمرة للجديد في عالم الكمبيوتر.
المواصفات التقنية للمبرمج
يجب على الراغب في وظيفة المبرمج أن يعرف أولا تصنيف لغات البرمجة باختلاف أنواعها، والتي تنقسم إلى قسمين:
– الأول: وهو البرمجة التقليدية أو ما يطلق عليه Standard Programming وهي تلك اللغات التي يكون البرنامج فيها مكونا من سلسلة من الخطوات (من 1 إلى 100) مثلا، وهذه الخطوات تتسلسل تلقائيا في التنفيذ لتكوين البرنامج، وهي اللغات الخاصة بصنع التطبيقات التي تعتمد على أنظمة التشغيل غير الرسومية مثل DOS Applications، ومن أمثلة هذه اللغات لغة الكوبول COBOL ولغة البيزك Basic.
فعلى سبيل المثال، يكون البرنامج المكتوب بلغة البيزك مثلا مكونا من مجموعة خطوات متسلسلة، فمثلا سيقوم البرنامج بمسح الشاشة ثم يطبع كلمة WELCOME ثم ينتهي بعد ذلك، فيكون الكود الخاص بكتابته كما يلي:
10 CLS الكود الخاص بمسح الشاشة
“20 PRINT “Welcome الكود الخاص بكتابة الكلمة على الشاشة.
30 END “كود إنهاء البرنامج”
– النوع الثاني: من لغات البرمجة هو اللغات التي تقوم بصنع البرامج التي تعمل تحت بيئة التشغيل الرسومية GUI، وهي ما يطلق عليها OOP أو البرمجة الشيئية (البرمجة الموجهة بالعناصر أو الكائنات) Object Oriented Programming، وفيها يتم إنشاء البرنامج عن طريق مجموعة من الكائنات المرتبطة ببعضها البعض والتي يؤثر كل منها في الآخر ويتأثر به.
وخير مثال على تطبيق مكتوب بأحد تلك اللغات التي تعتمد على OOP هو برنامج الرسام مثلا، والموجود ضمن حزمة برامج نظام التشغيل Windows على اختلاف إصداراته. ومن أشهر لغات البرمجة التي تنتهج هذا النهج لغة Visual Basic- ولغة Delphi- والعديد من اللغات الأخرى.
مبادئ البرمجة
ولكي يبدأ المبتدئ بالبرمجة بأي من هذين الطريقين السابقين يجب أن يعلم أولا مفاهيم ومبادئ البرمجة بشكل عام Programming Concepts.
وفي هذا الصدد يقول أشرف عبد الرحمن (مبرمج) وخريج معهد الحاسب الآلي بالقاهرة (28عاما): إن مبادئ البرمجة ومفاهيمها الأساسية تعتبر الخطوة الأولى والأساسية لتعلم أي لغة برمجة، ومبادئ ومفاهيم البرمجيات لا تخص أي لغة برمجة بعينها ولكنها خطوات ومبادئ عامة مشتركة بين جميع اللغات.
وفيما يلي أهم المبادئ والمفاهيم الأساسية التي تحتاج إليها في هذا الصدد:
– حل المشكلات Solving Problems
يجب أن تعلم أن المبرمج بطبيعة مهنته حلال للمشكلات التي تعترض سير العمل، وذلك بشكل منطقي ومدروس.
– الخوارزم Algorithm
يقصد بالخوارزم التصور الشخصي من قبل المبرمج لحل المشكلة، ويكون هذا الحل مكتوبا في خطوات مسلسلة، كما يمكن أن يكون للمشكلة الواحدة أكثر من طريقة حل تتفاوت الحلول فيما بينها من حيث سرعة الوصول إلى الهدف.
– خريطة التدفق Flow Chart
يقصد بخريطة التدفق أنها رسم برموز معينة متفق عليها توضح التصور الشخصي لحل المشكلة. (طريقة سير البرنامج)
– لغة البرمجة
وهي الوسيلة التي يستخدمها المبرمج لصنع التطبيقات المختلفة بها والتي تحل المشكلة. وتؤكد مدى التكامل بين العناصر السابقة لحل المشكلة.
الفيجوال بيزك
والكل يطمح أن يكون مبرمج “Visual Basic” محترفا أو خبيرا وهو شيء لا يأتي بين عشية وضحاها وليس بالأمر الهين. الكثير من المبرمجين قضوا أكثر من عشرات السنين على لوحة المفاتيح ومع ذلك ما زالوا مبتدئين بسبب الخبرة القليلة التي لديهم.
لكن لتحقيق ذلك ابدأ بالأساسيات، فتعلم كيف تبرمج عن طريق قراءة الكتب التعريفية والتي تعتبر المدخل الابتدائي للبرمجة بـVisual Basic.
استكشف جميع المزايا الأساسية المتوفرة في اللغة.
اختبر الأمثلة التي تأتي مع Visual Basic أو البرامج القابلة للإنزال من مواقع البرمجة المختلفة في الإنترنت.
وبالاعتماد على الوقت المستغرق لتعلم الأساسيات، قد تحتاج إلى عدة شهور حتى تصبح مبرمجا منافسا. لكن يجب عليك تعلم تفاصيل متقدمة في مجال Visual Basic، مثل برمجة العميل الخادم Client/Server، برمجة قواعد البيانات، بيئة التطوير المتكاملة نفسها (كالاضافات Add-Ins)، إجراءات برمجة واجهة التطبيقات API، والكتب المتقدمة والأمثلة العملية قد تفيدك.
ويشير تامر مصطفى (مبرمج، هندسة حاسبات جامعة عين شمس، 24 عاما) إلى أن أي مبرمج Visual Basic محترف قد يحتاج مدة سنة لإتقان جميع المهارات والخبرات السابقة. وإذا نجح في ذلك فإنه يصبح مبرمجا محترفا وخبيرا حقيقيا.
ولا يعنى هذا -وفقا لمصطفى- أنك وصلت إلى خط النهاية بل يجب على المبرمج الواعي أن يتعلم لغة برمجة أخرى كـDelphi، C++…
ومن الغريب جدا أنك تجد الكثير من الناس يدخلون في مناقشات وجدل كبير لإثبات ما هي أفضل لغة برمجة. وهي في الحقيقة مضيعة للوقت؛ لأنك تستطيع عمل أي شيء بأي لغة برمجة.
ويتابع أن جميع لغات البرمجة لديها شيء مختلف تقدمه، وكل لغة تكون متميزة في إنجاز مهام معينة وسيئة في محاولة إنجاز مهام أخرى. لذلك على كل مبرمج أن يتعلم نقاط القوة ونقاط الضعف في كل لغة ويقارنها مع لغة البرمجة التي يتقنها.
ووفقا لمصطفى، إذا كانت إحدى لغات البرمجة لديها نقطة قوة في إنجاز مهمة تكون نقطة ضعف في لغة أخرى، ومن خلال تعلمك للغات برمجة مختلفة سترى العينات المشتركة التي تقدمها. كما ستعرف كيف تضيف للغة البرمجة الخاصة بك الميزة المتوفرة في اللغة الأخرى. وتتمكن من نقل التقنيات من لغة إلى أخرى حتى تغطي نقاط الضعف التي بها. وفي هذه الحالة فقط، تكون قد أصبحت خبيرا في البرمجة بحق!.
مشاكل.. الوظيفة
غير أنه يجب أن تضع في ذهنك أن مهنة البرمجة لها مشاكل مثلها مثل مهن أخرى أيضا في منطقتنا العربية، أبرزها قلة الطلب على الوظيفة في بعض البلدان العربية، ويرجع المبرمج هشام سليمان ذلك إلى ضعف صناعة البرمجيات، وعدم التطور النسبي لمجتمع الأعمال العربي بشكل يسمح بزيادة الطلب على الكمبيوتر.
كما أن سوق البرمجة في العالم العربي -وفقا لسليمان- ما زالت تعمل بالنظام الفردي، أي أن الشركة تطلب مبرمجا ليحل مشكلة خاصة بها؛ ومن ثم لا توجد مؤسسات تدرس احتياجات قطاع الأعمال العربي لتطرح له برامج خاصة لحل مشاكلها، بالتالي لا يكون هناك تطوير لقطاع المبرمجين وزيادتهم.
وبالإضافة إلى ذلك هناك عمليات نسخ غير مشروع للبرامج الغربية، وهو ما يقلل الطلب على وظيفة المبرمجين.
ورغم ذلك يشير البعض إلى أن مستقبل المنطقة العربية من الناحية التقنية مبشر، فعدد المؤسسات التي تتجه إلى “ميكنة” أعمالها يزيد، مما يؤثر بالزيادة في الطلب على هذه وظيفة المبرمج.
نبيل المازني – كاتب مصري