שלום אורח התחבר

האם כדאי לי ללמוד טכנולוגיה X?

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

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

1האם ללמוד טכנולוגיה X יהפוך אותי למתכנת טוב יותר?

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

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

המסלול השני הוא המסלול האופקי. חשוב להכיר כלים וטכנולוגיות מהרבה תחומי ידע כדי שתבינו על מה כולם מדברים. כל אחד ירוויח מללמוד אבטחת מידע, חווית משתמש (UX), SQL ועבודה עם בסיסי נתונים או Machine Learning.

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

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

 

2האם טכנולוגיה X תעזור לי לבנות את הפרויקט הבא שלי?

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

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

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

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

3האם ידע בטכנולוגיה X יעזור לי למצוא עבודה טובה יותר?

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

כאן יש גם כמה חריגים שצריך להיות מודעים אליהם:

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

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

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

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


נהניתם מהפוסט? מוזמנים לשתף ולהגיב