ماذا تعني كلمة "برمجة" ؟
بكلة بساطة ، البرمجة تعني " تطوير أو إنشاء برامج للحاسوب " ، هذه البرامج هي التي تطلب من الحاسوب القيام بمختلف الأمور.
الحاسوب مليء ببرامج مختلفة في مجالات متعددة :
فـ "الآلة الحاسبة" برنامج ، و الـ "paint" برنامج ، و الـ"محرر النص" برنامج و كذلك "الألعاب" برامج
بإختصار ، البرامج بمختلف أنواعها هي التي تسمح لك بالقيام بكل شيء في جهـازك
حتى ألعاب الـ3D و تعتبر برامج . كمثال بسيط لعبة "Half life 2" في الصورة أدناه تمت برمجتها بلغة الـ C

* لكن تطوير لعبة بالبرمجة ليست أبدا بالشيء البسيط أو السهل التحقيق
طبعا لن نبدأ في دروسنا بكيفية تطوير لعبة بلغة الـ C ( سيكون انتحار بهذي الطريقة @@ )
سنبدأ أولا ببرامج بسيطة و ننتقل لما هو أصعب ، ففي الأخير هدفنا هو أنكم تتحكمون كليًا في البرمجة بلغة الـ C
لاحظتم ؟ في كل مرة أكرر " لغة C " ؟
فيا ترى ما القصة مع هذه اللغة ؟
البرمجة ، لكن بأي لغة ؟!!
ما يمكننا قوله عن الحاسوب هو أنه جهاز غريب . لا نستطيع محاورته إلا بالرقمين 0 و 1
كيف ؟ يعني مثلا لو أحاول ترجمة " احسب مجموع 5+3 " للغة الحاسوب ستكون :
1000111101110110100101010 ( أو شيء من هذا القبيل o_O )
ما ترونه الآن هو لغة الحاسوب ، أو ما يسمى بـ اللغة الثنائية - binary language ( تذكروا جيدا هذا الإسم )
الحاسوب لا يعرف التكلم إلا بهذه اللغة ، و كما تلاحظون هي معقدة ، غير مفهومة و لا تفتح النفس أبدا o_O
هذا هو أول مشكل لنا : كيف نستطيع إذن التواصل مع الحاسوب بدون إستعمال 0 و 1 ؟
الحاسوب لا يتكلم الإنجليزي و أكثر منه العربي . و من الصعب جدا استخدام الـ Binary language
حتى أكبر المبرمجين في العالم لا يستطيعون استعمال هذه اللغة .
إذن ، الفكرة التي خطرت على بال المبرمجين ، هي اختراع لغات مبسطة يتم ترجمتها إلى الـ Binary Language
الصعب في القضية هو كيف لنا ان نطور برنامج يترجم هذه اللغات المبسطة إلى لغة يفهمها الحاسوب ؟
على كل حال ، تم إيجاد كيفية إنشاء هذه البرامج ، و هي التي سيستعلمها المبرمج طيلة حياته البرمجية O_o
لو نحاول إختصار كل هذا في نموذج سيكون :

القليل من مصطلحات الحاسوب
فيما سبق ، تكلمت بلغة بسيطة حتى يسهل على الجميع فهم المقصود
لكن ليكن في علمكم أنه توجد مصطلحات خاصة بالحاسوب و بعالم البرمجة بالذات
لو نعود و ننظر في النموذج الذي رأينا من قبل ،
برنامجنا و هو حساب 5 + 3 مكتوب بـ "لغة مبسطة" ، هذه اللغة المبسطة تسمى "لغة عالية المستوى - high level language"
نشرح قليلا : توجد مستويات كثيرة للغات البرمجة ، كلما كان مستوى اللغة عالي كلما كان قريبًا من لغة الإنسان و بالتالي يسهل عليه فهمه
نعطي بعض الأمثلة على high level language هذه :
Delphi , Visual Basic , Java , C++ , C و أخرى عديدة
مصطلح آخر للحفظ و هو : الشفرة المصدرية - Source Code و هو ما تكتبه من أسطر و تعليمات في برنامجك .
نعود الآن إلى "برنامج الترجمة" الذي يترجم high level language ( مثل الـ C ) إلى Binary language .
هذا البرنامج يسمى : مترجم - compiler يقوم بعملية الترجمة - compilation
يوجد مترجم خاص بكل لغة برمجة ، طبعا لأننا لا نترجم الـ C كما نترجم الـ Delphi مثلا .
و أخيرا البرنامج الذي تم إنشاؤه من طرف المترجم بالـ Binary language يسمى البرنامج التنفيذي - EXEcutable .
نعيد تصميم النموذج السابق لكن هذه المرة بالمصطلحات الحقيقة :

