مقالات عملية مرتبة حسب المجال والمستوى، اختر المجال المناسب واقرأ من مستوى مبتدئ إلى محترف.
دالة fib(35) العادية تأخذ 2.1 ثانية و29.8 مليون استدعاء؛ مع Memoization تصير 0.03 مللي ثانية و69 استدعاء فقط. شرح للمبتدئ بمثال موظف الاستقبال، تعريف من ورقة Donald Michie 1968، كود Python شغّال مع lru_cache، أرقام مقاسة على Python 3.11، أربع trade-offs، ومتى لا تستخدمها.
لو بتنقل 4 متغيرات boolean مع بعض في الكود، تقدر تحطهم في رقم واحد. شرح Bitwise و Bitmask للمبتدئ بمثال لوحة مفاتيح الكهرباء، كود JavaScript شغّال، أرقام تخزين حقيقية، trade-offs، ومتى لا تستخدمها.
لو بتدوّر على قيمة جوّه مليون سجل، القائمة العادية بتفحص العناصر واحد واحد. جدول الهاش بيوصّلك للقيمة في خطوة واحدة. شرح للمبتدئين بمثال موظف الأمانات، تعريف علمي من CLRS، كود Python شغّال، وقياس فعلي بيوضّح فرقًا أكتر من 200 ألف ضعف.
لو خدمة autocomplete عندك بتلف على المليون كلمة في كل keystroke، انت بتدفع تكلفة هيكل بيانات غلط. Trie بـ 62 ميجا RAM بيرد في 38 ميكروثانية على نفس الحجم بفرق 6,315 ضعف. مقال للمحترف بمثال دفتر التليفونات للمبتدئ، تعريف علمي من ورقة Fredkin 1960، كود Python 3.12 شغّال، أرقام مقاسة على 10M كلمة من Kaggle، 4 trade-offs خفية، ومتى Trie يبقى اختيار غلط.
لو الكود بيفتح ملفات أو DB connections بـ try/finally في 14 مكان، انت بتعيد 6 سطور حماية في كل مرة وكفاية تنسى finally واحدة عشان السيرفر يبدأ ياكل file descriptors. with statement بيختصرها لسطرين ويضمن غلق المورد حتى مع الـ exception. مقال للمتوسط بمثال حارس الباب للمبتدئ، تعريف من PEP 343، كود Python 3.12 شغّال، أرقام مقاسة من خدمة fintech عربية (187 connection ميت → 0)، 4 trade-offs، ومتى with بيكون اختيار غلط.
لو الدالة بتاعتك بترد في 12 مللي ثانية على 100 صف وبتاخد 47 ثانية على 100,000 صف، السيرفر مش ضعيف — هي خوارزمية O(n²) شغّالة على بيانات بتكبر. مقال للمبتدئ بمثال دفتر التليفونات، شرح علمي من CLRS (Cormen 2009)، 6 أنماط Big O الشائعة مع كود Python شغّال لكل واحد، قياس فعلي يقارن البحث الخطي بـ binary search على مليون عنصر (فرق 95,525 ضعف)، 4 trade-offs خفية في الـ cache locality و amortized cost، ومتى Big O بيكون مضيعة وقت.
لو السكربت بتاعك بيموت بـ MemoryError على ملف 18GB، المشكلة مش في حجم الـ RAM — هي إنك بتحمّل الملف كله قبل ما تشتغل عليه. Python Generators بـ yield بتخلّيك تعالج نفس الـ 18GB بـ 80 ميجا RAM ثابتة، بدون لمس البنية التحتية. مقال للمحترف بمثال خرطوم المياه للمبتدئ، شرح علمي من PEP 255 و PEP 380، كود Python 3.12 شغّال على CSV من Kaggle، أرقام مقاسة (الذاكرة من 14.8GB لـ 78MB، الزمن من Crash لـ 6.4 دقيقة)، 4 trade-offs خفية، ومتى الـ Generator يبقى اختيار غلط.
صندوق البحث اللي بيبعت طلب مع كل حرف بيهدر 90% من طلباته على الفاضي. Debounce و Throttle بيحلّوا ده بسطرين JavaScript. شرح للمتوسط بمثال المصعد والأتوبيس، كود جاهز للنسخ، أرقام توفير حقيقية، 4 trade-offs، ومتى الاتنين يكونوا اختيار غلط.
لو كتبت setTimeout(fn, 0) وفاكرها هتشتغل حالًا، في عندك bug صامت مستنّي وقته. المقال يشرح الـ Event Loop للمتوسط: الفرق بين microtask و macrotask، ليه Promise بيسبق setTimeout، كود يثبت الترتيب، سيناريو واجهة بتتجمد بسبب microtask starvation، 4 trade-offs، ومتى ميهمكش الموضوع أصلًا.