إنجاز استثنائي: إتمام منهج freeCodeCamp الشامل في 30 يومًا فقط (توثيق كامل للرحلة)

دقائق القراءة: 8
قبل شهر واحد، شرعت في تحدٍ اعتبره الكثيرون ضربًا من الجنون: إكمال منهج freeCodeCamp التعليمي الشامل بأكمله. لم يقتصر الأمر على ذلك فحسب، بل قمت أيضًا ببث كل خطوة مباشرةً على قناتي على YouTube. بعد 29 يومًا، و56 بثًا مباشرًا، و72 ساعة من المحتوى الحي، إليكم القصة الكاملة.

تنويه هام قبل البدء

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

التقنيات والمواضيع التي تغطيها السلسلة

تغطي هذه السلسلة، المكونة من 72 ساعة من الفيديو، مجموعة واسعة من المواضيع والتقنيات الأساسية في تطوير الويب، والتي تشمل:

  • HTML
  • CSS
  • Flexbox
  • CSS Grid
  • JavaScript
  • Bootstrap
  • React
  • Redux
  • Node.js
  • Express
  • MongoDB
  • Mongoose
  • وغيرها الكثير…

بالإضافة إلى ذلك، قمت ببناء 30 مشروعًا عمليًا خلال هذه الرحلة.

كيف بدأت فكرة هذا التحدي الجنوني؟

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

تتبنى freeCodeCamp ثقافة ‘التعلم في العلن’ (learn in public)، حيث ينشر الكثير من الأشخاص مشاريعهم على المنتدى وGitHub للحصول على الملاحظات. وهناك عدد متزايد من الأشخاص يقومون بالبث المباشر لأنفسهم أثناء بناء هذه المشاريع. قال Quincy ألا أقلق بشأن ‘إفساد’ أي من التحديات أو المشاريع، فكلها تعادل ‘اختبارات الملاحظات المفتوحة’ (open notes tests). يجب على الطلاب كتابة أكوادهم الخاصة، لكن يمكنهم البحث في حلول الآخرين للإلهام إذا رغبوا في ذلك.

لماذا اخترت شهادات freeCodeCamp لهذا التحدي؟

لطالما أوصيت بمنهج freeCodeCamp للأشخاص الذين يرغبون في بدء تعلم تطوير الويب. لماذا؟ الإجابة بسيطة جدًا: إنه أفضل مورد مجاني للبدء والانطلاق في عالم تطوير الويب، في رأيي. ومع أنه مورد ممتاز، إلا أن الناس يميلون إلى التوقف في منتصف الطريق لأنهم يصطدمون بعقبات مختلفة… وهذا أمر محزن. نحن نريد المزيد من الناس أن يكملوا المنهج!

