תשרי

קורס פרונט-אנד בצפון, בהדרכת סרג’ קרול

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

את סרג’ אנחנו מכירים מכך שהוא התארח אצלי בבלוג בעבר, כשהוא עוד עבד אצלנו באורט – העבודה הרשמית הראשונה שלו כמתכנת. ההתפתחות של סרג’ אצלנו כמתכנת פרונט אנד כרוכה במוחי עם התפתחות תחום הפרונט אנד באופן כללי. בתקופה שבה התכנות ה”נחשב” היה של צד השרת, סרג’ התעלם מהסטיגמה הנחותה שהיתה לצד לקוח ואימץ את תחום הפרונט לליבו – הוא נמשך לתחום הזה ששילב ויזואליה עשירה עם תכנות – ולמרבה המזל תחום הפרונט אנד התחיל פתאום להרים ראש ולקבל יחס רציני גם באופן גלובלי ובינלאומי. כך, אצלנו באורט, אחרי שנים שהתחשבנו רק באינטרנט אקספלורר (6!), התחילו להישמע ביטויים כמו “לכתוב לפי סטנדרטים”, “להקפיד על HTML סמנטי”, “להתאים לכל הדפדפנים”. פעמי משיח שהובלו בגאון ע”י סרג’.
גם בתחום הרומנטי אורט עשתה לו טוב, הפגישה אותו עם אבישג, חברה בצוות המעצבות. היום הם נשואים באושר עם 3 ילדים מתוקים.
אחרי 3.5 שנים באורט הוא עבר לאחת החברות המובילות בתחום הפרונט אנד – נטקראפט. סרג’ טיפס במעלה התפקידים דרך ראש צוות ועד לסמנכ”ל מו”פ. בד בבד עם השינויים המקצועיים חלו שינויים גאוגרפיים וסרג׳ ומשפחתו עברו לגור בישוב הקהילתי הררית, בלב הגליל.
במקביל לעבודתו כמתכנת פרונט אנד, פנה סרג’ לאפיק נוסף, ספֵק נושק – הדרכה. זה התחיל בנטקראפט אקדמי שם לימים היה המנהל המקצועי של התחום, והמשיך עם עלייתו צפונה שם הוא מרצה בחוג למדעי המחשב באוניברסיטת חיפה, מעביר הדרכות פרטיות לחברות הייטק ומדי פעם עדיין מלמד בנטקראפט. היום סרג׳ עצמאי ומחלק את זמנו בין Augury – חברת סטרטאפ בחיפה – להדרכה במסגרות שונות.

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

קורס פרונט אנד בצפון – פרטים

  • תאריך התחלה: 27 לאוקטובר 2016 (כן, זה היום)
  • כ-5-6 חודשים של לימודים, נפגשים פעם בשבוע בשעות הערב. בשאר הזמן עבודה בבית על פרויקט בהנחיה שלי
  • שעות וימים: ימי חמישי 17:00-21:00
  • כיתה קטנה של 10 אנשים, יושבים במעגל עם לפטופים
  • מיקום: ה Open Valley ברמת ישי – האב חדש ומגניב בצפון עם סטרטאפים איכותיים וחלון ענק לעמק יזרעאל
  • קהל יעד: אנשים עם רקע בתוכנה
    • בוגרי אוניברסיטה
    • בוגרי קורסים
    • בוגרי יחידות מחשבים בצבא
    • אנשים עם ניסיון בפלטפורמות אחרות
    • אנשים שלמדו לבד
  • מחיר: 10.5k+מעמ.
  • ישנם שיתופי פעולה עם מספר סטרטאפים וחברות בצפון ובמרכז שמחכים לבוגרים כדי לגייס אותם לעבודה.

תוכן הקורס

  • יש דגש חזק על הבנה מעמיקה של ה״ברזלים״, דרכי פתרון ו-Best Practices.
  • בקורס הזה לא לומדים ספריות (כמו Angular וכו׳) משתי סיבות:
    • שאיפה לתת קורס קצר יחסית
    • תפיסה שספריות זה למתקדמים. יש המון דברים שצריך לדעת לפני כדי להשתמש בהן בצורה מושכלת וצריך לצבור ניסיון בעבודה איתן (ובלעדיהן) כדי להיות באמת להיות אפקטיבי.
  • לומדים Test Driven Development
  • לומדים NodeJS כדי לסגור את הלופ של פיתוח ווב מלא (Full Stack)
  • יש דגש על Production – לעלות לאויר עם משהו עובד שאנשים יכולים להשתמש בו ולהמשיך משם
  • עובדים על הפרויקט במתודולוגית Agile בהשראת Lean Startup
  • לומדים מתודלוגיה ופרקטיקה של Continuous Deployment/Integration
  • עובדים ב Workflow ״אמיתי״: עושים Code Review, עובדים עם Pull Requests, עושים Refactoring
  • כל אחד מקים בהנחייתי סביבת עבודה אישית אפקטיבית עם הכלים המתאימים מהיום הראשון של הקורס. לכן גם היה לי חשוב שאנשים יבואו עם לפטופים – זה הולך ללוות אותם מעכשיו והלאה בקריירה שלהם.
  • לסילבוס מלא אפשר לפנות אלי: http://m.me/frontendmasterclass

