בתקופת הקורונה, לאחר עשרה חודשים אינטנסיביים של לימוד JavaScript ,CSS, HTML וריאקט הצלחתי למצוא עבודה בפיתוח.
כשיצאתי למסע הזה הרגשתי שהגעתי לרמה טובה של יכולת וידע בלימודים, ושאני מוכן להתחיל לחפש עבודה. מצד שני גם לא הייתה לי כל כך ברירה, כי דמי האבטלה עמדו להגמר. אז בניתי אתר פורטפוליו, שיפצתי את הפרופיל בלינקדאין, כתבתי קורות חיים אפקטיביים וניגשתי לעבודה.
במאמר הזה אספר על תהליך מציאת העבודה הראשונה שלי בתכנות, ואשתף בטיפים שלמדתי מחיפוש העבודה.
לא בטוחים מה ללמוד?
אל תבזבזו זמן וכסף על הכשרות שלא יקדמו אתכם – השאירו פרטים ונעזור לכם למצוא תכנית לימודים שתפורה עליכם!
התהליך שלי לקראת מציאת עבודה בפיתוח
בתור צעד ראשון, התחלתי לפרסם פוסטים בקבוצות רלוונטיות בפייסבוק כדי לעשות נטוורקינג. במקביל התחלתי לשלוח מלא קורות חיים בלינקדאין למשרות שפחות או יותר התאימו לניסיון שלי.
נקודת המוצא שלי היתה שהקורסים והפרויקטים שעשיתי, והעובדה שעבדתי עליהם במשך כשנה, מעניקים לי סטטוס של מתכנת עם ניסיון של שנה. אז שלחתי קורות חיים גם למשרות שדרשו שנתיים ניסיון. שלחתי המון קורות חיים.
לא עשיתי מעקב, כי בעיני אין בזה טעם. ובהתחלה לרוב קיבלתי בתגובה מיילים שאומרים משהו בסגנון:
"החלטנו להתקדם עם מועמדים יותר מתאימים ולא איתך".
למה סירבתי להצעת עבודה מחברה גדולה
לשמחתי, בשלב מאוד מוקדם של חיפוש העבודה חזרו אלי מחברה בינלאומית גדולה, והציעו לי תפקיד שבהתחלה נשמע מאוד מבטיח. מבירור זריז הבנתי שלא מדובר בתפקיד תכנותי, אלא בתפקיד תמיכה שכולל גם כתיבת סקריפטים בשפת פייתון, שפה שלא למדתי.
זה היה מאוד מפתה להתקדם איתם, כיוון שהשכר היה נאה יחסית והיה מדובר בחברה בינלאומית גדולה ומאוד מוכרת. אבל כאשר התייעצתי עם חבר שעוסק בתכנות והוא המליץ לי לסרב בצורה חד משמעית.
הוא אמר שאם החלום שלי הוא עבודה בפיתוח אז המשרה הזאת תסיט אותי מהמסלול, אשכח בה את מה שלמדתי ואצטרך ללמוד שפה חדשה (פייתון) וכל השנה הזאת בה השקעתי בלימודים תרד לטימיון.
בכל זאת הלכתי לראיון ועברתי אותו, בעיקר כי חשבתי שזה יעזור לי להשתפר בראיונות. אבל בראיון הבנתי שהחבר שלי צודק, כי לא אעסוק ב"תכנות פרופר", אלא בעיקר בתמיכה ולעיתים רחוקות בכתיבת סקריפטים. אז הודעתי להם שאני מסיר את מועמדותי והמשכתי לשלוח קורות חיים.
הכישלונות בדרך ואיך הם עזרו לי במציאת עבודה
לאחר שהחלטתי לוותר על המשרה החברה הגדולה, נכנסתי לתהליך שארך חודש וחצי עד שבסופו הצלחתי התקבלתי לעבודה בפיתוח במקום הנוכחי שלי.
במהלך התקופה הזאת שלחתי המון קורות חיים והייתי בתהליכים עם 5 חברות. מהתהליך הזה למדתי המון, אולי אפילו יותר בחברות שלא התקבלתי אליהן. הנה כמה דברים שלמדתי על הדרך.
תהליך המיון בחברה הראשונה
בחברה הראשונה התהליך כלל מבחן טכני ב-HTML ו-CSS וב-JavaScript במשרדי החברה, וראיון מקצועי למי שעבר אותו. לקראת המבחן חזרתי על החומר שלמדתי בקורס JavaScript שעשיתי ועל החומר בקורס HTML ו-CSS. המבחן הטכני היה קשה מאוד וכלל שאלות ברמה מאוד גבוהה ב-JavaScript ו-HTML ו-CSS. הוא כלל שאלות על מבני נתונים, כתיבת פונקציית חיפוש מורכבת, כתיבת אלמנט מורכב ב-HTML ו-CSS וכתיבת סקריפט דיבוג ב-JavaScript.
עברתי אותו וקיבלתי זימון לראיון טכני בריאקט. הגעתי לראיון לאחר שהתכוננתי הרבה אבל הייתי לחוץ מאוד וחוויתי בלאק אאוט נוראי במהלכו. באותו ראיון הייתי צריך לממש קומפוננטה בריאקט שמציגה נתונים שמאוחסנים בקובץ דאטה עם מבנה יחסית מורכב של אובייקטים עם אובייקטים מקוננים. בדרך לפתרון התרגיל הקפדתי להסביר בקול רם את כל מה שאני עושה, כמו שממליצים בכל מיני סרטונים ומדריכים, אבל הייתי מאוד לחוץ ודי איבדתי את עצמי.
רק כשביקשתי לקחת רגע ופשוט לכתוב קוד בשקט הפתרון זרם לי די בקלות. אבל זה לקח לי הרבה זמן להגיע לשם והרושם שהותרתי כשדיברתי במהלך הניסיון לפתור את התרגיל כנראה היה גרוע. כי הודיעו לי אחרי הראיון שהחליטו להמשיך עם מועמדים מתאימים יותר, ואם בעתיד אצבור יותר ניסיון בשמחה ישקלו שוב.
לא נתתי לחוויה להוריד את רוחי. נקטתי בגישה שאלמד מכל ראיון לקראת הראיון הבא עד שאקבל עבודה. המסקנה שלי לאחר הראיון היתה שאני לא מספיק טוב בריאקט ואז עשיתי בקצב מטורף, במהלך חמישה הימים הבאים, את הקורס הזה:
למען האמת , לא ממש עשיתי את כל החלק הראשון שלו, כי כבר ידעתי את התיאוריה. מה שכן, עשיתי כמעט את כל הפרויקטים בו כדי לצבור כמה שיותר ניסיון בריאקט. וזה השתלם לי במטלה לחברה הבאה.
קבעו ייעוץ לימודים בחינם ונעזור לכם למצוא את המסלול המתאים:)מתלבטים מה ללמוד? אנחנו כאן לעזור!
תהליך המיון בחברה השניה
בחברה הבאה שהתמיינתי אליה, התהליך כלל הכנת מטלת בית בריאקט שארכה שבוע.
המטלה כללה בניית אפליקציית ריאקט בסקייל בינוני עם API חיצוני. וכשקראתי את הדרישות שלה חשכו עיני. הרגשתי שאני לא מוכן לעשות אותה ואין לי מספיק ידע לעשות אותה ונכנסתי להיסטריה… אבל אז נשמתי עמוק וצללתי פנימה.
מבחינת הארכיטקטורה של האפליקצייה הסתמכתי רבות על השלבים בהם בניתי את הפרויקטים שעשיתי בקורסים שלקחתי. מבחינת מימוש המטלה הסתמכתי על הקוד שכתבתי בפרוייקטים שעשיתי, כי מצאתי הרבה נקודות דמיון והשקה, כמו עבודה עם Redux ומבנה הפרויקטים.
השתדלתי לעצב את הפרויקט כמה שיותר יפה ולהוסיף טאץ' אישי וכשהייתי מוכן לא מיהרתי לשלוח את המטלה. במקום, פרסמתי בקבוצות פייסבוק את השאלה הבאה:
"מי רוצה לעשות לי קוד ריוויו?"
ושני אנשים נפלאים עזרו לי ללא תשלום בפגישות זום ארוכות. הם ממש השקיעו ונתנו פידבקים שמהם למדתי המון ושיפרתי את הקוד.
הגשתי את המטלה ולאחר כמה ימים אשת הקשר מה-HR בישרה לי שעברתי אותו בהצלחה וקבעה לי ראיון טכני. לקראת הראיון הטכני שוב חזרתי על החומר התיאורטי ב-JavaScript ובריאקט. הכנתי לעצמי את הפלייליסט הזה ביוטיוב וממש למדתי אותו באינטנסיביות.
הראיון היה עם אחד המייסדים בחברה. הוא שאל אותי הרבה שאלות על רידאקס, ולמה עשיתי פה ככה ושם אחרת. ואז הוא אמר לי שהמטלה טובה, אבל הוא רוצה לראות איך אני מתמודד עם יישום טכנולוגיה חדשה שלא למדתי. הוא ביקש ממני להגיש את המטלה שוב, רק שהפעם לא להשתמש ב-Redux Thunk אלא ב-Redux Saga.
לא היה לי שמץ של מושג מה זה בכלל Redux Saga וביוטיוב היו מעט סרטונים בעלי ערך בנושא. למזלי היה בקורס ריאקט שרכשתי (ולא עשיתי בסוף), קטע שלם על מימוש Redux Saga שעזר לי רבות. היה מאוד קשה לתרגם את המימוש שעשו בקורס למקרה הקצה שלי, אבל בסוף עשיתי זאת.
הקורס המוזכר:
אולי יעניין אותך:
7 מסלולי *בוטקאמפ* שיהפכו אתכם למתכנתים בהייטק
רוצים להפוך למפתחי Full Stack? ריכזנו עבורכם את תכניות הלימוד הפופולריות ביותר בארץ, שיכניסו אתכם לתעשייה!
איך זה עבד בחברה שבסוף התקבלתי אליה
במקביל למיונים האלו, התחלתי תהליך עם החברה בה אני עובד עכשיו. אמרתי להם שאני רוצה לסיים קודם את המטלה בחברה שאני כבר בתהליך איתה. אז לאחר שהגשתי את המטלה עם Redux Saga וחיכיתי למענה, התחלתי את תהליך עם החברה החדשה שהיה עדיין רלוונטי.
גם שם הייתי צריך לעשות מטלת בית בריאקט. קיבלתי עיצוב של מסך פונקציונלי מהמוצר של החברה והייתי צריך לממש את המסך שיהיה וויזואלית זהה ובמקום לעשות את מה שהמוצר עושה, לדמות את זה בצורה שנראית דומה לפי רשימת דרישות שקיבלתי.
המוצר עובד עם אינטלגנציה מלאכותית, ראיית מכונה וניתוח נתונים בזמן אמת, וברור שלא ציפו שהמטלה שלי תהיה לבנות את המוצר שלהם.
בנתיים בחברה הקודמת הייתי בעוד שני ראיונות טכניים(!) שביקשו ממני לעשות עוד מקצה שיפורים. אבל בסוף הודיעו לי שהחליטו להתקדם עם מועמד אחר עם יותר ניסיון וכו'.
מאמרים נוספים שיכולים לעניין אותך:
המסקנות שלי מהמסע
מסע החתחתים הזה היה קשה מאוד אבל הוא היה ה"קורס" הכי טוב שעברתי.
לראשונה הייתי צריך לבנות פרויקט בסקייל בינוני לבד לגמרי. הייתי צריך ליישם את כל מה שלמדתי וליישם דברים שלא למדתי. ניצבתי בפני אתגרים שחשבתי שלא אוכל לעמוד בהם ועמדתי בהם ולמדתי המון – הן בצד הטכני מקצועי והן על עצמי.
תכנות זה תחום של למידה מתמדת. כל הזמן צריך לממש דברים חדשים שדורשים לימוד של דברים חדשים. כל הזמן צריך לעמוד בפני אתגרים קשים ולפעמים יום נשרף בגלל אות גדולה במקום אות קטנה שכתבת באיזה קובץ קונפיגורציה נידח. זה באמת קרה לי ואפילו פרסמתי שאלה ב-Stackoverflow ומישהו שם עלה על זה.
המטלה הזאת לימדה אותי שאין דבר העומד בפני הרצון ואני הייתי מאוד גאה בתוצר הסופי שבניתי, ובכל הדברים שהיו כרוכים בבנייתו.
גם אם לא התקבלתי לשם בסוף, צברתי המון ניסיון בפרויקט הזה והמון ביטחון. ואולי באמת כדאי לכל מי שקורא את זה, לקחת על עצמו בניית פרוייקט מאתגר בסדר גודל בינוני, כדי להתמודד עם האתגר לקראת המטלות שבדרך למציאת עבודה.
קבעו ייעוץ לימודים בחינם ונעזור לכם למצוא את המסלול המתאים:)מתלבטים מה ללמוד? אנחנו כאן לעזור!
כמה מילים לסיום
עברתי את המטלה בחברה האחרונה (שאני עובד בה עכשיו) וזומנתי לראיון במשרדי החברה. הראיון היה בנוכחות המנכ"ל ואחת מהמייסדים, סמנכ"לית הפיתוח. הראיון היה טכני ואישי ובעיקר מאוד זרם.
שניהם אנשים נהדרים. מדברים בגובה העיניים, עם חוש הומור, אופי נפלא ובלי שמץ של התנשאות. וזה מאוד חשוב, לי לפחות.
מילה אחרונה על תסמונת המתחזה ועל כמה הנחות שגיות שיש למתכנתים צעירים, ואני בניהם. תסמונת המתחזה היא התחושה שיש להרבה מתכנתים ג'וניורים שהם בעצם משקרים, והם לא באמת יודעים לתכנת, כי הם כל הזמן נעזרים בגוגל ובסטאק אוברפלואו ועוד רגע אנשים יעלו על זה והלך עליהם.
אז אני פה להגיד שזה בסדר להרגיש ככה. זה לגיטימי למתכנתים צעירים (ואף למתכנתים וותיקים) להעזר בגוגל, בדוקומנטציה ובסטאק אוברפלואו. אין אדם עלי אדמות שיכול להכיל במוחו את כל הידע הנדרש בתוכנה. מה שחשוב זה לדעת למצוא את המידע הרלוונטי. לדעת לחפש בגוגל זה אחד הכישורים החשובים ביותר של כל מתכנת. מה שבאמת חשוב זה לדעת להחיל את מה שמצאתם ברשת במקרה הקצה הספציפי שלכם. ולדעת לממש ולהבין את הקוד שמצאתם.
דבר נוסף שחשוב לדעת ואני שומע הרבה כמתכנת ג'וניור – יש הרבה דרכים לממש דברים שאתה צריך לממש בקוד. לפעמים יש הרבה פתרונות נכונים וטובים. לפעמים יש פתרון יותר טוב מבחינת ביצועים וניצול משאבים. כמו כן כשיש באגים או התנהגות לא צפויה ולא ברורה של הקוד, אין ברירה אלא פשוט "לשחק עם הקוד" עד שזה מסתדר. לא תמיד אנחנו רואים או מבינים למה הבאג קורה ומה המקור שלו ומשחק בקוד (הרבה קונסול לוגים למשל) יביאו אותנו לשם. זה לגיטמי.
זה מיתוס שיש אי שם מתכנתים עילאיים ומתנשאים שפשוט יושבים מול המחשב ומקלידים מהר והקוד המושלם יוצא להם מיד. לרוב, להיות מתכנת זה אומר לשבת מול המסך בתסכול עם הראש בין הידיים ולרצות לשבור את המסך. זאת העבודה. אבל זה כל כך מספק כאשר אתה פותר את הבעיות והכל עובד ונופל למקומו הנכון.
מוזמנים לעבור על האתר שלי, בו תמצאו את קורות החיים שלי להורדה, קישור לפורטפוליו שלי ולפרופיל הלינקדין שלי. בהצלחה בחיפוש העבודה!