كيف أنهيت منهج freeCodeCamp بأكمله في 9 أشهر أثناء العمل بدوام كامل

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

خلفية

أولاً ، القصة الخلفية. لم أكن جديدًا تمامًا في البرمجة. لقد نشأت في شركة تقنية صغيرة.

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

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

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

لقد استضافته على Geocities ، وحصلت على عنوان URL قصير مجاني ، وأدرجته على Yahoo و AltaVista (كانا أكبرهما في ذلك الوقت).

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

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

كيف قررت تبديل المهنة

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

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

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

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

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

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

قبل انتهاء الرحلة ، اتخذنا قرارًا بالتسجيل للحصول على شهادة فنية لمدة عامين في جامعة تقنية تأسست حديثًا بالقرب من مسقط رأسنا. كان البرنامج أساسًا Java لذا عندما عدنا ، بدأنا دورة Java في Cousera. كانت الوحدة الأولى في الواقع عبارة عن دورة JavaScript ، لذلك تم ربطنا بـ JavaScript على الفور.

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

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

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

العمل بدوام كامل وإجراء freeCodeCamp بأقصى سرعة

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

لذا فقد ساعدني ذلك كثيرًا عند التعامل مع مقدار الساعات التي أمضيتها في العمل العقلي (التدريس والدراسة).

استغرقت الشهادة الأولى شهورًا ، جزئيًا لأنني كنت أنتظر الدخول إلى Uni وجزئيًا لأنني كنت أعمل 10 ساعات في اليوم خلال الأشهر الثلاثة الأولى من العام الدراسي.

لسوء الحظ ، لم أستطع ترك وظيفتي والدراسة بدوام كامل فقط ، حيث كنت بحاجة إلى دفع الفواتير ، لذلك كان علي أن أتقن 3 أشياء:

  1. إدارة الوقت
  2. انضباط
  3. منظمة

إدارة الوقت

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

إذا كان لدي 30 دقيقة ، كنت أقرأ 30 دقيقة. إذا كان لدي 15 ، قمت ببعض الدراسة لمدة 15 دقيقة. لقد استخدمت كل لحظة حرة في يومي للدراسة.

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

لحسن الحظ ، بعد شهر يونيو ، تم تخفيض ساعات عملي من 10-12 إلى 8 ، لذلك كنت أعمل الآن وفقًا لجدول زمني عادي وبدأت في تسريع وتيرتي.

انضباط

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

أفضل نصيحة يمكنني تقديمها لك لمحاربة إغراء قراءة المقالات عبر الإنترنت هي: إذا طرحت سؤالاً في رأسك مثل "كيف تطير الطائرات؟" (وهو عادة نوع السؤال الذي يدفعني بعيدًا ويمتصني لمدة 30 دقيقة) ، اكتبه في مكان ما وعد نفسك بأنه يمكنك قراءة كل شيء عنه بعد الانتهاء مما تفعله.

99٪ من الوقت لن تهتم به بعد الآن ، لأن هذه الأسئلة تظهر في عقلك لأنه يريد تشتيت انتباهه. ادفع من خلال وسوف تهزمه.

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

سيكون عليك تحديد الأولويات واتخاذ خيارات صعبة.

التحفيز

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

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

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

اقض بعض الوقت في التفكير في هذا ، ما الذي تريد تحقيقه بالضبط من خلال إنهاء freeCodeCamp؟ ما الذي تريد تغييره أو الحصول عليه في حياتك الشخصية من خلاله؟

المنهج + المصادر التكميلية

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

تصميم الويب سريع الاستجابة: كان هذا هو الجزء الذي كان لدي بالفعل بعض الخبرة فيه ، لذلك كان سهلاً وممتعًا. لقد استخدمت بعض الموارد التكميلية ، خاصة بالنسبة لـ Flexbox. المكان المفضل لدي لهذا هو الإنترنت صعب.

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

في هذا القسم ، استخدمت الكتب في الغالب. لقد أجريت بالفعل تمارين كافية باستخدام freeCodeCamp ، لكنني كنت بحاجة إلى المزيد من التفسيرات. تحتوي لعبة Beginning JS على الكثير من التمارين أيضًا.

  • بداية الإصدار الخامس من JavaScript
  • أنت لا تعرف شبيبة
  • أسس البرمجة باستخدام JavaScript و HTML و CSS
  • توثيق جافا سكريبت

بحلول الوقت الذي وصلت فيه إلى هذا القسم ، انضممت أيضًا إلى برنامج صيف مليون امرأة للتكنولوجيا (1MWTT). لقد تعلمت لغة Python الأساسية والأساسية إلى JavaScript المتقدمة والتي ساعدت كثيرًا ، خاصة مع Promises.

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

أطر عمل JavaScript: كان هذا القسم رائعًا أيضًا لأنه أعطاني أساسًا في React و Redux. كنت أتابع بالفعل دورة React على Udemy ، React 16.6 - الدليل الكامل (بما في ذلك React Router & Redux).

أوصي بشدة بهذه الدورة وغيرها من نفس المؤلف. إنه دقيق بشكل لا يصدق وتفسيراته رائعة. كانت هذه واحدة من دورات Udemy القليلة التي اتبعتها بالفعل على طول المشروع الذي يصنعه: عادةً ما أشاهد مقاطع الفيديو وأطبق المبادئ على كل ما أعمل عليه.

في 1millionwomentotech ، كان لدينا أسبوع React الذي كان في الغالب من React ثم بدأت في اللعب به. بحلول ذلك الوقت ، بدأت أيضًا العمل في مشروعي الجانبي مع زوجي ، والذي قررنا أنه سيكون PWA مع React.

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

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

بعض الموارد التي استخدمتها:

  • دورة مطوري Node.js الكاملة (الإصدار الثاني)
  • Node Girls مقدمة لتطوير الواجهة الخلفية مع Express
  • مستندات العقدة
  • اكسبرس دوكس
  • NodeSchool
  • مقدمة إلى Node.js
  • تصميم واجهة برمجة تطبيقات REST و GraphQL في Node.js ، v2 (باستخدام Express & MongoDB)

خلال هذا الوقت كنت أتطوع أيضًا في "1MWTT" وطُلب مني إنشاء تطبيق Probot للمتطوعين على متن الطائرة مع Node. أعطاني هذا أيضًا بعض التدريب مع Node ، والذي كان ممتعًا للغاية.

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

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

- مستندات تشاي

- اختبار التفاعل مع Jest and Enzyme

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

- دروس D3.js بواسطة d3Vienno

- وثائق D3

نصائح لإنهاء المنهج

باختصار ، هذه هي الأشياء التي ساعدتني أكثر في تحقيق هدفي المتمثل في إنهاء المنهج:

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

بعد freeCodeCamp ، شعرت بالضياع بعض الشيء. كانت هذه خارطة الطريق التي وجهتني خلال رحلتي من مدرس إلى مطور.

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

ونعم ، لقد تلقيت عرض عمل مباشرة بعد الانتهاء من المنهج ، ولكن المزيد عن ذلك في مقال قادم.

بشكل عام ، لم أستطع أن أتعلم كل ما تعلمته بهذه السرعة لولا freeCodeCamp وأنا ممتن للغاية لكل من جعل هذا المشروع الرائع ممكنًا.

إذا كنت تشعر بالشيء نفسه وكنت قادرًا على رد الجميل ، فيرجى التفكير في التبرع إلى freeCodeCamp هنا.