مشكلة التعلّم من الإجابات وحدها
تخيّل أنك تسأل:
لماذا لا يتم ترجمة كود Swift هذا؟
يمكن للذكاء الاصطناعي تقديم النسخة المصححة فورًا.
هذا يحل المشكلة الفورية، لكنه قد لا يحل مشكلة التعلّم نفسها.
إذا انتهى كل سؤال بحل كامل، فقد تصبح معتمدًا تدريجيًا على الأداة دون تطوير قدرتك على تشخيص المشكلات بنفسك.
ماذا يجب أن يفعل المعلّم بالذكاء الاصطناعي؟
يمكن أن تتخذ جلسة التعلّم الجيدة عدة أشكال اعتمادًا على ما يحتاجه المتعلم في تلك اللحظة.
أجب عن سؤال
شرح قواعد Swift البرمجية وواجهات API وميزات اللغة ومفاهيم التطوير بعبارات واضحة.
تعمّق أكثر
اشرح لماذا يعمل شيء معين بدلًا من إظهار ما يجب كتابته فقط.
حافظ على التحدي
قدّم تلميحًا صغيرًا حتى يتمكن المتعلم من حل المشكلة بشكل مستقل.
استكشف الخطأ
اعمل انطلاقًا من الكود الفعلي والتشخيصات بدلًا من تخمين ما حدث بشكل خاطئ.
اختبر الفهم
أنشئ تمارين صغيرة واطلب من المتعلم شرح الحل أو تنفيذه.
افحص الكود الحالي
حدّد الأنماط والمشكلات المحتملة والفرص للتحسين.
اطلب تلميحًا قبل أن تطلب الحل
من أبسط الطرق لاستخدام الذكاء الاصطناعي دون فقدان عملية التعلّم تغيير ترتيب أسئلتك.
بدلًا من:
أصلح هذا الكود من أجلي.
جرّب:
أعطني تلميحًا واحدًا حول ما يجب أن أبحث فيه.
لا تعرض لي الحل النهائي بعد.
إذا كنت لا تزال غير قادر على حله، فاطلب تلميحًا آخر.
بعد ذلك فقط اطلب شرحًا كاملًا أو تنفيذًا كاملًا.
مثال: تعلّم الـOptionals
لنفترض أنك تتعلم Optionals في Swift وواجهت الكود التالي:
var username: String? = "Rami"
print(username.count)
بدلًا من مطالبة المعلّم بإصلاحه فورًا، اسأل:
«اشرح ما الذي يطلب مني الـCompiler التفكير فيه هنا، لكن لا تعطِني الكود المصحح بعد.»
يمكن للمعلّم عندها أن يشرح أن String اختيارية لا تضمن وجود قيمة من نوع String في اللحظة التي يتم استخدامها فيها.
يمكنك الآن استكشاف Optional Binding وOptional Mapping والقيم الافتراضية وطرق أخرى للتعامل مع البيانات الاختيارية.
يجب أن يعتمد تصحيح الأخطاء على السياق
يصبح تصحيح الأخطاء أكثر فائدة عندما يمتلك المعلّم السياق المرتبط بالمشكلة.
على سبيل المثال:
- الكود المصدري.
- خطأ الـCompiler.
- الملف الذي حدث فيه الخطأ.
- الدالة أو الواجهة المحيطة.
- ما توقع المطوّر حدوثه.
- ما حدث فعليًا.
قارن بين هذين السؤالين:
لماذا لا يعمل هذا؟
مقابل:
تظهر لدي في SwiftUI الرسالة التالية:
"Cannot convert value of type 'String' to expected argument type 'Binding'"
وهذا هو الجزء المرتبط من الواجهة:
...
كنت أتوقع أن يقوم TextField بتحديث username.
اشرح السبب أولًا، ثم اقترح أصغر إصلاح ممكن.
السؤال الثاني يعطي المعلّم معلومات كافية للاستدلال حول المشكلة الفعلية.
يجب أن يتذكر المعلّم المشكلة الحالية
نادرًا ما يكون التعلّم سلسلة من الأسئلة غير المرتبطة تمامًا.
قد تبدأ بـ:
ما هي @State؟
ثم تسأل:
لماذا لا تعمل @State في هذا المثال؟
ثم:
هل يمكنك أن تعطيني تمرينًا صغيرًا باستخدام @State؟
هذه الأسئلة مترابطة.
المعلّم الذي يفهم المحادثة الحالية يستطيع إبقاء الشرح عند المستوى المناسب بدلًا من البدء من الصفر في كل مرة.
حلقة التعلّم
يمكن أن تبدو دورة التعلّم العملية بمساعدة الذكاء الاصطناعي هكذا:
لا تستخدم المعلّم بديلًا عن التدريب
قد تمنحك قراءة شرح شعورًا بأنك فهمت شيئًا قبل أن تستخدمه فعليًا.
بعد تعلّم مفهوم ما، اكتب بعض الكود دون مطالبة الذكاء الاصطناعي بتوليد كل سطر.
على سبيل المثال، بعد تعلّم المصفوفات، جرّب:
- أنشئ مصفوفة من المنتجات.
- صفِّ المنتجات حسب السعر.
- رتّبها حسب الاسم.
- حوّلها إلى قيم للعرض باستخدام map.
- اشرح ما الذي تعيده كل عملية.
ثم استخدم المعلّم لمراجعة حلك.
حوّل الشروحات إلى تمارين
يمكن للمعلّم بالذكاء الاصطناعي أيضًا إنشاء تمارين تزداد صعوبتها تدريجيًا.
على سبيل المثال:
أعطني تمرين Swift حول الـstructs.
الصعوبة:
مبتدئ.
المتطلبات:
- لا تعطِني الحل.
- أعطني تلميحًا واحدًا إذا علقت.
- بعد أن أرسل إجابتي، راجعها.
- اشرح الأخطاء بدلًا من إعادة كتابة كل شيء.
هذا يحوّل الذكاء الاصطناعي من مولّد للحلول إلى شريك في التدريب.
تعلّم المفاهيم من خلال مشاريع حقيقية
تصبح Swift أسهل في الفهم عندما ترتبط المفاهيم الفردية بشيء تقوم ببنائه فعليًا.
بدلًا من دراسة Networking كموضوع منفصل، ابنِ تطبيقًا صغيرًا يجلب البيانات من API.
بدلًا من دراسة حالة SwiftUI بشكل منفصل، ابنِ سلة مشتريات أو شاشة إعدادات.
بدلًا من دراسة Codable من خلال الأمثلة فقط، فك ترميز استجابة JSON حقيقية.
يجب أن يشرح المعلّم "لماذا"
فكّر في:
@State private var count = 0
قد تخبرك تجربة تعليمية ضعيفة ببساطة: «استخدم @State للقيم القابلة للتغيير.»
أما الشرح الأقوى فسوف يستكشف:
- من يملك الـstate؟
- لماذا يؤدي تغييرها إلى تحديث الواجهة؟
- ماذا يحدث إذا تم تمرير القيمة إلى واجهة أخرى؟
- متى تكون @Binding مناسبة؟
- كيف يختلف هذا عن متغير محلي عادي؟
النهج الثاني يمنحك نموذجًا ذهنيًا بدلًا من قاعدة تحفظها فقط.
استخدم المعلّم لمراجعة طريقة تفكيرك
يمكنك أيضًا شرح فهمك للذكاء الاصطناعي وطلب منه فحص طريقة استدلالك.
أعتقد أن @Binding تعني أن الواجهة الابنة تملك القيمة
وأن @State تعني أن الواجهة الأب تملكها.
أخبرني أي جزء من فهمي غير صحيح،
لكن لا تعِد كتابة الشرح من أجلي.
هذه تقنية تعليمية قوية لأنك تنتج شرحًا بنفسك بدلًا من الاكتفاء باستهلاك شرح جاهز.
أين يأتي دور SwiftBuilder؟
يجمع SwiftBuilder بين تطوير Swift بمساعدة الذكاء الاصطناعي وسير عمل يركّز على إنشاء والعمل مع كود Swift وSwiftUI. ويمكن استخدام هذا النوع من الأدوات كجزء من عملية تعلّم تربط توليد الكود بفهمه ومراجعته وتجربته.
يصبح الجانب التعليمي أكثر فائدة عندما يرتبط التوليد بالفهم:
- أنشئ مثالًا صغيرًا.
- افحص الكود المُولّد.
- اسأل لماذا يعمل.
- غيّر شيئًا بنفسك.
- قم بترجمته أو معاينته.
- استكشف الأخطاء.
- اطلب تلميحًا.
- حاول مرة أخرى.
هذا يبقي المطوّر مشاركًا في عملية التفكير والاستدلال.
جلسة عملية مع المعلّم
يمكن أن تبدو جلسة مدتها 20 دقيقة هكذا:
ما الذي لا يمكن لمعلّم الذكاء الاصطناعي أن يحل محله
يمكن لمعلّم الذكاء الاصطناعي تسريع التعلّم، لكنه لا يلغي الحاجة إلى التدريب المستقل.
ما زلت بحاجة إلى:
- كتابة الكود.
- قراءة التوثيق.
- فهم واجهات API.
- تصحيح الأخطاء غير المألوفة.
- اتخاذ القرارات المعمارية.
- مراجعة الكود المُولّد.
- بناء المشاريع دون الاعتماد على Prompt مثالي.
الهدف ليس جعل كل مشكلة تختفي. الهدف هو جعل المشكلات الصعبة أسهل في الفهم.
أفضل سؤال يكون أحيانًا "لماذا؟"
إذا أعطاك الذكاء الاصطناعي جزءًا من كود Swift، فلا تتوقف عند:
هل هذا يعمل؟
اسأل:
لماذا يعمل هذا؟
ما الافتراضات التي يعتمد عليها؟
ما الذي قد يتسبب في تعطّله؟
هل توجد طريقة أخرى لتنفيذه؟
ما مفهوم Swift الذي يجب أن أفهمه لكتابة هذا بنفسي؟
هذه الأسئلة تحوّل الكود المُولّد إلى فرصة للتعلّم.
الخلاصة
يكون المعلّم الشخصي بالذكاء الاصطناعي أكثر فائدة عندما يكيّف مقدار المساعدة مع احتياجات المتعلم.
أحيانًا تحتاج إلى الإجابة. أحيانًا تحتاج إلى شرح. أحيانًا تحتاج إلى تلميح واحد. وأحيانًا تحتاج إلى من يفحص الخطأ معك.
سير العمل الأكثر قيمة ليس: اسأل → انسخ → أنهِ.
بل هو: اسأل → افهم → جرّب → أخطئ → صحّح → اشرح → حسّن.