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

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

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

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

لذلك قررت أن أكتب كل يوم لمدة عام واحد. دعني أخبرك عن تجربتي.

البداية

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

ثم اكتشفت مقالًا يتحدث عن هذا التحدي يسمى # 100DaysOfCode . هناك نوعان من المتطلبات الرئيسية لإكمال التحدي:

  1. قم بترميز ما لا يقل عن ساعة كل يوم لمدة 100 يوم متتالية
  2. غرد عن تقدمك كل يوم باستخدام هاشتاج # 100DaysOfCode

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

وهكذا بدأت بالتغريد من حسابي twitter.com/PolarisTLX كل يوم وكذلك على مجموعة Facebook.

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

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

بصرف النظر عن ذلك ، يرحب بك مؤسس # 100DaysOfCode لجعله ملكًا لك. لذلك لتسريع التعلم حقًا ، ولإحراز تقدم كبير نحو تحقيق هدفي المتمثل في الحصول على وظيفة مطور ، كرست نفسي في الواقع لمتابعة التحدي بدوام كامل ، بدلاً من ساعة واحدة فقط في اليوم. وبعد ذلك وصلت إلى علامة 100 يوم السحرية.

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

الإنجازات الرئيسية

وهكذا وصلت إلى 365 يومًا! فيما يلي بعض الأشياء الرئيسية التي تمكنت من تحقيقها عن طريق الترميز كل يوم لمدة عام:

  • أكمل العشرات من البرامج التعليمية والدورات والكتب حول الترميز
  • تم حل أكثر من 100 خوارزمية وتحديات ترميز المقابلة
  • حصلت على شهادتي " Front End Developer" و " JavaScript Algorithms and Data Structures Project " من freeCodeCamp
  • المشاركة في هاكاثون لمدة يومين حيث تم اختيار المشروع لعرضه على أعضاء مجلس إدارة الشركة. ثم قرروا دفعها إلى مرحلة التطوير التالية
  • تم قبولك في برنامج تطوير برمجيات بدوام كامل بمعدل قبول أقل من 1٪
  • ساهم في منهج freeCodeCamp التجريبي الموسع
  • كتب محتوى الدورة التدريبية لمنهج Ruby الجديد الخاص بمشروع Odin لمساعدة المطورين الطموحين الآخرين على تعلم البرمجة
  • إنشاء نسخة عملية من Facebook ، الواجهة الخلفية بالكامل والواجهة الأمامية بالكامل من البداية ، وعرضها على Heroku كواحد من مشاريعي المميزة في أعمالي
  • حصلت على أول دخل منتظم لي ، حيث عملت لدى عميل عن بعد ، مما أدى إلى الحصول على وظيفة دائمة

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

ليس تحديًا سهلاً

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

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

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

اكتشفت وانضممت إلى العديد من المجموعات المليئة بالأشخاص الذين كانوا يحاولون تعلم البرمجة. وجد البعض منهم:

  • 30 يومًا من جافا سكريبت
  • 30 يومًا من التفاعل
  • الفوائد العرضية مثل 180 يومًا من التعليمات البرمجية
  • مجموعات قنوات Slack التي كرست نفسها للعمل من خلال كتاب ترميز معين بهدف القيام بفصل كل أسبوع ومناقشة / مقارنة الملاحظات.

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

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

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

من خلال ملاحظاتي خلال عام من القيام بذلك ، أقدر أنه من بين كل 10000 شخص يبدأون في تعلم البرمجة عبر الإنترنت حول العالم كل عام ، فإن أقل من 100 يتحملون أكثر من شهرين.

أولئك الذين يستسلمون لن يصلوا إلى أهدافهم. أولئك الذين يصممون ويواصلون ذلك سيكونون هم الذين يحصلون على وظائف.

فكيف فعلت ذلك - وكيف يمكنك ذلك؟

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

  • إعطاء تقدمك بعض الهيكل والمساءلة بشيء مثل # 100DaysOfCode
  • وضع أهداف تدريجية صغيرة والوصول إليها على طول الطريق
  • برمجة الزوج
  • إيجاد مجموعات للانضمام إليها والتعلم معها

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

أهم شيء فعلته

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

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

اشياء اخرى ساعدتني

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

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

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

إخلاء المسؤولية

أنا صادق في الاعتراف بأنني لم أفقد بضعة أيام في تلك الفترة الزمنية. لكنني كنت دائمًا صريحًا بشأن ذلك في مشاركاتي العامة. يقول مؤسس التحدي هذا في هذا الموضوع:

"يمكنك تخطي يوم هنا وهناك في المواقف غير المخطط لها ، ولكن ليس أكثر من ذلك ... يُسمح لك بتفويت يوم (ولكن بعد ذلك اختلقه بإضافة يوم آخر إلى نهاية المائة). الهدف هو أن تصبح متسقًا ، بغض النظر عن الحياة التي تلقيها عليك ". - ألكسندر كالاواي ، مبتكر # 100DaysOfCode

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

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

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

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

ملخص تقدمي على مدار 365 يومًا

لذلك في 365 يومًا ، حققت تقدمًا من خلال الإنجازات التالية:

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

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

أتمنى أن تكون قد استمتعت بالقراءة عن رحلتي. أوصيك بشدة بتجربة تحدي # 100DaysOfCode. إذا أعجبك المنشور ، يرجى التصفيق؟ لنشر الكلمة وتحفيز الآخرين.