أحاول منذ فترة البدء بتعلم منهج OSSU لكن يمنعني التسويف وانتظار الحالة المثالية للبدء، لكن اليوم قررت الالتزام علنا ومشاركة تقدمي يوميا سواء هنا أو على تويتر أو حتى لينكدإن. متحمس جدا للبدء، وأتمنى أن تشاركني الحماس أنت أيضا وتتواصل معي إذا كنت تريد أن نتعلم سويا!
إذا كنت تحب المشاهدة بدلا من القراءة فيمكنك مشاهدة الفيديو من هنا
ما هو منهج OSSU؟
هو اختصار ل Open Source Society University. دعونا نقتبس أولا من مستودعهم الرسمي على Github:
منهج OSSU هو منهج كامل لتعلم علوم الحاسب، وهو موجّه لأولئك الذين يودّون الوقوف على أرض صلبة وأساس متين في مختلف مجالات علوم الحاسب.
لقد صُمم هذا المنهج وفقا لمتطلبات الحصول على درجة البكالوريوس في علوم الحاسب، ويُعد من أفضل المناهج المتوفرة مجانا حيث يضم دورات تدريبية من هارفارد و إم آي تي.
باختصار، هو منهج متوفر على Github لتعلم علوم الحاسب تعلما ذاتيا باستخدام مصادر مجانية بالكامل.
يمكنك الاطلاع على مستودعهم على Github للاطلاع على كافة التفاصيل، وآلية اختيار مصادر التعلم التي يتضمنها المنهج. تجد المستودع هنا.
هل يؤهلك منهج OSSU لسوق العمل؟
الإجابة المختصرة: لا.
الإجابة المطولة الفلسفية والتي تقودنا إلى سؤال آخر، وهو: لماذا تريد أن تكون مؤهلا لسوق العمل أصلا؟ إذا كنت تريد الحصول على وظيفة في مجال البرمجيات، أو أي مجال مرتبط بمجال علوم الحاسب عموما، فمن تجربتي الشخصية أود أن أخبرك أن هذه العقلية -عقلية “تعلم بسرعة وابحث عن عمل”- هي عقلية ستؤدي بك إلى الفشل أولا. ثم بعد محاولات عديدة ستؤدي بك إلى الإحباط والشك في ذاتك وقدرتك على التعلم.
أنصحك بأن تهدأ تماما وأن تجد وظيفة تتطلب مهارات تمتلكها بالفعل، سواء كانت تقليدية أو حرة. ثم تتعلم على مهلك وتمنح رحلة التعلم حقها من الوقت والجهد.
للأسف، تحول مجال علوم الحاسب إلى مجال تجاري من الدرجة الأولى. والمستفيد الوحيد من عقلية التسرع هذه هو من يبيع لك محتوى تعليميا يعِد -فور إنهاء المادة التعليمية- بالحصول على وظيفة فورا. لن أطيل في هذه النقطة لأنها قد كُتب عنها مقال ممتاز بالفعل بعنوان “علم نفسك البرمجة في عشرة أعوام” وهو مترجم للعربية بالمناسبة. يمكنك إيجاد الترجمة هنا.
لماذا أود تعلم علوم الحاسب أصلا؟
ببساطة لأنني شغوف بالتقنية وكل ما يتعلق بها، وبصراحة قد مللت من طريقة تعاملي مع التقنية، التي تتمثل في اتباع ما يمليه عليّ شخص آخر اتباعا أعمى بدون فهم المباديء وال”علم” وراء ما يقوله وما يشرحه.
أود أن أكون على دراية بمباديء علوم الحاسب، وكيفية عمل الإنترنت والشبكات، وكيفية استخدام الأنظمة المختلفة، وأخيرا كيفية بناء منتجات خاصة بي.
أود أيضا تعلم الرياضيات من الصفر، ولكن هذه قصة أخرى ستأتي مستقبلا.
لماذا منهج OSSU وليس أحد المناهج الأخرى؟
هناك مناهج عديدة متوفرة مجانا مشابهة لمنهج OSSU، كمنهج teach yourself CS ومنهج The Odin Project لكن ما يميز هذا المنهج أولا: أنه أكثرهم شعبية ويمتلك مجتمعا كبيرا وبالتالي، هو مُحدّث باستمرار ويمكن التواصل مع ذوي الخبرة فيه بسهولة. ثانيا: أنه لا يهدف إلى “تأهيلك لسوق العمل” وإنما يعلمك المباديء الكامنة وراء علوم الحاسب ويؤسسك لتقف على أرض صلبة فتستطيع تعلم أي مجال متعلق بعلوم الحاسب بدون معاناة وصعوبة في الفهم، وهو بالضبط ما أريده.
سبب آخر خطر في بالي أثناء كتابة هذه التدوينة، وهو أن المنهج يتطلب التزاما لفترة طويلة من الزمن لا تقل عن عام. فأعتقد أنه سيكون ملائما جدا لشخص يتنقل بين ألف تخصص وتخصص في اليوم الواحد، ولا يحرز تقدما في أي من هذه التخصصات. فسيكون بمثابة تدريب لي على التركيز ومحاربة التشتت.
ما هي خطتي لدراسة منهج OSSU؟
حاليا، وبسبب اقتراب امتحانات نصف العام، فسألتزم بدراسة المنهج بشكل منتظم لكن لمدة ساعة على الاكثر يوميا. فأنا في النهاية أود الحصول على درجات مرتفعة وتقدير ممتاز في جامعتي.
ببساطة، سأستيقظ فجرا وأبدأ بدراسة المنهج لمدة ساعة ثم أكتب وأشارك ما تعلمته معكم هنا وعلى حساباتي المختلفة على مواقع التواصل أيضا.
سأعتمد في استراتيجيتي للدراسة على التوسع والتعمق في المواضيع المشروحة، فأنا لن أتسرع مثل كل مرة وأحاول إنهاء التعلم في أقرب وقت ممكن. بل سأطبق ما تعلمته أولا بأول، وأتوسع في القراءة وفهم ما يثير اهتمامي، وأخيرا أشارك وأبسّط ما تعلمته لضمان فهم أفضل لما أتعلمه.
جزء هام آخر وأخير في هذه النقطة وهو المشاركة الفعالة في مجتمعات علوم الحاسب. فدائما ما كنت أود الانضمام لمجتمعات ديسكورد و Stack Overflow والمشاركة في المشاريع مفتوحة المصدر، والانغماس في عالم علوم الحاسب بشكل عام. لكن ما يمنعني دائما من ذلك هو عدم وجود الخبرة الكافية التي تؤهلني للمشاركة في هذه المجتمعات والتحدث ب “لغتهم”. أو ببساطة هو الخوف من الظهور بمظهر المبتديء!
لكن هذه المحاولة الأخيرة ستكون مختلفة -بإذن الله- فأنا سأتبع منهج البناء علنا Building in public في التعلم، ولن أخجل من أخطاء المبتدئين بل سأحاول أن اخطيء كثيرا؛ لأتعلم أكثر وأسرع.
لماذا دائما ما أفشل في تعلم البرمجة؟
كنت قد كتبت تدوينة قصيرة من قبل عن هذا الموضوع، لكن دعوني الآن أوضح بشكل أكثر تعمقا، وتنظيما، والأهم: بشكل أكثر صدقا.
الإجابة المختصرة لسؤال لماذا فشلت في تعلم البرمجة على مدار السنوات السابقة، رغم محاولاتي العديدة، هي: التسرع، والخوف، والعقلية الخاطئة، والتأثر بدعوات تعلم البرمجة.
أنا شخص متسرع جدا، أحب تعلم كل شيء بسرعة شديدة. أحب القفز من مجال إلى مجال بدون إتقان أحدهما. ولفترة طويلة كنت أعتقد أن هذه ميزة قوية؛ فمن يستطيع “تعلم” كل شيء بسرعة فإنه يملك ميزة تنافسية قوية في هذا العالم المتسارع.
لكن مؤخرا، بدأت أدرك أن الموضوع قد تجاوز حده الطبيعي. فعندما وجدت أنني أريد تعلم تحسين محركات البحث SEO في أسبوع واحد! أدركت أنني بحاجة لتغيير تفكيري تجاه مفهوم التعلم. فسرعة الاستيعاب لا تعني بالضرورة سرعة التعلم. الوقت هو عنصر هام جدا وأساسي في معادلة التعلم، فتجد مثلا أن الدراسة و التعلم على فترات قصيرة متكررة خير وأكثر إفادة من جلسة واحدة طويلة وممتدة.
بالنسبة للسبب الثاني – الخوف- فأنا دائما ما أخشى بدء شيء بدون خطة “مثالية” وطريق مرسوم بالكامل مسبقا!
قد تسميها عقدة السعي إلى الكمال أو تسميها تخطيطا مبالغا فيه، سمها ما شئت. المهم أنها مشكلة تمنعني من البدء في تنفيذ مشاريع وأفكار كثيرة جدا، بل مؤخرا تسببت في توقفي عن التدوين لما يزيد عن شهر كامل بدون وجود مانع حقيقي.
اخشى البدء بتعلم البرمجة باختيار لغة برمجة غير مناسبة، أو مصدر غير احترافي، أو استراتيجية غير متكاملة، والقائمة تطول ولا تنتهي. فيمكنك دائما إيجاد عذر كي لا تبدأ بداعي انتظار الظروف والخطة المثالية، لكن للأسف لن تستطيع الوصول لحالة مثالية إلا بالبدء. ففور أن تبدأ، ستقع في أخطاء كثيرة وحمقاء، وحينها فقط ستتمكن من تحسين خطتك واستراتيجيتك للتعلم.
هل تريد مشاركتي في رحلتي التعليمية؟
إذا كنت متحمسا للبدء أنت ايضا، فلم لا تشاركني التعلم؟
لا تتردد في الذهاب إلى موقعي الشخصي ومراسلتي على أي من وسائل التواصل المفضلة لديك، وسأكون سعيدا بالتحدث معك!