MeCoder הכניסה לעולם התכנות


צעד משמעותי בקריירה שלי כמתכנת

me and the Fiverr logo sign

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

אז מה הוביל אותי לכאן?

ישנם שני גורמים מרכזיים שהובילו אותי בדרך שהסתיימה בלעזוב חברה שאני מאוד אוהב ומעריך ושלמדתי בה המון, ולהצטרף כמתכנת לחברת Fiverr.
הגורם הראשון הוא ההתפתחות המקצועית שלי. מי מכם שזוכר מפוסטים קודמים שלי, עשוי להרים גבה, שכן לא פעם ציינתי שחברת פרויקטים היא המקום המושלם בעיניי להתחיל לעבוד בו כמתכנת. ציינתי זאת מכיוון שבחברת פרויקטים אתה זוכה להתעסק במגוון רחב של נושאים, תוך שאתה נדרש ללמוד כל אחד ואחד מהנושאים הללו. במהלך השנה וחצי האחרונות עשיתי מספר פרויקטים, רובם ב-Angular.js, פרויקט אחד ב-React.js ופרויקט אחד ללא כל framework. הזדמן לי לעבוד מול לקוחות שונים ומגוונים כגון 888, אמדוקס, זאפ, עת הדעת ועוד.

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

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

אז איך זה קרה?

בקיצור, ההחלטה החלה להבשיל בתוכי, אבל לא באמת ידעתי מה קורה שם בחוץ. אחרי הכל אני בכלל מגיע מעולם אחר, ענף המזון ומשקאות שונה בתכלית מבחינת כוח האדם, תהליכי הגיוס, שכר וכו'. במקרה, בדיוק באותם הימים יצרה איתי קשר בלינקדאין מישהי שלמדה איתי בחטיבה (כן כן) אשר מתעסקת במשאבי אנוש והחלטתי לנסות את מזלי איתה. לא עברו יומיים והיא כבר החלה להניע את הגלגלים של עולם גיוס כוח האדם, והטלפון הראשון היה מ-Fiverr.
הראיון הראשוני היה מבחן מקצועי על מחשב + ראיון קצר. תחילה נתנו לי לכתוב תוכנה כלשהי על מחשב בחדר הראיונות שלהם (נשמע מפחיד "חדר ראיונות", אבל האמת שהאוירה שם היתה טובה ונעימה מההתחלה). הדבר היחיד שהיה קשה במבחן היה שהוא התבצע על Mac! כמי שמעולם לא נגע ב-Mac חוויתי רגעים קשים של בלבול בין המקשים וסינון מספר קללות לעבר המחשב. בקיצור אחרי שעתיים הצלחתי להשלים את החלקים הדרושים בתוכנה ועברנו לראיון של חצי שעה עם שניים מהמתכנתים המובילים שלהם (Tech Lead). ראיון מאוד סימפטי, הכל באוירה טובה, קצת על מי אני והסיפור שלי ושאלות קלות לגבי הקוד שכתבתי זה עתה.
לאחר מספר ימים כבר נקראתי לראיון שני עם מי שעתיד להיות המנהל שלי, הפעם בלי לכתוב שורת קוד אחת, אלא יותר שיחה של להכיר אותי קצת יותר טוב. גם זה עבר בהצלחה ונקבע לי ראיון שלישי עם Michael Schmidt, שהוא ארכיטקט ה-Front End של החברה. מדובר באחד האנשים המוכשרים בתחום, שלפי מה ששמעתי הוא בנה מחדש את דף הבית של גוגל תוך צמצום משמעותי של זמן הטעינה, או במילים אחרות הוא השפיע על כל אחד ואחד מאיתנו (כמו הקלישאה שמופיעה תדיר בסדרה המשובחת "סיליקון ואלי" - הוא עשה את העולם מקום טוב יותר…).
בוא נעשה חשבון, נניח שהוא קיצר את זמן הטעינה ב-0.2 שניות ובכל יום נניח שיש מיליארד כניסות לגוגל (אני מניח שיותר אבל מילא), אז הוא חסך לאנושות 200 מיליון שניות ביום, שזה 3.33 מיליון דקות, שזה 55,555 שעות ביום, שזה 6.34 שנים. ביום! במילים אחרות בכל שבועיים הוא חוסך זמן של חיים שלמים של בן אדם! זה רק אני או שאני הופך יותר ויותר לגיק שדברים כאלה מרשימים אותי ככה...?

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

