البرمجة بالعربي
مقالات عملية مرتبة حسب المجال والمستوى، اختر المجال المناسب واقرأ من مستوى مبتدئ إلى محترف.
Closures في JavaScript للمبتدئ: ليه متغيرات الدالة بتفضل حية بعد ما تنتهي
لو شفت دالة JavaScript بترجع دالة تانية لسه بتقرا المتغيرات بعد ما الدالة الأم خلصت، ده مش بَج. ده Closure. مقال للمبتدئ بمثال خزنة البنك، تعريف علمي دقيق لـ lexical scope، كود Node 24 شغّال، استخدام في private state وعدّاد لكل مستخدم، أرقام ذاكرة مقاسة، trade-offs الـ memory leak الكلاسيكي، وحالات لا تستخدمه فيها فعلاً.
Big O للمبتدئ: ليه كودك بيبطأ لما البيانات تكبر
لو كودك بيرد في 30ms على 500 صف وبيقعد 8 ثواني على 50 ألف صف، المشكلة مش السيرفر. المشكلة في Big O بتاع الخوارزمية. شرح للمبتدئ بمثال دفتر التليفون، تعريف علمي دقيق، كود Python شغّال يقارن O(n²) مع O(n)، أرقام timeit مقاسة، trade-offs الذاكرة، وحالات لا تشغل بالك بـ Big O فيها.
Floating Point للمبتدئ: ليه 0.1 + 0.2 ≠ 0.3 في كل لغات البرمجة
لو فتحت Console وكتبت 0.1 + 0.2 وجالك 0.30000000000000004، ده مش غلطة في JavaScript. ده طبيعة الـ Floating Point في كل لغة برمجة. شرح للمبتدئ بمثال المسطرة، تعريف علمي لـ IEEE 754، كود JavaScript و Python شغّال، حلول عملية لمشكلة المقارنة وحسابات النقود، trade-offs، وحالات لا تستخدم فيها decimal libraries.
Event Loop للمبتدئ: ليه console.log بعد setTimeout(0) بيطبع قبله
لو كتبت setTimeout(callback, 0) واتفاجأت إن السطر اللي بعده اتنفذ الأول، المشكلة مش غلطة في الكود. دي طريقة JavaScript الطبيعية. شرح للمبتدئ بمثال الطاهي المنفرد، تعريف علمي دقيق لحلقة الأحداث، كود JS قابل للنسخ، أرقام مقاسة على Node 24، trade-offs، وحالات لا تستخدم فيها setTimeout(0) أصلاً.
Recursion بالعربي للمبتدئ: ليه دالة بتنادي نفسها مش بتدخل في loop لانهائي
لو شفت دالة فيها سطر بيستدعي اسم الدالة نفسها واتلخبطت، Recursion مش معقد. مقال للمبتدئ بمثال دمى ماتريوشكا، تعريف علمي دقيق، كود Python شغّال، أرقام call stack مقاسة، سيناريو شجرة الملفات، trade-offs، ومتى لا تستخدمه فعلاً.
HashMap للمبتدئ: ليه dict بيلاقي قيمة في 0.5 ميكروثانية
لو بحثت في list بمليون عنصر هتنتظر 30ms على الأقل. dict في Python بيرد نفس النتيجة في أقل من ميكروثانية. الفرق ليس CPU، الفرق هيكل بيانات اسمه HashMap. شرح للمبتدئ بمثال دفتر التليفون، تعريف علمي، كود Python شغال، أرقام مقاسة، trade-offs، ومتى لا تستخدمه.
Decorators في Python: حوّل دوالك العادية لأدوات بتقيس وتسجّل تلقائيًا
شرح Decorators في Python بمثال محل القهوة للمبتدئ، تعريف علمي دقيق، كود timer وlogger قابل للنسخ، أرقام مقاسة، trade-offs، ومتى لا تستخدمه فعلاً.
Memoization في Python: @lru_cache بينزّل الزمن من ثواني لميكروثانية
لو دالة Python بتعيد نفس الحساب آلاف المرات، @lru_cache بيخزن المخرجات ويرجّعها في O(1). شرح مع مثال للمبتدئ، تعريف علمي، كود شغّال، أرقام قياس، trade-offs، ومتى ما تستخدمهوش.
Big O Notation للمبتدئين: ليه نفس الكود يشتغل في ثانية على 100 عنصر وساعات على مليون
لو كودك بيتعامل مع 100 عنصر بدون مشاكل وبيتعلق على 100 ألف، المشكلة مش في السيرفر. المشكلة في تعقيد الخوارزمية. شرح Big O للمبتدئ بمثال دفتر التليفونات، تعريف علمي دقيق، كود Python شغّال، أرقام مقاسة، وحالات ما تشغلش بالك بيها فيها.