إيه اللي ٥٠+ مطوّر علّموهولي عن تدريس البرمجة
بعد ٣ bootcamps حكومية وتدريب أكتر من ٥٠ مطوّر، الأنماط واضحة — إيه اللي بيعثّر الناس، إيه اللي بيسرّع التعلم، وإزاي الـ AI غيّر الفصل.

وقفت قدام أكتر من ٥٠ مطوّر في ٣ bootcamps حكومية. بعضهم جه خايف من الكود. وبعضهم جه واثق أكتر من اللازم. الاتنين علّموني حاجات.
الـ bootcamps دي كانت جزء من برنامج مكين في عُمان، بالشراكة مع وزارة النقل. الموضوع كان جاد — المطورين دول بيتدرّبوا لوظائف حقيقية، مش مشاريع هواية. ونسبة التوظيف ٧٥٪ اللي حققناها ما كانتش حظ. كانت أنماط.
هنا اللي اتعلمته من الناس اللي المفروض أنا كنت بعلّمهم.
أكبر فكرة غلط المبتدئين بييجوا بيها
تقريباً كل طالب جديد بيدخل مصدّق نفس الحاجة: البرمجة يعني حفظ syntax.
بييجوا بدفاتر. بيكتبوا كل function signature. بيظلّلوا الكلمات المفتاحية. وأول أسبوعين، اللي بيحفظوا شكلهم متفوقين.
بعدين الأسبوع التالت بييجي. المشاكل بتبقى غامضة. التعليمات بتقول "ابنِ ميزة" بدل "انسخ الكود ده." واللي بيحفظوا بيقفوا — عشان مفيش حاجة تتحفظ. المشكلة جديدة.
أحسن الطلاب ما كانوش اللي حفظوا أسرع. كانوا اللي سألوا "ليه" قبل "إزاي." ليه الـ function دي بترجع promise؟ ليه الـ state بيتدار بالشكل ده؟ ليه أختار PostgreSQL بدل MongoDB هنا؟
الطلاب اللي بيسألوا "ليه" في الأسبوع الأول هم اللي بيحلّوا مشاكل حقيقية في الأسبوع التامن.
٣ أنماط بتتنبأ مين هينجح
بعد ٣ دفعات، بقدر أعرف من الأسبوع التاني مين هيعدّي. مش بسبب الموهبة — بسبب السلوك.
بيبنوا قبل ما يحسّوا إنهم جاهزين
المطورين اللي بدأوا مشاريع جانبية في الأسبوع التاني — مشاريع لخبطة، مكسّرة، ناقصة — دايماً تفوّقوا على اللي "ذاكروا أكتر" وستنّوا لحد الأسبوع السادس. بناء حاجة بيجبرك تواجه اللي مش عارفه. المذاكرة بتخلّيك تتجنّبه.
بيعملوا debug بصوت عالي
أقوى الناس في حل المشاكل كانوا بيتكلّموا عن الـ bugs بصوت عالي. حرفياً. "طيب، البيانات جاية من الـ API، بتتخزّن في الـ state، بتترندر في الـ component... بس الـ component بيعمل re-render لما — استنى، الـ dependency array غلط." التحدث عن المشكلة بيكشف فجوة الـ mental model أسرع من التحديق في الشاشة.
بيقرأوا رسائل الخطأ فعلاً
ده بيبان بديهي. مش بديهي. معظم المبتدئين بيشوفوا الـ error وفوراً بيعملوا Google للحاجة كلها، أو بيهلعوا، أو بينادوا المدرّب. اللي بينجحوا بيقرأوا الـ error الأول. رقم السطر، نوع الخطأ، الرسالة. ٨٠٪ من الوقت، الإجابة حرفياً في الـ error.
رسالة الخطأ هي أول معلّم. معظم المبتدئين بيتخطّوها.
٣ أنماط بتتنبأ مين هيتعثّر
Copy-Paste من غير فهم
بيشتغل لحد ما مبيشتغلش. طالب بينسخ authentication flow شغّال من tutorial. بيشتغل ممتاز. بعدين العميل عايز نظام roles مختلف. الطالب بيبصّ على كود مش قادر يعدّله عشان عمره ما فهم بيعمل إيه — بس كان عارف إنه شغّال.
إدمان الـ Tutorials
شفت طلاب خلّصوا ١٠ tutorials ولسه حاسّين إنهم "مش جاهزين" يبنوا حاجة. الـ tutorials بتديك وهم التقدم. إنت بتتبع تفكير حد تاني، مش بتطوّر تفكيرك. الفجوة بين إنك تخلّص tutorial وإنك تبني حاجة من الصفر ضخمة — والطريقة الوحيدة تعدّيها إنك تبدأ تبني.
تخطّي الأساسيات عشان الـ Frameworks
"عايز أتعلم React" أكتر طلب شائع. بس لما أسأل "فاهم JavaScript بيتعامل مع asynchronous code إزاي؟" — سكوت. الـ Frameworks هي abstractions فوق الأساسيات. لو مش فاهم إيه اللي بيتعمله abstraction، مش هتقدر تعمله debug، أو توسّعه، أو تفكّر فيه لما الحاجات تتكسر.
الـ Frameworks بتتغيّر كل سنتين. الأساسيات ما اتغيّرتش من عشرين سنة.
إزاي الـ AI غيّر الفصل بتاعي
لما أدوات الـ AI بقت متاحة، ديناميكية الفصل اتغيّرت في ليلة.
المطورين الـ senior — اللي عندهم أساسيات قوية وتفكير نُظُمي — بقوا أسرع بشكل دراماتيكي. استخدموا الـ AI كمضاعف. عارفين يطلبوا إيه، بيقيّموا الـ output، وبيمسكوا الـ edge cases اللي الـ model فوّتها.
المبتدئين اللي تخطّوا الأساسيات بقوا أكتر اعتمادية. بيولّدوا كود مش قادرين يشرحوه. بيسلّموا features مش قادرين يعملولها debug. السرعة كانت حقيقية، بس الفهم ما كانش.
المهارة الجديدة في فصلي بقت: تقدر تتحقق من اللي الـ AI لسه مديهولك؟ مش "تقدر تكتب كود" — "تقدر تقيّم كود." وده محتاج نفس الأساسيات اللي دايماً بندرّسها، بس بتتطبّق بشكل مختلف.
الـ AI ما ألغاش الحاجة للأساسيات. خلّى الأساسيات هي الفرق بين إنك تستخدم الـ AI وإن الـ AI يستخدمك.
نسبة التوظيف ٧٥٪ — إيه اللي فعلاً نجّحها
الناس بتسأل عن نسبة التوظيف وكأنها خدعة سحرية واحدة. ما كانتش. كانت نظام.
مشاريع من الأسبوع الأول. مش "اتعلّم نظرية ٦ أسابيع بعدين ابنِ حاجة." كل مفهوم كان بيتعلّم من خلال البناء. Authentication؟ ابنِ نظام login. تصميم database؟ صمّم الـ schema لمشروعك. تطوير API؟ ابنِ الـ endpoints اللي الـ frontend محتاجها.
عروض حقيقية لناس حقيقيين. كل bootcamp كان بيخلّص بـ demo day. الطلاب بيقدّموا مشاريعهم لمحترفين في الصناعة ومدراء توظيف وأصحاب قرار حكوميين. الضغط كان مقصود — ده أقرب محاكاة لمقابلة عمل حقيقية.
أصحاب العمل وظّفوا بناءً على الـ portfolios، مش الشهادات. الطلاب اللي اتوظّفوا أسرع ما كانوش اللي جابوا أعلى درجات. كانوا اللي يقدروا يوروا مشروع شغّال، يشرحوا القرارات اللي اتّخذوها، ويتكلّموا عن المشاكل اللي حلّوها. الـ portfolio كان هو الـ CV.
محدّش اتوظّف عشان نجح في كويز. اتوظّفوا عشان بنوا حاجة وقدروا يشرحوا إزاي بتشتغل.
إيه اللي بقوله لكل طالب جديد أول يوم
قبل ما نكتب سطر كود واحد، بقول ده:
"هدف الـ bootcamp ده مش إنك تتعلم تكتب كود. الكود ده أثر جانبي. الهدف إنك تتعلم تفكّر في أنظمة. إزاي الحاجات بتتوصل ببعض. ليه بتتكسر. إزاي تكسّر مشكلة كبيرة لقطع صغيرة قابلة للحل. لو مشيت من هنا بالمهارة دي، هتقدر تتعلم أي لغة، أي framework، أي أداة — عشان هتكون فاهم الـ patterns اللي تحت."
بعد ٣ دفعات، لسه مصدّق كل كلمة فيها.