"את נראית כמו בחורה רצינית עם גישה למקצועות ריאליים, למה שלא תלמדי ביולוגיה?"

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

 

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

 

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

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

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

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

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

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

 

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

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

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

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

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

 

הפוסט פורסם לראשונה באתר של הבלוג ב-The Marker

התנהלות בין-אישית בראיון עבודה – שפת גוף

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

 

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

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

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

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

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

 

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

 

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

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

 

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

 

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

שימו לב במיוחד לנקודות האלה בזמן שהמראיין מדבר ואתם מקשיבים – כפי שכתבתי, במצבים האלה קל לאבד ריכוז 🙂

 

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

 

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

איך מתכוננים לראיונות, חלק ב'

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

לא בטוחים מה בכלל קורה פה? כדאי לקרוא את המדריך מההתחלה.

 

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

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

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

בדיקת ידע בשפה, לפעמים איזוטרי

חלק מהמראיינים פשוט ישאלו אותך שאלות שכוללות דקלום כלל של שפת התכנות הרלבנטית. למשל, "מה זה אומר שמתודה היא protected בג'אווה? מאיפה אפשר ומאיפה אי אפשר לקרוא לה?". אם את מרימה כרגע גבה, אני מבין למה… הרי אם הכלל הוא משהו שנתקלים בו במסגרת התכנות השוטף בשפה, כולם יענו בלי בעיה והשאלה לא מאפשרת לעמוד על טיבה של מועמדת. ואם הכלל הוא מקרה איזוטרי שלא מעניין אף אחד, סביר שיהיו מועמדים חזקים שלא ידעו דווקא את הטריוויה הזו בשלוף. למשל: "מני את כל השימושים האפשריים של ה-keyword static בשפת C, והסבירי מה כל אחד מהם עושה" (אגב, קריאה מומלצת לפני השינה).

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

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

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

קריאת קוד נתון, לרוב כולל מציאת באגים בקוד

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

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

תכנות מונחה עצמים

שאלות בנושא לרוב מציגות בעיה "מהעולם האמיתי", ומבקשות להציע מבנה קלאסים מתאים. למשל, "נניח שהיינו רוצים לתכנת משחק מונופול למחשב. אילו קלאסים את חושבת שצריכים להיות במערכת, אילו מתודות עיקריות יש לכל קלאס, ומי יורש ממי?". או "דמייני שאנחנו כותבים משחק סימולציה של חווה בסגנון FarmVille, שצריך לתמוך בסוגי החיות הבאים […]. אילו קלאסים יהיו במערכת, ומי יורש ממי?".

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

"A is a B”

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

“A pigeon is a bird”.

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

הפגנת ידע במערכות הפעלה ורשתות

במשרות עבורן הידע הזה דרוש, המראיינת עשויה לבקש ממך להסביר קונספטים במערכות הפעלה ו/או רשתות. לרוב המראיינת תרצה שתתארי איך משהו עובד, או תסבירי מה ההבדל בין שני קונספטים דומים. החלק הזה לרוב לא יכלול כתיבת קוד, אלא הסבר מילולי בלבד. בניגוד לשאלות ממבחנים באוניברסיטה, המראיינת לרוב לא תצפה להתפלפלות סביב תת-מקרה חריג, אלא שתשלטי בעיקר הדברים ובמקרים טיפוסיים. למשל, היא תשאל מה ההבדל בין TCP ו-UDP, לא מה זה Silly Window Syndrome.

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

  • מהו מודל השכבות? אילו שכבות מרכיבות אותו, ומה תפקידה של כל שכבה?
  • תארי איך עובד אחד מהפרוטוקולים הנפוצים באינטרנט, למשל TCP, HTTP, DNS. מה ההבדל בין TCP ל-UDP? (אגב, מנסיוני השאלה האחרונה היא ממש פופולרית, אני לא בטוח למה).
  • מה זה subnet? מה ההבדל בין MAC address לכתובת IP? מה ההבדל בין סוויץ' וראוטר?

מערכות הפעלה:

  • מה ההבדל בין thread ל-process? (אגב, גם זו שאלה נורא פופולרית).
  • איך ניתן להעביר מידע ולסנכרן בין threads? (המראיינת מצפה שתזכירי לפחות מנגנון סנכרון פופולרי אחד, למשל semaphore, mutex, Java synchronized methods.)
  • איך אפשר להעביר מידע בין processes? (תשובה אפשרית אחת: sockets)
  • מה זה deadlock, ואיך נמנעים ממנו?
  • מה זה זכרון וירטואלי? תארי בכלליות את הטיפול הטיפוסי ב-page fault.

 

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