تتنوع مجالات البرمجة وتتنوع لغاتها ومن اهم هذه المجالات :
- تطبيقات الجوال
- تطبيقات سطح المكتب
- تطبيقات الويب ( وتنقسم لـ Back-End و Front-End )
- الـ Embedded Systems
- تعلم الآلة
- تحليل البيانات
- سكريتات ال automation
- الألعاب
- والغني عن التعريف ( اختبار الاختراق )
- تطبيقات الجوال
- تطبيقات سطح المكتب
- تطبيقات الويب ( وتنقسم لـ Back-End و Front-End )
- الـ Embedded Systems
- تعلم الآلة
- تحليل البيانات
- سكريتات ال automation
- الألعاب
- والغني عن التعريف ( اختبار الاختراق )
ونبدأ في مجال تطبيقات الجوال :
وقبل الدخول في اللغات يجب ان نعلم ما هي اشهر الانظمة الموجودة للجوالات وما هي انواع تطبيقات الجوال ؟
- نظام الايفون ( IOS )
- نظام الاندرويد ( Android )
اما عن انواع تطبيقات الجوال فمنها :
- تطبيقات Native
- تطبيقات cross-platform
وقبل الدخول في اللغات يجب ان نعلم ما هي اشهر الانظمة الموجودة للجوالات وما هي انواع تطبيقات الجوال ؟
- نظام الايفون ( IOS )
- نظام الاندرويد ( Android )
اما عن انواع تطبيقات الجوال فمنها :
- تطبيقات Native
- تطبيقات cross-platform
تطبيقات الـ Native
المتعارف عليه انها تطبيقات تستخدم لغات اصلية خاصة بالنظام الموجه اليه التطبيق ( لكل نظام لغات خاصة به ) , وعند كتابة كود لنظام لا يمكن استخدام نفس الكود لنظام اخر , فمثلا لو قمت بكتابة كود native للايفون لا يمكنك استخدام نفس الكود للاندرويد والعكس .
المتعارف عليه انها تطبيقات تستخدم لغات اصلية خاصة بالنظام الموجه اليه التطبيق ( لكل نظام لغات خاصة به ) , وعند كتابة كود لنظام لا يمكن استخدام نفس الكود لنظام اخر , فمثلا لو قمت بكتابة كود native للايفون لا يمكنك استخدام نفس الكود للاندرويد والعكس .
تطبيقات ال Cross-Platform
هي تطبيقات تستخدم عادة لغة واحدة ويمكنك استخدام نفس الكود لكلا النظامين مع بعض التعديلات البسيطة ( في بعض الحالات ) فمثلا عندما تقوم بكتابة كود للايفون , يمكنك استخدام نفس الكود للاندرويد والعكس وهذا ما يسمى بـ ( same code-base ) .
هي تطبيقات تستخدم عادة لغة واحدة ويمكنك استخدام نفس الكود لكلا النظامين مع بعض التعديلات البسيطة ( في بعض الحالات ) فمثلا عندما تقوم بكتابة كود للايفون , يمكنك استخدام نفس الكود للاندرويد والعكس وهذا ما يسمى بـ ( same code-base ) .
نأتي لفقرة اللغات المستخدمة لكل نوع من التطبيقات :
بالنسبة لتطبيقات الـ Native :
- نظام الـ IOS لغتين وهما ( Objective-C & Swift )
- اما بالنسبة للـ Android فيمكنك استخدام اما لغة Java او لغة Kotlin
بالنسبة لتطبيقات الـ Native :
- نظام الـ IOS لغتين وهما ( Objective-C & Swift )
- اما بالنسبة للـ Android فيمكنك استخدام اما لغة Java او لغة Kotlin
ماذا عن تطبيقات الـ cross-platform ؟
لعمل تطبيقات متعددة الانظمة نقوم باستخدام اطر عمل ( Frameworks ) ومن اشهرها :
- Flutter
ويستخدم لغة Dart
- React Native
ويستخدم لغة ( Javascript ) بشكل رئيسي
- Xamarin
ويستخدم لغة C# ( C-Sharp)
لعمل تطبيقات متعددة الانظمة نقوم باستخدام اطر عمل ( Frameworks ) ومن اشهرها :
- Flutter
ويستخدم لغة Dart
- React Native
ويستخدم لغة ( Javascript ) بشكل رئيسي
- Xamarin
ويستخدم لغة C# ( C-Sharp)
والى هنا ينتهي جزء تطبيقات الجوال .
ماذا عن مجال تطبيقات سطح المكتب ؟
تتعدد اللغات المستخدمة في تطبيقات سطح المكتب ويمكن للمبرمج اختيارها بناء على :
- اداء اللغة والاجهزة المستهدفة
- مهمة البرنامج
- القدرات البرمجية للمبرمج نفسه واللغة اللتي يجيدها
ماذا عن مجال تطبيقات سطح المكتب ؟
تتعدد اللغات المستخدمة في تطبيقات سطح المكتب ويمكن للمبرمج اختيارها بناء على :
- اداء اللغة والاجهزة المستهدفة
- مهمة البرنامج
- القدرات البرمجية للمبرمج نفسه واللغة اللتي يجيدها
ومن هذه اللغات :
- C++ ( cpp, c-plus-plus)
- Java
- C# (C-sharp)
- Python
- JavaScript
- Dart
- Swift ( Mac applications )
وقد يكون هنالك المزيد ولكن هذه اشهرها .
مع مراعاة ان مع كل لغة يجب عليك استخدام مكتبات معينة لعرض واجهة المستخدم ( GUI - Graphical User Interface ).
- C++ ( cpp, c-plus-plus)
- Java
- C# (C-sharp)
- Python
- JavaScript
- Dart
- Swift ( Mac applications )
وقد يكون هنالك المزيد ولكن هذه اشهرها .
مع مراعاة ان مع كل لغة يجب عليك استخدام مكتبات معينة لعرض واجهة المستخدم ( GUI - Graphical User Interface ).
ماذا عن مجال تطبيقات الويب ؟ وهو تقريبا الترند في هذا الوقت :
تطبيقات الويب هو اي تطبيق تقوم باستخدامه على شبكة الانترنت
تطبيقات الويب تنقسم ل back-end و front-end
مالفرق بينهما ؟
تطبيقات الويب هو اي تطبيق تقوم باستخدامه على شبكة الانترنت
تطبيقات الويب تنقسم ل back-end و front-end
مالفرق بينهما ؟
ال front-end هو ما يتم عرضه للمستخدم (صفحة الويب), على سبيل المثال عند دخولك لموقع تويتر , انت ترى ان هنالك تغريدات , ازرار اعجاب عند الضغط عليها تتحول للاحمر واعادة تغريد وتسجيل خروج , الى اخره ..
وهذا ما يسمى ( UI ) او ( User interface ) وهو ما يتم عرضه لك ( واجهة المستخدم )
وهذا ما يسمى ( UI ) او ( User interface ) وهو ما يتم عرضه لك ( واجهة المستخدم )
ماذا عن ال back-end ؟
هذا القسم هو ( ماخلف الكواليس ) اي انه يعالج كل العمليات المنطقية التي قد تحصل , على سبيل المثال , عندما تقوم بالضغط على زر الاعجاب , يظهر عندك لون احمر , لكن مالذي يجعلني اعلم ان هناك اعجاب على تغريدتي ؟ ومالذي يقوم بارسال اشعار الي ؟ نعم , ال back-end
هذا القسم هو ( ماخلف الكواليس ) اي انه يعالج كل العمليات المنطقية التي قد تحصل , على سبيل المثال , عندما تقوم بالضغط على زر الاعجاب , يظهر عندك لون احمر , لكن مالذي يجعلني اعلم ان هناك اعجاب على تغريدتي ؟ ومالذي يقوم بارسال اشعار الي ؟ نعم , ال back-end
الباك ايند اوسع من ان اقوم باختصاره بتغريدة او اثنتين , الباك ايند مسؤول ايضا عن تخزين البيانات وادارتها وتحليلها وتوجيهها والتتبع وكثير من الامور , وهو ما يتم اختراقه عادة وليس الفرونت ايند كما يظن البعض .
وبعد ان قمنا بفهم كل قسم , ما هي اللغات المستخدمة بكل قسم ؟
اولا الـ front-end :
- HTML ( لغة تقوم بهيكلة الشكل الذي تراه )
- CSS ( لغة تقوم بتزيين وتحسين الشكل الذي شكلته لغة HTML )
- JavaScript ( لغة تقوم باضافة المؤثرات الحركية عند استخدامها بالفرونت ايند )
اولا الـ front-end :
- HTML ( لغة تقوم بهيكلة الشكل الذي تراه )
- CSS ( لغة تقوم بتزيين وتحسين الشكل الذي شكلته لغة HTML )
- JavaScript ( لغة تقوم باضافة المؤثرات الحركية عند استخدامها بالفرونت ايند )
يمكنك اختصار فهم اللغات السابقة كالتالي :
- HTML (الهيكل العظمي )
- CSS ( اللحم والشكل )
- JavaScript ( العضلات )
- HTML (الهيكل العظمي )
- CSS ( اللحم والشكل )
- JavaScript ( العضلات )
ثانيا الـ Back-End :
تتعدد اللغات في ال back-end وهذه اشهرها :
- JavaScript ( ExpressJS )
- PHP (Laravel, Cake)
- Python (Django, Flask)
- Ruby ( Ruby on Rails )
هذه قائمة بكل لغة واطر العمل الاشهر في هذا المجال , قد يكون هنالك المزيد من اللغات , ولكن هذه الاقوى من وجهة نظري .
تتعدد اللغات في ال back-end وهذه اشهرها :
- JavaScript ( ExpressJS )
- PHP (Laravel, Cake)
- Python (Django, Flask)
- Ruby ( Ruby on Rails )
هذه قائمة بكل لغة واطر العمل الاشهر في هذا المجال , قد يكون هنالك المزيد من اللغات , ولكن هذه الاقوى من وجهة نظري .
نأتي لمجال ال Embedded Systems:
غالبا هذه المجال يستخدم ال compiled languages واشهرها
- C
- C++
ويوجد لغة جديد:
- Rust Programming Language
ملحوظة في حال البحث عنها : يوجد لعبة بنفس الاسم .
وايضا بعد البحث لاحظت ان في لغة تستخدم للانظمة اللي فيها الغلط بمصيبة كالاسلحة:
- Ada
غالبا هذه المجال يستخدم ال compiled languages واشهرها
- C
- C++
ويوجد لغة جديد:
- Rust Programming Language
ملحوظة في حال البحث عنها : يوجد لعبة بنفس الاسم .
وايضا بعد البحث لاحظت ان في لغة تستخدم للانظمة اللي فيها الغلط بمصيبة كالاسلحة:
- Ada
ماذا عن تعلم الآلة ؟
في الحقيقة تعلم الالة ليس سوى خوارزميات رياضيات يتم تنفيذها بلغات البرمجة , وغالبا ما تقوم على الشبكات العصبية الاصطناعية او الخوارزميات الاحصائية وحل معادلات معينة .
اي انه يمكنك استخدام اي لغة برمجة لتنفيذ هذه الخوارزميات
ولكن ...
في الحقيقة تعلم الالة ليس سوى خوارزميات رياضيات يتم تنفيذها بلغات البرمجة , وغالبا ما تقوم على الشبكات العصبية الاصطناعية او الخوارزميات الاحصائية وحل معادلات معينة .
اي انه يمكنك استخدام اي لغة برمجة لتنفيذ هذه الخوارزميات
ولكن ...
اشتهرت لغة python بتفوقها في هذا المجال , ولكن ما لاتعلمه ان لغة بايثون تستخدم مكتبات تم كتابتة بعض منها بلغة c++ لتنفيذ بعض خوارميات تعلم الالة اللتي تتطلب اداء عالي . وعادة ما يتم ربط لغة c++ باي مهمة تتطلب اداء عالي .
الخلاصة : استخدم لغة بايثون فهي القائد في هذا المجال
الخلاصة : استخدم لغة بايثون فهي القائد في هذا المجال
تحليل البيانات ينطبق عليه ما تم مناقشته في تعلم الالة , ولكن مازال القائد هو الـ python
ماذا عن الـ automation scripts ؟
باختصار هي اكواد تقوم بتنفيذ مهمات معينة بشكل اوتاماتيكي او عند الحاجة , ويمكنك استخدم عدة لغات ومنها :
- Python
- JavaScript
- Perl
- Ruby
- c++
- Java
وقد تطول القائمة وتتعدد الخيارات
باختصار هي اكواد تقوم بتنفيذ مهمات معينة بشكل اوتاماتيكي او عند الحاجة , ويمكنك استخدم عدة لغات ومنها :
- Python
- JavaScript
- Perl
- Ruby
- c++
- Java
وقد تطول القائمة وتتعدد الخيارات
ماذا عن مجال الالعاب ؟
للدخول في مجال الالعاب اماك طريقين , اما ان تقوم ببرمجة محرك العاب من الصفر ويجب ان تكون ملم بالرياضيات والهندسة الفراغية بشكل كبير .
او ان تقوم باستخدام محركات العاب جاهزة تستخدم لغات معينة وهذا ما ستتعرف عليه , يتبع ...
للدخول في مجال الالعاب اماك طريقين , اما ان تقوم ببرمجة محرك العاب من الصفر ويجب ان تكون ملم بالرياضيات والهندسة الفراغية بشكل كبير .
او ان تقوم باستخدام محركات العاب جاهزة تستخدم لغات معينة وهذا ما ستتعرف عليه , يتبع ...
تتعدد محركات الالعاب وتنقسم ما بين العاب 2D او 3D
بعض المحركات تكون موجهة لنوع واحد والبعض الآخر يشمل كلا النوعين ومن اشهر هذه المحركات :
- Godot ( اقوم باستخدامه )
- Unity ( لم اعد استخدمه )
- UnrealEngine ( مالي قده 🤣 )
بعض المحركات تكون موجهة لنوع واحد والبعض الآخر يشمل كلا النوعين ومن اشهر هذه المحركات :
- Godot ( اقوم باستخدامه )
- Unity ( لم اعد استخدمه )
- UnrealEngine ( مالي قده 🤣 )
محركات الالعاب السابقة منها مدفوع ومنها مجاني ومفتوح المصدر بشكل تام .
- Godot ( مجاني ومفتوح المصدر )
- Unity ( متعدد الخطط ومنها المجاني )
- Unreal Engine ( مجاني ويطلب منك نسبة كل ربع سنة عند تخطي الارباح للعبة مليوم دولار )
- Godot ( مجاني ومفتوح المصدر )
- Unity ( متعدد الخطط ومنها المجاني )
- Unreal Engine ( مجاني ويطلب منك نسبة كل ربع سنة عند تخطي الارباح للعبة مليوم دولار )
ما هي اللغات المستخدمة لكل محرك ؟
اولا Godot :
يستاخدم عدة لغات ولكن اللغة الرئيسية GDScript وشبيهة جدا بالبايثون , ويمكنك ايضا استخدام لغات مثل C# و c++
فمثلا عندك جزئية باللعبة تتطلب اداء عالي حتروح لل c# او c++
يمكنك استخدام كل الغات في مشروع واحد .
اولا Godot :
يستاخدم عدة لغات ولكن اللغة الرئيسية GDScript وشبيهة جدا بالبايثون , ويمكنك ايضا استخدام لغات مثل C# و c++
فمثلا عندك جزئية باللعبة تتطلب اداء عالي حتروح لل c# او c++
يمكنك استخدام كل الغات في مشروع واحد .
ماذا عن محرك Unity ?
يستخدم بشكل اساسي لغة C#
يستخدم بشكل اساسي لغة C#
ومحرك Unreal Engine يستخدم لغة c++
ماذا عن مجال اختبار الاختراق ؟
هذا المجال جدا ضخم ويتطلب منك ان تكون ملم بكل ماسبق .
اضافة الى اشياء اخرى مثل ادارة الانظمة والشبكات .
ولكن بشكل مختصر , اشهر اللغات المستخدمة في هذا المجال هي :
- Ruby
- Python
- Perl
- c++
- Java
ولا بد من معرفة لغات الويب ايضا لاستغلالها
هذا المجال جدا ضخم ويتطلب منك ان تكون ملم بكل ماسبق .
اضافة الى اشياء اخرى مثل ادارة الانظمة والشبكات .
ولكن بشكل مختصر , اشهر اللغات المستخدمة في هذا المجال هي :
- Ruby
- Python
- Perl
- c++
- Java
ولا بد من معرفة لغات الويب ايضا لاستغلالها
في النهاية اذا كنت مخطئ او لاحظت معلومة خطأ يرجى تنبيهي .
جل من لايخطئ ولا يسهو .
جل من لايخطئ ولا يسهو .
جاري تحميل الاقتراحات...