29/05/2022
| الدليل الشامل لتعلم البرمجة /
دير SAVE لهاد البوسط غينفعك
إلى كنتي واحد من الناس للي باغين يبداو فتعلم البرمجة وماعرفتيش منين تبدا وشنو خاصك وكيفاش ..فراه هاد البوسط موجه ليك بالضبط وهنا غاتعرف كولشي ان شاء الله..!
■ شنو كانعنيو بالبرمجة ؟
كبداية فمفهوم البرمجة كيعني واحد العملية كاتهدف لتقسيم مهمة معينة إلى أجزاء صغيرة ومترابطة وقابلة للتنفيذ بأوامر بسيطة.
وهاد الأوامر أو التعليمات كايتم الكتابة ديالهوم بإستخدام لغات البرمجة.
لغة البرمجة بإختصار هي الطريقة باش كانقدرو نتواصلوا مع الحاسوب باش نقولوا ليه يدير واحد المهمة.
لغات البرمجة كاتختلف حسب كل تخصص بحيث لكل تخصص برمجي لغاته الخاصة وللي كل وحدة عندها نقاط قوة كما عندها نقاط ضعف .
■ شنو خاصك تعرف باش تولي مبرمج ؟
الأغلبية ديال الناس كايصحاب ليهوم خاص يكون عندك مستوى ممتاز فالرياضيات باش تولي مبرمج و هادي معلومة خاطئة، بغض النظر على أنه تقدر تواجهك بعض المشاكل للي تاتحتاج شوية د الماط ولكن في الغالب ماغاديش تحتاجها ولكن في الجانب الآخر غادي تخصك مهارة أخرى للي هي مهارة التفكير البرمجي و للي هي أهم مهارة عند المبرمج وللي هي كذلك أساس كتابة الخواريزميات ( Algorithms ).
نجيو دبا للخواريزميات ..وللي هي مجموعة من الخطوات المنطقية للي تاتحطها باش تحل واحد المشكل برمجي .ولذلك فأول خطوة خاصك ديرها هي تعلم المبادئ الأساسية لكتابة الخواريزميات ومن بعد تدخل فالأمور المتقدمة ديال لغة البرمجة للي غادي تختارها بناءا على المجال البرمجي للي ختاريتيه.
من بعد ماتفوت المرحلة ديال الأساسيات غادي تنتقل للمرحلة ديال بناء المشاريع البرمجية بإستخدام إطارات العمل ( Frameworks ) وللي هي تقنيات كاتقدم مكتبات وأدوات منظمة باش تساعد المبرمجين في تطوير البرمجيات بأفضل الطرق، بحيث لكل لغة برمجة مجموعة من الإطارات الخاصة بها.
■ شناهي مجالات البرمجة ؟
البرمجة واحد الميدان كبير بزاف وللي كاينقاسم لمجموعة من المجالات، ولهذا غادي يكون مفروض عليك تختار واحد فيهوم باش تخصص فيه.
من أهم المجالات للي مطلوبين حاليا :
☆ تطوير واجهات المستخدم | Front-End Development
واجهات المستخدم كانقصدوا بها كل ماهو مرئي على صفحات مواقع الويب بمعنى الشكل والتصميم ديال مكونات الصفحة ( أشكال / صور / مقالات / جداول ...إلخ ).
وهاد المكونات للي كاتشكل البنية الهيكلية للصفحة كايتم الكتابة ديالهوم بإستخدام لغة HTML و كايتم التنسيق ديالهوم بإستخدام لغة CSS باش نبدلوا الشكل و التمركز ديالهوم على الصفحة.
من بعد كايجي الدور ديال لغة البرمجة JavaScript للي كاتعطي واحد التفاعلية لدوك العناصر بحال فاش كاتشوف شي شريط ديال الصور كايدوزو وحدة تابعة لخرى، أو شي عنصر كيبان بعد الضغط على زر معين ..إلخ
كاينين كذلك بزاف ديال التقنيات الأخرى للي كاتسهل إنشاء واجهات المستخدم ومن بينها :
• إطارات عمل لغة CSS بحال Bootstrap لتسهيل عملية تنسيق عناصر الصفحة.
• مكتبة JQuery لتسهيل التعامل مع عناصر الصفحة بإستخدام JavaScript .
• لغة SASS لإنشاء ملفات CSS بسرعة وسلاسة.
• أدوات البناء مثل Gulp للي كاتسهل تحويل الملفات المصدرية للتطبيق إلى النسخة النهاية للي غادي تبان للمستخدم.
• إطارات عمل لغة JavaScript بحال React /Angular / Vue .
☆ تطوير الواجهات الخلفية | Back-End Development
الواجهات الخلفية هي البرمجيات للي كاتخدم خلف الكواليس على مستوى الخوادم ( Servers )، هاد الخوادم هوما كمبيوترات عندها إمكانيات فائق للي كاتخليها متصلة دائما بالإنترنت وكاتخدم بدون توقف 24h/24 بهدف إستقبال ومعالجة البيانات للي كاتجيها عن طريق الإتصال بالموقع أو بقواعد البيانات ( Databases ) للي كايتم فيها تخزين البيانات.
غادي نستعرض عليك أهم اللغات البرمجية للي كانخدموا بيهوم على مستوى الواجهات الخلفية باش تختار وحدة منهوم :
• PHP :
من بين أفضل وأشهر اللغات فتطوير الواجهات الخلفية هي لغة PHP، تتميز هاد اللغة بمسار تعلم سلس ومجتمع كبير من المطورين داكشي للي كايخليها خيار استراتيجي لأي واحد باغي يدخل لتخصص ال Back-End.
بالإضافة لتوفرها على بزاف ديال إطارات العمل القوية بحال Laravel و Symphony و CodeIgniter..للي كاتخلي تطوير التطبيقات أكثر سهولة وأكثر متعة.
• JAVA :
جافا هي لغة ذات أغراض عامة هيمنت على مجال البرمجة منذ بدايات عام 2000 ومزال مطلوبة فالسوق حتى الآن .
كاتستعمل بزاف فالخدمات ديال البنوك والمتاجر والشركات الكبرى، وكتميز بكونها مستقلة يعني يكفي تكتب الكود مرة وحدة وغادي يخدم على جميع المنصات للي كادعم جافا.
بالتأكيد عندها كذلك أطر عمل قوية ك Spring و Spring Boot للي كايجيو بمجموعة من المكتبات للي كاتوفر بزاف د الوقت والجهد فإنشاء التطبيقات.
• C # :
لغة C # ( سي شارب ) هي لغة حديثة طوراتها شركة Microsoft العملاقة هي تقريبا بحال جافا ولكن بخصائص أفضل الشيء للي كايخليها لغة مميزة لتطوير مختلف أنواع التطبيقات بفضل منصة NET. للي كادعم أغلب أنظمة التشغيل ( Windows/ macOS / Linux ).
كايتعتبر إطار ASP.NET Core من أشهر الإطارات الخاصة بلغة لتطوير تطبيقات الويب ومن ابرز الصفات ديالو أنه كايقدم بيئة تطويرية فائقة الحماية.
☆ تطوير تطبيقات الهاتف | Mobile App Development
كلنا كانخدموا بالتطبيقات ديال الهواتف، هاد التطبيقات للي زاد الإنتشار ديالها فالعصر ديالنا، حتى ولات الشركات ومختلف المؤسسات كادير تطبيقات خاصة بها لتسهيل الولوج للخدمات للي كاتوفرها.
كاينين جوج أنظمة للي مسيطين على السوق ديال الهواتف وهوما Android و iOS .
يمكن ليك تطور تطبيقات للي غادي تخدم فقط على أجهزة Android بإستعمال لغة البرمجة Kotlin وللي هي اللغة الرسمية للي اعتمداتها Google لتطوير تطبيقات Android قبل سنوات .
أما بالنسبة لنظام iOS فشركة Apple دارت لغة خاصة قوية وسهلة للي هي Swift .
يمكن تصايب بها تطبيقات بالنسبة لمختلف الأجهزة ديال Apple بحال iPhone , iPad, MacBook Pro ...إلخ.
لنفرض أنك بغيتي تصايب تطبيق للي يخدم على هاد الأنظمة بجوج بتقنية وحدة فإذن كانقدم ليك إطار العمل Flutter للي كايتعتبر الأن الأفضل و الأكثر شعبية بين مطوري الموبايل.
بفضل Flutter للي هو إطار خاص بلغة البرمجة Dart يمكن ليك تصمم تطبيقات ( Cross Platform ) جميلة بسلاسة بنفس ال codebase .
إلى جانب Flutter كاينين تقنيات أخرى خاصة بلغة JavaScript للي نقدرو نديرو بها نفس الخدمة بإستعمال تقنيات الويب وأهمها React Native و Ionic.
☆ تطوير تطبيقات سطح المكتب | Desktop App Development
بالنسبة لتطبيقات سطح المكتب كانقصدوا بيهوم التطبيقات للي تاتخدم على الحواسيب بحال برامج التصميم و المونتاج...إلخ
كما فالهواتف كاينين جوج أنواع ديال أنظمة التشغيل ( iOS / Android ) فحتى الحواسيب كاينين ثلاثة ديال أنظمة التشغيل ( Windows / Linux / MacOS ).
شركة Microsoft طورات اللغة ديالها باش تكون مناسبة لتطوير تطبيقات سطح المكتب على جميع أنظمة التشغيل بفضل منصة NET. للي جات بتقنيات جداد للي هوما : Windows Subsystem for linux للي تاتمكن ليك من تبادل المكتبات مابين الويندوز و لينوكس، إلى جانب مشروع Mono للي هو إطار يمكن تضمنوا فبرمجيات باش تخدم على Linux و MacOs.
هادشي كامل كايخلي هاد اللغة من أفضل الخيارات لتطوير هاد النوع من التطبيقات .
إلى جانب كاين كذلك إطار العمل Electron js للي تقدر كذلك تصنع به تطبيقات سطح مكتب متعددة المنصات بإستعمال تقنيات الويب ( JavaScript/ CSS / HTML ).
وكمعلومة إضافية فإن أقوى محررات كتابة الأكواد بحال Visual Studio و Atom تم التطوير ديالها بإطار Electron، بالإضافة لتطبيقات شهيرة ك Slack و Discord و Twitch .
☆ تطوير الألعاب | Game Development
غالبا كايحتاج صناعة الألعاب تواجد فريق كامل من المبرمجين والمصممين، على سبيل المثال ألعاب الموبايل بحال PUBG و FreeFire وكذلك ألعاب الحواسيب ومنصات Playstation و Xbox ..للي كايدخلوا الزبابل ديال الفلوس ..
ولكن ماتفقدش الآمال لأنه حتى نتا/نتي تقدر تطور ألعاب بسيطة خاصة بك وتقوم بالنشر ديالها باش تدخل منها شوية د الفلوس أو ربما غير إلى كان الغرض ديالك صناعة الألعاب من باب التجربة والفضول، وبطبيعة الحال تقدر تطور راسك فالمجال على آمل تشارك فصناعة شي لعبة كبيرة مع فريق عمل متخصص .
باش تولي مطور ألعاب خاصك تعرف كيفاش تخدم بمحركات الألعاب ( Game Engines ) وللي من أهمها محرك Unity.
هاد المحرك كايتعتبر الأشهر حاليا فهاد المجال بفضل الخصائص للي تاتمكن من بناء وتصميم ألعاب بجرافيك عالي وبموارد أقل . كايتم الإعتماد فهاد المحرك على لغة .
أفضل ميزة كاينة فمحرك Unity هو أنه فاش تصايب شي لعبة تقدر تخرجها ببساطة باش تخدم على كاع المنصات ديال الألعاب سواءا الحواسيب، الأندرويد، Xbox، PS ...
كاين كذلك محرك Godot للي هو محرك متميز ومجاني تقدر تصنع به ألعاب بجوج أنماط : نمط لغة ++C أو نمط .
بالإضافة لمحركات أخرى عديدة بحال
Mono Game / Unreal Engine...
تقدر كذلك تصايب ألعاب للي تخدم على الويب عن طريق تعلم لغة JavaScript
كنصيحة إلى كنتي بغيتي تدخل لهاد المجال تعلم لغة البرمجة لأن الأغلبية ديال هاد المحركات كاتعتمد على هاد اللغة.
■ كيفاش نختار لغة البرمجة المناسبة ؟
عموما أغلب اللغات البرمجية للي ذكرت فهاد البوسط راه صالحة تقريبا في كل مجال، وللي خاصك تاخدوا بعين الإعتبار هو تشوف اللغات المطلوبة فسوق الشغل، فهاد البوسط ذكرت اللغات الأكثر طلبا فالمغرب وبما أن السوق كايتبدل نقدروا نشوفوا تقنيات جداد مستقبلا.. ونتا إلى شديتي الأساسيات مزيان راه ماغاديش توحل مع أي تقنية..وماتنساش أن اللغات والتقنيات كايبقاو غير وسائل باش تحل المشكل البرمجي والأهم هو تكون عندك طريقة تفكير وتحليل صحيحة باش توصل لأحسن نتيجة فالمشروع للي غادي تخدم عليه.
■ فين نقدر نتعلم البرمجة ؟
عطا الله المصادر فالإنترنت فين تقدر تعلم أي حاجة مجانا بلا ماتحط درهم واحد ولكن غادي تخصك غير شي كونيكسيون مزيانة.
كاينين مواقع التعلم الذاتي للي كاتوفر العديد من مسارات البرمجة وكاتعطيك شهادة فاش كاتكمل واحد المسار ومن أهم هاد المواقع باللغة الإنجليزية :
• Coursera
• Edx
• Codeacadmy
• FreeCodeCamp
وكذلك بالنسبة للغة العربية ظهرت منصات مؤخرا بنفس المنهج وأهمها :
• منصة إدراك
• منصة رواق
إلى جانب بعض المواقع الأخرى للي تاتقدم دروس مميزة فالبرمجة وأهمها :
• Harmash موقع
• W3school
• TutorialsPoint
بالإضافة إلى بزاف ديال القنوات ديال يوتيوب للي تاتقدم محتوى برمجي متجدد وأشهرها :
• Elzero Web School
• Muhammed Essa
• Khalid Essaadani
• Traversy Media
• The New Boston
• FreeCodeCamp
بإختصار راه Google عااامر بزاف بالمصادر و المعلومات غير خاصك تعرف كيفاش تبحث على داكشي للي بغيتي .
وكنصيحة أخيرة البرمجة كاتكتسب بكثرة الممارسة وماتايهمش واش نتا أدبي ولا علمي ولا متخصص فالإقتصاد قدر ماكايهم يكون عندك الشغف والرغبة باش تولي مبرمج.
كانتمنى تكون حققتي إستفادة ولو بسيطة من هاد البوسط ..شكرا لأنك قريتيه حتى للنهاية و الله ولي التوفيق 🙏
BY : mourad el jayi
©️MDW
منقول