מאחר שזה נשמע לי מיזם מדליק, הזמנתי אותו לקשקש איתי על זה בבלוג.

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

ת: האמת היא שזה התחיל מתחום ה-UX. נטקראפט צברה המון ניסיון בפרויקטים וגיבשה מתודולוגיה ובסיס ידע שהחליטה לחלוק עם העולם. אחרי שזה נהיה הצלחה התחלנו לחשוב בכיוון הפרונט אנד. השותף שלי לתהליך לאורך כל הדרך היה אורן שטאנג, שהיה בזמנו מנכ״ל משותף (עם ליאור יאיר). התחלנו בנובמבר 2011 אם אני לא טועה עם קורס אחד – HTML5 – כאשר המונח הזה רק יצא לאויר העולם והיה באז-וורד. בקורס רצינו לחלוק ידע וניסיון שכבר צברנו בפרויקטים בנטקראפט ביחד עם נושאים שהיו חדשים אפילו לנו. את רוב הקורס כתב והדריך יוגב אהוביה, היום ראש צוות פרונט אנד ב Fundbox.
הקורס היה הצלחה פחות מסחררת ממה שציפינו והפריצה הגדולה היתה כשאורן ואני הובלנו את תוכנית ההכשרה, שנבעה מצורך אחר: לקוחות פנו אלינו בפרויקטים חדשים, ולעתים גם דרשו שמפתחים יגיעו אליהם ויישארו לתקופות ארוכות. היה מחסור בכוח אדם, ולגייס אנשי פרונט אנד היה על גבול גיוס חדי קרן לשורות צבא הארץ התיכונה. אורן הביא את הפיצוח – לקבל לעבודה אנשים ללא ניסיון, לשלם להם שכר מהיום הראשון, להכשיר אותם בתוכנית אינטנסיבית, ולבסוף לשלב אותם בפרויקטים אצלנו או אצל לקוחות. הרעיון היה מאוד אטרקטיבי והגענו למצב שאנחנו מסננים מאות קורות חיים. כך הצלחנו לגייס את המוכשרים ביותר. התכנית התחילה בספטמבר 2012, ובסה״כ הכשרנו כך כ-15 אנשים. עם הזמן הבנו שעדיף לפתוח קורס ולהעביר את הידע בצורה יותר מסודרת, לכל מי שחפץ בכך ולא רק עבור העובדים. הקורס הראשון נפתח באוגוסט 2014, ורץ עד היום בהצלחה גדולה.
התפקיד שלי בכח לאורך הדרך היה קונספטואלי, משאבי-אנוש-י, ומקצועי. בתחילה הייתי שותף בסיעור המוחות, לאחר מכן בגיבוש הקונספט והמבנה של הקורס וכלה בפיתוח התכנים, העברתם ומנטורינג לתלמידים. בתוכנית ההכשרה עסקתי גם בסינון קורות חיים, בדיקת מבחנים וראיונות. בכל שלב כמובן שהיו לי שותפים ועוזרים שבלעדיהם זה לא היה קורה. ראוי לציון אלכס אילייב שכתב כשני שליש מהקורס והעביר את רוב המחזור הראשון.

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

ת: קצת מזה וקצת מזה. לרוב אני זורם עם התלמידים שפונים אלי, אבל לפעמים כשאני מזהה תלמיד שצריך אותי אני כמובן פונה אליו בעצמי. זה קורה גם בשיעור וגם מחוצה לו. זה קצת יותר קל עם תלמידים אקטיביים – אנשים סקרנים שלא מתביישים לשאול, עם מוטיבציה וצורך פנימי ללמוד, להבין ולהתקדם.
חלק מהמנטורינג מבחינתי זה להעמיד בכיתה איזושהי אג׳נדה מוצקה לגבי נושאים כמו נגישות, HTML, CSS, ביצועים וגם בנושאים של JavaScript. זה מעביר את המסר שהתוכן חשוב – חשוב למפתח, חשוב לאדם בקצה שמושפע מהעבודה שלנו, חשוב למקצוע ולעמיתים שלנו ואפילו במקרים מסוימים חשוב לכדור הארץ (לדוגמה – ידעת כמה גזי חממה פולט האינטרנט? אופטימיזציית ביצועים זה תחום ירוק לכל דבר ואני לא אופתע אם בעתיד נידרש לסטנדרטים ירוקים, כמו בבנייה).

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

