Day 3 / 30 — المشاكل الكبيرة لا وجود لها
المهندس لا يحل المشكلة الكبيرة، بل يفككها إلى أجزاء صغيرة قابلة للفهم والتنفيذ. هذا هو أساس التفكير الهندسي.
30 Day Problem Solving
Day 3 / 30
المرحلة الأولى: كيف ترى المشكلة؟
المشاكل الكبيرة لا وجود لها
إذا أعطيتك مشروع كامل تبنيه من الصفر...
أغلب الناس أول شعور رح يجيهم:
"هاي كبيرة كثير."
لكن خليني أحكيلك فكرة غيّرت طريقة تفكيري بالكامل.
المشاكل الكبيرة غالبًا... مجرد أسماء لمجموعة قرارات.
اللي موجود فعلًا...
هو مجموعة مشاكل صغيرة.
إنت بس لسا شايفها كأنها كتلة واحدة.
ولما تشوفها هيك...
عقلك طبيعي يحس إنها مستحيلة.
وهون يبدأ أكبر خطأ.
تحاول تحل مشكلة...
قبل ما تكتشف ممّ تتكون.
ليش بنخاف من المشاكل الكبيرة؟
لأن الدماغ ما بحب الغموض.
كل ما كانت المشكلة غير واضحة...
كل ما حسيتها أكبر.
لكن أول ما تبدأ تفككها...
فجأة بتكتشف إنك ما عندك مشكلة واحدة.
عندك عشر قرارات صغيرة.
وكل قرار لحاله...
صار مفهوم.
مثال حقيقي
خليني أحكيلك:
"ابنِ متجر إلكتروني."
هاي الجملة لحالها...
بتخوف كثير مبرمجين.
ليش؟
لأنها تبدو كمشكلة واحدة ضخمة.
لكن جرّب تشيل كلمة:
متجر إلكتروني
شو ضل؟
- صفحة تعرض المنتجات.
- صفحة تفاصيل المنتج.
- سلة.
- تسجيل دخول.
- دفع.
- الطلبات.
فجأة...
بنفس اللحظة...
صارت واضحة.
لأنك شفت ممّ تتكون.
هيك يفكر المهندس
المهندس ما بشوف Feature.
ولا Bug.
ولا حتى Requirement.
هو بشوف نظام.
ولما يواجه مشكلة...
ما يسأل:
كيف أحلها؟
أول سؤال عنده:
ممّ تتكون؟
لأنه بعرف إن كل جزء داخل المشكلة...
إله قرار.
وكل قرار...
إله احتمالات.
وكل احتمال...
إله Tradeoff.
لهيك المبرمج اللي يقفز للحل مباشرة...
غالبًا يتخذ قرارات عشوائية.
أما المهندس...
فهو يقلل مساحة الغموض أولًا.
وبعدها يبدأ الحل.
الفكرة اللي غيرت طريقة تفكيري
زمان كنت أعتقد إن المبرمج القوي هو اللي يعرف الحل بسرعة.
اليوم بشوفها بالعكس.
المبرمج القوي هو اللي يعرف كيف يحول المشكلة الكبيرة...
إلى مجموعة قرارات صغيرة.
لأن القرار الصغير...
يمكن تحليله.
مناقشته.
واختباره.
أما المشكلة الكبيرة...
فغالبًا مجرد عنوان.
Mental Model
إذا شعرت إن المشكلة كبيرة...
ابدأ بهذا السؤال:
ممّ تتكون؟
وبعدين اسأل:
ما أول قرار يجب أن أتخذه؟
ثم اسأل:
وما القرار الذي بعده؟
بهذه اللحظة...
أنت رفعت وضوح المشكلة.
والباقي صار سلسلة قرارات.
Task 1
ادخل على أي سؤال في LeetCode أو HackerRank.
أجّل كتابة الكود.
وخلي تركيزك كامل على خطوة واحدة:
اكتب عنوان:
ممّ تتكون هذه المشكلة؟
ثم اكتب 5 أجزاء على الأقل.
إذا ما قدرت توصل لـ 5 أجزاء...
فغالبًا أنت لسا شايفها ككتلة واحدة.
Task 2
ارجع لنفس السؤال.
هاي المرة...
اكتب تحت كل جزء كتبته:
- شو القرار الموجود هون؟
مثال:
إذا كتبت:
اختيار Data Structure
اسأل:
شو الخيارات الموجودة؟
وليش أختار واحد منهم؟
كررها مع كل جزء.
بآخر التمرين...
رح تكتشف إن المشكلة الكبيرة تحولت إلى سلسلة قرارات صغيرة.
وهون يبدأ التفكير الهندسي الحقيقي.
1:1 Mentorship
جاهز تبني طريقة التفكير هاي؟
كل مقال في هاي السلسلة يعطيك Mental Model جديد.
داخل جلسات 1:1 بنطبق هاي النماذج على مشاريع ومشاكل حقيقية، مع مراجعة مباشرة لطريقة تفكيرك والقرارات اللي بتاخذها.
الخلاصة
المشاكل الكبيرة لا تخيف المبرمج.
الغموض هو الذي يخيفه.
وكل مرة تفكك فيها المشكلة...
أنت لا تقترب من الحل فقط.
أنت تبني طريقة تفكير جديدة.
وهذا هو الهدف الحقيقي من هذه السلسلة.