•كيف أتعلم البرمجة؟ هل أستطيع تعلم البرمجة ؟ أو هل أنا مؤهل لأصبح مبرمجًا؟ سؤال لا يزال يسئل مراراً وتكرارً لكل من دخل جديداً في عالم البرمجة , وبالمقابل نوجه سؤالاً لكل متعلم جديد لماذا تتعلم البرمجة؟ هل لديك الحافز الحقيقي لتعلم البرمجة ؟ هل يكمن في قلبك الحب والصبر والشوق للغوص في هذا العالم الواسع ؟ ان قلت نعم , فمرحباً بك للغوص من دون غرق لنبدأ بداية صحيحة لتعلم البرمجة ابتداءاً من اساس البرمجة وعملها :
تعريف البرمجة
•البرمجة هي عبارة عن كتابة شيفرة او ما يسمى بمصطلح كود برمجي أي مجموعة من الأوامر يتم ترجمتها وتنفيذها من قِبَل جهاز الحاسوب أو أي جهازٍ إلكتروني آخر و يجري كتابة هذه الأوامر والتعليمات بإحدى لغات البرمجة التي تعتبر الوسيط بين المبرمج و الحاسوب .
•لو أردنا أن نقول للحاسوب "اطبع كلمة Hello World واعرضها على شاشة الحاسوب" فسنحتاج هنا إلى لغةٍ مشتركةٍ بيننا وبينه ليفهم ما نبتغيه وهنا يأتي دور لغات البرمجة >
لغة البرمجة
وسيلة للتخاطب بين المبرمج و الحاسوب وهي مجموعة من الأوامر تكتب وفق قواعد معينة تحددها نوع لغة البرمجة ومن ثُمَّ تمر هذه الأوامر بعدة مراحل إلى أن تنفذ على جهاز الحاسوب
"كل لغة برمجة لها خصائصها التي تميزها عن الأخرى وتجعلها مناسبة بدرجات متفاوتة لكل نوع من أنواع البرامج والمهمة المطلوبة من هذا البرنامج كما أن للغات البرمجة أيضاً خصائص مشتركة وحدود مشتركة بحكم أن كل هذه اللغات صممت للتعامل مع الحاسوب .
مستويات لغات البرمجة
؟ لماذا لا توجد لغة واحدة للتعامل بين المبرمج والحاسوب وللأجابة في الحقيقة ان هناك لغة واحدة يفهمها الحاسوب او معالج الحاسوب وهي الاحاد والاصفار 11100101010 وتسمى هذه اللغة بلغة الآلة وهي التي توجه الاوامر بشكل مباشر الى الحاسوب ليتم تنفيذها .
"
ولغة الآلة لغة صعبة في كتابتها ليفهمها البشر وحتى لو تم كتابة امر بسيط (كما في بداية اختراع الحاسوب) فسيكون عبارة عن مجموعة ضخمة من الاحاد والاصفار ولن يفهمه غيرك ولا يستطيع احد التعديل عى الشفرة او تطويرها .
وعلى مرور الزمن ونظراً للتطور وسعياً لايجاد لغة يفهمها البشر لتكون الوسيط بينه وبين الحاسوب تم تقسيم لغات البرمجة بناء على قربها من اللغات الإنسانية إلى:
• لغة عالية المستوى (اقرب الى اللغة التي يفهمها البشر) مثل: السي شارب c#، البايثون python والجافا java
•لغة منخفضة المستوى (قريبة من لغة الآلة) مثل: لغة التجميع assembly
كيف يعمل الكود البرمجي
مثلما عرفنا في السابق ان الحاسوب لا يفهم المبرمج او لغات البرمجة عالية المستوى مثلا لا يفهم الكود البرمجي
("print("hello world
,وانما يفهم فقط لغة الآلة التي هي عبارة عن احاد واصفار , في اللغات البشرية الاعتيادية ( الانكليزية , العربية , الاسبانية ... ) هناك مترجم واحد يقوم بالترجمة بين اللغات البشرية للتواصل , اما في لغات البرمجة هناك نوعان من المترجمات بين اللغات :•المترجم (compiler) : من خلال اسمه يتضح جليا أنه يقوم بعملية الترجمة، فهو يقوم بفحص البرنامج المكتوب بلغة البرمجة كاملا، ثم يقوم بترجمته إلى برنامج مكتوب بلغة الآلة لكي تتمكن وحدة معالجة البيانات CPU من تنفيذه و لا يظهر الأخطاء الموجودة في البرنامج المصدري إلا بعد الانتهاء من عملية تحويله إلى لغة الآلة.
•المفسر (interpreter) : يقوم تقريبا بنفس الدور الذي يقوم به المترجم مع اختلاف بسيط، يتجلى في أن المفسر لا يقوم بتحويل الكود المصدري إلى كود الآلة مباشرة وإنما يقوم بتحويله إلى لغة وسيطة intermediate code، بعد ذلك يتم تحويل كل جزء من أجزاء الكود الناتج إلى لغة الآلة، ثم يتم تنفيذ هذه الأجزاء أمرا بأمر سطر بسطر ، وأي أمر يضم خطأً يؤدي إلى توقيف عملية تحويل الأجزاء المتبقية.