ת: לשאלתך הנוקבת – במסגרות שהיו לי עד עכשיו – כנראה שקצת פחות. התלמיד הממוצע – זה שלא שואל יותר מדי, לא מתקשה מדי ולא מעצבן מדי – לרוב יעבור מתחת לרדאר בכיתה מעל 10 אנשים, שלא לומר בכיתה של 60 תלמידים (כמו באוניברסיטה). אני בטוח שגם הוא מקבל הרבה – לומד, מתרגל וכו׳ – אבל לא את היחס הקרוב. מצד שני – עם הזמן הבנתי שיש כל מיני טיפוסים ולכל אחד צרכים אחרים. לא לכולם זה מהותי בתהליך שלהם. לא כולם בכלל מרגישים נוח במצב כזה. יש אנשים שאני ניגש אליהם באופן יזום ומרגיש שזה לא בא להם כל כך טוב.

ש: אכן, יש אנשים שרק רוצים להיות “שקופים”.

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

ש: באמת? באידיאל, אתה חושב שאתה צריך לדבר אישית עם כל תלמיד?‬

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

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

ת: הוא פשוט עושה את זה. שואל שאלות בכיתה, שואל שאלות בהפסקה ושואל שאלות בבית. יש אנשים שאין צורך להסביר להם איך  🙂 הזמינות שלי היא יחסית גבוהה. לכל כיתה יש Slack ואפשר לכתוב לי שם. אני עונה במקרה הגרוע תוך יום-יומיים. בדרך כלל תוך כמה שעות או פחות מזה. יש להם את הטלפון שלי.
כמובן שאם בכל קבוצה כל התלמידים בכיתה היו עושים את זה כל הזמן זה לא היה מתקיים. המודל הזה הוא סטטיסטי, כמו חברות שמציעות שטח אחסון בלתי מוגבל…
כבר העירו לי שלפעמים בכיתה אני עונה יותר מדי לתלמידים וזה פוגם ברצף השיעור.. אבל זה אחד האספקטים שאני הכי נהנה מהם – אני אוהב שזה דינמי, שכל קבוצה זה עולם אחר, ווייב אחר, ששיעור יכול ללכת לכיוונים בלתי צפויים לפעמים. כל עוד בסוף לומדים את ה-2-3 הדברים שחייבים לדעת לאותו שיעור – זה אחלה. פעם הייתי הרבה יותר לחוץ לסמן וי על כל הנושאים ועסוק יותר בלהריץ שקפים מאשר בלפתח דיאלוג ולהוביל לאיזושהי נקודה שמובילה ללמידה אמתית.

ש: אבל אתה מצליח לוודא שהנקודה שאתה מתעכב עליה באמת מעניינת את כל הכיתה, ולא רק את אותך ואת התלמיד ששאל? 🙂

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

ש: ועכשיו תסביר: איך מתכנת מחליט פתאום להדריך? זה לא תהליך כ”כ טבעי. אם להיות סטריאוטיפיים וכלליים, מתכנתים עובדים מול מחשבים, ומדריכים – מול בני אדם. לא תמיד מי שאוהב לעבוד מול מחשבים אוהב גם בני אדם (ולהיפך). ספר איך זה משתלב אצלך.

