عند البرمجة بلغة بايثون، ستصادف مفهومين أساسيين قد يسببان الارتباك للمبتدئين: المتغيرات القابلة للتغيير (Mutable) والمتغيرات غير القابلة للتغيير (Immutable). فهم هذه الفكرة مهم جدًا لتجنب الأخطاء البرمجية الشائعة، خاصة عند التعامل مع القوائم (Lists) والقواميس (Dictionaries).
ما المقصود بـ Mutable و Immutable؟
المتغيرات القابلة للتغيير (Mutable): هي المتغيرات التي يمكن تعديل قيمتها بعد إنشائها، مثل القوائم (Lists) والقواميس (Dictionaries).
المتغيرات غير القابلة للتغيير (Immutable): هي المتغيرات التي لا يمكن تعديل قيمتها بعد إنشائها، مثل السلاسل النصية (Strings) والصفوف (Tuples).
هنا، تم تعديل القائمة الأصلية، مما قد يكون غير متوقع للمبرمجين الجدد!
خاتمة
المتغيرات القابلة للتغيير وغير القابلة للتغيير كلاهما مهمان في بايثون، ويعتمد اختيار أحدهما على متطلبات البرنامج و مدى الحاجة إلى الكفاءة مقابل الأمان. لذلك، من المهم أن يكون لديك فهم واضح لكيفية عملهما لتجنب المشاكل الشائعة في البرمجة.
ما رأيك؟ أيهما تفضل: المتغيرات القابلة للتغيير أم غير القابلة للتغيير؟ ولماذا؟
السلام عليكم ورحمة الله كيف حالك اخي الكريم badr_den عندي سؤال لك لعلي اجد منك الاجابة المفيدة السؤال كالتالي :عندما تحل مسألة او مشروع كبير وصعب او متوسط في الصعوبة بأي لغة وتجد صعوبة في الحل وبعدين تحل المشروع ولكن ببعض النقص والاخطاء وبعدها تشوف الحل الاحترافي الدقيق وتتعلم منه وترجع تكتب المشروع ثانيةً كتقوية للمنطق، ولكن السؤال هو لماذا بعد مرور شهر من حل المشروع لاتسطيع حله بشكل احترافي كما رأيت، وتكون كأنك اول مرة تقابل هذه المسألة اريد منك الاجابة على السؤال بناءً على تجربتك وشكراً لك
وعليكم السلام ورحمة الله وبركاته، أهلاً بيك أخي الكريم.
بص يا صاحبي، اللي بيحصل معاك ده طبيعي جدًا وبيحصل مع ناس كتير، والسبب الأساسي هو “منحنى النسيان” (Forgetting Curve) اللي اكتشفه عالم اسمه “إبنجهاوس”. ببساطة، أي معلومة جديدة بنتعلمها بنبدأ ننسى جزء منها مع مرور الوقت لو ما استخدمناهاش أو راجعناها بشكل منتظم.
ليه بعد شهر بتحس إنك أول مرة تشوف المشروع؟
عدم التكرار والممارسة
لو انت بعد ما حليت المشروع وشفت الحل الاحترافي ما راجعتش عليه أو ما طبقتش أفكاره في مشاريع تانية، عقلك هيبدأ ينسى التفاصيل مع الوقت، وهترجع لنقطة الصفر.
الفهم العميق vs. الحفظ المؤقت
ممكن تكون فهمت الحل الاحترافي وقتها، لكن لو ما عمّقتش فهمك وطبقت نفس الأفكار في سياقات مختلفة، هتلاقي نفسك بتنسى بسرعة. الحل هنا إنك بدل ما تحفظ الكود أو الطريقة، حاول تفهم ليه الطريقة دي اتبعت مش مجرد إزاي تتكتب.
غياب التحديات المستمرة
المهارات البرمجية زي العضلات، لو ما استخدمتهاش، هتضعف. لو بعد ما حليت المشروع ما حاولتش تعمل حاجة مشابهة أو أصعب منه، هتلاقي نفسك بتنسى الخطوات والتكنيكات اللي استخدمتها.
إزاي تتجنب المشكلة دي؟
المراجعة النشطة: بعد ما تحل مشروع، ارجع له بعد أسبوع، وبعد أسبوعين، وبعد شهر، وحاول تحله تاني بدون ما تبص على الحل. التطبيق في سياقات مختلفة: خد نفس المفاهيم اللي تعلمتها وطبّقها في مشاريع تانية. كتابة ملخصات وشروحات لنفسك: اكتب ملاحظات عن الأخطاء اللي وقعت فيها وإزاي حليتها. التدريب المستمر: حتى لو المشروع خلص، حاول تشتغل على تحديات مشابهة عشان تثبت المعلومات في دماغك.
باختصار، النسيان شيء طبيعي، والحل هو إنك تراجع وتطبق بشكل مستمر، ووقتها هتلاقي إنك بتبني خبرة حقيقية مش مجرد حفظ مؤقت.
ولكن اخي الكريم من اين تحصل على المشاريع والمسائل البرمجية لتطوير مهارات حل المشاكل، انا سمعت عن مواقع وغيرها وبحثت في النت ولكنني سأستغرق وقت حتى اعرف ماهي الافضل، هل تعرف مواقع لحل المسائل تنصحني بها وانت مجربها وشكراً لك.