للمبرمجين المبتدئين : كيف أختار اللغة البرمجة التي تناسبني ؟

للمبرمجين المبتدئين : كيف أختار اللغة البرمجة التي تناسبني ؟

الإهتمام بالبرمجة أصبح شاسعا، فالكل ادرك - و الحمد لله - ان البرمجة أساسية اليوم بحكم التعامل اليومي و الشاسع مع مجموعة ضخمة من الرقميات إبتداءا من الحاسوب الى الهاتف الذكي الى المصرف الآلي حتى الطائرات و السيارات و كل شيئ تقريبا، فالتكنولوجيا عمادها البرمجة، و فهمك للبرمجة سيدلك على الطريق الصحيح لفهم سيرورة عمل تلك التكنولوجية و عدم الإشتباك بها بطريقة خاطئة تجنبا لأي أضرار مستقبلا مثل الإختراق على سبيل المثال.
لكن التطور لا يُطال فقط التكنولوجيات، بل يُطال كذلك اللغات البرمجية، فببحث بسيط في ويكيبيديا، ستجد ان عدد اللغات البرمجية اليوم يتجاوز الـ 300 لغة برمجة، لكل منها إختصاص ربما، و كل لغة تنشط في مجال معين، لكن كمبرمج مبتدئ، كشخص لأول مرة سيسقي ذاته من نبع لغات البرمجة، ما اللغات البرمجية ( او اللغة ) التي يجب عليك تعلمها أولا؟ و كيف أبدأ في تعلمها ؟ و هل هي مناسبة لي ؟ 
سنراجع معك في هذا المقال البسيط بعضا من أهم الخطوات التي يجب عليك إتخاذها من أجل إختيار اللغة البرمجية الأنسب لك، مع بعض الإقتراحات المنطقية للغات برمجية ننصحك بها شخصيا بالبدئ فيها. 




- أول الأشياء أولا : افهم البرمجة : 

لغات البرمجة ما هي الا ادوات يتم إستخدامها من أجل الوصول لهدف معين، عليك ان تفهم أولا مفهوم البرمجة، ما هي من أساسه حينها يمكنك إستخدام الأدوات من أجل تطويرها، البرمجة هي تقنية التواصل مع الحاسوب، فالحاسوب لا يفهم كلامك، و لا انت قادر على فهم كلامه، الحاسوب بكل أطرافه من الذاكرة العشوائية الى القرص الصلب و المعالج و كل جزء فيه يتعامل بالنظام الثنائي لا غير، إفعل أو لا تفعل، صحيح او خطأ، True or False، و في الغالب يُصطلح عليها بالـ 0 و الـ 1، لذلك نلقب هذا العالم بعالم الآحاد و الأصفار، لأننا مجبرون على التعامل فقط مع هذين الرقمين، الصفر يعني خطأ/ لا تفعل، بينما الـ 1 يعني صحيح/ إفعل . 
الأمر سهل أليس كذلك؟ حسنا ليس تماما، فمن الصعب ان تكتب برمجية تعتمد على هذين الرقمين فقط، لا، بل حتى ان ابسط عملية حسابين و لنقل مثلا 5+4 لا يمكنك انجازها بتلك السهولة صدقني، فرقم 5 في النظام الثنائي 101 بينما 4 تساوي 100 بينما علامة + يجب تحويلها الى كود ASCII لينتج عنها الرقم 45 ثم تحويله بدوره الى كود ثنائي ليصبح 101011 لتحصل في الاخير ربما على نتيجة مثل : 100101011101 من أجل القيام بهذه العملية البسيطة، و ما خفي كان اعظم . 
فكيف يمكن ان تنتج نظاما ضخما مثل تطبيق او برنامج يقوم بمئات العمليات الحسابية بإستخدام هذين الرقمين؟ الامر ليس شبه مستحيل، بل مستحيل كليا، هنا سيتدخل عامل الأداة، عامل اللغة البرمجية، التي ستقوم بتوفير لغة أنسب للتعامل مع هذين الرقمين عبر سلالة من الأكواد المفهومة للبشر و للآلة أيضا.



- الـ ABC's of Programming : 