ת: אז כמו שכבר ציינת בשאלתך עצם קיומי הוא הפרכה של הטענה – מאז ומעולם עניינו אותי גם אנשים וגם מחשבים. יש בי גם צד הומני וגם צד לוגי/מתמטי. וזו אחת הסיבות לכך שאני בכלל בפרונט אנד, שהרי זהו תחום שנמצא על התפר בין UX לבין R&D. קצת קשה לי לקבל את הטענה שבמקצוע שלנו מיזנטרופים יכולים לפתח UI מהמם ונגיש, מתאים לכל גדלי המסכים. אני בטוח שיש, אבל זה יהיה היוצא מן הכלל. יש בי גם משהו שנמשך להדרכה בלי שום קשר – אני אוהב להבין דברים ואז אני אוהב לשתף אחרים ביופי של הדברים שאני מבין. צורת הלמידה שלי עצמי היא מאוד דידקטית, ולכן יותר קל לי לעשות את המעבר. ואחרי שהתנסיתי, ראיתי וחשתי את הטרנספורמציה שאנשים עוברים מול העיניים שלי כשהם לומדים ומתרגלים, פשוט התמכרתי לזה. לכן אני גם מתמקד במתחילים (לאו דווקא מתכנתים מתחילים אלא מפתחי פרונט מתחילים) – שם הטרנספורמציה הכי גדולה. תחושת הסיפוק וההגשמה העצמית שלי כשאני מצליח לסייע למישהו להעצים את עצמו היא הגדולה ביותר עבורי. אני גם נהנה מההורות ומוצא הרבה קוים מקבילים בין השניים (כפי שתארתי בהרצאה שלי בכנס YGLF). מעבר לכך – מבחינתי מחשבים הם רק כלי בשירות האדם, הם לא המטרה אף פעם. אנשים כותבים JavaScript לא בכדי לרצות את המנוע אלא כדי שאדם יצליח למלא בקלות טופס. על אותו מטבע אני משתמש בידע שצברתי בתחום ה״מחשבים״ על מנת לעזור לאנשים להתפרנס בכבוד, להיכנס לקריירה מרתקת ולהיות יותר עם המשפחה (יש יותר אפשרויות של עבודה מהבית ושעות גמישות, לעומת מקצועות אחרים).

ש: אוקי. אז אתה אוהב הדרכה, וההדרכה אוהבת אותך. אבל איך התקדמת עם זה – איך הגעת להדריך במסגרות שאתה בהן כעת?

ת: קודם כל נטקראפט היא חברה מובילה בתחומה, גם כחברת פרויקטים וגם כמכללה, כך יצא לי להכיר הרבה אנשים איכותיים ולהיחשף לפרויקטים עם חברות מובילות. בנוסף בתחומי ה-UX והפרונט ישנן קהילות שאפשר להשתייך אליהן, לכן אני משתתף פעיל כבר כמה שנים בקבוצות איכותיות בפייסבוק, ואף עוזר בניהול של חלקן. לעתים גם מרצה בכנסים, כדוגמת HTML5 Fest ו You Gotta Love Front End. התוצאה של כל אלה היא שאני מכיר יותר אנשים ויותר אנשים מכירים אותי. לכן יש יותר אפשרות שיפנו אלי עם הצעות.
לחיפה הגעתי ביוזמתי (בעידוד נטקראפט) ופשוט קבעתי פגישה עם ראש החוג – למדתי שם בעבר, סיימתי ב-2005, והייתי תלמיד ממוצע ביותר אגב – זו היתה סגירת מעגל מבחינתי, כולל לפגוש מרצה אחד שהכשיל אותי ולצחוק איתו על כך.
החברות מגיעות מפה לאוזן.
הקורס שאני מעביר באוניברסיטה שונה מאוד מקורס בנטקראפט, אם כי המחזור הראשון התבסס עליו במידה מסוימת. הקורס של נטקראפט ארוך יותר ופחות קשיח בדרישות הקבלה, באוניברסיטה המשך הוא סמסטר אחד וקהל היעד הוא סטודנטים שנה ג׳ שלחצי מהם לפחות אייקיו העולה על שלי.

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

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

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

ת: אולי מכללה זו מילה גדולה כרגע (מכיוון שיש רק קורס אחד) אבל אני כן מתכנן כבר פתיחה של קורס למתחילים תוך מספר חודשים, ויש לי רעיונות גם לסדנאות ממוקדות עבור אנשים שכבר עובדים בתחום.
השם הזמני הוא Serge’s Front End School או בי״ס הפרונט אנד של סרג׳. עדיין אין אתר, רק עמוד פייסבוק. אני מתקדם צעד אחד בכל פעם ומשתדל לבנות מלמטה, מהשטח, רק דברים שצריך ורק כשצריך (מה שמנוגד לאופי שלי באיזשהו מקום – אני עף בקלות).

ש: והמכללה נמצאת בצפון. יש לך מקום משלך? ואם לא – אתה שואף שיהיה לך מקום משלך בבוא הזמן, או שיש אידיאל במקום ציבורי? והאם אתה פונה רק לצפון? מה עם אנשים מגוש דן או מהדרום שרוצים להנות מזיו ידיעותיך?

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

ש: אז בוא נדבר על פתיחת המכללה שלך – מתי חשבת על זה, מה היית צריך לעשות בשביל זה?‬

ת: זה נולד כמו כל דבר מצורך מאוד פשוט בפרנסה. הייתי לקראת סיום של קורס בחברה ותפסתי את עצמי שאין לי משהו קבוע אחרי זה. בהתחלה חשבתי על דרכים יצירתיות להגיע אל עוד קורסים בחברות, ופתאום הגיחה מעצמה המחשבה על לפתוח קורס כזה בצפון. את החומר כבר היה לי, בסה״כ הייתי צריך כיתה ותלמידים. כמובן שה״בסך הכל״ לא היה פשוט בכלל, והיו הרבה דברים שלא לקחתי בחשבון בחישובים אבל המחשבה העקרונית נשארה בעינה.
המעבר מקורס למכללה גם היה הדרגתי וגם נולד מתוך צורך אמיתי. התחלתי לשווק את הקורס הראשוני (שבינתיים השתנה בצורה דרסטית מהקורס שתכננתי בהתחלה, והשתפר פי 100 יש לומר), ותוך כדי שיחות עם אנשים הבנתי שיש צורך בלפחות עוד קורס אחד, עליו כבר התחלתי לעבוד, בינתיים ברמת גיבוש הקונספט.
ויש לי רעיונות גם לסדנאות. אבל הרעיון הוא לקחת את הדברים לאט, ותמיד לחבר אותם לקרקע ולצרכים אמיתיים. אני נוטה לעוף מהר וגבוה ולכן חייב פה איזון ולהגיד לעצמי כל הזמן את הדברים האלה.
מבחינת הצעדים הטכניים – הייתי צריך לגבש את קהל היעד, תוכן הקורס, לאילו מטרות הוא חותר, חישובים של הוצאות והכנסות ולקבוע את המחיר, לבחור מקום, לעשות שיווק, את כל שיחות הטלפון והאדמיניסטרציה בעצמי – הפעם זה רק אני! (וכמובן אשתי אבישג, שמלווה אותי בכל) – נאלצתי (מבחירה) לעשות דברים שלא עשיתי בעבר ונעשו על ידי אנשים יותר מוכשרים ממני בכך. אבל האמנתי שאני חייב לפחות במחזור הראשון לעשות הכל לבד, כדי ללמוד על בשרי מה נכון ומה לא, מה עובד ומה לא, מה חשוב, וכו׳. גם בבנייה של הבית אנחנו משתדלים לעשות כל מה שאנחנו יכולים (ברמה סבירה) לעשות לבד. אשתי עושה את הפיקוח, למשל.

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

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

ש: אבל לפניכן – בקורות החיים – מה אתה רוצה לראות / לא לראות, כדי להחליט אם להזמין לריאיון?‬

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

ש: יכול לפרט או להדגים? הרי מדובר באנשים חסרי ניסיון. מה בעברם יכול לרמוז לך שיש על מה לדבר?‬

ת: דווקא מכיוון שהם חסרי ניסיון הדברים מסביב הם חשובים, כי אין להם המון תוכן לכתוב שם. אני בן אדם ויזואלי, ואני קולט מהפורמט והעיצוב של המסמך המון פרטים. יש האנשים ששולחים מסמך word עם פונט times new roman, בולטים שחורים וכותרות עם בולד *ו*אנדרליין. אנשים עושים את זה בתמימות כי הם חושבים שזה חייב להראות כמו איזשהו מכנה משותף נמוך ביותר אבל בתחום שלנו מחפשים אנשים עם איזשהו ביטוי עצמי. אפשר ורצוי לצאת מהמשבצת הזו, להביע את עצמך ולהראות חוש אסתטי מעל הממוצע, רצון להשקיע, מוטיבציה, איזשהם מאפייני אופי (ולא רק לרשום תכונות בבולטים או בפסיקים בסוף כמו ברשימת מכולת). צריך לראות את הדברים האלה, הם צריכים להיות שם בקורות חיים, נוכחים ובועטים. כמובן שהכל עניין של היצע וביקוש. אם היינו מקבלים 3 קורות חיים למשרה כנראה שהיינו מזמנים לראיון גם זרים שנוסעים איתנו במעלית.

ש: ספר לי על צבעי הגרביים שהזכרת.

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

ש: אני מניחה שיש מי שקורא את זה ושואל את עצמו אם הוא היה מתאים לקורס כזה, ואם קורס כזה היה מתאים לו. אתה יכול לתת איזשהן תשובות לקוראים המסורים שלי?

