React ليست هي المشكلة، بل طريقة تعليمها.

اسأل مطورًا مبتدئًا عما يحدث عندما ينقر على زر الإرسال (submit). معظم الناس يفشلون في تقديم إجابة واضحة.

قد يقولون إن هناك استدعاءً لـ API يذهب إلى الخادم (server) وتعود استجابة (response). هذه إجابة سطحية.

اسألهم أسئلة أكثر تحديدًا:

  • كيف يقوم المتصفح بتغليف الطلب (request)؟
  • ما هي طريقة HTTP المستخدمة؟
  • أين تتم عملية المصادقة (authentication)؟
  • كيف يعالج الخادم البيانات قبل وصولها إلى قاعدة البيانات؟

هنا يبدأ الصمت.

المطورون المبتدئون ليسوا كسالى، ولا ينقصهم الموهبة، بل ينقصهم السياق (context).

نحن نعلم التجريدات (abstractions) قبل الأساسيات.

تركز المعسكرات التدريبية (bootcamps) والدروس التعليمية على النتائج السريعة. إنهم يريدون منك بناء ملف أعمال (portfolio) والحصول على وظيفة. ويساعد React في ذلك لأنك ترى النتائج بسرعة.

يرى المتعلمون أطر العمل (frameworks) قبل أن يرو الأنظمة.

  • يتعلمون React قبل HTTP.
  • يتعلمون المكونات (components) قبل الخوادم.
  • يتعلمون إدارة الحالة (state management) قبل قواعد البيانات.

هذا ينتج مطورين يعرفون "ماذا" يفعلون، ولكنهم لا يعرفون "لماذا" يفعلونه.

هذا يؤدي إلى "جحيم الدروس التعليمية" (tutorial hell). تقوم بنسخ الكود من فيديو وتشعر بالإنجاز، ثم تحاول بناء شيء بمفردك فتفشل. لقد خلطت بين الألفة والفهم.

تزيد أدوات الذكاء الاصطناعي من هذه المشكلة. أدوات مثل ChatGPT تساعد في الإنتاجية، لكن الخطر يبدأ عندما يحل الذكاء الاصطناعي محل التفكير بدلاً من دعمه.

كان تصحيح الأخطاء (debugging) صعبًا في السابق. كان عليك قراءة الوثائق (docs) والفشل مرارًا حتى تجد السبب الجذري. ذلك الصراع هو ما بنى عقلك. إذا قمت بتفويض كل مشكلة إلى الذكاء الاصطناعي، فستفقد حكمك الهندسي.

هندسة البرمجيات تتعلق باتخاذ القرارات وفهم المقايضات (trade-offs). لا يمكنك تعلم ذلك من خلال كتابة الأوامر (prompting) وحدها.

لو قمت ببناء منهج دراسي، فسأقوم بالتدريس بهذا الترتيب:

  • HTML/CSS
  • JavaScript fundamentals
  • Browser fundamentals
  • HTTP and APIs
  • Basic back-end concepts
  • Databases
  • Authentication
  • React

بحلول الوقت الذي يصل فيه الطلاب إلى React، سيكونون قد فهموا سبب وجود جلب البيانات (data fetching)، وسيفهمون الآليات الكامنة وراء النقر على الزر.

React ليست هي المشكلة، والذكاء الاصطناعي ليس هو المشكلة.

المشكلة تكمن في المرور عبر الأساسيات بسرعة كبيرة وتوقع أن تملأ الفجوات نفسها تلقائيًا.

هل نحن نعلم الناس كيف يبنون، أم نعلمهم كيف ينسخون دون فهم؟

Source: https://dev.to/franklyn_nmesoma_86940ec9/react-isnt-the-problem-how-we-teach-it-is-38m8