12/08/2013

افضل طريقة لدخول عالم البرمجة

ما هي افضل لغة برمجة ؟ هذا هو عنوان موضوعنا اليوم ، و لعل اغلب من يريد التمرس في عالم البرمجة يراوده هذا السؤال و يلاحقه في احلامه ، فقد يبدأ في تعلم لغة برمجية معينة و بعد ذلك يكتشف انها كانت خيارا خاطئا ، ثم يجرب من جديد لغة اخرى و يكتشف انها ليس مناسبة ايضا ، و هكذا يبقى يدور في حلقة مغلقة من التجارب الفاشلة ، لذلك ساتطرق في هذا الموضوع  لمجموعة من العوامل التي تساعدك على اختيار اللغة البرمجية التي تناسبك .
ففي الحقيقة ليس هناك بتاتا لغة برمجة افضل من الأخرى و لكن يمكن تحديد لغة برمجة التي تناسبك و ذلك من خلال مجموعة من المعيايير هي :
ما هو صنفك البرمجي ؟
لعل من اهم الأشياء التي تساعدك على تحديد لغتك البرمجية هي صنفك البرمجي ، فالبرمجة تنقسم الى صنفين اما برمجة الويب او برمجة البرامج ، فيجب عليك هنا ان تحدد ميولك الشخصي ، هل تريد صناعة مواقع ؟ ام تريد صناعة برامج ؟ و بالتأكيد رغبتك في دخول عالم البرمجة كانت مبنية على رغبة كبيرة في الوصول الى شيء معين او بالأحرى انطلاقا من تسائل معين ، فقد يكون سبب دخولك لميدان البرمجة مبني على سؤال : كيف صنع الفايسبوك ؟ او على سؤال كيف تصنع برامج الحماية ؟ و انطلاقا من هذه الرغبة او من هذا التسائل بمكنك تحديد صنفك البرمجي
فلو كنت تريد التمرس في برمجة الويب فليس لديك خيارات كثيرة :
1- تعلم الـ HTML و Css
2- تعلم احدة اللغتين ال php أو الـ Asp ، انصك بتعلم الـ asp لكن في المقابل عليك دفع مبلغ لـ Microsoft لنشر مواقعك المبرمجة بها غير ذلك فالأفضل هي الـ php لأنها بسيطة و جميلة و مفتوحة المصدر
3- تعلم الـ Javascripte
اما اذا كنت تريد التمرس في برمجة البرامج فتابع المعايير القادمة
ما هو هدفك من البرمجة ؟
تعم ان هدفك في البرمجة يحدد بطريقة مباشرة اللغة البرمجية التي تناسبك . فما هو هدفك من البرمجة ؟
اغلب من يدخل ميدان البرمجة فهو يدخلها لهدفان لا ثالت لهما. و هما :
  • الاستمتاع بالبرمجة لأنك تجدها ممتعة و تعشق التحديات ( هنا تسمى انت بهاوي )
  • الرغبة في الاحتراف و اتخاد البرمجة كعمل (تسمى هنا بمحترف )
فلغات البرمجة منها الصعبة و الاحترافية و منها السهلة و البسيطة لكنها غير احترافية ، اي انك لو كنت هاوٍ فعليك اختيار اللغة البرمجية الأكثر سهولة التي توفر لك كل متطلبات برمجة برامج بسيطة فقط حسب امكانياتك و ظروفك (وقت فراغك ) اما لو كنت ترغب في الاحتراف فعليك اختيار لغات البرمجية الصعبة الاحترافية التي تمكنك من التعامل مع مختلف مكونات الحاسوب المرنة و الصلبة ، و تستطيع من خلالها برمجة اي شيء يخطر على بالك انطلاقا من مؤهلاتك و تكريش وقتك
اما اللغات البرمجية التي انصح بها الهواة فهي : Vb6 - Pascal - Go - Windev
رغم ان هناك البعض من سيعارضني بخصوص الـ Windev لانها لغة تبسيط اكثر مما هي لغة هواية
اما اللغات البرمجية الاحترافية و التي تحتوي على تقنيات عالية : C++ C Delphi Vb.net C# Java
و غيرها من اللغات
الآن لو كنت هاوي فلديك خيارين البرمجة بالكود فقط انصحك باختيار الـ Pascal او البرمجة بتقنية الـ Rad (سحب جر ) انصك بالـ
Vb6و لو انت تريد الاحتراف فتابع المعيار الثالت .

ما نوع البرامج الي تريد برمجتها ؟
تحدثنا في النوع الأول عن الصنف اما الآن فسنتحدث عن نوع البرامج التي تريد برمجتها
فالبرامج انواع كثيرة فنحن نجد على الحاسوب العابا و برامج مكتبية و تطبيقات و برامج تسيير و برامج حماية و الكثير من الأشياء الاخرى
فاعتمادا على نوع البرامج التي تريد برمجتها تحدد لغتك البرمجية
فلو كنت تريد التمرس في صناعة الألعاب فلديك خيارات محدودة هي C# و ++C و Java هذا لا يعني ان اللغات الاخرى لا يمكن صناعة العاب بها ، و لكن هذه اللغات احترافية في صناعة الألعاب فالـ ++C متلا توفر لك تعامل مثالي مع الـ OpenGL لصناعة الالعاب ، و يمكنك اختيار اي لغة انطلاقا من درجة الصعوبة ، فلو كنت تريد صعوبة اكثر توجه الى الـ ++C و اقل C# و Java
مع مراعات علاقة الصعوبة بمدى الاحترافية .
اما لو كنت صناعة برامج تطبيقية مكتبية عادية مثل برنامج تحويل العملات ، او برنامج قارئ PDF و الكثير من البرامج التطبيقية الأخرى فاي لغة برمجية كافية للقيام بذلك بكفاءة لكن الـ Java ستكون الخيار الأكثر ملائمة بالنسبة لبرامج التسيير اي برامج تسيير شركات و مدارس و مكتبات و غيرهم فمعظم اللغات كفيلة بصناعتها ، لكن لغات برمجية كـ Vb.net و Delphi و كدى الـ Windev تعد الأفضل في هذا المجال ، لتعاملها السلس مع قواعد البيانات بالنسبة لبرامج الحماية - التكسير و الضغط و التشفير و التعامل مع مكونات الحاسوب و غيرها من الوظائف الاحترافية جدا فان الخيار الأمثل سيكون لغة احترافية كالـ C او الـ ++C رغم ان هاتان اللتان يمكناك ايضا من صناعة برامج متنوعة مكتبية - للتسيير و تطبيقية بسيطة الا ان درجة صعوبتهما تجعل من صناعة برامج عادية مثل تلك البرامج امرا صعبا و عاديا في نفس الوقت ، فما الذي ساستفيده من تضييع الوقت و حرق خلايا العصبية في سبيل انشاء برنامج يمكنني انشائه بسهولة بلغة اخرى