• בלוג
  • עמוד 259
  • ב 2008 הימרתי על הטכנולוגיה הלא נכונה והפסדתי. היום כבר פיתחתי שיטה.

ב 2008 הימרתי על הטכנולוגיה הלא נכונה והפסדתי. היום כבר פיתחתי שיטה.

08/09/2016

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

אבל ב 2008 גם התחילו להופיע בארץ האייפונים הראשונים. הם נראו כמו צעצועים, לא משהו שאנשים רציניים יחליפו בשבילו את ה E72 מקלדת מלאה שלהם. הבחירה היתה קלה - אני הולך להשתלט על שוק האפליקציות לנוקיה.

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

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

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

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

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

ולמרות שאנו יודעים את כל זה כולנו מתמודדים עם אותם חסמים:

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

I am learning Ruby, and coming for me coming from Python it's not an as easy as it seems. Ruby is confusing, it has a weird syntax, and for me things in Ruby are not as simple as they're in Python.

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

קל זה בטח לא.

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

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

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

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

נחלק אותן ל-3 רמות של היכרות:

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

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

    מטלה לדוגמא יכולה להיות הבנה של הגדרות Webpack, דרך כתיבת קובץ הגדרות מאפס. אפשרות אחרת היא לעבוד עם Tutorial ולבצע אותו מקצה לקצה עד שמגיעים ליישום עובד (למשל בשביל ללמוד React Native).

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

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

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

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

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