כמה זמן לוקח מחנה קוד חינם?

את סוף החורף ביליתי בבקתה המחוממת על ידי כיריים בצפון יוטה. לא היה מקלחת, אבל התקינו לווין על הגג והצלחנו להכניס אינטרנט מהיר יותר מהדירה שלי בסן פרנסיסקו. החלטתי ללמוד לקודד.

רציתי להשתמש בבידוד כדי ללמוד משהו חדש. דאגה לי טכנית מאז שאני זוכר את עצמי, אבל ניסיונות הקידוד שלי בעבר הניבו תוצאות לא מרהיבות.

למדתי קצת C ++ בתיכון אבל בעיקר כתבתי קוד ענקי וחוזר על עצמו כי לא הבנתי פונקציות. לקחתי קורס Visual Basic .NET בתואר ראשון אך יש לי זיכרון כמעט אפס ממה שהתרחש שם. עבדתי לפני כמה שנים בקורס JavaScript של Codecademy מערסל בגואטמלה.

אני חושב שהדרך המפותלת הזו של אי-למידה מלאה הכינה אותי במובנים מסוימים. אני גם בעל תואר בגרפיקה ממוחשבת, שהתמקד הרבה יותר בעיצוב, אנימציה ודוגמנות מאשר בקידוד, אבל זה נתן לי ידע בסיסי ב- HTML / CSS.

הרבה נכתב על "למה לקודד" אז אני לא אכה כאן סוס מת.

הגרסה הקצרה היא זו: נראה שאנשים חכמים מסכימים כי לדעת לקודד הוא מכפיל כוח כמעט לכל השאר בחיים שלך.

אחרי שחפרתי ברשת כדי לקבוע את המקום הטוב ביותר להתחיל בו, החלטתי להתחיל לעבוד דרך Free Code Camp. במקום השני הגיע פרויקט אודין, אך נראה כי Reddit מסכים ש- FCC הייתה נקודת ההתחלה החזקה יותר. ומסיבה כלשהי אני סומך על מוח הכוורת של רדיט כשמדובר בחומר הזה.

אז הגדרתי יעד ראשוני קטן של שעתיים ביום והתקנתי את RescueTime כדי לעקוב אחר עצמי. הנה הצצה לאיך זה התנהל.

יום 1

עבדתי במהירות בשלושת החלקים הראשונים. זמן השלמה משוער של HTML5 / CSS, עיצוב רספונסיבי עם Bootstrap ו- jQuery היה 13 שעות, אך על פי RescueTime דפקתי אותם בארבע בלבד. בשלב זה תהיתי אם אני עושה משהו לא בסדר, אבל החלטתי לברך את עצמי ולהמשיך להתקדם.

יום 3–4

הייתי בסיבוב ועברתי בצורה חלקה בסעיף Javascript הבסיסי. מוקדם בבוקר ביום השלישי התחלתי להרגיש תקוע בפעם הראשונה בתרגיל בדיקת פרופיל שכולל שימוש בלולאה כדי לחזור דרך מגוון של אובייקטים. אבל עד השעה 22:30 עשיתי את זה כמעט במחצית הדרך באמצעות תסריט אלגוריתם בסיסי (ולפי RescueTime ביליתי בסך הכל 12 שעות 20 דקות במחנה קוד חינם).

למחרת בבוקר התחלתי לחרוש את שאר האלגוריתמים הבסיסיים, וכתבתי חלק מהפתרונות תוך 3-5 דקות. אישרתי בצ'ט ה- FCC שאנשים רבים מתחילים במהירות יחסית ומאטים עם הזמן ככל שהקושי היחסי גדל (ובכך זמני ההשלמה המשוערים הופכים למציאותיים יותר).

