# كيف تصبح مبرمجا محترفا؟

كيف تصبح مبرمجا محترفا؟
المبرمج هو الشخص القائم على صنع تطبيقات وبرمجيات الكمبيوتر المختلفة وفقا لاستخدامه لغة برمجة معينة يخاطب بها الكمبيوتر لتحقيق أغراض المستخدمين, أي أنه حلقة الوصل بين الكمبيوتر والمستخدم, فكلاهما لا يعرف لغة الآخر ولكن المبرمج يعرف لغة الاثنين. وكما أن تطبيقات الكمبيوتر تتفاوت من حيث أنواعها كذلك تتفاوت لغات البرمجة من حيث نوعية التطبيقات التي تصنعها ومن حيث القوة والضعف فهناك مثلا لغات خاصة بصنع برامج الوسائط المتعددة Multimedia, وأخرى لصنع تطبيقات قواعد البيانات Database, وثالثة لصنع برامج تهدف إلى أغراض أخرى ... وهكذا.
وإذا تحدثنا عن فريق العمل اللازم لتصميم وإنشاء البرامج أو التطبيقات نجد أنه يندرج تحت التخصصات الآتية ليصبح صالح ا للاستخدام:
محللوا النظم System Analysts مصممو النظم System Designers
المطورون - المبرمجون Developers - Programmers
بماذا تبدأ؟ ...وكيف تبدأ؟
والآن وبعد هذه المقدمة أنت بحاجة لأن تعرف ماذا تحتاج لكي تبدأ؟ وإجابتنا تتلخص في أنه لكي تبدأ فأنت أولا تحتاج إلى حب الإبداع ومساعدة الآخرين, بالإضافة إلى اتقان هذا الإبداع بواسطة أدوات البرمجة والتطوير باستخدام الكمبيوتر.وبعد ذلك المقوم الأساسي الذي تقوم عليه رحلتك من الآن وحتي احتراف البرمجة. فمهنة البرمجة ليست من المهن التي يمكن أن تعتمد علي مجرد أداء للمهام فقط, وإنما تحتاج إلى فكر خصب وذهن حاضر إضافة إلى تعايش كامل للموضوع الذي تعمل به.
الأمر الثاني يجب أولا أن تكون مستخدما جيدا للكمبيوتر وتعاملت مرارا وتكرارا مع شتى أنواع البرمجيات, ولكن يجب أن تتعامل مع البرنامج بنظرة مختلفة عن المستخدم العادي, مما يعنى أنك تنظر إلي البرامج نظرة عميقة لمحاولة فهم كيف تم تصميمه وإنشاؤه, ومن بعدها يمكنك الدخول إلى عالم صناعة البرمجيات بمؤهلات مناسبة.
وفي هذه الحالة سيأتي دورنا لنقوم بإرشادك إلى كيفية السير في ذلك الطريق, وهنا يجب أن تعرف جيدا تصنيف لغات البرمجة باختلاف أنواعها, والتى تنقسم إلي قسمين:
الأول: وهو البرمجة التقليدية أو ما يطلق عليه Standard Programming وهي تلك اللغات التي يكون البرنامج فيها مكونا من سلسلة من الخطوات (من 1 إلي 100) مثلا تتسلسل تلقائيا في التنفيذ لتكوين البرنامج, وهي اللغات الخاصة بصنع التطبيقات التي تعتمد علي أنظمة التشغيل غير الرسومية مثل DOS Applications التي تعمل تحت بيئة DOS. ومن أمثلة هذه اللغات لغة الكوبول COBOL ولغة البيسيك Basic.
فعلي سبيل المثال, يكون البرنامج المكتوب بلغة البيسيك مثلا مكونا من مجموعة خطوات متسلسلة, فمثلا سيقوم البرنامج بمسح الشاشة ثم يطبع كلمة WELCOME ثم ينتهي بعد ذلك، فيكون الكود الخاص بكتابته كما يلي:
10 CLS الكود الخاص بمسح الشاشة
20 PRINT "Welcome" الكود الخاص بالكتابة على الشاشة.
30 END "كود انهاء البرنامج"
مع الوضع في الاعتبار أنه إذا كان الأمر مربكا بعض الشيء فلا تقلق فسوف نذكر ذلك بشيء من التفصيل لاحقا .
النوع الثاني: من لغات البرمجة هو اللغات التي تقوم بصنع البرامج التي تعمل تحت بيئة التشغيل الرسومية GUI وهي ما يطلق عليها OOP أو البرمجة الشيئية (البرمجة الموجهة بالعناصر أو الكائنات) Object Oriented Programming وفيها يتم إنشاء البرنامج عن طريق مجموعة من الكائنات المرتبطة ببعضها البعض والذي يؤثر كل منها في الآخر ويتأثر به. وخير مثال علي تطبيق مكتوب بأحد تلك اللغات التي تعتمد علي OOP هو برنامج الرسام مثلا. والموجود ضمن حزمة برامج نظام التشغيل Windows على اختلاف إصداراته. ومن أشهر لغات البرمجة التي تنتهج هذا النهج لغةVisual Basic- ولغة Delphi- والعديد من اللغات الأخرى.
ولكي تبدأ بأي من هذين الطريقين السابقين يجب أن تتعلم أولا مفاهيم ومباديء البرمجة بشكل عام Programming Concepts.
مباديء البرمجة Programming Concepts تعتبر مباديء البرمجة ومفاهيمها الأساسية هي الخطوة الأولي والأساسية لتعلم أي لغة برمجة, ومباديء ومفاهيم البرمجيات لا تخص أي لغة برمجة بعينها ولكنها خطوات ومبادئ عامة مشتركة بين جميع اللغات. وفيما يلي شرحا تفصيليا لأهم المباديء والمفاهيم الأساسية التي تحتاج إليها في هذا الصدد:
حل المشكلات Solving Problems
يجب أن تعلم أن المبرمج بطبيعة مهنته حلال للمشكلات التي تعترض سير العمل وذلك بشكل منطقي ومدروس.
خوارزميات Algorithmeth
يقصد بالخوارزم التصور الشخصي من قبل المبرمج لحل المشكلة ويكون هذا الحل مكتوبا في خطوات مسلسلة كما يمكن أن يكون للمشكلة الواحدة أكثر من طريقة حل تتفاوت الحلول فيما بينها من حيث سرعة الوصول إلى الهدف.
خريطة التدفق Flow Chart
يقصد بخريطة التدفق أنها رسم برموز معينة متفق عليها توضح التصور الشخصي لحل المشكلة. (طريقة سير البرنامج)
لغة البرمجة
وهي الوسيلة التي يستخدمها المبرمج لصنع التطبيقات المختلفة بها والتي تحل المشكلة. مدي التكامل بين العناصر السابقة لحل المشكلة .