وهنا يبرز تحدي ‘إخضاع منهج freeCodeCamp‘ (Conquering freeCodeCamp's Curriculum). فهو يقدم للجميع قائمة تشغيل من الفيديوهات التي أستعرض فيها المنهج بأكمله شخصيًا، موضحًا طريقة تفكيري في كل خطوة أتخذها. كما أضفت تعليقاتي الخاصة وشروحات ‘إضافية’ (bonus). كل قسم في freeCodeCamp مغطى في فيديو واحد، بإجمالي 56 فيديو (انظر أدناه للحصول على قائمة بجميع الفيديوهات).

خلفيتي وخبرتي المهنية

بدأت تعلم البرمجة في عام 2013. ومنذ ذلك الحين، عملت كمطور مستقل وشغلت عدة وظائف في هندسة البرمجيات. في العام الماضي، بدأت بكتابة المقالات على مدونتي، كما بدأت بإنشاء دروس تعليمية في البرمجة على YouTube. لا تتردد في الاشتراك إذا كنت تحب هذا النوع من الفيديوهات.

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

لقد بذلت جهدًا هائلاً في إعداد هذه البثوث المباشرة. في بعض الأيام، سجلت أكثر من 5 ساعات. وفي أحد الأيام، قمت بـ 8 بثوث مباشرة وأنهيت شهادة كاملة في ذلك اليوم وحده. لماذا فعلت ذلك؟ حسنًا… قد يقول معظم الناس إنني إما مجنون أو روبوت. أنا لست روبوتًا، لكن ربما مجنونًا بعض الشيء؟ نعم. السبب وراء هذا الدفع القوي هو أنني كنت أخطط لقضاء إجازة، وأردت إنجاز كل هذا قبل السفر. (حسنًا… تم إلغاء الإجازة بسبب تفشي فيروس كورونا، لكنني ما زلت سعيدًا بإنجاز كل هذا). وربما كان السبب أيضًا هو حماسي لتسجيل رقم قياسي عالمي جديد بإكمال المنهج بأكمله في شهر واحد.

تحدي freeCodeCamp: جميع التسجيلات

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

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

حسنًا، كفى حديثًا. إليكم جميع التسجيلات. استمتعوا!

شهادة تصميم الويب المتجاوب (Responsive Web Design Certification)

  • Basic HTML and HTML5 – بث مباشر #1
  • Basic CSS – بث مباشر #2
  • Applied Visual Design – بث مباشر #3
  • Accessibility and RWD Principles – بث مباشر #4
  • Flexbox and CSS Grid – بث مباشر #5

المشاريع (Projects)

  • بناء صفحة تكريم (Build a Tribute Page) (لـ Brad Traversy) – بث مباشر #6
  • بناء نموذج استبيان (Build a Survey Form) – بث مباشر #7
  • بناء صفحة هبوط لمنتج (Build a Product Landing Page) – بث مباشر #8
  • بناء صفحة توثيق تقني (Build a Technical Documentation Page) – بث مباشر #9
  • بناء صفحة ويب شخصية (Build a Personal Portfolio Webpage) – بث مباشر #10

شهادة خوارزميات وهياكل بيانات JavaScript (JavaScript Algorithms and Data Structures Certification)

  • Basic JavaScript (الجزء 1) – بث مباشر #11
  • Basic JavaScript (الجزء 2) – بث مباشر #12
  • JavaScript ES6 – بث مباشر #13
  • Regular Expressions – بث مباشر #14
  • JavaScript Debugging – بث مباشر #15
  • JavaScript Basic Data Structures – بث مباشر #16
  • JavaScript Basic Algorithm Scripting – بث مباشر #17
  • JavaScript OOP – بث مباشر #18
  • JavaScript Functional Programming – بث مباشر #19
  • JavaScript Intermediate Algorithm Scripting (الجزء 1) – بث مباشر #20
  • JavaScript Intermediate Algorithm Scripting (الجزء 2) – بث مباشر #21
  • مشاريع خوارزميات وهياكل بيانات JavaScript – بث مباشر #22

شهادة مكتبات الواجهة الأمامية (Front End Libraries Certification)

  • CSS Bootstrap – بث مباشر #23
  • jQuery – بث مباشر #24
  • SASS – بث مباشر #25
  • ReactJS – بث مباشر #26
  • Redux – بث مباشر #27
  • React and Redux – بث مباشر #28

المشاريع (Projects)

  • بناء آلة اقتباسات عشوائية (Build a Random Quote Machine) – بث مباشر #29
  • بناء معاينة Markdown (Build a Markdown Previewer) – بث مباشر #30
  • بناء آلة طبول (Build a Drum Machine) – بث مباشر #31
  • بناء آلة حاسبة (Build a Calculator) – بث مباشر #32
  • بناء ساعة بومودورو (Build a Pomodoro Clock) – بث مباشر #33

شهادة تصور البيانات (Data Visualization Certification)

  • تصور البيانات باستخدام D3 (Data Visualization with D3) – بث مباشر #34
  • واجهات برمجة التطبيقات JSON و Ajax (JSON APIs and Ajax) – بث مباشر #35
  • تصور البيانات بمخطط شريطي (Visualize Data with a Bar Chart) – بث مباشر #36

المشاريع (Projects)

  • تصور البيانات بمخطط تشتت (Visualize Data with a Scatterplot Graph) – بث مباشر #37
  • تصور البيانات بخريطة حرارية (Visualize Data with a Heat Map) – بث مباشر #38
  • تصور البيانات بخريطة كوروبليث (Visualize Data with a Choropleth Map) – بث مباشر #39
  • تصور البيانات بمخطط شجري (Visualize Data with a Treemap Diagram) – بث مباشر #40

شهادة واجهات برمجة التطبيقات والخدمات المصغرة (APIs and Microservices Certification)

  • إدارة الحزم باستخدام NPM (Managing Packages with NPM) – بث مباشر #41
  • أساسيات Node و Express (Basic Node and Express) – بث مباشر #42
  • Mongo و Mongoose – بث مباشر #43

المشاريع (Projects)

  • خدمة مصغرة للوقت (Timestamp Microservice) – بث مباشر #44
  • خدمة مصغرة لمحلل رؤوس الطلبات (Request Header Parser Microservice) – بث مباشر #45
  • خدمة مصغرة لاختصار الروابط (URL Shortener Microservice) – بث مباشر #46
  • متتبع التمارين (Exercise Tracker) – بث مباشر #47
  • خدمة مصغرة لبيانات الملفات الوصفية (File Metadata Microservice) – بث مباشر #48

شهادة أمن المعلومات وضمان الجودة (Information Security and Quality Assurance Certification)

  • أمن المعلومات باستخدام HelmetJS (Information Security with HelmetJS) – بث مباشر #49
  • ضمان الجودة والاختبار باستخدام Chai (Quality Assurance and Testing with Chai) – بث مباشر #50
  • Advanced Node and Express – بث مباشر #51

المشاريع (Projects)

  • محول وحدات قياس (Metric-Imperial Converter) – بث مباشر #52
  • متتبع المشكلات (Issue Tracker) – بث مباشر #53
  • مكتبة شخصية (Personal Library) – بث مباشر #54
  • مدقق أسعار الأسهم (Stock Price Checker) – بث مباشر #55
  • لوحة رسائل مجهولة (Anonymous Message Board) – بث مباشر #56

ماذا بعد؟ خططي المستقبلية في عالم البرمجة

سأواصل إنشاء دروس تعليمية في البرمجة على قناتي على YouTube. أحد أهدافي الرئيسية لعام 2020 هو الوصول إلى 100,000 مشترك (هدف جنوني، أعلم، لكن… أعتقد أنه ممكن. ما رأيكم؟). كما أنني أنتظر بفارغ الصبر أن تصدر freeCodeCamp شهادات Python الأربع الجديدة. سأعمل عليها أيضًا كسلسلة من البثوث المباشرة.

إلى جانب هذه، ستجدونني أقوم بسلاسل بث مباشر أخرى للبرمجة. أحدث سلاسلي تسمى CodeWars.js. إذا كنت ترغب في تعلم المزيد حول كيفية حل تحديات برمجية مختلفة باستخدام JavaScript، فهذه السلسلة مناسبة لك! لا تتردد في الاشتراك في قناتي على YouTube إذا كنت ترغب في متابعة رحلتي. يمكنك أيضًا متابعتي على Twitter، حيث أنشط هناك بشكل كبير.

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

الخلاصة التقنية

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

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *