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

لماذا هذا الموضوع؟

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

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

فهرس الموضوع

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

الهيكل العام للدورة

خلفيتي في البرمجة

محتوى الدورة

المدربون و قسم الأسئلة

الاختبار النهائي والحصول على الشهادة

ما بعد الشهادة

تعقيب أخير

الهيكل العام للدورة

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

كل قسم رئيس يحتوي على أقسام فرعية وكل قسم فرعي يحتوي على عدة دروس تشرح موضوع القسم. ولكي تتضح الصورة أكثر، دعني أعطيك هيكلة القسم الأول من الدورة وهو قسم أساسيات لغة JavaScript:

القسم الرئيس: أساسيات لغة JavaScript

الأقسام الفرعية:

  • مقدمة

  • أساسيات JavaScript

  • إلى عالم الويب

  • التعامل مع النافذة والنموذج الغرضي

  • الانتقال إلى ES6

  • البرمجة كائنية التوجه في ES6

  • تطبيق مذكرة

كل قسم فرعي يحتوي على الدروس الخاصة بذلك القسم. فمثلاً القسم الفرعي أساسيات JavaScript يحتوي على دروس (عبارة عن فيديوهات) مثل المتغيرات، المصفوفات، الكائنات وهكذا.

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

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

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

خلفيتي في البرمجة

من الضروري قبل البدء في وصف محتوى الدورة ورأيي فيها أن أوضح خلفيتي في البرمجة. أنا طالب هندسة برمجيات و قبل أن أشترك في الدورة كنت قد درست البرمجة بالفعل في الجامعة بما فيها مواد مثل هياكل البيانات (Data Structures) وقواعد البيانات وطبعاً تطوير الويب. قبل دخول الدورة أيضاً قمت بتعلم أساسيات React.js (وهي أحد المسارات التي تُشرح في الدورة) من محتوى أجنبي. وعلى ذكر المحتوى الأجنبي، لم يكن محتوى الدورة هو المصدر الوحيد للتعلم بل كنت أعتمد على المصادر الأجنبية مثل الشروحات والتوثيق وأسئلة Stack Overflow وغيرها.

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

محتوى الدورة

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

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

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

هناك نقطة أخرى وهو موضوع العمق الذي تتسم به مسارات الدورة. دورات أكاديمية حسوب بشكل عام تركز على أن تبني لديك مجموعة مهارات عملية تستطيع تطبيقها فور تخرجك للدخول إلى سوق العمل. هذا الأمر له إيجابياته وسلبياته. أهم إيجابياته ربما هو تعلمك للمهارات العملية والمطلوبة في السوق، واختصار الكثير من الكلام النظري. وأحد سلبياته، برأيي الشخصي، أن المحتوى المقدم سيكون أقل عمقاً. وأقصد بالعمق هنا مدى التعمق في تقنية معينة مثل React.js أو Node.js لأنه بطبيعة الحال هدف الدورة الرئيس هو تزويدك بالمعلومات الضرورية لبناء تطبيقات وخدمات ويب عملية وليس التعمق في أي منهما. لذا، رغم أن الدورة قد تتناول مثلاً موضوع عمل واجهات أمامية باستعمال React.js إلا أنها قد لا تشرح كل التفاصيل الخاصة بهذه المكتبة مثل Context API أو Hooks. هذا مجرد مثال، وربما في التحديثات القادمة تضاف مسارات لشرح هذه التقنيات، ولكن المغزى هو أن التعمق في تقنية معينة صعب لأن الهدف هنا هو إعطاؤك مجموعة مهارات وليس التركيز على مهارة واحدة فقط.

المدربون و قسم الأسئلة

قد يختلف المدرب من مسار لآخر. فمثلاً في دورة JavaScript كان هناك مدرب لمسار أساسيات JavaScript ومدرب آخر لمساري كل من React.js و React Native ومدرب آخر لمسارات Node.js. كنت أستطيع الفهم مع بعض المدربين أفضل من غيرهم، فمثلاً في مسار أساسيات Node.js واجهت صعوبة في فهم شرح المدرب الخاص بالمسار، بينما عندما قمنا بعمل الواجهة البرمجية الخاصة بتطبيق React Native استطعت فهم مدرب ذلك المسار بشكل أفضل.

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

