مقالات عملية مرتبة حسب المجال والمستوى، اختر المجال المناسب واقرأ من مستوى مبتدئ إلى محترف.
لو dashboard المشتركين بتاعك بيتقل لما القائمة تعدّي مليون سجل، JavaScript مش بطيئة — انت بتستخدم Array.includes() في مكان مفروض فيه Set.has(). مقال للمبتدئ بمثال دفتر التليفونات بفهرس، تعريف علمي للـ Hash Table من ECMAScript 2025 و V8، كود JavaScript شغّال على Node.js 22، أرقام مقاسة على 5 مليون email (تحسّن 5 مليون ضعف بسطر كود)، الفرق الحقيقي بين Map و Object، 4 trade-offs خفية في الذاكرة و JSON.stringify، ومتى Set مضيعة وقت أصلًا.
لو for loop فيه setTimeout و var، JavaScript بتطبعلك آخر قيمة 5 مرات. السبب اسمه Closure. مقال للمبتدئ بمثال الكاشير، تعريف من ECMAScript Spec، 3 حلول بكود شغّال على Chrome 130، حالة إنتاج كلّفت 18 ألف دولار، 4 trade-offs، ومتى Closure بتسرّب ذاكرة بدون ما تحس.
لو السكربت بتاعك بياخد 50 ثانية يرسل 100 إيميل واحد ورا التاني، Goroutines في Go بتنزّل الزمن لـ 0.6 ثانية بـ 6 سطور كود. مقال للمبتدئ بمثال شبابيك البنك، تعريف علمي للـ M:N scheduler من Go runtime، كود شغّال على Go 1.22، أرقام مقاسة من إنتاج (38 دقيقة → 14 ثانية)، 4 trade-offs حقيقية، ومتى Goroutines مش الحل أصلاً.
Ownership هو السبب اللي بيخلّي Rust أسرع من Go وأأمن من C++ بدون garbage collector. مقال للمبتدئ بمثال الكتاب اللي اشتريته، تعريف علمي من Rust Book و RustBelt POPL 2018، كود قابل للنسخ على Rust 1.78، أرقام مقاسة من Microsoft Security و Discord Engineering، 4 trade-offs، ومتى ما تستخدمش Rust أصلاً.
لو بتكتب class في Python عشان تخزن بيانات بس، إنت بتعيد كتابة __init__ و __repr__ و __eq__ يدويًا. Dataclasses بـ decorator واحد بتولّد كل ده تلقائيًا، فبتنزّل 20 سطر لـ 4 سطور بدون أي خسارة في الوظيفة. مقال للمبتدئ بمثال نموذج طلب الفيزا، تعريف علمي من PEP 557، كود شغّال على Python 3.12، أرقام مقاسة من codebase 18 ألف سطر (توفير 79.5%)، 4 trade-offs حقيقية، ومتى لا تستخدم dataclass أصلاً.
لو الكود بتاعك بيشتغل تمام على بيانات الـ test وبيتعلّق في الإنتاج لمّا الـ DB تكبر، المشكلة مش في السيرفر. اسمها Time Complexity، و Big O Notation هو اللي بيقيسها. مقال للمبتدئ بمثال القاموس وتعريف علمي من Knuth 1976 وكود JavaScript على Node 22 بأرقام مقاسة (الفرق 2,786 ضعف بين O(n²) و O(n))، 3 trade-offs حقيقية، ومتى ما تركّزش على Big O أصلاً.
لو سكربت Python بتاعك بيموت بـ MemoryError لما يجي يقرا ملف لوج 10GB، المشكلة مش في اللاب بتاعك. السبب إنك بتحمّل الملف كله مرة واحدة في الذاكرة بدل ما تقراه سطر ورا سطر. Generators بـ كلمة واحدة (yield) بتنزّل استهلاك الذاكرة من 8.7GB لـ 14MB ثابت. مقال للمبتدئ بمثال عامل فرن العيش، تعريف علمي من PEP 255، كود Python شغّال على 3.12، أرقام مقاسة على ملف CSV 8.4GB، 4 trade-offs، ومتى تختار list عادي بدل Generator.
لو console.log(x) قبل var x = 5 بيرجّع undefined بدون خطأ، ولو غيّرت var لـ let الكود بيقع بـ ReferenceError. الفرق ده اسمه Hoisting. مقال للمبتدئ بمثال حقيبة السفر، تعريف علمي من ECMA-262، كود JavaScript شغّال على Node 22 يوضّح الفرق بين var و let و const و Function Declaration vs Expression، أرقام من فريق حقيقي قلّل bugs الـ scope 41%، 4 trade-offs، ومتى لا تركّز على Hoisting أصلاً.
لو كتبت 0.1 + 0.2 في JavaScript أو Python أو Java وطلعلك 0.30000000000000004، ده مش bug في اللغة. ده سلوك معتمد في معيار IEEE 754 من 1985 وموجود في كل المعالجات. مقال للمبتدئ بمثال قسمة الكيكة، شرح علمي للـ binary representation، ثلاث طرق عملية للتعامل (Decimal، tolerance، integer cents)، حالة إنتاج خسرت 120 جنيه شهرياً، 4 trade-offs حقيقية، ومتى تتجاهل الموضوع أصلاً.