كم من الوقت يستغرق Free Code Camp؟

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

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

لقد تعلمت بعض لغة ++ C في المدرسة الثانوية ، لكنني كتبت في الغالب رمزًا متكررًا ضخمًا لأنني لم أفهم الوظائف. لقد أخذت دورة Visual Basic .NET في المرحلة الجامعية الأولى ولكن لدي تقريبًا صفر من الذاكرة لما حدث هناك. عملت في دورة Codecademy JavaScript منذ بضع سنوات من أرجوحة شبكية في غواتيمالا.

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

لقد كتب الكثير عن "لماذا البرمجة" لذا لن أتغلب على الحصان الميت هنا

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

بعد البحث عبر الإنترنت لتحديد أفضل مكان للبدء ، قررت أن أبدأ العمل من خلال Free Code Camp. كان الوصيف هو The Odin Project ولكن يبدو أن Reddit يوافق على أن FCC كانت نقطة البداية الأقوى. ولأي سبب ، أثق في عقل Reddit عندما يتعلق الأمر بهذه الأشياء.

لذلك حددت هدفًا مبدئيًا صغيرًا لمدة ساعتين / يوم وقمت بتثبيت RescueTime لتتبع نفسي. وإليك لمحة عن كيفية سير الأمور.

اليوم 1

عملت بسرعة خلال الأقسام الثلاثة الأولى. بلغ إجمالي وقت اكتمال HTML5 / CSS ، و Respive Design مع Bootstrap ، و jQuery 13 ساعة ، ولكن وفقًا لـ RescueTime ، فقد خرجت منها في أربع ساعات فقط. في هذه المرحلة ، تساءلت عما إذا كنت أفعل شيئًا خاطئًا ، لكنني قررت أن أهنئ نفسي وأواصل المضي قدمًا.

اليوم 3-4

كنت على وشك الانطلاق وكنت أتحرك بسلاسة عبر قسم جافا سكريبت الأساسي. في وقت مبكر من صباح اليوم الثالث بدأت أشعر بالتعثر لأول مرة في تمرين Profile Lookup الذي يتضمن استخدام حلقة للتكرار عبر مجموعة من الكائنات. ولكن بحلول الساعة 10:30 مساءً ، كنت قد وصلت إلى منتصف الطريق تقريبًا من خلال البرمجة النصية للخوارزمية الأساسية (ووفقًا لـ RescueTime ، فقد قضيت ما مجموعه 12 ساعة و 20 دقيقة في Free Code Camp).

في صباح اليوم التالي بدأت في البحث في بقية الخوارزميات الأساسية ، وكتابة بعض الحلول في 3-5 دقائق. لقد أكدت في محادثة FCC أن العديد من الأشخاص يبدأون بشكل سريع نسبيًا ويتباطأون بمرور الوقت مع زيادة الصعوبة النسبية (مما يجعل أوقات الإكمال المقدرة أكثر واقعية).