ת: השאלה האמיתית היא האם מישהו מתאים להיות מפתח פרונט אנד, כי אם כן אז כמובן שהוא מתאים לקורס והקורס מתאים לו. המקצוע משלב תכנות בשפת JavaScript, עם בניית ממשקים ב HTML ו-CSS. לכן כל התנאים ללימוד תכנות תקפים גם כאן – חשיבה לוגית, יכולת פתרון בעיות וכו׳. רק שכאמור בתחום הזה יש עוד תחומים משיקים – עיצוב, שמישות, מוצר, שרתים ועוד, כך שנדרשים כישורים רב תחומיים. הטכנולוגיות העומדות לרשות המפתח הן מאתגרות בגלל סיבות היסטוריות, סביבת הפיתוח פחות בשלה משפות אחרות והפלטפורמות עליהן הקוד אמור לרוץ רבות ועוינות. אם זה לא מספיק, אז קצב התחלופה של ספריות ואפילו best-practices בתחום הוא גבוה ביותר, כך שחייבים להמשיך להתעדכן וללמוד לא רק על מנת להתקדם אלא על מנת לשמר את הקיים.

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

ת: הייתי אומר ורוד שעיר עם נקודות 🙂 זה באמת לא מתאים לכל אחד וחשוב שאנשים לפחות יידעו מה האתגרים לפני שהם נכנסים. יחד עם זאת יש קשת רחבה מאוד של אנשים שעובדים בתחום, כל אחד מוצא את הפינה שלו ואת הדברים שהוא אוהב. כולם כותבים ב-HTML, CSS ו-JavaScript אבל חלק אוהבים טכנולוגיה אחת פחות ואת השניה יותר. חלק מתמקדים ב-UI וחלק בלוגיקה, וכיו״ב.
אני כן חושב שבאופן כללי אנשי פרונט נוטים לקבל דינמיות ושינויים יותר בקלות והם יותר רב תחומיים באופיים מאשר בנישות אחרות בפיתוח.

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

ת: המטרה שלי היתה ועודנה לספק לאנשים את שער הכניסה לפרונט אנד ולהביא אותם למצב שהם עובדים בתחום. כלומר קורס הכשרה ולא קורס העשרה. הקדשתי הרבה מחשבה מה הייתי יכול לשפר בקורס הזה לעומת קורסים אחרים שכבר בניתי ויצאו מהם בוגרים מוצלחים. מצאתי שתי נקודות עיקריות: יותר מיקוד בחומר וניקוי כל נושא שאינו אקוטי לשנה הראשונה של הבוגרים בעבודה, ומצד שני צמצום הפער בין סביבה של קורס לסביבה של עבודה. כך הגעתי למסקנה שאני לא מתכוון ללמד ספריות (jQuery, Angular, React), ואני כן מתכוון ללמד צד שרת (NodeJS), מתודולוגיית Agile ו Continuous Delivery, ואחרון חביב Test Driven Development. כמובן שאם הקורס היה נורא ארוך הייתי יכול ללמד הכל, אבל איפשהו עובר הגבול. לטעמי חצי שנה של לימודים זו אחלה תקופה בשביל להתחיל לעבוד אם מתמקדים בנושאים הנכונים. כאמור גם ככה הלמידה אינה נגמרת. בנוסף הייתי יכול לעשות קורס אינטנסיבי יותר (בסגנון bootcamp) של מספר חודשים מצומצם מהבוקר עד הערב. אבל אני סבור (מניסיון בתוכניות ההכשרה) שלמידה כזו היא שטחית יותר (נוגעים בהמון נושאים בזמן קצר) ושהדברים פחות נטמעים בלומד. אני מאמין בשינויים שקורים לאט יותר ופחות התערבותיים מבחינת האיזון בחיים. יחד עם זאת אין לראות בכך שהקורס ״קליל״ – נדרשת השקעה משמעותית של זמן גם בבית, מעבר לפגישה פרונטלית של 4 שעות פעם בשבוע, וכל תלמיד בונה פרויקט בהנחיה שלי.

ש: כמה זמן עבודה בבית אתה חושב שכדאי לפנות?

ת: זה נורא תלוי בבן אדם, אבל הייתי אומר בין 2 ל-10 שעות בשבוע, תלוי ביכולת, בקצב ובשלב בקורס.

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