الاختبار النهائي والحصول على الشهادة

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

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

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

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

const users= [{ name: 'Mohammad', age: 25 }, { name: 'Abd alrahman', age: 32 }, { name: 'Rama', age: 20 }, { name: 'Hanan', age: 43 }, { name: 'Ahmad', age: 27 }];

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


لديك كائن البلدان التالي:

const countries = {JO : {name: 'الأردن', code: '962'}, AE: {name: 'الإمارات', code: '971'}, BH: {name: 'البحرين', code: '973'}, DZ: {name: 'الجزائر', code: '213'}, SA: {name: 'السعودية', code: '966'}};

اكتب شيفرة لتحويل الكائن إلى مصفوفة على الشكل التالي:

const countriesArray = [{code: '962', key: 'JO', value: 'الأردن 962 +'}, {code: '971', key: 'AE', value:'الإمارات 971 +'}, {code: '973', key: 'BH', value: 'البحرين 973 +'}, {code: '213', key: 'DZ', value: 'الجزائر 213 +'}, {code: '966', key: 'SA', value: 'السعودية 966 +'}];


أنشىء مشروع React جديد وفيه مكون وحيد يعرض جدول لبيانات المستخدمين الذين يجب أن تقوم بالاتصال من تطبيق React بهذا الرابط لجلبهم منه وعرضه في الجدول:


أنشىء تطبيق React Native جديد باستخدام expo فيه مكون لل Camera ويشبه هذا المكون في تصميمه شاشة ال Camera في تطبيق واتساب ويمكنك من التقاط صور حقيقية.

في نفس التطبيق السابق اكتب شيفرة تطلب صلاحية الدخول إلى موقع الهاتف عند فتح التطبيق مباشرة واعرض موقع المستخدم في console عند الوصول إليه.


أنشىء تطبيق React بسيط لإرسال واستقبال الرسائل مع خادم websocket من برمجتك وأن يكون هناك ميزة إرسال emoji وعرضها في الرسائل.


كما ترى هذه هي نوعية أسئلة الاختبار الشفوي. شخصياً كنت أتوقع أن تكون الأسئلة أكثر صعوبة إلا أن الهدف كان التأكد من فهم الطالب لمحتوى الدورة أكثر من تعقيد الأسئلة. المهم بعد أن قمت بحل الأسئلة وإرسالها، رد علي عبداللطيف بأن الأجوبة كانت ممتازة وسننتقل إلى المرحلة الأخيرة للحصول على الشهادة وهي عمل مشروع متكامل يطبق ما تعلمته في الدورة. كان المشروع عبارة عن تطبيق ويب يعمل في الوقت الحقيقي (real-time) باستعمال React.js يعرض معلومات الطقس التي يجلبها من واجهة برمجية API مبرمجة باستعمال Node.js.

كانت لي الحرية الكاملة في اختيار المظهر والتقنيات التي أريد استعمالها في التطبيق.

وبالفعل قمت بعمل التطبيق وسلمته بعد أسبوعين تقريباً. هذا رابط مستودع GitHub للمشروع إذا كنت مهتماً:

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

ما بعد الشهادة

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

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

بعدها تواصل معي الأخ محمود الآغا، مسؤول الموارد البشرية في حسوب، لتحديد موعد لمقابلة شخصية على Skype يعطيني فيها feedback على سيرتي الذاتية ومساعدتي في مساري المهني. شعرت وقتها بأن حسوب بالفعل تأخذ خريجي دوراتهم بجدية وتحرص على دخولهم لسوق العمل.

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

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

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

تعقيب أخير

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

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

سأكون سعيداً بالإجابة على أسئلتكم عن التجربة أو عن الدورة.