עם זאת, בלילה של היום הרביעי אספתי את האלגוריתמים בסך כולל של 18 שעות ב- FCC (ועל פי הערכות כ- 22 שעות של זמן ספירת עבודה שהושקע במשאבי מחקר אחרים כמו רשת המפתחים של מוזילה. בשלב זה היה 75 שעות.

המטרה המיקרו-מטלית המקורית שלי, שעתיים ביום, גרמה לי לחשוב שהשלמתי 100 שעות עבודה עד שעזבתי את המחבוא ביוטה. עכשיו כשהייתי ממש בהשראה מהעבודה השלמתי 75% מהמקום שרציתי להיות בו תוך ארבעה ימים בלבד.

יום 17

נכנסתי למצב ראשי למטה ולא לקחתי הערות התקדמות במשך שבועיים. החדשות הרעות הן שיש מעט מה לדווח שם, אבל החדשות הטובות הן ש- FCC הייתה במצב זרימה במשך שבועיים רצופים. בשלב זה השלמתי תיק שלד (עכשיו קצת בשרני יותר) ובניתי מכונת ציטוטים אקראית כמו גם אפליקציית מזג אוויר בהשראת שר הטבעות הנוראית באמת. ביום 17 הגשתי את הצופה בויקיפדיה. ללמוד להשתמש בממשקי API היה מהנה ושימושי. מתברר שאתה יכול לבנות דברים במורכבות בינונית מבלי להבין שרתים או מאגרי מידע אחוריים (אתה יכול פשוט להתחבר למישהו אחר)!

יום 23–24

בעבודה דרך האלגוריתמים הבינוניים מצאתי את עצמי מתחיל לראות את ההבדל בין קוד נקי למכוער. התחלתי גם להטביע הערות נוספות לקוד שלי לבדיקה מאוחרת יותר. איכשהו לקח לי כל כך הרבה זמן להבין ש- console.log ("מבחנים") תמיד נזרקים במסוף המפתחים של JS בדפדפן. התחלתי להשתמש //repl.it להפעלת קוד שיציג את יומני המסוף כפלט ברור. קצת מביך עכשיו אבל היי - לא נתתי לזה לעצור אותי ועכשיו אתה יודע יותר טוב.

התרסקתי על הדפדפן בפעם הראשונה שעבדתי דרך Sum of All Primes. בלי קשר, בסופו של דבר עבדתי את הנושא והרגשתי ממש נהדר לפתור 99% מהפונקציה העיקרית ללא כל מחקר חיצוני.

יום 31–33

מצאתי את אתגרי האלגוריתם המתקדם די ... טוב ... מתקדם. הייתי די באקסטזה כשסיימתי את האלגוריתם המתקדם "טווח התאריכים הידידותיים" תוך 90 דקות בלבד. בשניים מאלגוריתמים מתקדמים אלה התייחסתי לפונקציות ספציפיות מחוץ ל- StackOverflow בכדי לעזור בניקיון הקוד שלי. באותה תקופה דאגתי שזה עלול לחזור לפגוע בי, אך משאבים רבים שנתקלתי בהם טוענים שמה שהופך מתכנת מעולה הוא היכולת לשאול שאלות ספציפיות למנוע חיפוש. למשל, יצירת גרסת JS לאלגוריתם של Heap מאפס תהיה מתמטיקה ברמה גבוהה והמצאה מחודשת של הגלגל. מציאת דגם JavaScript שאוכל לעבוד ממנו אפשרה לי לסיים את בניית המכונית בפועל.

ביום 33 סיכמתי את אחרוני אתגרי הקידוד המתקדמים. הפרויקט הבא (הראשון בפרויקטים המתקדמים של פיתוח חזית) נדרש לבנות מחשבון JS. זה היה נחמד לחפור לצד ה- HTML / CSS של הדברים. הגדלתי את האתגר על ידי קידוד חי בערוץ ה- Twitch של FCC וסיימתי את הפרויקט עם קהל חי של 24 אנשים. זו הייתה חוויה נהדרת שדרשה ממני להסביר את הקוד שלי כשכתבתי אותו. לקידוד חי יש גם צורך מובנה לשמור על מומנטום. זה מתגמל סגנון קידוד "זז מהר ושבר דברים" על פני שיטה כבדה יותר במחקר.

יום 40

קידוד המשחק Tic-Tac-Toe הוכיח שהוא (מבחינתי) הפרויקט המתיש מכולם. מבחינתי קידוד ה- AI לא היה מהנה או מספק במיוחד. לדעתי, לתוצאה הסופית שלי הייתה AI חלש וממשק תת-פרסי. באותה תקופה תהיתי אם אולי פשוט לבנות דברים אינטראקטיביים כאלה זה לא התשוקה שלי.

יום 45

עבדתי קשה בטירוף על פרויקט הגמר שביקש העתק JavaScript של המשחק שמעון משנות השבעים, עם "מצב קפדני" אופציונלי ומהירות משחק הולכת וגוברת. הייתי נחושה להפוך את זה לחריג. נכון לכתיבת שורות אלה אני עדיין מרגיש כאילו סיימון שלי היא אחת הגרסאות הנראות הכי טוב שיש. ביום 45 סיימתי את הפרויקט ותפסתי את תעודת הפיתוח של חזית הקצה שלי!

סטטיסטיקה אחרונה:

77 שעות התייחסות ולמידה

67 שעות פיתוח תוכנה

41 שעות תקשורת (כולל צ'אט FCC)

= 185 שעות במהלך 45 יום (או ~ 4 שעות ביום)

בסופו של דבר סיימתי את תוכנית הלימודים בערך במחצית הזמן.

אני לא יכול להמליץ ​​מספיק על תוכנית ה- Front End Dev של Free Camp Camp. לא משנה כמה זמן לוקח לך, זה בחינם, קל להתחיל, ויש בו קהילה אינטליגנטית ונגישה (אם אני אומר זאת בעצמי).

מצאתי את עצמי מרגיש רעב אינטלקטואלי ולמידה לקודד מהווה מתיחה מספקת לשרירי הנפש הישנים. אני חוזר לסן פרנסיסקו ומתכוון להמשיך במסע הזה לטכנולוגיה.

אם אתה לומד לקודד, התייחס לחינוך שלך כמו לתפקיד שהוא. עקוב אחרי ותודיע לי איך אני יכול לעזור! מעולם לא היו הרווחים העצומים של התקדמות איטרטיבית כה ברורים כמו בעת לימוד קוד.