أهلاً بكم في مقال جديد ومفيد.
هناك عادة واحدة كنت أمارسها سببت لي تأخيراً كبيراً في تعلم البرمجة خلال فترة دراستي. لاحظت أن هذه العادة منتشرة عند أغلب الناس في هذه الأيام، بل وانتشرت أكثر بكثير من قبل. وأنا متأكد أنك بنسبة كبيرة تعاني منها في الوقت الحالي. ما هي هذه العادة؟ وكيف قدرت أتخلص منها؟ هذا هو ما سنتحدث عنه في هذا المقال. لنبدأ.
الغلطة التي وقعت فيها
في بداية احتكاكي بالبرمجة في الكلية، وهو حال الكثير من الشباب هذه الأيام، ارتكبت غلطة أو يمكن القول أنني وقعت في فخ أثناء تعلمي للبرمجة، وهو ما يسمى “جحيم الدورات” أو (Tutorial Hell). إذا كانت هذه أول مرة تسمع فيها هذا المصطلح، لا تقلق، سأشرح لك ما هو لتعرف إذا كنت تعاني منه أم لا، وسأخبرك أيضاً كيف تمكنت من التغلب عليه، وما هي النصائح التي أحدثت فارقاً معي للنجاة من الحفرة التي كنت واقعاً فيها.
كانت مشكلتي أنني أشاهد دورات كثيرة جداً، وكنت دائماً حريصاً عندما أجد دورة جديدة أو يرشحها لي أحد أن أحصل عليها أو أحفظها لوقت لاحق. وصلت لدرجة أنني ملأت القرص الصلب الخاص بي بالدورات وأنا أعلم أنني لن أشاهدها أبداً. ولكي تعرف إلى أي مدى كنت آخذ الموضوع بجدية، كنت قد قسمت المجلدات عندي إلى أقسام، وكل قسم يحتوي على الدورات ذات الصلة، وكأنني أنشأت نسخة محلية من موقع “يوديمي” على حاسوبي.
لكن المشكلة الحقيقية لم تكن في تجميع الدورات بحد ذاتها، على الرغم من أن فكرة تحميل الدورات من كل مكان يسبب مشاكل أخرى. مشكلتي كانت أنني كنت أنهي دورة لأبدأ في التي تليها، ثم أنهيها وأبدأ في أخرى، دون أن تلمس يدي لوحة المفاتيح أو أن أقوم بعمل حقيقي أعرف به ما تعلمته، أو أقيس مستوى فهمي، أو أوظف ما تعلمته في مشروع حقيقي.
باختصار، كنت أتعامل مع الدورات على أنها مواد يجب مشاهدتها وإنهائها وفقط. وكان من الممكن أن أشاهد أكثر من دورة تشرح نفس الموضوع، وكنت أقول لنفسي: “ربما الدورة الجديدة تحتوي على معلومات إضافية غير موجودة في الأخرى”. كنت أجد لنفسي ألف مبرر للاستمرار في استهلاك الدورات دون بناء أي شيء بيدي والتعلم من خلال مشروع عملي.
في هذه المرحلة، أدركت أنني واقع في فخ “جحيم الدورات”. وكما وضحت، هو أن أظل أستهلك الدورات وأشاهدها، أنتقل من واحدة إلى أخرى دون تنفيذ مشاريع حقيقية أتمرن عليها. ألا يذكرك هذا بشيء تفعله هذه الأيام؟
المشكلة أن الأمر لا يتوقف عند هذا الحد. قد يصل الأمر إلى درجة التنقل بين لغات البرمجة وتعلم نفس الأساسيات في كل منها، دون استغلال اللغة التي تعلمتها في بناء شيء ما. على سبيل المثال، كنت أذهب لتعلم لغة ++C وأصل إلى مرحلة معينة، ثم أشعر أن الموضوع لا يستهويني وأن هناك شيئاً آخر يفوتني في لغة أخرى، فأعود للبدء من الصفر وأشاهد دورات للغة الثانية. لدرجة أنني في أول سنة فقط من بداية تعلمي للبرمجة، تعلمت ما يقارب أربع أو خمس لغات، ولم أكن أعرف كيف أصنع أي شيء بأي واحدة منها.
لماذا يمثل هذا الأمر مشكلة؟
هناك مصطلح أجنبي يعجبني جداً ويعبر عن هذه الحالة: “You are stuck” أو “أنت عالق”. المشكلة الرئيسية في هذا الوضع هي أنه يمنحك وهماً بأنك تفهم، وهماً بأنك تعرف، وهماً بأنك تتقدم، لكن في الحقيقة، أنت ثابت في مكانك ولا تتحرك على الإطلاق، على عكس ما تظن.
أثبتت الدراسات أن التعلم عن طريق بناء شيء بيديك، وارتكاب الأخطاء، والبحث عن الحلول، وتطبيقها، ثم العودة للاستكمال وتكرار هذه العملية، هو ما ينقلك من مستوى المبتدئ نحو الاحتراف. هذه المشكلة تسبب لك أمرين أساسيين:
- تمنحك وهماً بأنك تتعلم.
- تجعلك عالقاً حرفياً أو “stuck”.
لقد لاحظت هذا فعلاً واختبرته بنفسي. فعندما قضيت سنة كاملة أستهلك الدورات دون أن أفعل شيئاً، شعرت في نهاية السنة أنني لم أتعلم أي شيء على الإطلاق، رغم أنني أنهيت دورات كثيرة جداً. ولكن عندما استيقظت وأدركت خطئي، في فترة أقصر بكثير، أصبحت قادراً على بناء شيء بيدي، بل وتمكنت من إيجاد فرصة عمل في ذلك الوقت.
لماذا نقع في هذا الفخ؟
لكي نعرف العلاج، يجب أن نعرف السبب.
- غياب المجتمع الداعم: لاحظت أن هذا الأمر يحدث ويتكرر كثيراً مع الأشخاص الذين ليس لديهم مجتمع داعم حولهم، أو الذين يتعلمون بمفردهم، أو ليس معهم مرشد (mentor)، أو لا يوجد أي نوع من الدعم. الدعم قد يكون في صور مختلفة، ليس شرطاً أن يكون مرشداً، قد يكون زملاءك، أصدقاءك، أو المعيد في الكلية؛ أي شخص تتعلم معه أو يشرف على عملية تعلمك.
- الخوف والشعور بعدم الاستعداد: عقولنا دائماً تخبرنا أن ما رأيناه ليس كافياً. فتجد صوتاً داخلياً يقول لك: “لا، لن تستطيع فعل هذا الجزء وحدك، أنت بحاجة لمشاهدة درسين أو ثلاثة إضافيين”. كما تشعر أنه يجب عليك الوصول إلى فهم بنسبة 100% في الشيء الذي تدرسه لتكون مؤهلاً لوضع يدك على لوحة المفاتيح والتطبيق عملياً. أنا أتفهم هذا الشعور جيداً، فالإنسان يفضل ألا يفعل شيئاً أو ألا يتخذ خطوة خوفاً من فشل تلك الخطوة.
- عدم وجود هدف أو خطة واضحة: التشتت، تشويش الرؤية، وعدم وجود منهج تسير عليه، هي من أكبر المعوقات والأسباب. الشخص الذي ليس لديه مسار معين يتعلم منه، سيجد نفسه كل فترة يشاهد درساً في موضوع جديد دون أن يربط المواضيع ببعضها، وهذا أكثر ما يمكن أن يجعلك تائهاً.
- المقارنات: هذا الأمر يتكرر كثيراً، خصوصاً بين طلاب الكلية في تجمعاتهم. فتجد شخصاً يقول لآخر: “أنا أذاكر من الدورة الفلانية للمدرس الفلاني”. فيعتقد المستمع أنه طالما فلان يذاكر من هذه الدورة، فلا بد أنها دورة رائعة جداً. فيترك ما في يده ويذهب إلى تلك الدورة، مضيعاً التقدم الذي أحرزه في دورته الأولى، ظناً منه أن هناك شيئاً يفوته، وهذا غير حقيقي.
كيف تعرف أنك واقع في الفخ؟
انظر إلى هذه النقاط الثلاث. إذا كان لديك اثنتان من ثلاث منها، فمرحباً بك في نادي “جحيم الدورات”:
- لا تطبق ما تتعلمه أولاً بأول: أو أن يكون قد مر عليك شهر مثلاً وأنت تتعلم وما زلت حتى الآن لم تبدأ في تطبيق ما تعلمته في مشروع، حتى لو كان صغيراً وبسيطاً جداً، مثل تطبيق آلة حاسبة.
- الحاجة لمشاهدة المزيد: عندما تنهي درساً يشرح موضوعاً معيناً، تشعر أنك بحاجة لمشاهدة درس آخر، أو تقول لنفسك: “دعني أشاهد درساً آخر قبل أن أطبق بيدي”. يمكن تجاوز الأمر إذا كان درساً ثانياً، لكن إذا كان ثالثاً ورابعاً، فهنا تكمن المشكلة.
- تعرف الأساسيات نظرياً فقط: تشعر أنك تعرف الكثير من الأساسيات نظرياً، لكنك لا تعرف كيف توظفها، أو في ماذا نستخدمها بالضبط، أو ما هو موقعها في المشاريع الحقيقية.
إذا وجدت لديك يا صديقي العزيز سمتين فقط من هذه الثلاث، فيجب أن تنظر في الحلول التي سأذكرها لك الآن، والتي نفعت معي شخصياً.
كيف تخرج من هذه الدوامة؟
- توقف عن الخوف من التجربة: هناك مثل يقول: “اضربوا الأعور على عينه، قال هي خربانة خربانة”. يعني لو افترضنا أنك جربت وفشلت، وفشلت فعلاً ولم تستطع عمل تطبيق أو مشروع بما تعلمته، فلماذا أنت قلق؟ هل ستخسر أموالك في البورصة مثلاً لو فشل مشروعك؟ حرفياً، لن يحدث شيء. بل على العكس، حتى لو فشلت، ستتعلم الكثير من التجربة، وفي المرة القادمة التي ستبدأ فيها مشروعاً آخر، ستنجح بفضل تعلمك من أخطائك. ولكن لنفترض أنك لن تتعلم أي شيء (وهي فكرة مستحيلة)، على الأقل أنت لم تخسر شيئاً. إذا كنت في نقطة الصفر، فمبارك، أنت ما زلت فيها. الفشل يا صديقي جزء طبيعي من رحلة التعلم. إذا لم تفشل مرة واثنين، فهناك شيء خاطئ. نادراً ما ينجح شيء من أول مرة. انطلق بثقة ولا تقلق. تخلص من فكرة الخوف من لمس لوحة المفاتيح.
- حدد هدفك من كل دورة: قبل أن تبدأ أي دورة جديدة، اسأل نفسك: “لماذا سأبدأ هذه الدورة؟ ماذا سأتعلم منها؟ وما هي الأشياء التي يجب أن أكون قادراً على فعلها في نهايتها؟”. اكتب هذا في ورقة وعلقها أمامك أو سجلها في ملاحظاتك، وراجعها باستمرار لترى هل تحقق التقدم الذي وضعته لنفسك أم أنك تشاهد الدورة كأنها مسلسل. إذا وجدت نفسك قد قطعت شوطاً في الدورة وما زلت لم تحقق أياً مما كتبته، يجب أن تقف مع نفسك لتعرف أين المشكلة.
- ضع لنفسك مشروعاً: يعجبني جداً نموذج دورة CS50 لأنهم يضعون مشروعاً في نهاية الدورة يجب عليك إنجازه للحصول على الشهادة. كل ما يتم شرحه في الدورة يخدم ما ستنفذه في المشروع النهائي. أنت أيضاً، من المهم أن تفعل لنفسك شيئاً مشابهاً. مثلاً، إذا كنت تتعلم React، يمكنك أن تضع لنفسك هدفاً بإنشاء معرض أعمال (Portfolio) شخصي كامل، بحيث يكتمل جنباً إلى جنب مع الدورة التي تتعلمها. كلما تعلمت شيئاً جديداً في الدورة، اذهب وطبقه في مشروعك، بحيث تكون رحلة تعلمك داخل أي دورة قائمة على المشاريع (Project-Based Learning). الأفضل من ذلك هو البحث عن دورة مصممة بهذه الطريقة من الأساس، ولكن إذا لم تجد، فضع لنفسك مشروعاً والتزم بإنهائه مع الدورة. لا تبدأ دورة جديدة قبل إنهاء مشروع الدورة الحالية. كن صارماً مع نفسك في هذه النقطة بالذات.
- احذف كل الدورات التي لديك: الخطوة التي ساعدتني جداً على الالتزام بما أدرسه حالياً وعدم التشتت هي أنني حذفت كل الدورات التي كانت لدي. الأمر يحتاج إلى جرأة، لأنك ستكون خائفاً وسيصعب عليك المجهود الذي بذلته في تجميع هذه المجموعة التي لا مثيل لها. لكن صدقني، إذا كانت هناك خطوة واحدة حلت لي المشكلة، فقد كانت هذه. أعرف أن قائمة “المحفوظات” لديك مليئة بالدورات والروابط والتجميعات التي لم تنظر إليها من قبل ولن تنظر إليها لاحقاً. فاحذف كل شيء وابدأ من جديد. لا تنظر إلا إلى ما بين يديك الآن. وكلما شعرت برغبة في تحميل دورة جديدة قبل إنهاء الحالية، تذكر أن أكثر ما يسبب لك التشتت هو هذه الحركة بالذات.
تخيل قائمة الدورات لديك كغرفة ترمي فيها الأشياء باستمرار. مع مرور الوقت وتراكم هذه الأشياء، تصبح فرصة أن تدخل لتبحث فيها عن شيء لتتعلم منه صفراً. وإذا لم تصدقني، اسأل زملاءك: “متى كانت آخر مرة فتحت فيها الدورات الكثيرة التي حملتها أو حفظتها؟”. الإجابات ستريك كم أن هذا الأمر لا فائدة منه.
خلاصة القول
تعلم عن طريق الفعل، لا عن طريق الاستماع فقط. خذ خطوة جادة نحو تمرين يديك وبناء المشاريع، ولا تظل عالقاً. تذكر أن كل المحاولات تستحق التجربة، ولا تخف أبداً من أن تكتب الكود بيدك، حتى لو كنت متأكداً مليون في المئة أنك لن تنجح.
من الجيد أن تتعلم من الدورات، والأفضل منه أن تتعلم من دورات قائمة على المشاريع (Project-Based Learning). والأفضل من كل ذلك هو أن تتعلم وأنت تتمرن وتكتب بيدك، وترتكب الأخطاء وتبحث عن حلها. هذه هي أكثر طريقة ستعلمك.
نراكم في مقال جديد، ودمتم سالمين.