ومع ذلك ، بحلول ليلة اليوم الرابع ، انتهيت من الخوارزميات بإجمالي 18 ساعة على FCC (وما يقدر بـ 22 ساعة من إجمالي وقت حساب العمالة الذي قضيته في موارد بحثية أخرى مثل شبكة مطوري Mozilla. التقدير في هذه المرحلة كان 75 ساعة.

لقد جعلني هدفي الجزئي الأصلي المتمثل في ساعتين في اليوم أفكر في أنني كنت قد أكملت 100 ساعة من العمل بحلول الوقت الذي غادرت فيه مخبئي في يوتا. الآن بعد أن أصبحت ملهمًا حقًا بالعمل ، أكملت 75 ٪ من حيث أردت أن أكون في غضون أربعة أيام فقط.

اليوم السابع عشر

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

اليوم 23-24

من خلال العمل من خلال الخوارزميات الوسيطة ، وجدت نفسي بدأت أرى الفرق بين الشفرة النظيفة والقبيحة. بدأت أيضًا في تضمين المزيد من الملاحظات في الكود الخاص بي لمراجعتها لاحقًا. بطريقة ما ، استغرق الأمر كل هذا الوقت لأدرك أن console.log ("الاختبارات") تنفث دائمًا في وحدة تحكم مطور JS في المتصفح. لقد بدأت في استخدام //repl.it لتشغيل التعليمات البرمجية التي تعرض سجلات وحدة التحكم كإخراج واضح. نوع من الإحراج الآن ولكن مهلا - لم أدع هذا يمنعني والآن أنت تعرف أفضل.

لقد تعطلت المتصفح الخاص بي لأول مرة أثناء العمل من خلال Sum of All Primes. بغض النظر ، لقد عملت في النهاية على حل المشكلة وشعرت بشعور رائع حقًا بشأن حل 99 ٪ من الوظيفة الأساسية دون أي بحث خارجي.

اليوم 31 - 33

كنت أجد تحديات الخوارزمية المتقدمة جميلة ... جيدة ... متقدمة. شعرت بسعادة غامرة عندما انتهيت من الخوارزمية المتقدمة "نطاق التواريخ الودية" في 90 دقيقة فقط. في اثنتين من هذه الخوارزميات المتقدمة أشرت إلى وظائف محددة خارج StackOverflow للمساعدة في نظافة الكود الخاص بي. في ذلك الوقت كنت قلقًا من أن هذا قد يعود ليؤذيني ، لكن العديد من الموارد التي واجهتها تجادل بأن ما يجعل مبرمجًا رائعًا هو القدرة على طرح أسئلة محددة على محرك البحث. على سبيل المثال ، سيكون إنشاء نسخة JS من خوارزمية Heap من البداية بمثابة رياضيات عالية المستوى وإعادة اختراع العجلة. أتاح لي العثور على نموذج JavaScript يمكنني العمل منه إنهاء بناء السيارة.

في اليوم 33 أنهيت آخر تحديات الترميز المتقدمة. يتطلب المشروع التالي (الأول من مشاريع تطوير الواجهة الأمامية المتقدمة) بناء JS Calculator. كان من الجيد العودة إلى جانب HTML / CSS للأشياء. لقد صعدت التحدي من خلال الترميز المباشر على قناة FCC's Twitch وانتهى بي الأمر بإكمال المشروع مع جمهور مباشر من 24 شخصًا. كانت هذه تجربة رائعة تطلبت مني شرح الكود الخاص بي كما كتبته. يحتوي الترميز المباشر أيضًا على حاجة مضمنة للحفاظ على الزخم. يكافئ أسلوب الترميز "التحرك بسرعة وكسر الأشياء" على طريقة أكثر بحثًا.

اليوم 40

أثبت ترميز لعبة Tic-Tac-Toe أنه (بالنسبة لي) المشروع الأكثر إرهاقًا على الإطلاق. بالنسبة لي ، لم يكن ترميز الذكاء الاصطناعي ممتعًا أو مرضيًا للغاية. في رأيي ، كانت نتيجتي النهائية ذات ذكاء اصطناعي ضعيف وواجهة دون المستوى. في ذلك الوقت ، تساءلت عما إذا كان بناء أشياء تفاعلية مثل هذه لم يكن ببساطة شغفي.

اليوم 45

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

احصائيات النهائي:

77 ساعة مرجعية وتعلم

67 ساعة تطوير البرمجيات

41 ساعة اتصال (بما في ذلك محادثة لجنة الاتصالات الفيدرالية)

= 185 ساعة على مدار 45 يومًا (أو حوالي 4 ساعات / يوم)

انتهى بي الأمر بإنهاء المنهج في حوالي نصف الوقت.

لا يمكنني أن أوصي ببرنامج تطوير الواجهة الأمامية لـ Free Code Camp بما يكفي. بغض النظر عن الوقت الذي تستغرقه ، فهو مجاني ، ومن السهل البدء ، ولديه مجتمع ذكي ويمكن الوصول إليه (إذا قلت ذلك بنفسي).

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

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