البرمجة بالعربي
مقالات عملية مرتبة حسب المجال والمستوى، اختر المجال المناسب واقرأ من مستوى مبتدئ إلى محترف.
التساوي الخادع في جافاسكريبت: ليه '' == 0 بيطلع true؟
سطر مقارنة واحد بعلامتي تساوي ممكن يكسر منطق تطبيقك من غير ما تعرف. المقال يشرح الفرق بين == و=== للمبتدئ بمثال بسيط ثم علميًا، مع كود شغّال وسيناريو واقعي بالأرقام، والـ trade-off، ومتى تستخدم كل واحد، مع مصادر.
الـ Memoization: خلّي دالتك تفتكر الإجابة بدل ما تحسبها من الأول
نفس الدالة ممكن تشتغل في ثانية أو تتعلّق دقايق، والفرق سطر واحد. المقال يشرح الـ Memoization للمبتدئ بمثال بسيط ثم علميًا، مع كود بايثون شغّال يقيس تحسّن آلاف المرات على فيبوناتشي، الـ trade-off، ومتى لا تستخدمه، مع مصادر رسمية.
ليه القائمة الافتراضية في بايثون بتفضل تتذكر القيم القديمة؟
لو حطيت cart=[] كقيمة افتراضية ولقيت القائمة بتتراكم من استدعاءات قديمة، ده مش باج. المقال يشرح فخ الوسيط الافتراضي القابل للتغيير بمثال بسيط ثم علميًا، مع كود بايثون شغّال، سيناريو واقعي بالأرقام، الحل بـ None، والـ trade-off، ومتى لا تشغل بالك، مع مصادر رسمية.
تعقيد الوقت Big-O للمبتدئ: ليه كودك السريع النهاردة بيقف على مليون صف
كودك بيشتغل في جزء من الثانية على 100 صف، وبيتعلّق دقيقة كاملة على مليون. المقال يشرح Big-O بمثال دليل الهاتف، ثم علميًا، مع كود بايثون يقيس الفرق بالأرقام، والـ trade-off، ومتى متشغلش بالك، مع مصادر.
الـ Recursion للمبتدئ: إزاي الدالة تنادي نفسها من غير ما تعلّق البرنامج
دالتك بتشتغل على أرقام صغيرة وبتضرب RecursionError على مدخل أكبر؟ اعرف السبب بمثال الدمى الروسية ثم علميًا، مع كود بايثون شغّال وأرقام والفرق عن الحلقة.
يونيكود وUTF-8 للمبتدئ: ليه طول النص بيطلع غلط مع الإيموجي والعربي
لو حدّدت طول الاسم بـ name.length ولقيت الإيموجي بياخد خانتين والاسم العربي بيتقص غلط، المشكلة مش في الكود. المقال يشرح الفرق بين البايت ووحدة الترميز ونقطة الرمز بمثال بسيط، ثم علميًا، مع كود JavaScript وPython شغّال، أرقام حقيقية، الحل بـ Intl.Segmenter، trade-offs، ومتى متشغلش بالك، مع مصادر رسمية.
ليه نتيجة الـ API بتطلع undefined؟ async/await للمبتدئ
لو ناديت دالة بتجيب بيانات من API ولقيت النتيجة undefined، المشكلة مش في السيرفر. المقال يشرح السبب بمثال القهوة البسيط ثم علميًا بالـ Promise، مع كود جافاسكريبت شغّال، أرقام حقيقية، الـ trade-off بين await وPromise.all، ومتى لا تستخدمه، مع مصادر رسمية.
ليه 0.1 + 0.2 مش بيساوي 0.3؟ حكاية الفاصلة العائمة
أي حاسبة برمجية بترجّع 0.1 + 0.2 = 0.30000000000000004، وده مش باج. المقال يشرح السبب بمثال ثلث الكوب البسيط، ثم علميًا بالفاصلة العائمة IEEE 754، مع كود Python شغّال، سيناريو فلوس حقيقي بأرقام، الحل الصح، ومتى متشغلش بالك، مع مصادر رسمية.
النسخ السطحي والعميق في بايثون: ليه تعديل النسخة بيغيّر الأصل؟
لو عدّلت نسخة من قائمة في بايثون ولقيت الأصل اتغيّر معاها، ده مش باج. المقال يشرح الفرق بين النسخ السطحي والعميق بمثال Google Docs بسيط، ثم علميًا بالإشارات والذاكرة، مع كود شغّال وسيناريو واقعي على 500 عميل، والـ trade-off في الأداء، ومتى لا تستخدم deepcopy، ومصادر رسمية.