בפוסט זה, אשתף כיצד עברתי מאפס (יש) להצעת עבודה בהנדסת תוכנה בת שש ספרות בתשעה חודשים תוך כדי עבודה במשרה מלאה והייתי אוטודידקט.
בכל פעם שהייתי מתחיל לקרוא סיפור הצלחה, מיד הייתי מחפש למצוא את הרקע של המחבר, בתקווה שהוא יתאים לשלי. מעולם לא מצאתי מישהו שהיה בעל אותו רקע כמוני, וככל הנראה שלי לא יתאים בדיוק לזה שלך.
עם זאת, אני מקווה שהסיפור שלי יעורר השראה לאחרים ויפעל כנקודת נתונים חשובה שניתן להוסיף למערך סיפור ההצלחה שלך.
גילוי מלא
למדתי קורס Visual Visual for Applications (VBA) בתיכון (לפני תשע שנים). בקורס ההנדסה הטרי שלי (לפני שבע שנים) למדתי C, Python, Matlab ו- Labview. סיימתי אוניברסיטה טובה עם תואר בהנדסת כימיה ותואר שני (לפני שלוש שנים). לא ביצעתי שום תכנות מחוץ לבית הספר, בתיכון או במכללה, עד שהחלטתי שאני רוצה ללמוד בשנה שעברה.
אחרי הלימודים קיבלתי עבודה כמהנדס תהליכים בבית זיקוק. עבדתי שם עד שהחלפתי קריירה להנדסת תוכנה.
למה רציתי להחליף קריירה
נהנתי לפתור בעיות טכניות, אבל ידעתי שאני רוצה להיכנס לעולם העסקים / סטארטאפים בשלב כלשהו. תמיד שמרתי את המחשבה על תואר שני במנהל עסקים במוחי, אבל בכל פעם שהסתכלתי על תג המחיר של בתי הספר המובילים, העניין שלי דעך.
ב- 27 במאי 2017 מצאתי את עצמי שוב מחפש גוגל בנושא תואר שני במנהל עסקים, ואיכשהו נקלעתי להנדסת תוכנה. זה נראה כמו התאמה מושלמת.
מהנדסי תוכנה מבוקשים יותר ויותר, המשכורות נהדרות וזה התעשייה המושלמת שממנה ניתן להגיע לעולם הסטארטאפים מבלי להזדקק להמון הון ראשוני. כל מה שאתה צריך זה מחשב, וההזדמנויות שלך הן בלתי מוגבלות (סוג של).
בשום תחום הנדסי אחר אתה לא יכול פשוט לקבל רעיון, להתחיל לבנות אותו, להראות אותו למשתמשים, ואיתור עם מעט הון ומחסום כניסה נמוך. בהנדסה כימית, אתה בעצם צריך מפעל פועל או הרבה כסף כדי לתכנן מפעל אם היה לך רעיון למוצר חדש.
שמעתי על אנשים שעזבו את עבודתם והשתתפו במחנה אתחול, אך ככל שקראתי על כך יותר באינטרנט, כך הבנתי שתוכל ללמוד לגמרי לבד אם אתה מחויב וממוקד.
אתה יכול לטעון שאתה מפסיד את ייעוץ הרשת והקריירה שמספק bootcamp. זה יכול להיות נכון, אבל התמזל מזלי כי גרתי באזור המפרץ שאיפשר לי להשתתף בכמה מפגשים, אז התחברתי ככה.
חוץ מזה, המקרה הגרוע ביותר היה שאבין שאני לא יכול לעשות את זה לבד, ואז אפסיק את עבודתי כדי להשתתף במחנה אתחול.
המטרה

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

