اخترت أولى مواضيع المدونة عن كيفية البدء في البرمجة. هذا موضوع أسمعه كثير من مختلف الأشخاص. فهنا راح أكتب رأيي في الموضوع وراح يكون بصيغة سؤال وجواب لتسهيل الموضوع.
ليه أحتاج أتعلم البرمجة؟
فيه معتقد خاطئ منتشر أنه البرمجة تخصص وعشان أبرمج لازم أدخل تخصص حاسب. في الحقيقة، البرمجة هي وسيلة مثلها مثل أي برنامج ثاني تستخدمه. مثلا، في برنامج الأكسل لما تحط/تحطي معادلة في أي مكان فأنا أعتبر هذا أبسط نوع من أنواع البرمجة.
الآن، حسب تخصصك تقدر تعرف كيف البرمجة راح تفيدك. مثلا، شخص متخصص في اللغويات ممكن يكتب برنامج يعمل احصائيات عن نص معين مثل عدد مرات ظهور كلمة معينة. شخص آخر متخصص في المالية ممكن يعمل برنامج يحسب الإيرادات والمصروفات بشكل معين أو يطلع تقارير البرنامج المحاسبي اللي يستخدمه ما يدعمها. ووحدة متخصصة في التصميم والجرافيكس ممكن تكتب برنامج يأخذ صورة واحدة وتطلع منها جميع المقاسات اللي تحتاجها.
الآن اقتنعت بأهمية البرمجة، كيف أبدأ؟
البرمجة لازم تفهم/تفهمي مبادئها أول. هي بشكل مبسط قائمة أوامر تنفذ بشكل متسلسل إلى أن تنتهي. وهي الأوامر بالنسبة للكمبيوتر واضحة وعلى أساسها راح ينفذ ويطلع أي مخرجات تحتاجها. المثال القادم من واقعنا:
تخيل أنه تحتاج حليب المراعي من السوبرماركت وابي تطلب من ولدك يجيب لك. التعليمات له راح تكون بالشكل التالي:
- اركب سيارتي وروح للتميمي
- جب لنا حليب المراعي ٢ لتر قليل الدسم
- حاسب وارجع
في هذي الحالة، الولد راح ينفذ الطلبات ويرجع حسب التعليمات له وإذا صار فيه شيء غير متوقع (مثلا مافيه مراعي وفيه نادك) الولد راح يتصرف بمكالمة أو يروح سوبرماركت ثاني بسبب ذكاء الإنسان ولكن الكمبيوتر بدون ذكاء اصطناعي ما راح يعرف يتصرف وهذي لها حلول كثيرة نتطرق لها في وقت لاحق.
اللي أبي أوصله أنه إذا كنت تعرف تقسم أي شغل إلى قائمة أوامر محددة وتغطي كل الاحتمالات فأنت قطعت مشوار كبير في البرمجة. وإذا لا، فانتظر مقالي القادم عن شيء اسمه سودوكود Pseudocode.
أي لغة مناسبة أبدأ فيها؟
لغة البرمجة تعتمد بشكل كلي على البرنامج النهائي والبيئة اللي راح يشتغل عليها البرنامج. جوابك على الأسئلة هذي راح يحدد لغة البرمجة:
- هل البرنامج راح يشتغل على متصفح الإنترنت عبر الويب ولا على الكمبيوتر؟
- هل البرنامج راح يشتغل كتطبيق داخل الجوال ولا لا؟
- هل البرنامج راح يشتغل على ماك وويندوز ولينكس ولا واحد منهم فقط؟
- هل البرنامج راح يشتغل على أكثر من جهاز في نفس الوقت ولا جهاز واحد؟
- هل للبرنامج واجهة تطبيق أو راح يشتغل في الخلفية؟
- وأسئلة كثيرة لا تنتهي…
إذا تحتاج فقط لغة برمجة لتطبيق أساسيات البرمجة ففيه مجموعة لغات ممكن تبدأ فيها مثل بايثون و سي وسويفت. وأنا في مقالاتي هنا راح أحط كل الأمثلة على بايثون لأني أشوف أنها لغة سهلة وفي نفس الوقت عامة ممكن تطبق عليها تقريباً كل شيء.
كيف أجهز بيئة البرمجة؟
مثل ما قلت في السؤال السابق، هناك مئات ويمكن آلاف لغات البرمجة في العالم. بعضها مشهور ومستخدم من ملايين الأشخاص وبعضها لا يستخدم أبداً. وكل لغة برمجة في العالم تحتاج شيئين أساسيين:
- محرر نصي لكتابة الكود
- المترجم الخاص باللغة Compiler
وأشياء إضافية مساعدة مثل الأدوات اللي تساعدك على إكتشاف المشاكل والأدوات اللي تساعد على تنظيم الملفات والربط بينهم وغيره الكثير.
معظم الأحيان تلقى برنامج واحد يقدم كل اللي تحتاجه ويسمى ببيئة تطوير متكاملة (Integrated Development Environment – IDE). بعضها يخدم أكثر من لغة وبعضها يخدم لغة واحدة فقط. التالي بعض الأمثلة على هذه البرامج:
- PyCharm للغة البايثون (https://www.jetbrains.com/pycharm/)
- Eclipse للغات PHP و C و جافا (https://www.eclipse.org/ide/)
- Microsoft Visual Studio للغات البرمجة المدعومة من ميكروسوفت (https://www.visualstudio.com)
اختيارك للبيئة يعتمد على نوع لغة البرمجة اللي راح تكتب فيها ويعتمد على تفضيلك الشخصي في النهاية.
كيف أنشر برنامجي؟
نشر البرنامج يتعمد بشكل عام على المستخدم النهائي وعلى نوع البرنامج. مثلا، لو كان البرنامج حقك عبارة عن برنامج للأيفون أو الأيباد فخيارك الوحيد هو متجر أبل. لو البرنامج حقك يستهدف الشركات والمؤسسات على أجهزة السيرفر حقهم فلازم تشوف كيف ممكن تسوقه لهم وبعدها تقوم أنت أو أحد أعضاء فريقك بتركيب البرنامج لهم. ممكن أيضاً أنك تقوم بإنشاء موقع خاص بالبرنامج وتتيح للزوار تحميل البرنامج من هناك.
موضوع حلو وأسلوبك جميل وسهل لتوصيل المعلومة للقارئ
وفعلا مفيد لكل التخصصات 👍🏻
Looking forward to your next post 😍