בסיכומו של עניין, קיימתי ראיונות בארבע חברות בסה"כ. שתי חברות קיבלו אותי והעבירו לי הצעה, חברה שלישית התקדמה והייתי אמור להיפגש עם סמנכ"ל הפיתוח שלהם לראיון אחרון אבל הוא שהה בחו"ל באותם הימים ולא רציתי לדחות יותר מדי את קבלת ההצעה מ-Fiverr. וחברה רביעית לא קיבלה אותי (לא יאי!).

הדילמה...

בסופו של דבר היו בידיי שתי הצעות עבודה די מרשימות. האחת מ-Fiverr, חברה שגדלה בקצב גבוה מאוד, עם 220 עובדים נכון ליום קבלתי (היום, חודשיים אחרי, כבר יש למעלה מ-250!), שגייסה לא מזמן 60 מיליון דולר. עשה רושם שהרמה המקצועית של העובדים גבוהה, ושהיא חברה מסודרת עם תרבות ארגונית בריאה. החברה השנייה היתה סטארט-אפ עם כ-30 עובדים, שגייס לא מזמן 16 מיליון דולר, וגם חשוב לציין שנתן לי הצעה יותר טובה מזו של Fiverr.

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

  1. תנאים - אמנם ההצעה של הסטארט-אפ היתה טובה יותר, אך ההפרש לא היה משמעותי ועשה רושם שהתנאים שמעבר לשכר היו טובים יותר דווקא ב-Fiverr. הייתי אומר שמהבחינה הזאת לסטארט-אפ היה יתרון קטן בלבד.
  2. יצירה - מבחינתי יצירה משמעותו כמה קוד כתבתי, ויותר חשוב מכך כמה תוכן אמיתי ושימושי הקוד הזה מייצר. כלל אצבע אומר שככל שהחברה קטנה יותר, כך כמות הקוד שתידרש לכתוב גדול יותר. הסיבה לכך טמונה בעיקר בביריוקרטיה של ארגונים גדולים, משום שאם על אותו הקוד עובדים הרבה מתכנתים אז נדרשות הגדרות ברורות לכתיבת כל שורה; כמה מרווח עושים בין כל פונקציה; איך, מתי וכמה הערות רושמים לכל פונקציה וכו'. הסיבה לכך ברורה ומובנת: הקוד שאתה כותב צריך להיות אחיד וברור לכל מתכנת אחר והם צריכים להרגיש כאילו הוא קוד שהם כתבו, זה מונע המון בעיות וטעויות. בנוסף לכך, ככל שחברה יותר גדולה התהליכים הארגוניים הפנימיים דורשים זמן רב יותר מכל עובד - מיילים, פגישות, עדכונים, ישיבות וכו'. כל אלו גורעים מזמן כתיבת הקוד, ואני? אני אוהב לכתוב קוד. אין ספק שכאן היתרון הינו ברור לטובת הסטארט-אפ.
  3. אוירה - כנהוג בחברות צעירות יחסית בהיי-טק, שני המקומות נראו מגניבים עם אנשים סבבה. לא יכולתי לציין משהו רע לגבי אף אחת מהחברות. הדבר היחיד שהפריע לי הוא שבראיון האחרון שלי בסטארט-אפ השמיעו מוזיקה מאוד חזקה. זה נשמע מאוד טרחני מצידי לכתוב את זה, אבל אני אוהב את השקט שמאפשר לי להתרכז, זה "קצת" חשוב בתחום בו אתה עובד כל היום עם הראש.
  4. המוצר - בסופו של יום, אנחנו כותבים קוד למוצר כלשהו, והיכולת להתחבר למוצר, להבין אותו ושהוא יעניין אותך גם ברמה העסקית, משפיע על המוטיבציה שלך ועל ההנאה בעבודה היום-יומית. אין ספק שהמוצר של Fiverr יותר מעניין, יש לו פן עסקי שנוגע לכל אחד ואחת מאיתנו, ופוטנציאל צמיחה מטורף. מעבר לכך, החוויה החיובית שהיתה לי בהיבט של סחר אינטרנטי בעבר משכה אותי לכיוון הזה.
  5. עד פה הקרב נראה די צמוד אבל עם יתרון קל לטובת הסטארט-אפ, עכשיו מגיעים לסעיף הרציני והחשוב ביותר:
  6. תהליכי לימוד - מעבר לשכר, בכל מקום עבודה אתם תרוויחו ידע, והידע הזה יהיה שווה לכם המון גם ברמת הכנסה עתידית וגם מבחינת סיפוק ותחושת התפתחות. תפיסת העולם שלי בכל הנוגע לתחום התכנות גורסת שאם אתה לא מתפתח לפחות בקצב התפתחות התחום - אתה מוצא את עצמך בחוץ. זה, בשילוב הצורך הבלתי נגמר שלי בעוד ועוד ידע, מובילים לכך שסעיף זה יהיה אחד החשובים ביותר אם לא ה… כך שבנקודה זו הדילמה מורכבת יותר. אין ספק ששני המקומות יעניקו לי הזדמנות ללמוד. השאלה היא מה וכמה.
    סטארט-אפ בדרך כלל מאופיין בכך שהוא מגיב מהר לדברים, מחליטים לעשות משהו אז למחרת כבר עובדים עליו. בנוסף, בגלל שאין הרבה עובדים, אז כל אחד נדרש לשלוט במספר תחומים. כך יוצא שאתה מקבל די הרבה אחריות ומצפים ממך שתלמד לבד ותייצר משהו איכותי. התהליך הזה כיפי ונהדר, בכל משימה אתה מרגיש שאתה מתעצם עוד ועוד.
    מנגד, בחברה גדולה מהסוג של Fiverr ציפיתי שאלמד יותר על איך לעשות דברים בצורה "נכונה" יותר, איך עובדים על פרויקט בקנה מידה מאוד גדול, איך ארגון גדול עובד, איך משלבים כוחות עם מקצוענים כל אחד בתחומו.

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

אז ממה בכל זאת חששתי?

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

אפילוג

היום, לאחר שכבר עבר חודש מהיום בו הצטרפתי ל-Fiverr, התובנה שלי התגלתה כנכונה, הפיל הוא עכבר. תהליך הכניסה לעבודה היה בריא ומחבק, נותנים לך הרבה אויר בהתחלה כדי שתיכנס לעניינים כמו שצריך, האנשים מדהימים, האוירה מעולה וגם האוכל טוב... ואם זה לא מספיק אז כחלק מהעבודה ומתהליך הכניסה לעבודה אתה לומד שפת תכנות נוספת (Ruby), גם אם ברמה בסיסית יחסית מבחינתי זה בונוס.
כמו שציפיתי, אני נדרש להתרגל למאפיינים של מקום עבודה שכזה לטוב ולרע ולפחות טוב - כותבים פחות קוד, כותבים קוד איכותי, כל מילה שתכתוב תעבור עוד לפחות זוג עיניים נוסף. אני לומד כל יום איך עושים דברים יותר נכון ויעיל יותר מבחינת ביצועים, קוד קריא ועוד. ואם כל זה לא מספיק אז אני גם מרוויח יותר, הרבה יותר…