ברגע שיש לך מטרה, אתה צריך תוכנית שתעזור לך להגיע לשם. זה המקום בו אתם צורכים כמה שיותר סיפורי הצלחה. אף אחד מהם לא יתאים למצבכם המדויק, אך תוכלו לקבל עצות מכל אחד מהם. פיתחתי (ואיתרתי) את התוכנית שלי תוך שימוש במשאבים כמו subreddit ללמוד תכנות, פורום freeCodeCamp ומדיום.
ב- 27 במאי 2017 החלטתי שאני הולך לצלול את הקידוד ואני צולל בראש בראש. באותו יום החלטתי להתחיל להכניס לא יותר מ- 40 שעות בשבוע בעבודתי, כדי שיהיה לי זמן לקודד אחרי העבודה ובסופי שבוע. למזלכם, עשיתי עבודה די טובה בתיעוד ההתקדמות שלי.
התוכנית שלי, באמצעות איטרציות רבות, נראתה בסופו של דבר ככה:
- השתתף בקורס מבוא למדעי המחשב כדי לקבל הבנה בסיסית של מושגי ליבה של CS
- עקוב אחר freeCodeCamp עד שאוכל לבנות לבד אפליקציות אינטרנט עם מחסנית מלאה
- רפקטור לניקוי הקוד, הוספת בדיקות, התמקדות במושגים מתקדמים
- תורמים למקור פתוח
- היכונו לראיונות עבודה
כדי להתחיל, התוכנית שלי הייתה פשוטה. באותה תקופה חשבתי שאני הולך לעקוב אחר המדריך הטכני של גוגל, אז התחלתי עם קורס ההיכרות המומלץ שלהם, Udacity CS101.
חודש 0 - Udacity CS101, הרווארד CS50
השיא של קבלת ההחלטה הגדולה הזו העניק לי המון אנרגיה. הייתי מתחיל בקידוד ברגע שחזרתי מהעבודה ולא אפסיק עד שהלכתי לישון. ואז שוב כל סוף השבוע. Udacity CS101 עקב אחר אחוזי ההשלמה, שהיה מניע גדול עבורי. תיעדתי את אחוז ההשלמה שלי כל יום לאחר הקידוד. סיימתי את 75% הראשונים מזה 10 ימים. 25% האחרונים היו כבדים ברקורסיה, וזה היה קצת קשה לי יותר. בסך הכל לקח לי 20 יום לסיים את Udacity CS101.
בזמן שלקחתי את Udacity CS101 התחלתי לקרוא את ה- subprogramming למידה בכבדות למדי. קראתי שהיה חשוב למפתחים אוטודידקטיים המעוניינים לעשות שינוי בקריירה להיות פעילים ברשת. החלטתי ליצור חשבונות טוויטר, Reddit, Stack Overflow, Medium ו- Quora חדשים תוך שימוש בשמי המלא, כדי שאוכל לבנות נוכחות מקוונת.
כמו כן, החלטתי להפסיק לקרוא מדיות מפריעות כמו אינסטגרם, פייסבוק ותכנות משנה שאינן מתכנות. הייתי בודק בטלפון שלי אם יש חדשות ופוסטים הקשורים לתכנות. זה היה חיוני כדי לוודא שאני מברר על מסלולי הלמידה והמשאבים הטובים ביותר. בגלל זה גיליתי על הרווארד CS50 ב- edX.
במקור הסתפקתי רק בקורס מבוא אחד, אבל נראה שכולם המליצו על הרווארד CS50, אז החלטתי לצלול לזה הבא. סטודנטים למדעי המחשב בבתי ספר אחרים למדו קורס זה ואמרו שלמדו יותר ב- CS50 מאשר שנה-שנתיים באוניברסיטה שלהם שלמדו CS. ההסכמה הכללית הייתה שהמהלך היה קשה אבל שווה את זה. בסוף חודש 0 סיימתי את חמש ההרצאות והמשימות הראשונות.
חודש 1 - הרווארד CS50, לינוקס, מפגש ראשון, freeCodeCamp
סיימתי את CS50 בערך באמצע החודש. אני לא מתכוון להגיב יותר מדי על הניסיון שלי עם CS50 מכיוון שכתבתי פוסט מעמיק על החוויה שלי כאן.
TLDR: זה קורס נהדר, אני ממליץ עליו בחום. דיוויד מאלן הוא מרצה מצוין ויש המון משאבים שיעזרו לך לעבור את זה. אתה מתחיל ב- C, עובר לפייתון ואז מסיים בפיתוח אתרים. הוא צפוף מאוד, ויש הרבה חומר, אבל אני חושב שזה שווה את זה.
אחרי CS50, החלטתי להגדיר את ה- XPS 15 שלי לאתחול כפול של חלונות ואובונטו. זה היה סוף שבוע מתסכל. פישלתי במחיצות שלי וכמעט לבשתי את המחשב הנייד שלי. הייתי קרוב לזרוק את המחשב הנייד ולקבל מחשב חדש.
נגמלתי לאט לאט מ- Windows ובסופו של דבר השתמשתי אך ורק באובונטו. רציתי להכריח את עצמי להרגיש בנוח עם שורת הפקודה שלדעתי עבדה במידה מסוימת, אבל יש לי עוד דרך ארוכה.
התחלתי 100 יום של קוד כדי לוודא שאני נשאר מרוכז ומקודד כל יום.חשוב לתעד את ההתקדמות שלך. אם אתה מתקדם מדי יום, זה לא נראה הרבה, אבל כשתסתכל אחורה על חודש או מספר חודשים, תבין שבעצם התקדמת לא מעט מה שמניע אותך להמשיך.
ידעתי שהרשתות תגרום לי או תשבור אותי, אז אזרתי אומץ ללכת למפגש הקידוד הראשון שלי. מעולם לא הלכתי לשום מפגש, שלא לדבר על מפגש קידוד. הייתי כל כך עצבני שאחרי שנסעתי לשם, חניתי והלכתי לדלת, כמעט הסתובבתי וחזרתי הביתה.
זה עזר שזה היה המפגש הראשון של הקבוצה. מהר מאוד הבנתי שאין סיבה להיות עצבני. איש לא הכיר, איש לא היה שיפוטי, וכולם היו להוטים ללמוד. זו הייתה תחילתו של מפגש מפגש. בסופו של דבר השתתפתי ביותר מ -50 מפגשים תוך 9 חודשים.
אני שמח שהתחלתי ללכת למפגשים מוקדם. רוב האנשים התחילו להשתתף במפגשים רק כשחיפשו עבודה, אך בשלב זה כמעט מאוחר מדי. יש כל כך הרבה סיבות להתחיל מוקדם. להזכיר כמה:
- פיתוח מערכות יחסים לוקח הרבה זמן. התחלה מוקדמת פירושה שיש לך קשרים שיכולים לערוב עבורך כשמחפשים עבודה אחר כך
- לדבר על תכנות עם זרים זו דרך נהדרת להתכונן לראיונות
- תוכלו ללמוד מסגרות, כלים ומשאבי למידה חדשים מאנשים שלפניכם. זה יכול להשפיע על תוכנית הלמידה העתידית שלך.
הייתה חוסר וודאות בשלב זה במסע הקידוד שלי. זה היה בערך כשהייתי צריך להחליט איזה מפתח תוכנה אני רוצה להיות.
בסופו של דבר, בחרתי בפיתוח אתרים כי נראה היה שיש ביקוש גבוה וגם הרבה משאבים מקוונים. ברגע שהבנתי את זה, הייתי צריך להבין מה לעשות הלאה. יש אנשים שהמליצו שבשלב זה אני אחשוב על אפליקציות אינטרנט שרציתי לבנות ואז לצאת לדרך. יש אנשים שהמליצו על פרויקט אודין או על freeCodeCamp.
הבחור שניהל את המפגש השבועי בו השתתפתי הכיר את רובי ורצה לעשות פרויקטים עם רובי. זו הייתה סיבה גדולה שבגללה קיבלתי את ההחלטה להיכנס הכל לפרויקט אודין.
ואז יומיים לאחר מכן הוצאתי את הרעיון הזה.
זה אחד החסרונות ללכת בדרך של אוטודידקט. רגע אחד אתה חושב שאתה יודע באיזה דרך אתה צריך ללכת, אבל אז למחרת אתה תוהה אם זה היה הצעד הנכון.
קראתי שרובי נפל לנגד עיני, והוכחתי זאת על ידי חיפוש משרות של רובי לעומת JavaScript, אז בסופו של דבר התחלתי את freeCodeCamp. הדבר היחיד שהפריע לי ב- freeCodeCamp היה שהם העלו את הרעיונות לפרויקט, כך שכל חניך עושה את אותם הפרויקטים. זה דאג לי בהתחלה כי רציתי לבלוט מול המגייסים. עם זאת, בסופו של דבר אהבתי את freeCodeCamp, ועכשיו אני ממליץ עליה בחום. לפרטים נוספים על הניסיון וההמלצות שלי בנוגע ל- freeCodeCamp, עיין בכתיבה שלי כאן.
חודש 2 - YDKJS, FreeCodeCamp Front End, תגובה
התחלתי לקרוא את לא יודע JavaScript, כי כולם המליצו עליו להשלים את freeCodeCamp. נאלצתי לקרוא מחדש כמה קטעים מכיוון שהוא די צפוף, אבל זה משאב מושלם ללמוד היקף מילוני, סגירות, הבטחות וכל חלקי ה- JavaScript שאתה שומע עליהם ורוצה ללמוד אך לעולם לא לעשות משום שהם נראים קשים.
סיימתי את החלק הקדמי של freeCodeCamp. הפורמט של רשימת הבדיקה וזמן ההשלמה המשוער עזרו להניע אותי לסיים במהירות. גם גירדתי לעבור לסעיף הבא וללמוד תגיב. עם זאת, זה גם אומר שהפרויקטים שלי היו בעלי עיצוב מינימלי. עשיתי כל מה שנדרש כדי להגשים את סיפורי המשתמש ותו לא.
בדיעבד, אולי הייתי צריך להתמקד בהפיכת הפרויקטים למושכים יותר. אולי זה היה עוזר לי ללמוד CSS לעומק יותר.
השלב הבא היה לימוד תגובה, ונשאבתי די.
שמעתי כל כך הרבה על זה והייתי מוכן להשתלב עם הילדים המגניבים. עם זאת, היססתי מעט בהתחשב בסוגיות הרישוי באותה תקופה. אני ממש שמח שזה כבר לא נושא. למידת תגובה הייתה קשה עבורי. לא הכרתי הדרכות טובות אז (אבל נראה שיש עכשיו המון).
ניסיתי לקרוא את המסמכים ולעקוב אחר המדריך Tic-Tac-Toe של פייסבוק, אבל לא כל כך הבנתי את כל זה. אמרו לי שאם זה לא עובד בשבילי, זה אומר שאני לא מבין מספיק ב- JavaScript. אז חזרתי לקרוא את You Don't Know JavaScript, אבל שוב זה היה צפוף מדי בשבילי.
חודש 3 - freeCodeCamp React, CodeClub, החל מ- FreeCodeCamp Back End
בסופו של דבר, פשוט החלטתי שאעבוד בדרכי בפרויקטים FreeCodeCamp React כדי לראות איך זה מתנהל. הקוד הזה היה מכוער, אבל הוא עזר לי להבין את תגובה קצת יותר טוב.
המפגש ההוא בו השתתפתי מדי שבוע החליט שהם הולכים לבנות פרויקטים עם JavaScript מלא של מחסנית במקום Ruby, והם החליטו שהפרויקט הראשון יהיה לבנות אתר לקבוצת ה- Meetup, CodeClub.Social.
פיתחתי כרטיסים באמצעות React ו- Meetup API המאפשר למשתמש להירשם לשלושת המפגשים הבאים מאתרנו. היה לי קצת קשה לקחת הפסקה מהירה מ- FreeCodeCamp כדי לעשות זאת, אבל זו הייתה הזדמנות שלא יכולתי לוותר עליה. שמחתי לעבוד על פרויקט עם קבוצה קטנה של אנשים. זה גם עזר לי ללמוד את גיט ואת גיתוב.
לפני שהחודש הסתיים, התחלתי לעבוד על החלק האחורי של freeCodeCamp.
חודש 4 - FreeCodeCamp Back End, Yeggle
עבדתי בכל פרויקטי ה- API ב- freeCodeCamp, אבל התחלתי לסטות מ- freeCodeCamp בפרויקט שכבת ההפשטה של Image Search.
גרד לי להכין יישומי רשת מלא, כך שברגע שראיתי את הכותרת של הפרויקט הזה, היה לי רעיון לפרויקט שלי. הייתי מכין אפליקציית צומת שתאחסן כתובות אתרים אקראיות של imgur במסד נתונים, ואז אעשה ממשק קצה שיוציא מספר שצוין על ידי המשתמש מאותן תמונות אקראיות. מה שכולם אומרים נכון: אתה עובד קשה יותר ומצליח יותר כשאתה עובד על פרויקט שהיה הרעיון שלך.
ברגע שקיבלתי את זה לעבודה, הייתי מאוד גאה בעצמי. זה היה מכוער ומסורבל, אבל זה עבד.
כשעבדתי דרך freeCodeCamp, למדתי על הפרויקטים שביכולתי. באותה תקופה רצתי באופן קבוע, אז הייתי מעלה רעיונות לריצות שלי ורושם אותן כשאחזור הביתה. כך תהיה לי רשימה של רעיונות לפרויקט כשאני מוכן.
סוף סוף הרגשתי מוכן להתחיל להכין אפליקציות אינטרנט שימושיות ומלוטשות עם מחסנית מלאה כדי לשתף עם המשתמשים ולשים את תיק העבודות שלי. הייתי כל כך מוכן להתחיל.
כשחיפשתי מסעדה חדשה תמיד מצאתי את עצמי פותח את Yelp לבדיקת ביקורות ואז פותח מפות כדי לבדוק את הביקורות שלהם. מה אם הכנתי אפליקציה שהשוותה את שניהם זה לצד זה?
אז הכנתי את יגגל. השתמשתי ב- Node / Express / React יחד עם ממשקי ה- API של מפות Google ו- Yelp. היו כמה מכשולים שלא חשבתי שאצליח להתגבר עליהם, אבל בסוף סיימתי והייתי מאוד גאה באפליקציה שלי. ואז פרסמתי אותו לרדיט, ולאף אחד לא היה אכפת. זה היה קצת מטורף, אבל לא נתתי לזה להפיל אותי.
חודש 5 - StockIT
לא עשיתי כל כך הרבה החודש כי התחלתי את זה עם חופשה של שבועיים ליפן ותאילנד!
אבל התחלתי והשלמתי את הפרויקט הבא שלי. המשכתי לקרוא על כמה קשה להשיג עבודה כמפתח אוטודידקט, אז חשבתי שאני צריך לעשות משהו ייחודי. נזכרתי במשחק שבו גרף המניות של דאו ג'ונס החל להתפתח, והייתה לך הזדמנות אחת לקנות והזדמנות אחת למכור, והמטרה הייתה לנצח את השוק. מטרת המשחק הייתה להראות לך כמה קשה לנצח את השוק.
הרעיון שלי היה ליצור משחק דומה לזה, אבל במקום השוק היית משחק נגד אלגוריתם למידת מכונה. אז יצרתי את StockIT.
לקחתי סרטון הדרכה בנושא Pandas ו- Scikit Learn שעסק בכמה טכניקות של למידת מכונה. במקור רציתי לעשות כמה טכניקות למידה עמוקות מגניבות, אבל הבנתי שלוקח מערכי נתונים מסיביים ויותר זמן ממה שרציתי להשקיע.
במקום זאת, דבקתי במודל רגרסיה לינארית פשוטה. חשבתי שזה יהיה החלק הקשה, אבל זה לא היה. לגרום ל- D3 לצלול עם React היה החלק הקשה. שתי הספריות רצו לשלוט ב- DOM. היו כמה ספריות אחרות שעזרו להצטרף לשניים, אבל הרגשתי שהן נפוחות מדי. בסופו של דבר השתמשתי ב- D3 כדי ליצור SVGs ו- React לטפל ב- DOM שהסתדר לי די טוב.
הפעם כששיתפתי את זה עם Reddit, כולם אהבו את זה!
מתברר, בדיוק כמו קרנות הון סיכון, רדיטורים עוסקים בלמידת מכונה זו. כל האהבה מ- Reddit הייתה דחיפת ביטחון גדולה. אנשים שיחקו במשחק שלי ונהנו ממנו!
חודש 6 - jobSort (), הכנת Job Hunt
אחרי StockIT התגלגלתי היישר לפרויקט האישי הבא שלי. רציתי ליצור לוח דרושים המאגד את אתרי רישום המשרות הקטנים יותר הממוקדים בטכנולוגיה כגון Stack Overflow, Github ו- Hacker News. כדי להוסיף לזה את הספין הייחודי שלי, החלטתי למיין אותו על סמך הטכנולוגיות שהמשתמש רוצה בעבודה ועד כמה הם רוצים כל אחת מהן.
לדוגמא, נניח שחיפשתי עבודה שחיפשה מישהו שמכיר JavaScript, React ו / או Python, ורציתי מאוד לעבוד עם JavaScript ו- React אבל לא כל כך אכפת לי מפייתון. ואז אוכל לתת ל- JavaScript 3, להגיב 3 ואולי לפייתון 1. הרישומים יתמיינו בהתאם.
נקלעתי למכשולים שונים עם הפרויקט הזה ונאלצתי לשנות מסלול כמה פעמים, אבל בסופו של דבר קיבלתי מוצר שהייתי מרוצה ממנו. מחסנית הטכנולוגיה האחרונה שלי הייתה React / Node / Express / MySQL. פרסמתי את הפרויקט ל cscareerquestions subreddit וקיבלתי 650 צפיות לפני הורדתו מכיוון שהם אינם מאפשרים פרויקטים אישיים.
המוצר "הסופי" נמצא כאן, ואם אתה מעוניין לדעת יותר על ההתמודדויות והפרקטורים שלי, עיין בפוסט שלי כאן.
בגלל הבעיות שלי, JobSort () תפס חלק נכבד מהחודש. בסופו של דבר קיבלתי קפה עם חבר שפגשתי בפגישה הראשונה שלי, והוא יעץ לי להתחיל להגיש מועמדות עכשיו. קראתי בכל מקום שכולם אומרים שהם חיכו יותר מדי זמן ליישום. כמו כן, בכל פעם שראיתי פוסט ששאל מתי להגיש מועמדות, התגובה העליונה הייתה תמיד "עכשיו".
בראשי התכוונתי לעבוד דרך התוכנית המובנית שלי כדי לבנות את תיק העבודות שלי בפרויקטים אישיים, ואז לעבוד על תרומות קוד פתוח, ואז להתכונן לראיונות, ולבסוף להתחיל לפנות למשרות. החבר הזה שכנע אותי לנטוש את התוכנית ולהתחיל ליישם. אז החודש הכנתי תיק וקורות חיים. בחודש שלאחר מכן הייתי מתחיל להגיש מועמדות.
חודש 7 - בדיקות, ציד עבודה
החודש התמקדתי בטיפול בפרויקטים שלי ופנייה למשרות. רציתי גם ללמוד בדיקות ו- Redux.
הוספתי Flexbox ל- CodeClub.Social כדי להגיב. שיפרתי את ה- UX הנייד ב- jobSort (). הוספתי בדיקות ל- jobSort () עם מוקה / חי / אנזים שהיה קשה להגדיר, קל להתחיל ואז קשה להשיג כיסוי של 100%.
עד סוף החודש פניתי ל -63 משרות. ראיתי בזה הערכה עצמית. האם תיק העבודות / קורות החיים שלי היו מספיק טובים? אם כן, על מה הייתי צריך לעבוד כדי להתכונן לראיונות? בהתחלה פניתי ל- Hacker News: מי מזמין, ואכן.
ב- Hacker News השתמשתי ב- jobSort () כדי לקבוע לאילו רישומים להגיש מועמדות. על אכן ניסיתי חברות שאינן תוכנות לבדוק אם בכלל אוכל להתקשר או לראיון בכל מקום.
בהתחלה הגשתי בקשה במהירות ולא התאמתי אישית את קורות החיים / מכתב הכיסוי שלי. ואז, החלטתי להתאים אישית את מכתב הכיסוי שלי ואת קורות החיים ואז לנסות לשלוח דוא"ל למישהו מהחברה. ברור ששיטה זו הייתה טובה יותר מגישת הרובה.
קיבלתי חמש שיחות באותו חודש - שתיים מחברות גיוס ושלוש מחברות תוכנה שכללו:
- תפקיד קבלני DevOps / בדיקה בחברת dotcom
- חברה לניתוח מזון מסדרה B, וכן
- סטארט-אפ די גדול ומוצלח שנרכש לאחרונה על ידי תאגיד גדול
עברתי את מסך משאבי אנוש בשניים כאלה, אך אף אחד מהם לא הניב ראיון במקום. הייתי די מרוצה משלוש השיחות, ולמדתי מהם המון.
כולם הזכירו באינטרנט כי לא מצפים ממפתחים זוטרים לדעת כל כך הרבה מההתחלה, הם רק צריכים להיות נלהבים ונרגשים ללמוד. אז חשבתי, קל. אני נלהב ונרגש ללמוד. אולם מה שלמדתי מהשיחות האלה היה שאף אחד לא חיפש מפתח זוטר. הם מצפים שתדע מה אתה עושה מהיום הראשון.
השיחות האלה לימדו אותי שאני צריך
- להיות מספיק טוב כדי להוסיף ערך מהיום הראשון
- להיות בטוח מספיק כדי לשכנע אותם שאני יכול להוסיף ערך מהיום הראשון
חודש 8 - משמרת לילה, Redux, קוד פתוח, ראיון במקום
התחלתי החודש לעבוד במשמרת לילה למשך 40 יום בעבודתי המלאה - 6 ימים בשבוע, 12 שעות ביום, 17:00 עד 05:00. אוף
ידעתי שלא אצליח לעשות החודש כמה שיותר, אבל הייתה לי מטרה ורציתי לעמוד בזה, אז לא אוכל לקחת חודש חופש.
שיניתי מחדש את JobSort להשתמש ב- Redux שהיה באופן מפתיע לא קשה כמו שחשבתי שיהיה. הקשבתי להרבה פודקאסטים בנושא וקראתי פוסטים בבלוג על זה, וזה אף פעם לא ממש הגיוני לי עד שהתחלתי להשתמש בו.
אני מאוד אוהב את זרימת הנתונים עם Redux. מעניין עכשיו לראות אנשים מתלוננים על Redux. אני לא חושב שאני כשיר לזלף את דעותיי בחוזקה, אבל אני אוהב את דפוס המפחית.
זה היה אמור להיות חודש הקוד הפתוח עבורי. התכוונתי לתרום את קוד הפתוח הראשון שלי, וזו תהיה תרומה נהדרת לספריה נהדרת. התכוונתי לתרום לתגובה!
כולם אמרו שזה בסיס קוד לקריאה שלא לדבר על לתרום לו. אבל הייתי צריך להתבלט, הייתי צריך להיות ייחודי. ידעתי שהתרומה שלי לא תהיה משמעותית, אך בכל זאת רציתי לעשות זאת.
הייתי מתחיל לקרוא את המסמכים לאורך כל הדרך ואז לשפוך דרך בסיס הקוד. צפו בכל נושא, בכל יחסי ציבור. קריאה מלאה של מסמכי React הייתה תרגיל נהדר, ואני שמח שעשיתי את זה. אבל מהר מאוד הבנתי שהנושא עם התרומה ל- React הוא שאין פשוט כל כך הרבה "גליונות ראשונים טובים", והם נחטפים במהירות.
באחד המפגשים בהם השתתפתי, אנתוני נג המליץ לי לנסות את Downshift, ספרייה להשלמה אוטומטית של קנט סי דודס. זה היה משחק משנה. זה היה ממש בבית הגלגלים שלי. הקושי הנכון, הכמות הנכונה של הבעיות שיעזרו לך, לא יותר מדי משתפי פעולה, תחזוקה מועילה במיוחד, קוד נקי היטב. נוסף על כל אלה, זה היה פיתרון מושלם לכמה בעיות שהיו לי עם היישום jobSort () שלי.
בערך במחצית החודש קיבלתי אימייל מאחת החברות שפניתי אליה בחודש הקודם. הם הקימו מסך טלפון ראשוני, ואז מסך טלפון טכני. הטכנולוגיות שחיפשו היו בדיוק מה שלמדתי - React, Redux ו- D3. בעיקר דיברתי רק על הפרויקטים שלי ולמה קיבלתי החלטות מסוימות. אחרי זה הם ביקשו ממני לבוא לראיון במקום. הראיון הראשון שלי באתר!
בכלל לא התכוננתי לראיונות, אז נכנסתי לזה מתוך ציפייה שלא אשיג את העבודה, אבל אזכה בניסיון ראיון יקר. גם רצתי על שלוש שעות שינה מכיוון שעדיין עבדתי במשמרת לילה שלא עזר. למרבה המזל, החלק הטכני לא היה לוח מודעות, אלא רק מפגש תכנות זוגי בן שעה. זה היה אתגר די פשוט, אבל הייתי מאוד עצבני.
בהתחלה דאגתי לוודא שאני יודע הכל בלי לחפש אותו. כשהבנתי שאני לא הולך לסיים את האתגר, הבנתי שאני צריך להפסיק לדאוג מה המראיין חושב עלי ופשוט לחפש בגוגל / מחסנית כדי למצוא תשובות. בסופו של דבר לא סיימתי וחשבתי שאני נכשל כישלון חרוץ.
מכיוון שחשבתי שנכשלתי בתכנות הזוגיות, הרגשתי נינוחה להמשך הראיון. בסופו של דבר עזבתי את הראיון עם הסנטר למעלה. במקרה הגרוע ביותר קיבלתי ניסיון ראיון יקר, ובמקרה הטוב קיבלתי את הצעת העבודה הראשונה שלי.
חודש 9 - הצעת עבודה
בסופו של דבר קיבלתי את הצעת העבודה הראשונה שלי 9 חודשים ושבעה ימים לאחר היום הראשון ההוא, כשהחלטתי שאני הולך לצלול ראשית לתכנות מתוך כוונה לשנות קריירה. הרגשתי ביטחון בהתחשב בכך שקיבלתי הצעה אחרי הראיון הראשון שלי במקום, אך יחד עם זאת, אם לא אקח את ההצעה, מה אם זו ההצעה היחידה שאקבל במשך מספר חודשים? בסופו של דבר קיבלתי את ההצעה ואני שמח מההחלטה שלי. רציתי לקבל תשלום על קוד!
עֵצָה
עד לנקודה זו, שיתפתי בעיקר את הסיפור שלי עם כמה עצות שהוזרמו פנימה. רוב הסיכויים שאם אתה קורא את זה, אתה חושב על שינוי קריירה או שנמצא באמצע ללמוד קידוד מתוך כוונה לשנות קריירה. אני מקווה שהעצות שלהלן יעזרו לך לפתח תוכנית או לעמוד בתוכנית הנוכחית שלך ולהגיע ליעד שלך.
- גלה מה מניע אותך והשתמש בו לטובתך. מבחינתי זה היה רשימות תיעוד, תיעוד ההתקדמות שלי ואינטראקציה עם קהילות תכנות שונות. אם אין לך מוטיבציה להגיע למטרה שלך, אז שום דבר אחר לא משנה כי לא תסיים.
- הגדר יעדים ועמוד בהם. הייתי טוען שכדאי שיהיו לך יעדים חודשיים ואולי אפילו יעדים יומיים. יעדים חודשיים כדי לוודא שאתה בדרך לעמוד ביעד העיקרי שלך, ויעדים יומיומיים כדי לוודא שאתה באמת מתקדם מדי יום. אסטרטגיה אחת שעבדה עבורי הייתה להשיג את המטרות היומיומיות שלי ערב קודם. בדרך זו, אתה לא יכול לעשות עבודה לא פרודוקטיבית כל היום ולהרגיש שהתקדמת כשלא באמת עשית זאת. זה מאלץ אותך להשוות את ההישגים היומיומיים שלך למטרות היומיומיות שלך.
- עבור למפגש דרך לפני שאתה חושב שאתה מוכן. ללכת למפגשים יכול להרגיש מפחיד, אבל כפי שציינתי לעיל. אבל, באופן כללי כולם נחמדים ומוכנים לעזור. אולי תמצא אנשים שלא מעוניינים לדבר איתך, אבל הם המיעוט ואף אחד לא ישפוט. כמו כן, כולם אוהבים לתת עצות (כמו שאני עושה כרגע).
- תרום לדרך קוד פתוח לפני שאתה חושב שאתה מוכן. כאשר אתה מתחיל לתכנת לראשונה, Github נראה כמו המקום המפחיד הזה שאתה אף פעם לא רוצה ללכת אליו. זה ממש מסביר פנים למתחילים וזה מקום נהדר לראות קוד טוב ולקבל ביקורת על הקוד שלך. אם אתה עדיין לא משוכנע, בדוק את הפוסט שלי מדוע כדאי לך לתרום למקור פתוח כבר עכשיו.
- התחל ליישם דרך לפני שאתה חושב שאתה מוכן. זה היה קשה בשבילי כי חשבתי שאני שונה. חשבתי שאני לא צריך לבדוק את השוק כדי להרגיש על מה לעבוד. חשבתי שאדע מתי אהיה מוכן להגיש מועמדות. אני אומר לך עכשיו. לא תדעו מתי להגיש מועמדות. אז אתה יכול גם להתחיל עכשיו. אתה לא צריך להשתגע ולהגיש מועמדות ל -300 חברות לפני שתלמד לולאות. אך עליכם לדעת שהדרך הטובה ביותר לדעת מה עליכם ללמוד היא על ידי יישום ובדיקת השוק.
עכשיו חזור לשם וקוד!