VOL4: 30 Software Engineering Concepts In a Nutshell - GitHub Repository
بمناسبة وصولنا لـ 30 ورقة من محتوى (ورقة وقلم) 🥳 واللي فيه بنبسط المفاهيم البرمجية المعقدة من خلال استخدام رسوم توضيحية، حبينا نحتفل معاكوا ونفتح الـ Access للـ 30 ورقة دول ومش بس كده ❗️
ده كمان عملنا GitHub Repository وحطينا فيها الـ 30 ورقة بجودة عالية عشان نشجع الناس تساهم معانا في اثراء المحتوى العربي، وباذن الله تكون من أكبر الـ Repos العربية واللي تسهل للناس فهم المفاهيم البرمجية باللغة العربية. 🚀
الـ Optimistic Locking
يعتبر الـ Locking من أهم الآليات اللي بنعتمد عليها في الـ Databases بشكل أساسي عشان نتحكم في الـ Concurrent Access للبيانات من خلال أكثر من Transactions، فلو كان هناك عدد من الـ Transactions بيحاول يوصل للبيانات دي في نفس الوقت فأكيد هيحصل نتيجة لده تضارب بنسميه Conflicts.
💡
نقدر نتخيل الـ Locking كأنه زي القفل اللي بنقفل بيه على أي حاجة عشان نمنع أي حد من الوصول ليها. فالـ Databases أحيانًا بتحط قفل على الـ Row أو الـ Record لما يكون فيه Transaction شغال عليه عشان تمنع أي حد من الوصول للـ Row ده, اكنه دخل (الحمام وقفل وراه الباب) ..
طب هو ليه اصلا بنحتاج للـ Locking ؟
احنا بنحتاج للـ Locking لإنه بيقدملنا فوايد مهمة زي الـ Data Integrity & Data Consistency ودول من أهم الفوايد اللي بنحصل عليها من الـ Locking .. لإنه من غير Locking ممكن Two Concurrent Transactions يغيروا في قيمة الـ Column الواحد في نفس الوقت وده يسبب مشاكل كتير.
وعلى الرغم من فوايد الـ Locking الا انه بيجي مع تحديات كبيرة وتعقيدات في التعامل معاه، فلازم نكون فاهمينه عشان نقدر نتعامل معاه بشكل فعال.
الـ AI vs. Machine Learning vs. Deep Learning
لسه بنقول فهمنا ChatGPT بيشتغل ازاي طلع لنا Google بـ Gemini, فخلونا نسيب كل ده على جمب ونرجع للأساسيات ونسأل ايه هو الفرق بين الـ AI vs Machine Learning vs Deep Learning ؟
طب هنستفاد إيه اما نتمكن من الأساسيات؟
هنستفاد اننا نحط كل معلومة جديدة في مكانها الصح زي الـ Puzzle وبالتالي نفهم أي تقنية جديدة.
ما هو الذكاء الاصطناعي Artificial Intelligence ؟
الذكاء الاصطناعي هو مصطلح عام شامل لأي تطوير في علوم الحاسب عشان نخلي الحواسيب -بشكل عام أكثر الآلات- تتصرف زي الانسان, وتؤدي نفس مهام الإنسان التي تتطلب ذكاء انساني لتأديتها.
فروح المجال دا قائمة على محاكاة أو تقليد طريقة تفكير الانسان. الفكرة دي ممكن نحققها بطرق كتير في منها طرق تٌبرمج فيها أجزاء كبيرة من عملية التعلم زي ال Rule-Based Models وفي طرق تدخل الإنسان فيها أقل ومش هنحتاج لبرمجة مباشرة لشروط معينة.
الـ Machine Learning
إذن كدا تعلم الآلة – Machine Learning هو نفس الشئ ؟
الـ Overfitting vs. Underfitting
الـ Overfitting والـ Underfitting من أهم المواضيع المرتبطة بتدريب الـ Model في الـ Machine Learning وعشان نفهم الفرق بينهم بشكل كويس هنتناول الموضوع بشكل مختلف وبسيط.
وقت الامتحانات بيكون في أنواع مختلفة من الطلاب، في طالب بيبقى مش مذاكر خالص أو مذاكر أي كلام وده غالباََ بيحل وحش في الامتحان، وفي طالب بيبقى مذاكر كويس وفاهم المنهج وده غالباََ بيحل حلو، وفي طالب تالت مش بيذاكر بس بيجيب امتحانات السنين اللي قبل كدة ويحفظ إجابات الأسئلة اللي فيها، الطالب ده أي سؤال هو حافظ إجابته هيجاوبه صح 100% بس لو جه سؤال جديد مش هيعرف يحله خالص.
الـ Supervised Learning
في الـ Machine Learning عندنا الـ Model ده كإنه هو الطالب اللي بيتعلم وفي مرحلة التدريب بندي الـ Model مجموعة بيانات ونقوله لما كان الـ Input يساوي x الـ Output كان يساوي y كإننا بنديله مجموعة أسئلة والإجابات بتاعتها ( ده نوع من الـ Machine Learning اسمه Supervised Learning).