خلال أكثر من 20 عامًا من عملي كمهندس برمجيات، طُلب مني باستمرار أن أتعلم أشياء معقدة.
في كتابه (العمل العميق Deep Work)، عند الحديث عن اقتصاد المعرفة، كتب المؤلف كال نيوبورت:
“إذا لم تكن قادرًا على التعلم، فلن تنجح.”
تصدر لغات برمجة ومنصات جديدة كل يوم، وتتطلب المشاريع اشتراطات جديدة، وتصدر للمكتبات وأطر العمل إصدارات جديدة. في عالم البرمجيات، الثابت الوحيد هو التغيير. سألني أحد الأصدقاء الذي تولى مؤخرًا منصبًا جديدًا “هل لديك أي نصائح لمساعدتي في تعلم هذه البيئة الجديدة بسرعة؟” عندما أرسلت له بعض الأفكار القوية، وصفها بـ”الذهبية” وشجعني على نشرها ليراها العالم، لذا آمل أن تجدها مفيدة أنت أيضًا.
حدد أهدافك
قسّم كل ما تحاول معرفته إلى حالات الاستخدام. ابدأ بأجزاء صغيرة تستغرق بضع دقائق وابنِ عليها تدريجيًا. على سبيل المثال: “تعلم بيثون” بحر واسع. فتثبيته، وكتابة “أهلًا بالعالم”، وتثبيت التبعية “Dependency” واستخدامها، والقراءة من ملف.. إلخ. جميعها أمور محددة بوضوح، ويسهل معرفة وقت إنهائها، مما يساعد على تعزيز التقدم.
ضع في حسبانك مقدار ما تحتاج لتعلمه قبل إنجاز أي منها. يمكن أن يكون التصنيف ضمن فئات على شاكلة “هذا أمرٌ أحتاج لمعرفة المزيد عنه” و “هذا أمرٌ سأتخطى تفاصيله في الوقت الراهن” مفيدًا. على سبيل المثال، لا أعرف كيفية عمل إدارة تبعية في بايثون Python، لكن يمكنني الاعتماد عليها أثناء العمل وتحقيق تقدّم دون تلك المعرفة.
ابدأ باختبار الأشياء فحسب. قد تكون قلقًا من إفسادك شيئًا ما، ولكن من واقع خبرتي، من الصعب جدًا فهم الحواسيب! استخدم نماذجك العقلية لتخمين كيفية عملها. وإن لم تنجح، فيمكنك التعامل مع رسائل الخطأ آنذاك.
خذ استراحات. إذا كنت تتخبط في مأزق، بكل ما تحمله الكلمة من معنى، فاستمرّ. ولكن إذا وجدت نفسك تفقد التدفق، أو تحيد عن هدفك، أو ترواح مكانك، فامنح عقلك قسطًا من الراحة. إذا حددت أهدافك وفق زيادات صغيرة كل مرة، فيجب أن تكون قادرًا على الابتعاد مع شعور بأنك قد أحرزت بعض التقدم وتمنح عقلك وقتًا كافيًا لمراجعة ما تعلمته.
اقرأ الدليل الكامل، لكن دونما محاولة استيعاب كل شيء
خذ بالمعنى. إذا كنت تتعلم شيئًا ما مستعينًا بالوثائق المنشورة، فاقرأ المقدمة، ثم الفقرة الأولى والأخيرة من كل قسم/فصل ، والجملة الأولى من كل فقرة، جنبًا إلى جنب مع أي عينة تعليمات برمجية متوفرة. وإذا ارتبكت أو ضِعت، فعُد للخلف قليلاً وتعمق حسب الحاجة.
انتبه لوسائل الشرح. يمكن أن تكون وسائل الشرح والنصائح مفيدة حقًا. غالبًا ما توفرها المنصات في المواضع التي يسهل فيها ارتكاب الأخطاء.
أنشئ قائمة “للقراءة لاحقًا”. غالبًا ما أجد نفسي فضوليًا حول كيفية عمل جزء ذي صلة بما أعمل عليه، ولكن ما لم تكن ثمة حاجة لمعرفته بصدد إنجاز الخطوة التالية، أؤجل ذلك. أحتفظ بقائمة قراءة في تطبيق مهامي (بالطبع ثمّة الكثير من الحلول المتاحة).
استخدم أدلة البدء“getting started guides”. هذا استثائي الوحيد لقاعدة “خذ بالمعنى” آنفة الذكر. عادةً ما تستهدف أدلة البدء الأشخاص الذين بدأوا للتو رحلة التعلّم وهي مصممة لتزويدك بما يكفي لإنجاز حالة استخدام (Use Case) واحدة فحسب. لا تستخفّ بها: اقرأ كل شيء وطبّق الأمثلة المقدمة.
لا تكتفِ بالمستندات. يمكن أن تكون كل من مقاطع الفيديو والبودكاست والبث المباشر وسائل قيمة لنقل المعلومات. جرّب وسائط مختلفة واعثر على ما يناسبك من بينها. شقّ طريقك نحو المشاهدة/الاستماع بسرعة مُضاعفة (كما يفعل صديقي فرزت أثناء الاستماع للبودكاست)، لكن بسرعة أبطئ للأجزاء الشيقة.
تعلم كيف تتعمق أكثر (قليلًا)
لقد وثقت في موهبتك وبدأت للتو، لكنك واجهت عقبة على الفور. فكيف تتعامل معها؟
ابحث عن رسائل الخطأ. ربما واجه آخرون نفس المشكلة، وغالبًا ما ستجد الحلّ في مواقع الاسئلة والأجوبة (مثل كورا Quora)، أو منتديات المناقشة أو الدعم أو أقسام المشكلات المفتوحة في مواقع استضافة المشاريع مفتوحة المصدر. تأكد من اقتباس رسالة الخطأ وحاول إزالة الأجزاء الخاصة بحالة الاستخدام خاصتك مقابل الأجزاء الأكثر شمولية.
لا تخف من طلب المساعدة
سهّل على الآخرين مساعدتك عبر توثيق المشكلة وبعض السياق ذي الصلة:
? ما الذي تحاول تحقيقه؟
? ما هو السلوك الذي كنت تتوقعه، وماذا لاحظت؟
? ما الحلول التي جرّبتها، فلم تنجح معك؟
لخص ما تعلمته وشاركه – فهذه عادة جيدة لجميع العاملين في مجال المعرفة: أين قضيت الوقت الذي لم يساعدك في الاقتراب من هدفك؟ – ما الذي كان سيسهل عليك عملية التعلم لو عرفته منذ البداية؟ اقتراحات لتسهيل الأمر على المتعلمين في المستقبل.
الخلاصة
التعلم عملية تفاعلية. ابدأ بتحديد أهدافك، وقسمها إلى أجزاء صغيرة. احصل على بعض السياق من خلال قراءة أي مستندات متاحة، ولكن لا تحاول استيعابها في جلسة واحدة. اطلب المساعدة عندما تستنفد حلولك، لكن كن واضحًا جدًا بشأن ما تطلبه. انشئ حلقات تغذية راجعة (feedback loops) لتحسين عملية تعلمك وتعلم الآخرين في المستقبل.
اذهب الآن وتعلم شيئًا جديدًا!
~~~~~~~~~~~~~~~~~~~~~~~~
ترجمة لتدوينة How to Learn Complex Things Quickly: A Guide