أنت لا تعرف جافاسكربت!
2020-06-01
نشرتُ منذ ثلاثة أعوام تدوينة عن رحلتي في تعلّم البرمجة، وكيف ساعدني موقع FreeCodeCamp بترتيب خطواتي ضمن منهجية مُحدّدة، مبنية بعضها على بعض، قادتني في النهاية إلى الانتقال للعمل كمبرمج ويب منذ أكثر من عامين.
في هذه التدوينة أنوي الحديث عن مالذي فعلته منذ ذلك الوقت، وأتمنى أن يُساعد ذلك المبرمجين الذين يتعلمون ذاتيًا.
مُخيم FreeCodeCamp
كما ذكرتُ بالتدوينة السابقة، فقد أمضيت صيف عام 2017 ضمن مُخيم FreeCodeCamp، قرأتُ دروس ما بات يُسمى الآن “Legacy Front End Certification”، أكملت المشاريع المطلوبة وحصلت على شهادة مطوّر واجهات أماميّة. بالإضافة إلى متابعتي للمنتدى والمدوّنة الخاصين بالمخيم (وهما بالمناسبة مصدرين دسمين للمعلومات والنقاشات المفيدة).
مع بداية 2018 أُعيد ترتيب المساقات المتوفرة وتقسيم الشهادات إلى خمسة بدلًا من ثلاثة، وتعزيز المادة العلميّة والمشاريع العمليّة. أنجزتُ بعض المشاريع الجديدة وكانت كالعادة تجربة غنية ومُفيدة تمامًا. لغاية آذار 2019 كنتُ قد أنهيت شهادتين من الشهادات الجديدة (شهادة الخوارزميات وبُنى المعطيات في جافاسكربت، وشهادة تظهير البيانات).
كخلاصة؛ لا زلتُ أنصح أي شخص يُفكّر بتعلم جافاسكربت والدخول إلى عالم برمجة الواجهات الأماميّة أو الخلفية بالمخيم. المنهج، المادة التعليميّة، والمشاريع جميعها عظيمة وستبني لك أساسيات متينة تُمكنك من الدخول إلى سوق العمل.
منزل الشجرة Tree House
ذكرت في التدوينة السابقة أيضًا نيتي التسجيل في موقع Treehouse، لدراسة مساقهم المُعنون بـ Full Stack JavaScript، وبالفعل التحقت بالموقع منذ أيلول 2017 ولمدّة عام، درستُ خلالها دوراتٍ كثيرة ضمن ذلك المساق، لكني لم أكمل سوى نصفه تقريبًا. من جهة دروس الفيديو تبدو لي مملة أحيانًا، ومن جهة أخرى التكرار في المعلومات قلل حماستي، ما دفعني لإيقاف اشتراكي عندهم.
يتفوق الموقع على Udemy بنقطتين:
- لن تخشى من جودة الدورات والمحتوى التعليمي فيها. فالموقع يحتوي على أشخاص رائعين. المبتدئ لن يستطيع معرفة الأستاذ الجيد من غيره، لذا في موقع مثل تري هاوس أنت تدفع مقابل محتوى يُنتجه خبراء في مجالهم.
- المحتوى مرتب بشكل منهجي، ستُحدد ما هو المجال الذي ترغب بتعلمه وسيعطيك الموقع خريطة لتمشي عليها. أيضًا هذه نقطة كنتُ أعاني منها كمبتدئ، كنتُ أفتقر لمن يعطيك المعلومات بشكل متسلسل ويبني بعضها على بعض.
رغم ذلك أجد أن دورات الفيديو (لا سيما عندما تطول) تجعلني أفقد حماستي ورغبتي بالمتابعة، وهذه نقطة تختلف حسب الشخص، تكرر ذلك معي مؤخرًا بعدما سجلت بموقع Frontend Masters، لم أستطع سوى حضور دورتين، ورغم كونهما مُثقفتين جدًا، لكن نمط الفيديو يُنفد طاقتي بسرعة.
أنت لا تعرف جافاسكربت
منذ أن التحقت بمخيم FCC سمعتُ العديد من التوصيات بقراءة سلسلة You Don’t Know JavaScript لصاحبها Kyle Simpson، لذا بدأتُ منذ ذلك الوقت بقراءتها، وهي موزعة على خمس كتب بإجمالي ألف ومئة صفحة، أنهيتُ قراءتها أخيرًا البارحة. هذا يعني أنني استغرقتُ ما يُقارب الثلاث سنوات بإتمامها، وأنا سعيدٌ بذلك لسببٍ وجيه، وهو أن قراءتي لهذه السلسلة عام 2017 وأنا لم أُنجز سوى مشاريع معدودة كان سيحرمني من فهم أجزاء واسعة من الكتاب.
بينما أتاحت لي قراءة السلسلة إلى جانب الممارسة بفترات متفاوتة (تقريبًا كنت أقرأ كتابًا، ثم أغيب لأشهر طويلة قبل أن أعود وأقرأ العنوان التالي) فهمًا أوسع. رغم ذلك لا زلتُ أشعر بأن هناك مواضيع لم أتمكّن من هضمها تمامًا، لا سيما في الجزء الأخير.
من مشاكل السلسلة (أتحدث عن طبعتها الأولى، حيث يجري حاليًا تحضير الطبعة الثانية)، استخدام أمثلة أكاديمية معظم الوقت، وأقصد بذلك أمثلة بغرض توضيح المفهوم، دون أن يكون لذلك إسقاط حول أين يمكن أن تستفيد من هذا المفهوم في المشاريع العملية.
إضافةً إلى ذلك، كثيرًا ما شعرت أن السلسلة تفتقد تحديد جمهور واضح لها منذ البداية. فأحيانا تقرأ بعض الفصول وتجد الكاتب يُبسّط لك كل المفاهيم ويأخذ بيدك كما لو كنتَ مبتدئًا تمامًا، ليجعلك تدرك كافة التفاصيل قيد الدراسة. ثم فجأة في فصول أخرى تجده يتحدث مثلا عن البروكسي وباقي مفاهيم ميتا البرمجة وكأنها مراجعة لما تعلمناه سابقًا، وعندما تسأله عن فائدة البروكسي مثلا يقول بالحرف طبعا فائدتها واضحة.
السبب السابق جعلني أتوقف بعد قرائتي للجزء الثاني من السلسلة، وأنتقل لقراءة الكتاب التالي.
الرأس أولًا!
تبعًا لويكيبيديا فإن Head First هي سلسلة كتب تعليمية موجهّة للمستوى المبتدئ أو التمهيدي لمختلف لغات البرمجة والتقنيات ذات الصلة، وهي من منشورات O’Reilly Media. تستخدم المجموعة أسلوبًا بصريًا مُكثفًا لإيصال المعلومة، مستعينة بمجموعة كبيرة من الألغاز، النكات، التصاميم غير المألوفة، الكلمات المتقاطعة، المقابلات مع لغة البرمجة وغيرها من الأساليب الممتعة.
هكذا، اشتريتُ كتاب Head First JavaScript Programming وبدأت بقرائته. وعلى الرغم من حجم الكتاب الكبير - أكثر من 500 صفحة - إلا أن قرائته ممتعة للغاية، وجعلتني أحيط بجوانب مختلفة ومتقدمة من جافاسكربت بأسلوب رائع.
إن كنتُ تجد صعوبة في دراسة لغة برمجة أو مجالًا تُغطيه هذه السلسلة فنصحيتي أن لا تتردد بشراء كتبها. كتبتُ هنا مُراجعة أكثر تفصيلًا عن الكتاب.
والمشاريع؟
خلال هذه الفترة كانت معظم المشاريع التي أنجزتها متعلقة بالعمل، باستثناء بعض المشاريع من FCC. قراءة الكتب أو حضور الدورات هو المفتاح الأولي الذي لا بدّ منه، لكن كتابة الكود، مراجعته مع آخرين (أو مع نفسك في وقتٍ لاحق)، والبحث عن حلول المشاكل التي تصادفها هي ما يجعل الواحد مبرمجًا في نهاية المطاف.
أيضًا كتبت بعض المشاريع الشخصية، كان آخرها وأهمها موقع الفهرست الذي أطلقته منذ شهرين.
خطواتي القادمة
هناك بعض التقنيات التي أريد تعلم استخدامها خلال الأشهر التالية مثل GraphQL والخوض في أعماق البرمجة الوظيفية بالإضافة إلى WebAssembly، وهذه الأخيرة قد تُعطيني مبررًا شرعيًا للبدء بتعلّم لغة برمجة ثانية (Rust تحديدًا)، بعد أن انتهت العدّة التي فرضتها على نفسي مع جافاسكربت (وهي ثلاث سنوات)!