تعلم الـ Syntax اولا يا صديقي، تعلم كيف تكتب شفرة برمجية، متى تقوم بغلق و فتح الـ { }، متى يتم إستخدام الـ ; ، إعرف ما هي الحزم او المكتبات و لما يتم إستخدامها، إفهم الفرق بين الـ Function و الـ Mehod، إفهم الفرق بين المتغيرات و أنواعها، إفهم الجمل الشرطية و الحلقات التكرارية و خواص الإدخال و الإخراج، ليس بالأمر الصعب، تحتاج فقط لفهم الـ Syntax الخاص بالكود البرمجي، و متى لا يشتغل الكود البرمجي كجزء من خطأ في الكتاب ( و ليس جزء  في عمل الكود البرمجي)، عليك ان تستوعب الـ ABC's of Programming او ابجدية البرمجة، الأمر اشبه بتعلم لغة حية جديدة، إن اردت تعلم الألمانية فأول شيئ عليك معرفته هو الأحرف و الأفعال ربما، البرمجة لا تختلف إطلاقا على ذلك.
ننصحك بلغتين لإتقان الـ  Syntax البرمجي، إستخدم لغة البرمجية الـ C لأن الـ Syntax الخاص بها متقارب في جميع لغات البرمجة الأخرى، لا تبدأ بلغات مثل Python او Ruby ان اردت إستيعاب الـ Syntax و الأساسيات لأنها ذكية قليلا و لا تحتاج الى العديد من الأساسيات قبل البدئ فيها، فأنت لست مضطرا لغلق الكود البرمجي على سبيل المثال.
ننصحك أيضا بالـ HTML، دعك ممن يقولون انها لغة برمجة و سيقومو بخلق مسرحية الآن، لا نريدك ان تثقل كاهلك بهذه الأمور، الـ HTML توفر لك تغطية للـ Syntax البرمجي في الويب، من غلق للوسوم و فتحها و إستدعاء ملفات خارجية و فهم اساسيات كل وسم و عمله . 



- ثم بعدها مباشرة للـ OOP : 


بعد ان تجيد أخيرا كتابة شفرة برمجية بشكل صحيح، و ان تفهم مبدأ الـ Compiler و كيف يقوم بقراءة كل سطر من البرنامج و تشغيله الى نهاية البرنامج، حان الوقت لتتعمق بشكل أكبر، حان الوقت لتفهم الـ OOP، او البرمجة كائنية التوجه، او الـ Object Oriented Programming، عالم اخر بعيد عن فهم الـ Syntax و إستخدام الاكواد البسيطة، ستتعلم التعامل مع الـ Objects و الـ Classes، عالم برمجي اخر يُطلعك حقا على عصارة مجال البرمجة، إحترافك للتعامل مع الـ OOP يعني قدرتك على صناعة اي برمجية مهما كانت في هذا العالم، ليس هذا فقط، بل يعني قدرتك على التعامل مع اي لغة برمجة أخرى فيه هذا العالم الرقمي، نعم فإن اجدت لغة OOP واحدة، تمكنك تقريبا من إيجاد اللغات التي طرحناها سابقا في رابط ويكيبيديا في المقدمة، لأختصر عليك التعرف على الـ OOP بشكل أكبر، اقترح عليك مقالنا : أساسيات و مفاهيم يجب عليك إدراكها حول البرمجة كائنية التوجه OOP ( الجزء الأول - تمهيد ) ، يمكنك الإطلاق من المقال أيضا للإطلاع على مقالات اخرى في نفس السياق من أجل التعمق أكثر في الـ OOP . 


- الـ C و الـ Python ؟ 


سنرشح لك في الأخير كلا من الـ C او الـ Python و ذلك لعدة أسباب : 
لماذا الـ C : ستساعدك لغة البرمجة C على إستيعاب الأساسيات الأولى في البرمجة كما أشرنا سابقا مثل الـ Syntax و ذلك كون ان جل اللغات البرمجية منبثقة من الـ C، تعلمك للغة البرمجة الـ C سيسهل عليك تعلم لغات برمجية أخرى مثل الـ C# او الجافا او الجافاسكربت أيضا، فهذه اللغات متقاربة جدا من ناحية وضعية الـ Syntax و لن تجد صعوبة كبيرة إطلاقا في الانتقال من لغة للغة أخرى .
لماذا الـ Python : البايثون لغة ذكية جدا، كائنية التوجه و سهلة الإستخدام و شاسعة الإستخدام كذلك، الجميل فيها هو سهولة كتابة الكود البرمجي، و سهولة تحديثه و تشغيله خيار مثالي للتعمق أكثر في البرمجة، و خيار سيئ جدا لفهم أساسيات البرمجة، ننصحك بالبايثون لأن آفاقها واسعة، و قادمة بقوة في عالم البرمجيات.

بعد ان تتعلم كليهما ربما، يمكنك حينها تعلم تقنيات اخرى حسب المجال الذي تريد العمل فيه، و هذا مجال اخر بالطبع سنخصص لك هذا المقال بعنوان : نصائح و خطوات عملية تساعدك على تعلم أي لغة برمجية في زمن قياسي، لأن البرمجة لاحقا ستتطلب  منك تحديد المجال ثم اللعب على وتر تقنياته، فأنت لن تستخدم مثلا الـ C او البايثون في تطوير واجهات المواقع، بل ستحتاج الى لغات اخرى و هنا سيتوجب عليك الإنتقال من لغة للغة برمجة اخرى، و عدم إتقانك للأساسيات قد يخلق مشكل في التعلم بالنسبة لك.
لك كامل الحرية في إختيار لغات برمجية أخرى مثل الـ C++ مباشرة لتعلم كل من الـ OOP و الـ Syntax دفعة واحدة كما يلقبه الجميع، شخصيا سأقترح عليك الـ Ruby بدل البايثون، لكن عشاق البايثون أكثر لذلك اقترحنا هذه اللغة.

شاركه على :