بسم الله الرحمن الرحيم
كيف أقوم باختيار لغتي التي سوف أتعلمها
لا نستطيع أن نقول أن هذه اللغة أقوى من هذه اللغة فكل لغة لها هدف صممت من أجله فجميع لغات البرمجة تشترك بهذه الأقسام:
1- أساسيات علم البرمجة
أ - البنية الأساسية للحواسيب: فإذا كنت تطمح بأن تكون مبرمج ناجح فعليك معرفة هذا القسم مثلاً ( كيف الحاسب يقوم بتنفيذ الأوامر المرسله إليه - كيف يتم التخاطب بين المعالج والعالم الخارجي - أساسيات أنظمة العد المتبعة ......)
ب - دراسة لأساسيات أنظمة التشغيل وكيف تقوم أنظمة التشغيل بتحميل البرنامج لكي يتفاعل مع مكونات الحاسب والتفاعل مع المستخدم - كيف يدير نظام التشغيل لمناطق التخزين مثل الذواكر والأقراص المرنه والصلبة .....
جـ - طرق تخزين البيانات والتعامل معها Data Structure مثل الأشجار.
حـ - الخوارزميات لنستطيع كتابة برامج موثوقة أكثر مثل طرق البحث والترتيب.
خـ - الأساليب الحديثة لتصميم البرامج مثل Object Oriented لتصنيع برمجيات قابله للتعديل والتوسع مستقبلاً.
2- أساسيات لغات البرمجة
أ - إدارة الذاكرة: (تخزين وقراءة)
ب - أوامر شرطية: تنفيذ أجزاء من الكود إذا تحقق شرط معبن
جـ - الحلقات: تنفيذ لمقطع من الكود عدد من المرات إما معرف مسبقأ أو عند تحقيق شرط معين
ح- أستدعاء مقطع من الكود (Methods): مثلاً أكتب مقطع من الكود أطلق عليه أسم Print بمجرد ذكر الاسم ينفذ الكود المرتبط به.
فحين نقوم بدراسة هذه الأشياء نستطيع أن نكتب برنامجنا بكود وهمي ومتى شئنا نستطيع تحويله إلى أي لغة نشاء.
VARIABLE A Type FLOATING_POINT A = 100.10 IF A = 100 THEN SHOW_VALUE ( A ) VARIABLE B Type FLOATING_POINT COPY_MEMORY ( A, B )
لتحويل هذا الكود إلى الـ #C نكتب
float A = 100;
if(A == 100)
{
MessageBox.Show(A.ToString());
}
float B = A;لتحويل هذا الكود إلى الـ VB نكتب
Single A = 100; If A = 100 Then MessageBox.Show(A.ToString()); End If Single B = A;
ويجب تحديد أهداف برنامجنا وما هي التقنيات التي سوف تستخدمها وماهي أساليب التصميم التي تريدها فنحن نستطيع أن نتعامل مع الهارد وير في الـ VB ولكن بعد أن نقوم بالإحتيال عليه. أما لو كنا نعلم مسبقاً بأننا نريد أن نستخدم الهارد وير لكانت لغة ++C هي أسهل بالتعامل مع ما نريد.
ولربما قمنا باستخدام Object Oriented لتصميم برنامجنا فهل أذهب إلى VB6 لأصمم برنامجي فهذا ضرب من الجنون مع ما تقدمه هذه اللغة من تسهيلات لكنها لا تخدم هذا النوع من التصميم حتى جميع لغات الـ Dot Net لا نستطيع أن نقول عنها بأنها Object Oriented 100% هناك العديد من ميزات هذا التصميم غير موجوده في هذه اللغات مثل MultiInheritance و الـ Private Inheritance و الـ Friend Class
أتمنى أن أكون قد أوصلت لكم بعض الحلول لهذه المشكلة التي على ما أظن أنها لن تنتهي