שיפור עמדות בעזרת קורסי התמחות

שוב שלום, הרבה זמן שלא דיברנו 🙂

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

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

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

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

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

  • קריפטוגרפיה ובלוקצ'יינס: אני אישית מאוד סקפטי כלפי התרומה של כל עניין הבלוקצ'יינס לחברה, והאמת ששקלתי לא לכלול את הנושא כי הוא מעלה לי את הסעיף 🙂 אבל מבחינה אובייקטיבית, יש חברות בלוקצ'יינס בארץ, ובחלקן יש אנשים רציניים מאוד שהגיעו מהאקדמיה. אז אם הנושא מעניין אתכם (למה?? 😉 ), הנה קורסים רלבנטיים:
    מבוא לקריפטוגרפיה מודרנית
    סדנא בתכנות חוזים חכמים
    התאוריה שמאחורי בלוקצ'יינס
    בנוסף לקורסים הללו, מכיוון שזה תת-תחום של אבטחת מידע, רוב הקורסים באבטחת מידע עשויים לתרום פה.
  • רשתות ותקשורת: או! נירגע מהבאסה של בלוקצ'יינס עם משהו מעניין 🙂
    רשתות תקשורת מחשבים
    עקרונות רשתות תקשורת (גילוי נאות: יובל שביט הוא הבוס הקודם שלי, גם פה אני לא קשור לקורס)
    נושאים מתקדמים בניתוב (כנ"ל)
    בדרך כלל אפשר למצוא סדנה בנושא, אבל לא ראיתי שיש כזו נכון לכתיבת שורות אלה (בתור דוגמה, פעם היתה את הסדנה הזו, שבונים במסגרתה firewall. זה נראה לי פצצה גם במבחינת העניין וגם מבחינת קורות חיים. חבל שהיא לא מוצעת יותר).
  • שפות תכנות: (זאת לא בדיוק התמחות, יותר הזדמנות לסגור קצוות לגבי ההערה הזאת) האם יש שפת תכנות מיינסטרימית שאת יכולה לשפר את השליטה בה? למשל, האם יש הגיון ואפשרות לשפר שליטה בפייתון, ג'אווה, ו-++C/C? בחלק מהמוסדות, הדרך לעשות את זה כוללת קורס בחירה, במיוחד במקרה של ++C.
  • הנדסת תוכנה: גם זאת לא התמחות בפני עצמה, יותר כמו חומר קריטי שהאוניברסיטה לא מלמדת כמו שצריך, לא ברור לי למה 🙂 פרוייקטי תוכנה בעולם האמיתי מתנהלים באופן הרבה יותר מתוחכם מאשר "כל אחד כותב חלק אחר מהקוד, בסוף מחברים את החלקים, מדבגים, ובתקווה יוצא טוב". כשיש פרוייקטים ומתרגלים פיתוח תוכנה מודרני בפועל, קורס בנושא יכול להיות מכפיל כח מורגש. אבל כרגיל, אם הקורס מתמקד בשינון לקראת המבחן, זה כמובן לא עוזר. לאורך השנים קורסים כאלה נוטים להתחלף ולהיעלם, כרגע מצאתי קורס בודד בנושא:
    נושאים בהנדסת תוכנה

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

ועכשיו, להסתייגויות 🙂

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

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

שליטה בסיסית

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

ולסיכום: שוב, זה ממש לא חובה

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

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

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