إليك لماذا تعلم كيفية استخدام التعليمات البرمجية أمر صعب للغاية (وماذا تفعل حيال ذلك)

في خريف عام 2014 ، بدأت رحلة طويلة ومؤلمة نحو تعلم تطوير الشبكة.

منذ أن حصلت على وظيفة يومية ، كنت أعرف أن هذه العملية ستستهلك ليالي وعطلات نهاية الأسبوع. ولأنني لم أقم بتدريس أي مهارات تقنية على الإنترنت من قبل ، كنت أدرك أن هناك الكثير من التحديات التي لا يمكن تصورها والتي من شأنها أن تدفع رؤوسهم القبيحة على طول الطريق.

لكن هذا هو ما لم أكن أتوقعه: بعد استخدام مئات البرامج التعليمية المكتوبة والفيديو والتفاعلية ، وجدت أن طرق تدريس الموضوعات الفنية عبر الإنترنت كانت بدائية بشكل لا يصدق ...

حالة دروس الترميز عبر الإنترنت

هناك الآلاف من البرامج التعليمية التي تُكتب سنويًا على HTML و CSS و JavaScript بواسطة مطورين يتمتعون بعشرات الآلاف من سنوات الخبرة الجماعية. قد تعتقد أنه سيكون هناك نظام بيئي غني مع مجموعة متنوعة من أساليب التدريس والأدوات التفاعلية.

ليست الحقيبه، ليست القضيه. بدلاً من ذلك ، تقوم حزم الترميز ببساطة بإعادة حزم تقنيات التدريس في القرن العشرين باستخدام تقنية القرن الحادي والعشرين.

دروس الفيديو تحاكي درسًا في الفصل الدراسي مع لوحة بيضاء. أو قرص DVD تعليمي يمكن أن تشتريه من برنامج Infomercial.

الدروس المكتوبة تتصرف مثل فصول الكتب.

تعمل البرامج التعليمية التفاعلية كمترجمين تم استخدامها في الكليات منذ الثمانينات.

بعد قضاء ليلة بعد ليلة في تعلم مواضيع جديدة وتجربتها في مشاريع اختبار ، اعتقدت أنني يجب أن أفعل شيئًا خاطئًا. لذلك بدأت أسأل الأصدقاء عما اعتقدوا أنه ينبغي علي فعله بطريقة مختلفة.

سألني متخصصو علوم الكمبيوتر الذين تلقوا تعليماً جامعياً: "هل حاولت قراءة المستندات في W3 Schools أو Mozilla Developer Network؟"

قال لي رجال أعمال آخرون: "استسلم الآن. لم أستطع تعلم ذلك عندما حاولت. "

سألني مطورو الويب العصامون: "لماذا تتحدث معي؟ أمامك مئات الساعات المتبقية إذا كنت ترغب في تعلم تطوير الويب. "

قراءة الوثائق. استسلم. ضع في ساعات أكثر. تلك كانت خياراتي.

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

شعرت أنني لم أتقدم حقًا من عادات الدراسة المؤلمة التي كان علي استخدامها في الكلية. لقد كان من المثير للصدمة أن الآلاف من مطوري الويب الجدد يحتاجون إلى إكمال هذه الرحلة.

لذلك ، شرعت في العثور على سبب هذه الدروس الفنية أدت إلى ساعات من الارتباك. قرأت الكتب والأوراق في مجال علم النفس المعرفي ، ونظرت في تكتيكات التفسير الشائعة ، كما كتبت سلسلة من دروس الترميز الخاصة بي.

في ما يلي الأسباب الخمسة التي تجعل الإنترنت مليئًا بالدروس التعليمية الخاصة بالترميز لا يزال غير قادر على توفير دروس مرضية (وكيفية القيام بعمل أفضل).

الخطأ رقم 1: التدريس عن طريق عرض مقتطفات الكود

دعونا نقارن الترميز بالطهي. كلاهما يتطلب منك اتباع مجموعة من التعليمات على النحو الواجب إذا كنت ترغب في إخراج معقول. كلاهما لديه قواعد صارمة مع عدم وجود مجال للخطأ.