ת: הקורס מתנהל בשילוב של שיעורים פרונטליים עם עבודה מעשית בבית על פרויקט, כאשר העבודה עצמה על הפרויקט היא אג׳ילית: מתחילים ממשהו פשוט שעובד, מעלים לפרודקשן ומשכללים אותו ככל שלומדים תכנים מתקדמים. זה מכריח את הנושאים להיות לאו דווקא בסדר לינארי. אם בעבר לימדתי קודם HTML, אח״כ CSS ולבסוף JavaScript – פה יהיה קצת משלושתם בסבבים לאורך כל הקורס. זה מתחבר לאיך שעובדים ברוב הסטרטאפים וגם לתהליך הלמידה – את לומדת דברים שאת צריכה בשביל ליישם עכשיו פיצ׳ר לפרויקט, זה פותר לך בעיה. בניגוד לתוכן שהוא ״באויר״. בנוסף זה מאפשר חזרה לקוד שכבר כתבת ומחיקתו / שיפור,. משהו שהוא בלתי נמנע בעבודה ומוטב לרכוש את הכישורים האלה מוקדם ככל האפשר.
גם בשיעורים עצמם יהיו תרגילים קטנים על מנת להפנים את התיאוריה. אחרת זה ייצא מהאוזן השניה.
על הפרויקט עובדים לבד. מניסיון גם ככה אנשים מתחברים זה לזה ועובדים ביחד. אבל כל אחד חייב להגיש פרויקט משלו.
העבודה בבית היא בהנחיה שלי, אני זמין ל code review, שאלות וכו׳.
גם בכיתה יש תרגול – משימות קטנות לחזק את החומר הנלמד. את העבודה בכיתה אפשר לבצע גם בזוגות או שלשות. אני מעדיף עבודה עצמית בד״כ אבל טוב לגוון. 80-20.

ש: למה הקורס מתקיים בישיבה במעגל? למה זה עדיף על שולחנות בשוּרות?

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

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

ת: אין בעיה עם הפרונטלי – המרצה יכול לעמוד, יש מקרן וכו׳. ואפילו יש שולחן, כך שאין צורך להחזיק את המחשב על הברכיים 🙂

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

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

ש: אני יכולה להעיד על עצמי שלא הגשתי פרוייקטים. בקורס אחד זה אמנם היה כי מצאתי עבודה תוך כדי הקורס (מה שהן ייתר את הצורך בפרוייקט, והן גזל ממני את זמן העבודה עליו), אבל בקורס השני – שהיה, אם להיות כנה, קורס ה-HTML5 שעשיתי בנטקראפט – זה היה מפני שלא הצלחתי להתחבר מספיק לתוכן של הקורס, וגם הקורס עצמו לא נתן מוטיבציה מיוחדת. קיבלתי תעודת סיום סבבית לגמרי 🙂

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

ש: ובקורס החדש שלך, יש עידוד לסיים את הפרוייקט? יש הבדל בתעודת הסיום בין מי שעשה את הפרוייקט למי שלא? והאם אם מישהו מוצא עבודה בתחום, תוך כדי הקורס (כמו שקרה לי כאמור), האם עדיין יש לו עניין לסיים את הפרוייקט?

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

ש: נעבור לסילבוס. קודם כל, למה הסילבוס באנגלית?? 🙂

ת: ניסית פעם לכתוב משפט בעברית עם מונחים טכניים?? כמובן שכן, ואת עושה את זה היטב בבלוג הזה 🙂 אבל הרבה פעמים זה מרגיש מסורבל ומתסכל לכתוב ולקרוא טקסט כזה, עדיין ב-2016 זה לא חף מבעיות טכניות בכל מיני מקרי קצה (כיווניות מתערבבת וכו׳) וסיבה נוספת היא סוג של הצהרה – הקורס הוא ברמה בינלאומית. לבסוף רוב מוחלט של חומרי הלימוד הם באנגלית וגם ככה התלמידים יצטרכו להתמודד עם המצב הזה. אז באיזשהו מקום זה גם סינון ראשוני לקהל היעד.

ש: אמור משהו על העדר לימוד ספריות בקורס.

