למה (ואיך) להמשיך ללמוד טכנולוגיה לאורך שנים
פייתון, ביג דאטה, פול סטאק, ריאקט, נוד, גיט - אנשים באים לפה ללמוד כל אחת מהטכנולוגיות האלה ומתכנתים רבים שאני מכיר מאוד מתלהבים כשמגלים אותן לראשונה. אבל גם למתכנתים המוכשרים ביותר קשה להמשיך להינות וללמוד את אותה טכנולוגיה לאורך שנים, וזאת הסיבה שמתכנתים רבים כל כך מחפשים כל הזמן ללמוד את הדבר הבא.
אין רע בלהישאר פתוחים לרעיונות חדשים, בלהמשיך לחקור, בלנסות כל הזמן לגלות עולמות חדשים. כל עוד הנטיה לגלות את הדבר הגדול הבא לא באה על חשבון הדבר הגדול הקודם. או במילים אחרות, כל עוד אתם לא חוזרים כל פעם לנקודת ההתחלה.
הסיבה הכי טובה להמשיך ללמוד יותר לעומק את הדבר הגדול הקודם היא שלימוד קורה בשכבות. יש דברים בריאקט שתצליחי לראות רק אחרי שנתיים של עבודה עם הפריימוורק. לכן אם אחרי שנה את מרגישה שאת כבר יודעת הכל והגיע הזמן להמשיך הלאה לפריימוורק הגדול הבא, את תפסידי את הקומה השניה, השלישית והחמישית. זה כמו לבנות בניין אבל כל פעם להתחיל מחדש אחרי שמסיימים את הקומה הראשונה.
אני חושב שסיבה מרכזית לקפיצה היא התחושה אחרי שסיימנו את הקומה הראשונה שאנחנו כבר יודעים הכל. שהקומה השניה, השלישית והעשירית הן בסך הכל עוד מאותו דבר, ולכן אם כבר ללמוד עדיף ללמוד משהו חדש לגמרי. לאורך זמן תחושה זו מחזקת את עצמה כיוון ששנה קדימה עם הטכנולוגיה החדשה ואנחנו שוב מרגישים בדיוק את אותה תחושה שכבר ראינו הכל, ולכן ממשיכים את המעגל ושוב קופצים לדבר הגדול הבא.
האלטרנטיבה היא קשה ושווה את המאמץ: במקום להתחיל בניין חדש בטכנולוגיה חדשה לגמרי, להתאמץ ולבנות את הקומה השניה בטכנולוגיה הנוכחית. אחריה את השלישית, החמישית והעשירית - כשכל קומה פותחת לנו את הדלת לידע חדש ונקודת מבט חדשה על אותם אתגרים.
אבל- איך עושים את זה? מהי אותה קומה שניה? ואיך אני יודע שאני לא עושה פשוט "עוד מאותו דבר?". הנה שלושה טיפים שעוזרים לי להתמיד:
1. חפשו גישות חדשות
בכל טכנולוגיה שאתם לומדים יש המון דרכים לגשת לפיתרון בעיות. בקומה הראשונה אנחנו לוקחים את הדרך ההגיונית, הפופולרית, המקובלת ביותר לפיתרון. בשביל להגיע לקומה הבאה צריך לחפש דרכים נוספות, גם אם בהתחלה לא לגמרי ברור מתי הן טובות יותר. אם ניקח לדוגמא את Redux, אז יכול להיות שבהתחלה למדתם להוציא בקשות Ajax עם Redux Thunk וזה עבד אחלה. בשלב הבא אתם יכולים לנסות ללמוד איך עובד Saga ואחרי זה לכתוב Middleware בעצמכם.
2. חפשו מה אתם עדיין לא יודעים
לכל טכנולוגיה יש פינות אפלות שרוב המתכנתים מצליחים להסתדר מעולה בלי לגעת בהן. אחת הדרכים להגיע להיכרות טובה יותר עם הטכנולוגיה היא בדיוק לחפש ולהיכנס לאותן פינות אפלות ולראות מי צריך אותן ולמה.
בחזרה ל React ו Redux - אני מוכן להמר שהסתדרתם עד עכשיו די טוב בלי לדעת מה זה Store Enhancer, ולכן כתיבה של אחד היא דרך להיכנס לשביל שעדיין לא צעדתם בו. יכול להיות שאתם מרוצים ממש מריאקט עם JavaScript, ובדיוק בגלל זה שווה לנסות לראות איך ריאקט עובד עם TypeScript. ואם כבר יש לכם בדיקות אוטומטיות לפרויקט הכתובות ב Selenium אולי הגיע הזמן להעיף מבט על Jest ולהוסיף גם בדיקות יחידה.
המטרה במשחקים האלה היא פשוט לגלות עוד ועוד חלקים בטכנולוגיה שעדיין לא נגעתם בהם. תמיד יש עוד, וככל שנתאמץ באופן פעיל למצוא אותם כך נוכל להמשיך ללמוד ולהתרגש מהתוצאות לאורך זמן.
3. חפשו את המקורות או נקודות מבט נוספות
כל טכנולוגיה שנבחר מושפעת ומשפיעה על עשרות טכנולוגיות אחרות. במקרה של React רעיונות של תכנות פונקציונאלי משחקים תפקיד מאוד חשוב בפריימוורק, ולכן דרך טובה לטפס לקומה הבאה בריאקט תהיה ללמוד כלים של תכנות פונקציונאלי.
הספריה ReasonReact (ואיתה סביבת Reason באופן כללי) היא מקום טוב להמשיך בו את לימודי הריאקט אחרי שאתם מרגישים שכבר יודעים הכל. זו שפת תכנות חדשה לגמרי בתחביר חדש לגמרי, שמשתמש באותה פריימוורק ונותן לכם נקודת מבט חדשה על הדברים שאתם כביכול יודעים.
הבחירה להעמיק במשהו מעבר ליכולת לבנות פרויקט שעובד היא לא מובנת מאליה ולא הרבה מתכנתים לוקחים אותה. בדיוק בגלל זה היא שווה את המאמץ ותתן לכם את היתרון שאתם צריכים כדי להצליח בשוק העבודה ובבניית מוצרים טובים יותר.