لسبب ما ، يحب منشئو البرامج التعليمية وضع مقتطف من الشفرة على الشاشة بسرعة بعد وصف مفهوم لأول مرة. سيقدمون تعليمة سطر بسطر الشفرة ، كما لو أن هذا يكفي.

لا توجد ارتباطات واضحة بين الأسطر المختلفة في مقتطف الشفرة أعلاه ، إلا إذا كنت مطور Node.js وسيط وأنت تعرف كيفية كتابة خادم HTTP.

إذا كنت أحاول تعليمك كيفية صنع الصلصة ، فإن ذلك يعادل عرض صورة لكل مكون من مكونات الصلصة في شكلها المعد دون أن توضح لك كيفية الوصول إلى الصلصة. يمكنك معرفة ذلك ، لكن الأمر سيستغرق الكثير من التجربة والخطأ.

هل هذا مكعبات التوفو؟ بصل مقطع مكعبات؟ مكعبات الشمر؟ كيف كبيرة هي قطع؟ ما الأداة التي يجب علي استخدامها لنردها؟

بالطبع ، إذا كنت تريد أن تصبح طباخًا ماهرًا ، فأنت لا تريد أن تتعلم كيفية تقطيع البصل مرارًا وتكرارًا. أريد أن أعلمك مرة أو مرتين ، وأسمح لك بالتذكر بشكل مستقل كل خطوة صغيرة من البصل الكامل إلى مكعبات.

هذا هو أقرب ما وصلنا إلى فصل الطبخ

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

وذلك لأن عقلك يخزن ذكريات طويلة المدى في الحصين عبر الجمعيات. يحتاج الحصين إلى سياق من أجل تخزين مفهوم جديد مع المفاهيم ذات الصلة. السياق ، في هذه الحالة ، ليس الخطوط المتجاورة للرمز مع التفسيرات الفردية.

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

فيما يلي بعض الطرق التي تمكن عقلك من فهم مكونات خادم HTTP بشكل أفضل:

  1. تشبيه يوضح الأجزاء المختلفة من الكتلة البرمجية ويستخدم العلاقات الحالية لشرح هذه العلاقات الجديدة.
  2. إصدار تفاعلي من مقتطف الشفرة الذي يعرض الحالة المباشرة للتطبيق. عندما تقوم بتغيير الخط ، فإنك تحصل على استجابة فورية بشأن ما حدث لطلبك.

الخطأ رقم 2: عدم مراعاة قاعدة 80/20

إذا قابلت مدرسًا لتطوير الويب أو 10 من مطوري الويب الجدد ، فستسمع عن نفس التحديات مرارًا وتكرارًا. CSS المواقع. يطفو. رد. كانت هذه أكثر التحديات شيوعًا خلال السنوات العشر الماضية.

لسبب ما ، على الرغم من ذلك ، ستظل البرامج التعليمية تعلم كل مفهوم لنفس مقدار الوقت. إذا كان الدرس حول CSS التمهيدي يتكون من 10 دروس ويتوقع أن يستغرق 5 ساعات إجمالية ، فسيكون طول كل درس حوالي 30 دقيقة. يتم تعليم الصغار بسهولة ما دامت الأصعب منها ، على الرغم من وجود إجماع موثق جيدًا حول أصعب الموضوعات!

يشبه تعليم كيفية كسر البويضة مقابل كيفية حذر صدر دجاج ذواقة بعناية. كلاهما على نفس القدر من الأهمية لصنع وجبة كبيرة ، ولكن واحدة تتطلب المزيد من الممارسة. لكن ، قد تضللك للاعتقاد بأنها صعبة على قدم المساواة لأن طهي صدر دجاج يظهر تمامًا من الخارج على أنه مهمة واضحة.

يحل المطورون الجدد هذه المشكلة بطريقتين:

  1. نفترض أنهم هم البكم والاستسلام
  2. راجع برامج تعليمية أخرى حول نفس الموضوع ، والتي ستكون متكررة إلى حد كبير وجودة سيئة في بعض الأحيان. نهج "الرش والصلاة".
  3. انتقل إلى الموضوع التالي مع افتراض أنهم "سوف يكتشفونه لاحقًا"

سيستخدم المعلمون من التخصصات الأخرى تحليل 80/20 لإعادة تركيز جهودهم. هذا يعني أن 20٪ من المفاهيم الجديدة سوف تستهلك 80٪ من وقت تعلم الطالب.

نماذج موضوعات CSS

قد تكون موضوعات 6 CSS ضرورية أيضًا لإنشاء موقع جميل. لكنها ليست سهلة بنفس القدر للتعلم. بعض خلق ساعات من الصراع.

في عالم مثالي ، سيتضمن منهج CSS الكامل مواد 2-3 مرات حول هذه الموضوعات الصعبة المشتركة. وستشمل التشجيع الإيجابي ("الكل يناضل مع هذا!") وفرص ممارسة إضافية. لكن هذا لم يحدث بعد ، ولا أتوقع أن يحدث هذا على الإطلاق بالنسبة لمعظم الخدمات الشعبية.

أنت تعلم أنك عالق في هذا الاختبار عندما تحاول تعلم مفهوم جديد لساعات ، وما زلت لا تستطيع التنبؤ بما سيحدث إذا قمت بتعديل سطر واحد من التعليمات البرمجية. يمكنك استخدام تقنية Feynman لتحديد الموضوعات التي لا تفهمها تمامًا:

  1. اختيار مفهوم
  2. تعليمه لطفل صغير
  3. تحديد الفجوات والعودة إلى مصدر المواد
  4. المراجعة والتبسيط (اختياري)

الخطأ رقم 3: التدريس من منظور مهندس متمرس

تتم كتابة العديد من برامج الترميز التمهيدية بواسطة مهندسين يتمتعون بخبرة تزيد عن 10 سنوات. كيف أعرف؟ لأنني اضطررت إلى إعادة مشاهدة أو إعادة قراءة البرامج التعليمية مرارًا وتكرارًا حتى أدركت ، "لن يشرحوا هذا المفهوم الأساسي! سأحتاج إلى البحث في الإنترنت للحصول على شرح قبل أن أتمكن من المتابعة. "

هذا هو في الواقع تحيز إدراكي موثق جيدًا يسمى "لعنة المعرفة" ، ويحدث في جميع التخصصات الفنية.

مصدر الصورة: CommunicateHealth

إليك ما يعنيه ذلك - عندما يكون لدى المدرسين سنوات من الخبرة في موضوع تقني ، فقد قاموا بالفعل بتكوين فهم عميق للموضوع. نظرًا لأنهم قد أصابهم العمى بالوصلات الموجودة في عقولهم ، فإنهم لا يستطيعون فهم كيف يمكن للمبتدئين عرض المادة الجديدة.

إذا كنت تتذكر الطريقة التي يخزن بها عقلك الذكريات من أعلى ، فهذا في الواقع له أساس بيولوجي! شكل الحصين للمعلم جمعيات غير موجودة في أدمغة الطلاب.

للتغلب على هذا التحدي ، أوصي بأداة مثل FreeCodeCamp التي كتبها مطورو الويب العصامون للآخرين في وضع مماثل! يحتوي على منهج كامل يهدف بشكل خاص إلى مساعدة المتعلمين الموجودين ذاتيا في التغلب على العقبات.

الخطأ رقم 4: تعليم الكود كما هو نظام جديد غامض

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

ولكن لا يوجد إصدار "أساسي" لتعلم تطوير الويب! حتى إذا كنت قد تعلمت R أو Java في الماضي ، فلا يزال هناك العديد من الدروس التي تنقلها.

لذلك ، كيف تأخذ معظم البرامج التعليمية عبر الإنترنت هذا في الاعتبار؟ وهي تتضمن دروسًا تعلم الكود كما لو أنه عالم جديد رائع ، ومليء بخوادم HTTP والمتصفحات الدقيقة والأحداث غير المتزامنة. يتصرفون مثل هذه القطع المعقدة هي الأساس للتعلم المتقدم في وقت لاحق.

تخيل لو تطلب الطهي حاجزاً عالياً للدخول. سنكون جميعا تناول الطعام الميكروويف. يشتمل الطبخ على الحواس الخمس ويجعل الإجراء الصحيح والإجراء الخاطئ سريعًا في عقلك. يتعلم الدماغ البشري أفضل عند إشراك حواس متعددة. يمكن أن يفهم الأنظمة عندما تكون المحفزات المختلفة جيدة مقابل سيئة.

الآن ، أنا أعلم أن هذا يبدو مستحيلاً. نظرًا لأن جميع الشفرات تعمل في متصفح أو على خادم ، فكيف يمكن الاتصال بحواسنا؟ وأنا لا أقصد مشاهدة

تقريب الشاشة أثناء تبديل خصائص CSS الخاصة بها. هذا لا يشجع التعلم.

كنت أعتقد أيضًا أن الأرقام الخيالية من الرياضيات كانت مستحيلة الاتصال بالحواس البشرية. تذكر أنا و i² و i³ و i⁴؟ يبدو وكأنه نظام جديد تحتاج فقط إلى حفظه للتقديم.

بدلاً من ذلك ، يستخدم Kalid Azad من BetterExplained رسمًا بيانيًا بمحور x و y لمساعدتك على تصور البعد "التخيلي". الآن ، يرتبط مفهوم الأرقام التخيلية مباشرة بمفهوم مألوف. لا حاجة التحفيظ.

خطأ # 5: عدم وجود ردود فعل فورية

على السطح ، قد يبدو أن تطوير الويب يحتوي بالفعل على نظام مثالي للتعليقات. بعد كل شيء ، بمجرد تحديث المتصفح أو كتابة "npm start" في وحدة التحكم ، ستحصل على استجابة فورية.

في قياس الطهي ، دعنا نقول أنك تحاول طهي صدر دجاج بشكل مثالي لتناول وجبتك. بدلاً من ذلك ، أنت تحرقه. أين يمكن أن يكون الخطأ؟

  1. شرائح رقيقة جدا في المقام الأول
  2. تحولت الحرارة مرتفعة جدا
  3. ضعه في المقلاة بعد فوات الأوان
  4. تركها في المقلاة لفترة طويلة

منتجك المحترق في النهاية لا يعطيك فكرة عن الخطأ الذي حدث. سوف تساعدك فقط سنوات من الخبرة أو محاولات لا تعد ولا تحصى باستخدام التجربة والخطأ في معرفة ما حدث من خطأ.

إليك رسالة الخطأ التي قد تحصل عليها إذا حدث ذلك في موجه الأوامر:

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

يظهر المرئي أعلاه أنه في الخطوة 2 ، "أعلى درجة حرارة" ، حدث خطأ ما أفسد المخرجات.

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

مرة أخرى ، قد يبدو هذا مستحيلًا في محرر نصوص أو محرر عبر الإنترنت مثل CodePen. لكن مقالة Bret Victor الشهيرة في Learnable Programming قد حددت بالفعل إطارًا كاملًا لمساعدة المبرمجين الجدد في الحصول على تعقيبات على كل سطر من التعليمات البرمجية في البرنامج النصي بمجرد كتابتهم.

أكثر المتعلمين تضررا هم أنفسهم

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

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

مع نمو صناعة التعليم عبر الإنترنت وإجبار المزيد من البالغين على تعلم مهارات جديدة عبر الإنترنت ، أتوقع أن تتحول القوة نحو المتعلمين. سيكون هناك ضغط متزايد على شركات التعليم عبر الإنترنت لتحسين تجربة التعلم نفسها. سيتم مكافأة أفضل استراتيجيات التدريس بمئات الآلاف من المشتركين الذين يدفعون.

-

أحاول إنشاء طريقة جديدة لتطوير الويب. إذا كنت ترغب في الاطلاع على مقاربي التي لا تنسى في البرامج التعليمية ، فتوجه إلى CodeAnalogies.com. وإذا كنت تعتقد أن أشخاصًا آخرين سوف يستمتعون بهذه القصة ، فاعطوها صفعة!