ת: חשבתי המון על עניין הספריות. בעבר כן לימדתי, את AngularJS. מצאתי שהנושא מצריך קורס או סדנה משלו על מנת שהלמידה תהיה אפקטיבית הן מבחינת הזמן הדרוש (שוב – את לא רוצה להאריך את הקורס יותר מדי) והן מבחינת מיקוד. קשה מאוד להפנים את הטרמינולוגיה של אנגולר כשעדיין לא עיכלת עד הסוף טרמינולוגיה של JavaScript. אז או שהלמידה היא שטחית וזה לסמן וי, או שזה ייקח יותר מדי זמן. וגם אם איכשהו זה כן הסתדר לך טוב קיים סיכוי גבוה שאחרי הקורס בכלל לא תעבדי עם הספריה – כי במקום העבודה משתמשים בספריה אחרת או שיצאה גרסה חדשה.
אני כן מלמד דברים חדשים שכבר נכנסים לסטנדרט והם העתיד, לדוגמה: ES6 – הגרסה החדשה של JavaScript ו-Flexbox – שיטה (לא מאוד) חדשה לעשות Layout ב-CSS שרק לאחרונה זוכה לתמיכה נרחבת בדפדפנים. אלה טכנולוגיות שנכנסות למיינסטרים ויותר חשובות בעיניי מספריות מכיוון שהן חלק מסט הכלים של הדפדפן.

ש: למה מצאת לנכון לציין את flexbox בסילבוס, במנותק מ-CSS? זה בסה”כ עוד סט מאפיינים של CSS3, ולתומי הייתי מצפה שתלמד את זה במסגרת CSS, גם לולא ציינת את זה במפורש.

ת: קודם כל החשיבות של flexbox בתוך עולם ה-CSS היא הרבה מעבר לכמה מאפיינים. מדובר על מנגנון layout שונה לחלוטין מכל מה שהיה בעשרים שנה האחרונות, ופותר הרבה מהבעיות במנגנונים הקודמים שאילצו את המפתחים לעשות דברים עקומים (ולהוציא שם רע ל CSS על הדרך), כמו שימוש ב-floats עבור layout. מעבר לכך שוב, מדובר בטכנולוגיה שההטמעה שלה בדפדפנים היתה איטית ולכן היא עדיין בבחינת נושא שאינו מובן מאליו לחלוטין. יש אנשים שעד היום לא משתמשים ב flexbox בפרודקשן.

ש: ומה עם grid? גם הוא מבטיח להיות הדבר הגדול הבא ב-layout. לכן, אף על פי שאצלנו אנחנו משתמשים ב-flexbox (גם בפורדקשן) אני קצת פוחדת להיקשר לטכנולוגיה הזאת שמא היא תתמוסס בפני grid. מה דעתך?

ת: grid במצב בשלות רחוק מאוד מה-flex. כרגע רק IE/Edge תומכים בו ושאר הדפדפנים רק מאחורי flag.
בנוסף הטכנולוגיה הזו אינה מחליפה את ה flex אלא משלימה אותה. flex לא נועד למשל ל full page layout. אפשר לקרוא על זה כאן. אני עוקב אחרי ה grid וכשיגיע הזמן אנסה אותה באיזשהו פרויקט ולאחר מכן אכניס לתוכנית. ללמד את זה עכשיו בקורס הכשרה לעבודה זה מדי ספקולטיבי.

ש: אז אתה מאשר לי לאהוב את פלקסבוקס ללא מעצורים. על אחריותך!

ת: בכיף! רק אל תשכחי שזה לא תחליף ל CSS כמו שכבר שמעתי מכל מיני אנשים. עדיין יש שימוש ל-whitespace, normal flow, טבלאות, relative ו-absolute positioning. זה בעיקר תחליף ל micro layout באמצעות float ו-inline-block.

ש: לסיום, שאלה סקרנית: מי מספר את הספר – איך אתה מתעדכן ולומד?

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

  • Feedly + Web Standards Group Newsletter + קבוצות מקצועיות בפייסבוק: כדי לקבל את המסה של החומר – מה חדש, מה מעניין וכו׳. ב Feedly יש לי רשימת בלוגים איכותית ומכובדת ביותר (כמובן ששלך ביניהם).
  • Pocket – על מנת לקרוא אחר כך ולהתעמק בפוסטים ונושאים שדורשים יותר ריכוז

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

ש: כמה זמן אתה מקדיש (ביום/בשבוע/איך-שאתה-מחלק-את-הזמן) להתעדכנות? הרי זה לא billable time…

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

ש: שעתיים בשבוע – לא נורא בכלל. אני מקדישה יותר זמן, אבל אולי אני קוראת יותר לאט 😛

סרג’, תודה רבה שהתארחת אצלי. היה כיף לדבר. שיהיה לך בהצלחה בקורס שמתחיל היום, ובשאר הקורסים שעוד תפתח בע”ה.

2 תגובות על “קורס פרונט-אנד בצפון, בהדרכת סרג’ קרול

כתבו תגובה

כתובת הדוא"ל שלכם לא תוצג.