Channel: Mohcin Space
Mohcin Space
لقد قمت بعمل الفورم الخاص بالأسئلة،، مرحبا بأسالتكم :) اسألني أسئلة عن تطوير البرمجيات، التعلم أو التحسن في هذا المجال.. إذا كانت لدي معرفة أو خبرة حول ما سٌألته، فسأجيبك.. إذا كنت أعرف مصدرًا مفيدًا، فسأشير إليه.. وإذا لم أكن أعرف الإجابة، فسأقول إنني لا…
للتذكير لدينا فورم لتلقي الأسئلة لعلها تكون نافعة.
و لم اقرر هذا لقوتي التقنية او احترافي او او... نسأل الله الستر.
لكن قمت بهذا لمشاركة ما اتعلمه و تعلمته من تجارب الدراسة، الاخطاء، طرق التعلم و محاولة استدراك ما فات و اصلاح الفجوات المعرفية.. و و و في مسيرة تقارب ال 8 سنوات الان بكل ما فيها من تقصير و اخطاء و نجاحات بفضل الله عز وجل.
فنسأل الله العلم و العمل و التعليم.
و لم اقرر هذا لقوتي التقنية او احترافي او او... نسأل الله الستر.
لكن قمت بهذا لمشاركة ما اتعلمه و تعلمته من تجارب الدراسة، الاخطاء، طرق التعلم و محاولة استدراك ما فات و اصلاح الفجوات المعرفية.. و و و في مسيرة تقارب ال 8 سنوات الان بكل ما فيها من تقصير و اخطاء و نجاحات بفضل الله عز وجل.
فنسأل الله العلم و العمل و التعليم.
❤2
لكي تطور نفسك في مجال البرمجيات سواءا قبل ال ai أو بعد ال ai.
افتح ال code editor الخاص بك و اكتب برامج وتطبيقات بمختلف الأحجام..
و قم بالاخطاء و اسهر لحلها و هكذا..
اقرأ ما استطعت حول المجال..
و بعدها الاشياء تأتي تباعا.. غير هذا هو فقط كلام لا نفع يأتي من وراءه.
هو تذكير فقط، واللهم انا نسألك هذا.
#programming #softwaredevelopment
افتح ال code editor الخاص بك و اكتب برامج وتطبيقات بمختلف الأحجام..
و قم بالاخطاء و اسهر لحلها و هكذا..
اقرأ ما استطعت حول المجال..
و بعدها الاشياء تأتي تباعا.. غير هذا هو فقط كلام لا نفع يأتي من وراءه.
هو تذكير فقط، واللهم انا نسألك هذا.
#programming #softwaredevelopment
❤5❤🔥1
لمن يستخدمون ادوات ال ai في عملهم اليومي كمطوري برمجيات.. ماهي الادوات التي تستخدمونها في ال:
- coding,
- testing,
- reviewing other's code
- Refactoring
بارك الله في كل من سيرد :)
- coding,
- testing,
- reviewing other's code
- Refactoring
بارك الله في كل من سيرد :)
❤2
كتابة الـ tests في صناعة البرمجيات ليست رفاهية (على الأقل كما كنت أظن سابقًا).
الكود الذي لم يتم اختباره، على الأقل في الـ correct path و الـ wrong path، هو كود قابل بنسبة كبيرة لأن يُنتج أخطاء - كثيرة- bugs مستقبلاً بشكل قطعي.
ناهيك عن الـ nested cases التي من الصعب اختبارها كاملة، لكن على الأقل الـ happy/unhappy path هي ضرورة.
لماذا؟
أولاً لأنك ستختصر على نفسك وقت البحث عن الأخطاء في التغييرات المقبلة. لنفترض أنك ستقوم بتغيير أو إضافة ميزة، غالبًا ستكتب اختبارًا جديدًا، ثم ستقوم بتشغيل جميع الاختبارات. هنا، سيظهر لك غالبًا اختبارات أخرى يجب تحديثها، دون الحاجة لأن تقوم بمراجعة كل واحدة منها بصفة أحادية..
أيضًا كتابة الاختبارات تجعلك تفهم التغييرات التي قمت بها بشكل أعمق، وربما أثناء كتابة اختبار ما، تظهر لك أشياء يجب أن تغيّرها في الكود الذي كتبته و تحاول اختباره.
خلاصةً، الاختبارات ليست رفاهية.. اكتبها حتى لو لم تكن مطلوبة منك، وحتى لو لم تكن هناك عملية تشغيل للاختبارات على السيرفر أو قبل الـ deployment.
الإختبارات ستجعلك مبرمجا أفضل.
#tests #unittests
الكود الذي لم يتم اختباره، على الأقل في الـ correct path و الـ wrong path، هو كود قابل بنسبة كبيرة لأن يُنتج أخطاء - كثيرة- bugs مستقبلاً بشكل قطعي.
ناهيك عن الـ nested cases التي من الصعب اختبارها كاملة، لكن على الأقل الـ happy/unhappy path هي ضرورة.
لماذا؟
أولاً لأنك ستختصر على نفسك وقت البحث عن الأخطاء في التغييرات المقبلة. لنفترض أنك ستقوم بتغيير أو إضافة ميزة، غالبًا ستكتب اختبارًا جديدًا، ثم ستقوم بتشغيل جميع الاختبارات. هنا، سيظهر لك غالبًا اختبارات أخرى يجب تحديثها، دون الحاجة لأن تقوم بمراجعة كل واحدة منها بصفة أحادية..
أيضًا كتابة الاختبارات تجعلك تفهم التغييرات التي قمت بها بشكل أعمق، وربما أثناء كتابة اختبار ما، تظهر لك أشياء يجب أن تغيّرها في الكود الذي كتبته و تحاول اختباره.
خلاصةً، الاختبارات ليست رفاهية.. اكتبها حتى لو لم تكن مطلوبة منك، وحتى لو لم تكن هناك عملية تشغيل للاختبارات على السيرفر أو قبل الـ deployment.
الإختبارات ستجعلك مبرمجا أفضل.
#tests #unittests
👍5👨💻2
خاطرة كتبتها كرد على منشور فيه سؤال عن مسالة "ضاع العمر بعد ال 30، او ال 40، او الخمسين".
-----------------------
المؤمن وقتما استدرك يستدرك عند رب الكون.. الامر فيه سعة و فيه فقه.. و هناك كتاب يتحدث عن هذا من منظور شرعي/عملي اسمه "فقه الاستدراك" لا يحضرني اسم صاحبه الان.
المقياس لفلاح المؤمن في الدنيا هو ان يكون مسلما يحاول ان يطور من نفسه في كل مجالات الحياة بنية لله عز و جل، و ان يحاول تزكية نفسه في محاولة لانتشال المحيطين به بعدها و ان يكون كل امره لله بقدر الإستطاعة، عملا كان، بيتا كان، اسرة كانت و هكذا،، و هلم جرا...
الامر صعب في ظل الحياة المادية التي ابتلينا بها الان، لكن الانسان يجب ان لا يسقط في رفع سقف توقعاته كثيرا، و ان يحاول ان يتعلم في دينه لكي يفهم سنن الله في الكون..
ربما افكاري في هذا التعليق غير مرتبة، لكن اظن ان فكرتي واضحة.
اسأل الله ان يسهل علينا هذا، و يسهل علينا مجاهدة انفسنا في هذا العصر، فكثير مما نقوله هو صعب علينا تطبيقه ايضا، نسال الله الصدق، و نسال الله ان ينتفع شخص ما بهذا التعليق.
بارك الله فيكم و نفع بكم!
#خاطرة
-----------------------
المؤمن وقتما استدرك يستدرك عند رب الكون.. الامر فيه سعة و فيه فقه.. و هناك كتاب يتحدث عن هذا من منظور شرعي/عملي اسمه "فقه الاستدراك" لا يحضرني اسم صاحبه الان.
المقياس لفلاح المؤمن في الدنيا هو ان يكون مسلما يحاول ان يطور من نفسه في كل مجالات الحياة بنية لله عز و جل، و ان يحاول تزكية نفسه في محاولة لانتشال المحيطين به بعدها و ان يكون كل امره لله بقدر الإستطاعة، عملا كان، بيتا كان، اسرة كانت و هكذا،، و هلم جرا...
الامر صعب في ظل الحياة المادية التي ابتلينا بها الان، لكن الانسان يجب ان لا يسقط في رفع سقف توقعاته كثيرا، و ان يحاول ان يتعلم في دينه لكي يفهم سنن الله في الكون..
ربما افكاري في هذا التعليق غير مرتبة، لكن اظن ان فكرتي واضحة.
اسأل الله ان يسهل علينا هذا، و يسهل علينا مجاهدة انفسنا في هذا العصر، فكثير مما نقوله هو صعب علينا تطبيقه ايضا، نسال الله الصدق، و نسال الله ان ينتفع شخص ما بهذا التعليق.
بارك الله فيكم و نفع بكم!
#خاطرة
❤6
الكونستراكتر (constructor) هو method خاصة تُنفذ تلقائيًا في كل مرة تنشئ فيها instance جديد من الكلاس الذي تعمل عليه.
فائدتها الرئيسية هي تجهيز أو تهيئة الأشياء الأساسية مثل الاتصال بقاعدة البيانات أو تعيين قيم ابتدائية للخصائص و ما الى ذلك.
مثال بسيط:
class Database {
public function __construct() {
echo "connection has been established";
}
}
كل ما تعمل instance جديد، الكونستراكتر يشتغل تلقائيًا.
$database = new Database()
السذر البرمجي فوق سيقوم باخراج او طبع:
"connection has been established"
#PHP #SoftwareDevelopment #Fundamentals
فائدتها الرئيسية هي تجهيز أو تهيئة الأشياء الأساسية مثل الاتصال بقاعدة البيانات أو تعيين قيم ابتدائية للخصائص و ما الى ذلك.
مثال بسيط:
class Database {
public function __construct() {
echo "connection has been established";
}
}
كل ما تعمل instance جديد، الكونستراكتر يشتغل تلقائيًا.
$database = new Database()
السذر البرمجي فوق سيقوم باخراج او طبع:
"connection has been established"
#PHP #SoftwareDevelopment #Fundamentals
❤2
أول ما يجب ان تفكر فيه أثناء البدء في عمل ميزة جديدة في نظام ما هو هل هنالك plug-in/package/library/.. يقوم بالحاجة في وقت اقل، دون الحاجة لبناءه من البداية.. لا حاجة لإعادة بناء العجلة.
هذا يحتاج ان تحول عقليتك من coder/programmer الى software developer/engineer.
هنا ستبدأ بالنمو، و التفكير في المشاريع على انها منتجات و البرمجة هي وسيلة لتحقيقها لا العكس.
#Software #mindset #Softwareengineering
هذا يحتاج ان تحول عقليتك من coder/programmer الى software developer/engineer.
هنا ستبدأ بالنمو، و التفكير في المشاريع على انها منتجات و البرمجة هي وسيلة لتحقيقها لا العكس.
#Software #mindset #Softwareengineering
❤6
قراءة و فهم التعليمات البرمجية المكتوبة مسبقا في codebase معين أصعب من كتابة الكود الجديد، و أهم قبل بداية كتابة كود جديد.
ااه و مرهقة جدا، لكن تعلمك الكثييير.
اقرأ الكود بالقدر الذي تود به كتابته، فهما بنفس الاهمية.
ااه و مرهقة جدا، لكن تعلمك الكثييير.
اقرأ الكود بالقدر الذي تود به كتابته، فهما بنفس الاهمية.
👌4👍1
ما هو UUID؟ ولماذا يُستخدم بدلًا من ID العادي؟
الـ UUID هو اختصار لـ Universally Unique Identifier، ويُستخدم لتوليد مُعرّفات فريدة تُستعمل غالبًا بدلًا من الـ ID العادي في قواعد البيانات، خاصة عند استرجاع البيانات عبر طلبات الـ GET يعني في ال retrieving.
مثال:
لدينا جدول في قاعدة البيانات يحتوي على الأعمدة التالية:
posts (id, title, body, created_at, updated_at)
عند استرجاع مقال معين، نرسل عادة طلب GET بالشكل التالي:
site.name/posts/1
هذا يعني أننا نطلب المقال الذي يحمل الـ ID = 1.
هنا قد تتساءل: ما الحاجة لاستخدام UUID؟
السبب الرئيسي لاستخدام UUID هو زيادة الحماية وصعوبة التنبؤ بهوية ال records فقط.
عند استخدام أرقام تسلسلية كـ ID (1، 2، 3...)، يمكن للمهاجم بسهولة تخمين عناوين موارد أخرى (مثلاً: /posts/2، /posts/3...). اذا لم تكن متاحة.. وهذا يُسهل بعض أنواع الهجمات مثل:
- الهندسة الاجتماعية (Social Engineering): كثيرًا ما يكون المستخدم صاحب ID = 1 هو ال admin، وبالتالي يكون هدفًا واضحًا... وهكذا.
- استكشاف غير مصرح به (Unauthorized Enumeration): يستطيع المهاجم استعراض محتوى الموقع أو واجهة API فقط بتغيير الرقم.
لكن عند استخدام UUID، يصبح الرابط على الشكل:
site.name/posts/6f8a9e2c-1d4e-41a2-bb0e-5f2ef3fc29f1
هذا يُصعّب جدًا عملية التخمين أو التلاعب، مما يعزز الأمان العام للموقع او التطبيق.
ملاحظات مهمة:
- ال UUID لا يُعتبر "تشفيرًا"، بل هو معرف غير قابل للتخمين، فقط.
- رغم فوائده الأمنية، ال UUID أكبر حجمًا من الأرقام العادية وقد يكون أبطأ من حيث ال indexing (يمكننا اننتحدث عن هذا مستقبلا ان شاء الله).
- استخدام UUID مفيد خاصة في الـ APIs المفتوحة أو الأنظمة التي تتطلب حماية لهوية ال recourses.
اذا استفدت شارك الموضوع مع معارفك!
الـ UUID هو اختصار لـ Universally Unique Identifier، ويُستخدم لتوليد مُعرّفات فريدة تُستعمل غالبًا بدلًا من الـ ID العادي في قواعد البيانات، خاصة عند استرجاع البيانات عبر طلبات الـ GET يعني في ال retrieving.
مثال:
لدينا جدول في قاعدة البيانات يحتوي على الأعمدة التالية:
posts (id, title, body, created_at, updated_at)
عند استرجاع مقال معين، نرسل عادة طلب GET بالشكل التالي:
site.name/posts/1
هذا يعني أننا نطلب المقال الذي يحمل الـ ID = 1.
هنا قد تتساءل: ما الحاجة لاستخدام UUID؟
السبب الرئيسي لاستخدام UUID هو زيادة الحماية وصعوبة التنبؤ بهوية ال records فقط.
عند استخدام أرقام تسلسلية كـ ID (1، 2، 3...)، يمكن للمهاجم بسهولة تخمين عناوين موارد أخرى (مثلاً: /posts/2، /posts/3...). اذا لم تكن متاحة.. وهذا يُسهل بعض أنواع الهجمات مثل:
- الهندسة الاجتماعية (Social Engineering): كثيرًا ما يكون المستخدم صاحب ID = 1 هو ال admin، وبالتالي يكون هدفًا واضحًا... وهكذا.
- استكشاف غير مصرح به (Unauthorized Enumeration): يستطيع المهاجم استعراض محتوى الموقع أو واجهة API فقط بتغيير الرقم.
لكن عند استخدام UUID، يصبح الرابط على الشكل:
site.name/posts/6f8a9e2c-1d4e-41a2-bb0e-5f2ef3fc29f1
هذا يُصعّب جدًا عملية التخمين أو التلاعب، مما يعزز الأمان العام للموقع او التطبيق.
ملاحظات مهمة:
- ال UUID لا يُعتبر "تشفيرًا"، بل هو معرف غير قابل للتخمين، فقط.
- رغم فوائده الأمنية، ال UUID أكبر حجمًا من الأرقام العادية وقد يكون أبطأ من حيث ال indexing (يمكننا اننتحدث عن هذا مستقبلا ان شاء الله).
- استخدام UUID مفيد خاصة في الـ APIs المفتوحة أو الأنظمة التي تتطلب حماية لهوية ال recourses.
اذا استفدت شارك الموضوع مع معارفك!
❤8
15/30 دقيقة تعلم في اليوم، سواء نظريا او تطبيقيا لمفهوم معين على مدى سنوات و بصفة متكررة و ثابتة في هندسة البرمجيات؛ يجعل منك مبرمجا افضل..
قال سيد الخلق صل الله عليه وسلم: "أحب الأعمال الى الله ادومها و ان قل".
تذكر هذا جيدا في هذا المجال.
#software #softwareengineering #contuniuelearning #learning
قال سيد الخلق صل الله عليه وسلم: "أحب الأعمال الى الله ادومها و ان قل".
تذكر هذا جيدا في هذا المجال.
#software #softwareengineering #contuniuelearning #learning
❤13
Mohcin Space
15/30 دقيقة تعلم في اليوم، سواء نظريا او تطبيقيا لمفهوم معين على مدى سنوات و بصفة متكررة و ثابتة في هندسة البرمجيات؛ يجعل منك مبرمجا افضل.. قال سيد الخلق صل الله عليه وسلم: "أحب الأعمال الى الله ادومها و ان قل". تذكر هذا جيدا في هذا المجال. #software…
و بالمناسبة أكثر من ساعة يوميا/ 4 ساعات اسبوعيا سيؤدي بك الى الاحتراق.. (هذا بناءا على تجارب شخصية، هذا ليس مبنيا على دراسة رسمية)
لذا استمر بأقل القليل..
لذا استمر بأقل القليل..
❤2👍2
عبارة في البرمجيات تريحك كثيرا في معرفة الطريق "Programming is rewriting"
إنها عملية تخيل الحل في ذهنك، ثم كتابته بأي طريقة كانت تقليدية او الكترونية، وبعدها تحويله إلى كود، تقوم بعمل الاختبارات بكل انواعها، تفشل، تبحث، وتعيد المحاولة، و هكذا حتى تصل إلى حل فعّال لمشكلتك او حالتك.
وقد يكون لهذا الحل الذي وصلت اليه مئات الطرق، ويمكن تحسينه بعدة أساليب ربما مئات ايضا.. بما يسمى ال Refactoring
و حتى الكود المُعاد صياغته ليس مثاليًا، و لن يكون،، فدائمًا ما توجد هنالك فرصة لتطوير ذلك الكود.
واصل التعلم، واصل التحسين و التحسن، كلما تطورت، زادت قدرتك على رؤية طرق مختلفة لحل المشكلات وإصلاح الأخطاء.
#Refactoring #codeRefactor #programming #coding
إنها عملية تخيل الحل في ذهنك، ثم كتابته بأي طريقة كانت تقليدية او الكترونية، وبعدها تحويله إلى كود، تقوم بعمل الاختبارات بكل انواعها، تفشل، تبحث، وتعيد المحاولة، و هكذا حتى تصل إلى حل فعّال لمشكلتك او حالتك.
وقد يكون لهذا الحل الذي وصلت اليه مئات الطرق، ويمكن تحسينه بعدة أساليب ربما مئات ايضا.. بما يسمى ال Refactoring
و حتى الكود المُعاد صياغته ليس مثاليًا، و لن يكون،، فدائمًا ما توجد هنالك فرصة لتطوير ذلك الكود.
واصل التعلم، واصل التحسين و التحسن، كلما تطورت، زادت قدرتك على رؤية طرق مختلفة لحل المشكلات وإصلاح الأخطاء.
#Refactoring #codeRefactor #programming #coding
❤7
Forwarded from Creatures مَخلوقَاتٌ
#مقالة 6
#العجز_المتعلم #Learned_helplessness
(1/4). الفيل والقيد The Elephant Rope Phenomenon
يُحكى أن الفيل المراد ترويضه في صغره يُقيَّد بحبلٍ قوي يُربط في ساقه لتقييد حركته ومنعه من الهرب. ومع مرور الوقت ونمو الفيل، يصبح ضخمًا وقادرًا بسهولة على كسر الحبل، لكنه يظل مقيدًا ولا يحاول الهرب.
لأن الفيل تم تكييفه على العجز؛ فالمحاولات الفاشلة المتكررة في البداية زرعت في داخله عدم جدوى المحاولة. فلم يعد القيد حاجزًا ماديًا، بل تحول إلى حاجز نفسي.
(2/4). Seligman’s Dog Studies | The Dog Who Gave Up
وهناك الكثير من التجارب البحثية مع الحيوانات ذات نتيجة مشابهة, أجرى العالمان "مارتن سيلجمان" و"ستيفن ماير" تجربة شهيرة على الكلاب
تم تقسيم الكلاب فيها إلى ثلاث مجموعات:
__المجموعة الأولى: تلقت صدمات كهربائية خفيفة، لكن كان يمكنها إيقافها بمجرد الضغط على لوحة بأنوفها. سرعان ما تعلّمت هذه الكلاب أنها تستطيع إيقاف الصقعات.
__المجموعة الثانية: تلقت نفس الصدمات، لكن اللوحة لم تكن تعمل. مهما حاولت، تعلمت هذه الكلاب شيئًا آخر: أنه لا فائدة من المحاولة فلا شيء سيوقف الصعق.
__المجموعة الثالثة: للمقارنة ( بدون أي تأثير)
ثم بدأت المرحلة الثانية بعد ذلك، وُضعت كل الكلاب في صندوق مقسوم بحاجز قصير يسهل تخطيه. وعند بدء الصدمة، كان القفز إلى الجهة الأخرى كفيلاً بإنهائها.
النتيجة؟
كلاب المجموعة الأولى, التي سبق وتعلمت أنها تستطيع التحكم بالصعق… بحثت عن حل لإيقاف الصقع وقفزت للقسم الآمن.
أما كلاب المجموعة الثانية التي أحست بالعجز في أول تجربة… استلقت بهدوء، تئن،
دون أن تحاول حتى القفز فوق الحاجز. كأنها لم تعد تؤمن بوجود مخرج.
والحل بحسب الباحثين كان بأخذ كلاب المجموعة الثانية وحملهم بأنفسهم فوق السياج مرتين حتى يصدقوا ان هناك مخرج من الصعق
سُمّي هذا التأثير بـ"العجز المُتعلّم"
(3/4). Social Experiment on Learned Helplessness
Charisse Nixon, Ph.D., Developmental Psychologist at Penn State
ولفهم سهولة وقوعنا في العجز المتعلّم في واقعنا الحالي، مررت مؤخراً علي تجربة اجتماعية قصيرة أُجريت في إحدى الجامعات الأميركية. أحببت مشاركتكم مقتطفات من المحادثة التي جرت
قامت الدكتورة الباحثة بتوزيع أوراق على الطلاب، تحتوي كل منها على ثلاث كلمات مكتوبة بأحرف ملخبطة (Anagrams).
وطلبت منهم البدء بترتيب الكلمة الأولى فقط، قائلة:
"عندما تجد الكلمة، ارفع يدك."
بعد لحظات، بدأ البعض برفع أيديهم، فيما بقي البعض الآخر ينظر إلى الورقة دون إجابة.
" لننتقل إلى الكلمة الثانية."
ثم طلبت منهم رفع أيديهم إن تمكنوا من حل الكلمة.
مرة أخرى، بدأ البعض يرفع أيديهم، وآخرون لم يستطيعوا إيجاد الإجابة.
ثم "رتبوا الكلمة الثالثة."
وبعد قليل، طلبت منهم رفع أيديهم إن تمكنوا من حل الكلمة.
وتكرر المشهد: بعضهم رفع يده، والبعض بقي دون إجابة.
كان هناك انقسام واضح إلى مجموعتين:
• مجموعة استطاعت حل الكلمات الثلاث.
• مجموعة لم تستطع حل أي كلمة.
ثم كشفت الباحثة أن أول كلمتين كانتا مختلفتين بين المجموعتين:
المجموعة A حصلت على كلمات قابلة للحل منذ البداية:
• "abt" → tab
• "nomel" → melon
• الكلمة الثالثة للجميع كانت: "" • "cinerama" → american
أما المجموعة B فحصلت على كلمتين مستحيل حلّهما:
ثم نفس الكلمة الثالثة: "cinerama"
لكن بعد عجز المجموعة الثانية في أول مهمتين مستحيلتين، توقف معظمهم عن التفكير في الكلمة الثالثة
ثم سألتهم: كيف كان شعورهم وهم يرون عجزهم أمام الآخرين؟ ولماذا لم يتعرفوا على الكلمة الثالثة، رغم أنها نفسها في المجموعتين؟
وكانت بعض أجوبتهم:
• Jory:
"I felt stupid."
"شعرت أنني غبية."
• Joelle:
"I was even more confused."
"ازداد ارتباكي.
• Chelsea:
"Frustrated."
"كنت محبطة."
"I felt rushed."
"شعرت أنني تحت ضغط."
• Brian:
"By the third word, my confidence was shot."
"عند الكلمة الثالثة، كانت ثقتي بنفسي قد انهارت."
( أحسوا بما سبق لمجرد عجزهم في حل بضع كلمات) !!!
ثم لخصت ما حدث :
"I was able to induce something called learned helplessness in the left side of the room very easily, in about five minutes."
"استطعت أن أُحدث حالة من العجز المتعلم في الجهة اليسرى من الغرفة خلال أقل من خمس دقائق."
(4/4). كلنا عرضة للوقوع فيه، أو حتى لإيقاع الآخرين فيه دون قصد.
فلنرحم أنفسنا ومن حولنا، ولنُركّز على المستطاع الممكن، ونتجنب التعجيز غير المقصود.
ولنفهم عمق تأثير هذا الأمر في نفوسنا، ولنستعن بالله ولا نعجز، ونُردد دائمًا ما علّمنا رسول الله صلى الله عليه وسلم:
اللهم إني أعوذ بك من العجز والكسل.
مصادر:
Learned Helplessness - Dr. Charisse Nixon | YT
Seligman, Maier, Failure to escape traumatic shock. Journal of Experimental Psychology
#العجز_المتعلم #Learned_helplessness
(1/4). الفيل والقيد The Elephant Rope Phenomenon
يُحكى أن الفيل المراد ترويضه في صغره يُقيَّد بحبلٍ قوي يُربط في ساقه لتقييد حركته ومنعه من الهرب. ومع مرور الوقت ونمو الفيل، يصبح ضخمًا وقادرًا بسهولة على كسر الحبل، لكنه يظل مقيدًا ولا يحاول الهرب.
لأن الفيل تم تكييفه على العجز؛ فالمحاولات الفاشلة المتكررة في البداية زرعت في داخله عدم جدوى المحاولة. فلم يعد القيد حاجزًا ماديًا، بل تحول إلى حاجز نفسي.
(2/4). Seligman’s Dog Studies | The Dog Who Gave Up
وهناك الكثير من التجارب البحثية مع الحيوانات ذات نتيجة مشابهة, أجرى العالمان "مارتن سيلجمان" و"ستيفن ماير" تجربة شهيرة على الكلاب
تم تقسيم الكلاب فيها إلى ثلاث مجموعات:
__المجموعة الأولى: تلقت صدمات كهربائية خفيفة، لكن كان يمكنها إيقافها بمجرد الضغط على لوحة بأنوفها. سرعان ما تعلّمت هذه الكلاب أنها تستطيع إيقاف الصقعات.
__المجموعة الثانية: تلقت نفس الصدمات، لكن اللوحة لم تكن تعمل. مهما حاولت، تعلمت هذه الكلاب شيئًا آخر: أنه لا فائدة من المحاولة فلا شيء سيوقف الصعق.
__المجموعة الثالثة: للمقارنة ( بدون أي تأثير)
ثم بدأت المرحلة الثانية بعد ذلك، وُضعت كل الكلاب في صندوق مقسوم بحاجز قصير يسهل تخطيه. وعند بدء الصدمة، كان القفز إلى الجهة الأخرى كفيلاً بإنهائها.
النتيجة؟
كلاب المجموعة الأولى, التي سبق وتعلمت أنها تستطيع التحكم بالصعق… بحثت عن حل لإيقاف الصقع وقفزت للقسم الآمن.
أما كلاب المجموعة الثانية التي أحست بالعجز في أول تجربة… استلقت بهدوء، تئن،
دون أن تحاول حتى القفز فوق الحاجز. كأنها لم تعد تؤمن بوجود مخرج.
والحل بحسب الباحثين كان بأخذ كلاب المجموعة الثانية وحملهم بأنفسهم فوق السياج مرتين حتى يصدقوا ان هناك مخرج من الصعق
سُمّي هذا التأثير بـ"العجز المُتعلّم"
(3/4). Social Experiment on Learned Helplessness
Charisse Nixon, Ph.D., Developmental Psychologist at Penn State
ولفهم سهولة وقوعنا في العجز المتعلّم في واقعنا الحالي، مررت مؤخراً علي تجربة اجتماعية قصيرة أُجريت في إحدى الجامعات الأميركية. أحببت مشاركتكم مقتطفات من المحادثة التي جرت
قامت الدكتورة الباحثة بتوزيع أوراق على الطلاب، تحتوي كل منها على ثلاث كلمات مكتوبة بأحرف ملخبطة (Anagrams).
وطلبت منهم البدء بترتيب الكلمة الأولى فقط، قائلة:
"عندما تجد الكلمة، ارفع يدك."
بعد لحظات، بدأ البعض برفع أيديهم، فيما بقي البعض الآخر ينظر إلى الورقة دون إجابة.
" لننتقل إلى الكلمة الثانية."
ثم طلبت منهم رفع أيديهم إن تمكنوا من حل الكلمة.
مرة أخرى، بدأ البعض يرفع أيديهم، وآخرون لم يستطيعوا إيجاد الإجابة.
ثم "رتبوا الكلمة الثالثة."
وبعد قليل، طلبت منهم رفع أيديهم إن تمكنوا من حل الكلمة.
وتكرر المشهد: بعضهم رفع يده، والبعض بقي دون إجابة.
كان هناك انقسام واضح إلى مجموعتين:
• مجموعة استطاعت حل الكلمات الثلاث.
• مجموعة لم تستطع حل أي كلمة.
ثم كشفت الباحثة أن أول كلمتين كانتا مختلفتين بين المجموعتين:
المجموعة A حصلت على كلمات قابلة للحل منذ البداية:
• "abt" → tab
• "nomel" → melon
• الكلمة الثالثة للجميع كانت: "" • "cinerama" → american
أما المجموعة B فحصلت على كلمتين مستحيل حلّهما:
ثم نفس الكلمة الثالثة: "cinerama"
لكن بعد عجز المجموعة الثانية في أول مهمتين مستحيلتين، توقف معظمهم عن التفكير في الكلمة الثالثة
ثم سألتهم: كيف كان شعورهم وهم يرون عجزهم أمام الآخرين؟ ولماذا لم يتعرفوا على الكلمة الثالثة، رغم أنها نفسها في المجموعتين؟
وكانت بعض أجوبتهم:
• Jory:
"I felt stupid."
"شعرت أنني غبية."
• Joelle:
"I was even more confused."
"ازداد ارتباكي.
• Chelsea:
"Frustrated."
"كنت محبطة."
"I felt rushed."
"شعرت أنني تحت ضغط."
• Brian:
"By the third word, my confidence was shot."
"عند الكلمة الثالثة، كانت ثقتي بنفسي قد انهارت."
( أحسوا بما سبق لمجرد عجزهم في حل بضع كلمات) !!!
ثم لخصت ما حدث :
"I was able to induce something called learned helplessness in the left side of the room very easily, in about five minutes."
"استطعت أن أُحدث حالة من العجز المتعلم في الجهة اليسرى من الغرفة خلال أقل من خمس دقائق."
(4/4). كلنا عرضة للوقوع فيه، أو حتى لإيقاع الآخرين فيه دون قصد.
فلنرحم أنفسنا ومن حولنا، ولنُركّز على المستطاع الممكن، ونتجنب التعجيز غير المقصود.
ولنفهم عمق تأثير هذا الأمر في نفوسنا، ولنستعن بالله ولا نعجز، ونُردد دائمًا ما علّمنا رسول الله صلى الله عليه وسلم:
اللهم إني أعوذ بك من العجز والكسل.
مصادر:
Learned Helplessness - Dr. Charisse Nixon | YT
Seligman, Maier, Failure to escape traumatic shock. Journal of Experimental Psychology
❤5
Creatures مَخلوقَاتٌ
#مقالة 6 #العجز_المتعلم #Learned_helplessness (1/4). الفيل والقيد The Elephant Rope Phenomenon يُحكى أن الفيل المراد ترويضه في صغره يُقيَّد بحبلٍ قوي يُربط في ساقه لتقييد حركته ومنعه من الهرب. ومع مرور الوقت ونمو الفيل، يصبح ضخمًا وقادرًا بسهولة على كسر…
عندما يقول لك شخص ما انك لا تستطيع البرمجة (لا تستطيع اي شيء اخر)، او انك لست ذكيا كفاية، او انك ضعيف في كذا.. تذكر هذا المقال، و اقرأه جيدا.. و تشبعه.
و تذكر انك فقط تحتاج لان تعرف نقاط قوتك و تعززها، و تعرف نقاط ضعفك و تعمل عليها.. و لا تقارن نفسك باحد.
"احرص علي ما ينفعك و استعن بالله و لا تعجز"،
"احب الاعمال الى الله ادومها و ان قل.."
احاديث سيد الخلق و كلام الله، كفيلة بان تصلح ما فات و تعزز ما هو حاصل و هكذا..
و السلام عليكم.
و تذكر انك فقط تحتاج لان تعرف نقاط قوتك و تعززها، و تعرف نقاط ضعفك و تعمل عليها.. و لا تقارن نفسك باحد.
"احرص علي ما ينفعك و استعن بالله و لا تعجز"،
"احب الاعمال الى الله ادومها و ان قل.."
احاديث سيد الخلق و كلام الله، كفيلة بان تصلح ما فات و تعزز ما هو حاصل و هكذا..
و السلام عليكم.
❤4
Mohcin Space
https://www.linkedin.com/posts/%C5%BEiga-benko-a68673151_yesterday-i-watched-ai-fail-in-front-of-15000-activity-7349582970887782400-RtGt?utm_source=share&utm_medium=member_android&rcm=ACoAAA6PPwIBAQxRqfCnsX6egpCWC4PgEE1omkI
يُساعد الذكاء الاصطناعي حقًا من الناحية التقنية (لقد ساعدني شخصيًا) على التفكير بوضوح أكبر (دون عناء التفكير في ال implementation) والبدء في بناء الأشياء دون عناء البحث عن syntax اللغة وما إلى ذلك.. و هذا ربح كبير لانك لن تتذكر جميع ميزات و عيوب اللغة التي تشتغل بها ولن تتذكر جميع ال built-in funtions الخاصة بها.
ال ai صراحة جعلني أكثر إنتاجية، خاصةً عندما يتعلق الأمر بكتابة الكود. ولكنه جعلني أدرك أيضًا مدى صعوبة معرفة الأشياء بعمق.. ومدى اهمية هذه المعرفة العميقة للاشياء.. لاستخدام الذكاء الاصطناعي بفعالية.
ما زلنا بحاجة إلى فهم متين و عميق لأساسيات الأشياء/التقنيات. فحتى مع الذكاء الاصطناعي، مثلا؛ فمع ال ai لا تزال تظهر فجواتي تقنية (حتى في الاستفادة منه). لذا، فإن معرفة الأشياء على المستوى الأساسي لا تزال ضرورية للغاية، (لكن الذكاء الاصطناعي يساعد في التعلم أيضًا، و بسرعة أكبر ).
تنطبق هذه الشكوك/الفجوات التقنية أيضًا على مستوى الشركات.. يساعدنا الذكاء الاصطناعي كشركة أيضًا بلا شك. لكن ما زلنا بحاجة إلى التفكير على المدى الطويل، والأتمتة الذكية، وتعلم كيفية استخدامه كأداة، والتواصل بشكل أفضل بناءً عليه، وسرعةة تنفيذ البرمجيات بشكل أكثر فعالية.
ال ai يتيح سرعة الانتاج، و دقته - اذا كنت فاهما و متمكنا مما تريد بنائه - يساعد ايضا حتى في حالة عدم تمكنك من موضوع معين، فهمو فرصة لاكتشافه و تعلمه بسرعة باستخدم هذه "tools" فهو في الاول و الاخير اداة لا غير.
كلام اقوله لنفسي اولا: انت المهندس و المبرمج اولا لا ال ai،. استخدمه، استفذ منه، تعلمه باستخدامه، و لا تخف.. لا اداة تستتبدل الانسان خصوصا في هندسة البرمجيات.. فهي ليست كود فقط.
و تذكر، ان الله هو مقسم الأرزاق.. اللهم ارزقنا و علمنا و استر عنا.
#AI #software #development #learning
ال ai صراحة جعلني أكثر إنتاجية، خاصةً عندما يتعلق الأمر بكتابة الكود. ولكنه جعلني أدرك أيضًا مدى صعوبة معرفة الأشياء بعمق.. ومدى اهمية هذه المعرفة العميقة للاشياء.. لاستخدام الذكاء الاصطناعي بفعالية.
ما زلنا بحاجة إلى فهم متين و عميق لأساسيات الأشياء/التقنيات. فحتى مع الذكاء الاصطناعي، مثلا؛ فمع ال ai لا تزال تظهر فجواتي تقنية (حتى في الاستفادة منه). لذا، فإن معرفة الأشياء على المستوى الأساسي لا تزال ضرورية للغاية، (لكن الذكاء الاصطناعي يساعد في التعلم أيضًا، و بسرعة أكبر ).
تنطبق هذه الشكوك/الفجوات التقنية أيضًا على مستوى الشركات.. يساعدنا الذكاء الاصطناعي كشركة أيضًا بلا شك. لكن ما زلنا بحاجة إلى التفكير على المدى الطويل، والأتمتة الذكية، وتعلم كيفية استخدامه كأداة، والتواصل بشكل أفضل بناءً عليه، وسرعةة تنفيذ البرمجيات بشكل أكثر فعالية.
ال ai يتيح سرعة الانتاج، و دقته - اذا كنت فاهما و متمكنا مما تريد بنائه - يساعد ايضا حتى في حالة عدم تمكنك من موضوع معين، فهمو فرصة لاكتشافه و تعلمه بسرعة باستخدم هذه "tools" فهو في الاول و الاخير اداة لا غير.
كلام اقوله لنفسي اولا: انت المهندس و المبرمج اولا لا ال ai،. استخدمه، استفذ منه، تعلمه باستخدامه، و لا تخف.. لا اداة تستتبدل الانسان خصوصا في هندسة البرمجيات.. فهي ليست كود فقط.
و تذكر، ان الله هو مقسم الأرزاق.. اللهم ارزقنا و علمنا و استر عنا.
#AI #software #development #learning
❤4
استخدم الـ AI، فمعظم الكود الذي يُدفع للإنتاج حالياً هو AI generated. لكن الكود ال:
Clean,
Reusable,
Maintainable,
Secure,
Self-commented,
يتبع بنية المشروع (Project Architecture)،
يتبع أسلوب كتابة الكود الخاص بالفريق،
يحل مشكلة محددة،
مقبول من قِبل الفريق الداخلي،
يطابق الـ UI prototype والمتطلبات الوظيفية،
سهل الصيانة،
بسيط،
قابل للتعديل بسهولة،
ومُعلّق عليه جيدًا عندما يحتاج ذلك،
...
كل ما سبق مسؤوليتك أنت كمطور/مبرمج، هذا الكود يجب أن تراجعه أنت، تعدّل عليه أنت، تفهمه أنت، تصحّحه أنت، وتقوم بعمل testing له أنت (functional و unit tests). لو فهمت هذا وعملت به، ستحسّن من جودة عملك، وتزيد من إنتاجيتك، وتطوّر من مستواك أيضًا.
*ولا تنسَ أن تتعلّم وتخصص وقتًا للتعلّم (لأنك تحتاجه سواءً بالـ AI أو من دونه).
#coding #programming #softwareEngineering #software #ai
Clean,
Reusable,
Maintainable,
Secure,
Self-commented,
يتبع بنية المشروع (Project Architecture)،
يتبع أسلوب كتابة الكود الخاص بالفريق،
يحل مشكلة محددة،
مقبول من قِبل الفريق الداخلي،
يطابق الـ UI prototype والمتطلبات الوظيفية،
سهل الصيانة،
بسيط،
قابل للتعديل بسهولة،
ومُعلّق عليه جيدًا عندما يحتاج ذلك،
...
كل ما سبق مسؤوليتك أنت كمطور/مبرمج، هذا الكود يجب أن تراجعه أنت، تعدّل عليه أنت، تفهمه أنت، تصحّحه أنت، وتقوم بعمل testing له أنت (functional و unit tests). لو فهمت هذا وعملت به، ستحسّن من جودة عملك، وتزيد من إنتاجيتك، وتطوّر من مستواك أيضًا.
*ولا تنسَ أن تتعلّم وتخصص وقتًا للتعلّم (لأنك تحتاجه سواءً بالـ AI أو من دونه).
#coding #programming #softwareEngineering #software #ai
👍2❤1
HTML Embed Code: