المبرمج طارق
المبرمج طارق

@Zer0xTJ

24 تغريدة 3 قراءة Oct 05, 2023
هذا الثريد حيكون مفيد للناس اللي لها رغبة يكون عندها خلفية عن البرمجة بدون الدخول في تفاصيلها او اللي حابب يدخل في البرمجة بشكل تقني .
راح اشرح فيه مفاهيم البرمجة الاساسية بدون الخوض في الاكواد الفعلية .
بعد هذا الثريد راح يكون دخولك للبرمجة اسهل بكثير ان شاء الله
البرمجة :
هي باختصار توجيه اوامر للاجهزة لتنفيذ مهمات معينة , مثل :
- حل مسائل رياضية
- ارسال معلومات لشخص معين
- تشفير بيانات
- حفظ بيانات لغرض ما
- عرض بيانات للمستخدمين بشكل معين
- تحليل البيانات
- وغيرها الكثير
هذي المهمات في الغالب تجتمع عشان تكوّن ما يسمى ( البرنامج ) أو ( التطبيق ) أو ( المشروع ) , مثل :
- تطبيق تويتر
- تطبيقات الذكاء الاصطناعي
- المدونات
- بعض الاجهزة المنزلية
- المواقع وغيرها
طيب كيف نوجه هذي الأوامر للأجهزة ؟
هذي الاوامر تسمى ( Codes ) , وبالعربي ( شيفرات ) ,
ولكن تقدرو تسموها أكواد للتسهيل😅.
هذي الأكواد يطلق عليها اسم ( اللغات البرمجية ).
الاجهزة تفهم اللغة البرمجية وما تفهم اللغة الطبيعية , ولذلك نتواصل معها من خلال اللغات البرمجية
لغات البرمجة تتنوع وتتعدد وكل لغة لها استخدامها وتتميز بمجال معين .
في لغات تتميز بالاجهزة المنزلية , ولغات تتميز ببرمجة تطبيقات الجوال .. وفي لغات تتميز بتحليل البيانات والذكاء الاصطناعي وغيرها يتميز بتطوير المواقع وغيرها للألعاب.
حتى ان لغة ADA تتميز ببرمجة المعدات الحربية .
بعد ما أخذنا لمحة عن البرمجة ولغات البرمجة .. تعالو نشرح بعض المفاهيم الاساسية اللي تكون في جميع لغات البرمجة تقريبا .
- المفهوم الأول ( انواع البيانات )
أنواع البيانات هي كل ما تراه في التطبيقات من نصوص وأرقام , وملفات وغيرها .
لغات البرمجة لها أنواع بيانات اساسية :
- الاحرف Char
- الارقام Numbers
- القيم المنطقية ( Booleans ) وهي اجابة لسؤال ( هل ) وعادة ما تكون ( صح true ) أو ( خطأ false )
اغلب البرامج ما تكتفي بانواع البيانات الاساسية , ولذلك لغات البرمجة تدعم انشاء أنواع بيانات معقدة اكثر من هذه الانواع الاساسية لاستخدامها في التطبيقات ..
مثلا :
- النص ( هو سلسلة من الأحرف )
مثال اخر نوع بيانات ( سيارة ) تتكون من انواع ثانية :
- اسمها ( نص )
- رقمها ( رقم )
- المفهوم الثاني ( المتغيرات )
عرفنا ان فيه انواع بيانات في البرمجة .. ولكن نحتاج مكان لوضع هذه البيانات فيه عشان نقدر نوصل لهذه البيانات بسهولة.
هنا يجي دور ( المتغيرات ) , المتغيرات هي مجرد صناديق لاحتواء هذي البيانات ..
وبالتالي نقدر نستخدم هذه الصناديق وننقلها لأي مكان
كل صندوق بيكون له اسم خاص فيه وداخله بيانات معينة ..
مثال واقعي :
- صندوق كتب
- صندوق طعام
- صندوق معدات
يمكننا وضع هذه الصناديق في اي مكان متى نشاء
- المفهوم الثالث ( Operators أو العمليات )
هذه العمليات غالبا ما تكون عمليات حسابية مثل جمع وطرح وتقسيم وضرب وغيرها.
وقد تكون عملية ازاحة للـ bit .
بالمناسبة ( الـ bit ) هي اصغر وحدة رقمية في الحاسوب ) وجميع البيانات تتكون من هذا الـ bit .
ولذلك عملية الازاحة تؤثر على القيمة
المفهوم الرابع ( Control Flow أو التحكم بسير البرنامج )
البرنامج البسيط هو عبارة عن ملف .. وهذا الملف فيه الاوامر البرمجية مكتوبة بالترتيب .
طيب هل تنفيذ البرامج هذه يتم بالترتيب ؟
فعليا يتم بطريقتين .. الأولى بالترتيب Sequential
والثانية بناء على شرط معين Conditional
الطريقة الأولى بيتم تنفيذ الأوامر بشكل تسلسلي بسيط ..
اما الطريقة الثانية تقوم بفحص شرط معين ( هل هذا الشرط تحقق ؟ أم لم يتحقق ؟ )
وبناء عليه يتم تنفيذ أمر معين .. ( أيا كان ترتيبه ) سواء في بداية الملف او في نهايته وهذا ما يسمى ( jump ) أو ( القفز في التنفيذ )
- المفهوم الخامس ( التكرار أو Iteration )
هذا المفهوم من اهم المفاهيم اللي لازم أي مبرمج يكون متمكن منه .
وهو عبارة عن تكرار أمر برمجي معين عدد مرات معينة أو تكرار امر معين عند تحقق شرط معين ويتم ايقاف هذا التكرار عند عدم تحقق هذا الشرط
التكرار موجود في جميع التطبيقات اللي نستخدمها , امثلة :
- تكرار عرض التغريدات
- تكرار عرض الحسابات
مثال آخر :
لدينا قائمة طلاب , ونريد حساب عمر كل طالب من خلال تاريخ ميلاده , ليس من المنطقي ان نقوم بهذا يدويا , ولذلك نستخدم التكرار لحساب عمر جميع الطلاب .
- المفهوم السادس ( الدوال أو Functions )
الدوال تتكون من قسمين ( رأس الدالة ) ويحتوي اسمها و ( جسم الدالة ) ويحتوي مجموعة من الأوامر البرمجية .
وعشان ننفذ الأوامر الموجودة في جسم الدالة , نقوم باستدعائها من خلال اسمها .
طيب ليه ممكن نحتاج الدوال ؟
تخيل ان هذي الاوامر تحتاج تنفذها في 10 مواضع في البرنامج .. وبعدين قررت تعدل على هذه الأوامر ..
بدون الدوال راح تعدل في ال 10 مواضع كلها .
ولكن لو قمت باستدعاء الدالة في هذه العشر مواضع , ستقوم بتعديل فقط جسم الدالة اذا احتجت ( موضع واحد )
الدوال لها فوائد كثير ومنها :
- تنظيم الكود
- تسهيل تطوير البرنامج
- تسهيل اصلاح المشاكل
- تسهيل قراءة الكود
- اعادة تنفيذ الاوامر بدون اعادة كتباتها مرارا وتكرارا في كل مرة
- المفهوم السابع ( الخوارزميات )
الخوارزميات هي طريقة لحل مشكلة ما وليست معادلات رياضية بحتة كما يظن البعض.
بالبرمجة .. الخوارميات هي تطبيق واستخدام المفاهيم السابقة بطريقة توصلك لهدفك .
وعشان اكون صريح .. بعض الخوارزمية تتطلب معادلات رياضية معقدة ..
- المفهوم الثامن ( الأخطاء Errors & Exceptions )
الاخطاء البرمجية تنقسم لـ 3 أنواع :
- خطاء في قواعد كتابة الكود Syntax Error :
يظهر لما تخالف قواعد كتابة الاكواد , كل لغة برمجية لها قواعد كتابة للاكواد خاصة فيها وتتشابه في كثير من الاحيان .
- خطأ اثناء تشغيل البرنامج Runtime Error :
وهذا الخطأ يظهر اثناء تشغيل البرنامج , مثال .. عندما يحاول البرنامج فتح ملف غير موجود .
- خطأ منطقي Semantic Error
وهذا الخطأ هو اصعب انواع الاخطاء ,لان البرنامج يعمل .. ولكن النتيجة تكون مختلفة عن النتيجة المتوقعة .
- المفهوم التاسع ( Debugging )
هو باختصار طريقة لتتبع الكود ومعرفة اماكن الأخطاء وحلها .
- المفهوم العاشر ( Best Practice )
هو أفضل طريق أو ( خوارزمية ) لتنفيذ مهمة معينة
اي مفاهيم ثانية اشوف انها مهمة راح يتم اضافتها ان شاء الله ..

جاري تحميل الاقتراحات...