كما سبق و أن ذكرنا ، توجد لغات كثيرة عالية المستوى ( High level languages ) ، و هذا يجعلنا نتساءل
هل يجب أن نبدأ بتعلم لغة معينة من بين هذه اللغات ؟
يجب إختيار لغة من اللغات ، ففي نهاية الأمر المهمة هي تعلم البرمجة بشكل عام . و هنا لديكم الخيار ما بين :
• لغات ذات مستوي عالي جدا : و هي في متناول عامة الناس ، على سبيل المثال: الفيزوال بازيك Visual Basic . هذه اللغات تسمح بتطوير برامج محدودة نوعا ما لكن في وقت قياسي .
• لغات ذات مستويات عالية نسبيًا ( ليست منخفضة إلى ذلك الحد ) : هي أكثر صعوبة من السابقة الذكر طبعـا و أكثر تعمقا ، لكن لغة مثل الـ C ستسمح لك باكتشاف المعنى الحقيقي للبرمحة و لكيفية عمل الحاسوب . كما ستسمح لك بتعلم لغات برمجة أخرى في نفس مستواها أو أكثر و بالتالي تصبح أكثر خبرة .
هذه هي الأسباب التي جعلتني أختيار لكم لغة الـ C ،لا أقول بهذا أنه الخيار الأمثل و الوحيد
لكن أقول أنه خيار جميـل سيمنح لكم قاعدة سليمة و قوية في عالم البرمجة و يسمح لكم باكتشاف الباقي
بما أن معظم لغات البرمجة قائمة على الـ C ( مثل : Java , Php , javascript ... ) .
البرمجة ، هل هي صعبة
سؤال يكون قد دار في بال الكثير منكم . بل و يجعل معظمكم يتردد في هل يغامر في تعلم البرمجة أم لا ؟
فهل يجب أن نكون اختصاصيين في الرياضيات و درسنا فيها لمدة 10 سنوات حتى نكون مبرمجين ؟
جوابي في هذا هو لا .
لا ، مستوى عالي جدا في الرياضيات غير مطلوب ، ما هو مطلوب هو ان تعرفوا العلميات الأساسية الأربعة في الرياضيات :
الجمع + ،، الطرح - ،، الضرب × ،، و القسمة ÷ .
تنتظروا قولي "أنا امزح" ؟ . لا لن اقولهـا .
أنا جدي في قولي أن الأهم هو معرفة هذه العمليات ، و ستكتشفون بأنفسكم ما أريد الوصول إليه بكلامي هذا بمجرد دخولكم عالم البرمجة .
طبعا هذا لا يعني أن البرمجة لا تحتاج بتاتًا للرياضيات . لكن المراد قوله أن العلاقة بينهما ستكون حسب البرنامج المراد تطويره
فإذا أردنا مثلا أن نطور برنامج تشفير ، فهنا سنحتاج لقليل من الرياضيات . كما لو أردنا تطوير برنامج 3D سنحتاج كذلك لقليل من الهندسة.
فكل شيء يرتكز على نوع البرنامج المراد تطويره .
مختصر القول ، أن تعلم البرمجة بلغة الـ C لا تتطلب منك مستويات عالية في أي علم من العلوم .
لكن ، أين تكمن الصعوبة إذن ؟ و ما هو اللغز في هذا ؟
يجب فقط أن نعلم كيفية عمل الحاسوب حتى نعلم بالضبط ماذا نفعل و ما يجب عمله في البرمجة .
المبرمج يجب أن تتوفر فيه مجموعة من الكفاءات أيضا ، تتلخص فيما يلي :
• الصبر : البرامج أبدا و لا تشتغل من الوهلة الأولى ، فهي تتطلب دائما المثابرة و المحاولة في كل مرة.
• التفكير المنطقي : البرمجة بشكل عام لا نحتاج إلى الرياضيات بالطبع ، لكن هذا لا يعني أننا لا نحتاج إلى التفكير ;) .
• الهدوء : لا تكسر الحاسوب و تقول يمكن البرنامج يشتغل بهذه الطريقة . افترض دائما أنك أنت المخطئ و ليس الحاسوب .
المختصر المفيد في هذا ، أن البرمجة لا تحتاج لأي مكتسبات قبلية في أي مجال من المجالات ،
هي تحتاج فقط للصبر و لمعرفة طريقة التفكير السليم .
اخبركم بإحصائية : 80% من المبتدئين في البرمجة يكتشفون بمرور الوقت أنهم تعلقوا بها بل و أصبحوا مدمنين عليها .
معلومة هامة !!!!:
سيتم في المدونة شرح أحد لغات البرمجة بالتفصيل ( يمكن C++ أو غيره ) عن قريب جدا
فالذي رأى من خلال الدرس أنه جاهز لتعلم البرمجة ، ما عليه سوى متابعة دروس و شروحات المدونة في ركن "برمجة"
استفد ، اترك انطباعك في الموضوع ، و شارك الآخرين الفائدة بـ [ Share ]
ليست هناك تعليقات :
إرسال تعليق