חלק מרכזי בראיונות עבודה הוא פתרון שאלות תכנות:
הסיטואציה קצת משונה, אתם תכנסו תפגשו אדם זר ואחרי כמה דקות של שיחה הוא יבקש מכם לפתור שאלת תכנות בזמן מוגבל תוך כדי שהוא צופה בכם. הדבר הזה לא דומה ליומיום של אף אחד ויכול להלחיץ גם את מי שכבר היה בעשרות ראיונות. להבדיל מכתיבת קוד בבית, לא מספיק רק לכתוב קוד נכון.
כדי לעבור את הריאיון בהצטיינות צריך לשים דגש גם על התקשורת עם המראיין, ושיתוף שלו במחשבות ובדרך לפתרון השאלה, הפרמטרים האלה יכולים להכריע את הריאיון.
איך לחלק את תהליך הפתרון לחמישה שלבים ונתן דגשים לכל שלב:
- Repeat – חזרו על השאלה שכרגע נשאלתם
תוודאו שאתם מבינים נכון את ההנחיה על ידי כך שתחזרו שוב על השאלה במלואה, כולל המגבלות. לא פעם קורה שמרואיינים רוצים להתחיל לכתוב כמה שיותר מהר כדי לא לבזבז זמן, ורק מאוחר יותר מתברר שהם כותבים פתרון לבעיה אחרת. תשאלו שאלות הבהרה אם את מרגישים שחסרים לכם פרטים, אין מה להתבייש זה רק מראה שאתם יסודיים.
המראיין לא יכול לדעת אם לא הבנתם את השאלה כך תוכלו לוודא שהנתם נכון 🙂
- Examples – כתבו מספר דוגמאות של קלטים אפשריים והפלטים המצופים
זו הזדמנות נוספת לאשש מול המראיין שאתם מבינים נכון את הדרישות. בנוסף, הזמן הזה מעולה בשביל לנסות לחשוב על קלטים שעשויים להיות בעיתיים ולרשום אותם בצד כדי לבדוק מאוחר יותר שאתם מתמודדים איתם נכון.
כמובן שזה גם יעזור לכם לחשוב על הפתרון של השאלה, רוב השאלות נעשות קלות יותר אחרי שרואים מספר דוגמאות, ובמיוחד אחרי שצריך לחשב באופן עצמאי את מה שהתכנית שלכם צריכה לבצע.
- Approach – תארו למראיין את הכיוון של הפתרון שלכם
נסו לשתף את המראיין בדרך שבה אתם חושבים לפתור את הבעיה. זה יעזור למראיין לראות איך אתם חושבים, וייתן לו הזדמנות לרמוז לכם אם הכיוון שלכם הגיוני. המראיין כנראה שאל את השאלה הזו כבר מספר פעמים, ותוכלו להסיק מה הוא חושב על הרעיון שלכם מה דרך שבה הוא יגיב.
בנוסף, עוד רגע תתחילו לכתוב את הקוד, ואתם רוצים שלשניכם יהיה ברור מה אתם מנסים לעשות, אחת הדרכים לבדוק את הרעיון שלכם היא להגיד אותו בקול רם.
- Code – כתבו את הקוד לפתרון שלכם
דרך טובה לכתוב קוד בראיונות היא שיטת top-down. במקום להתחיל לכתוב כל פקודה של האלגוריתם, תתחילו בלכתוב את הפונקציה הראשית שלכם, ולהשאיר פרטים קטנים לשלב מאוחר יותר. למשל, אם האלגוריתם שלי צריך לחפש איבר ברשימה מקושרת, במקום לכתוב את הלולאה מיד, אני אכתוב קריאה לפונקציה שנקראת "חיפוש ברשימה מקושרת", ואמשיך הלאה. לאחר שנסיים את האלגוריתם נוכל לחזור ולממש את אותן פונקציות קטנות.- חוסך לכם את הזמן שהייתם מתעכבים על בעיות קטנות, שבלחץ הריאיון עשויות להיות מבלבלות, בסגנון של תנאי העצירה של הלולאה.
- מאפשר לכם להתמקד במה שבאמת מעניין את המראיין, ואם מה שעשיתם הוא נכון יכול להיות שהמראיין לא יבקש מכם לממש את כל אותן פונקציות כי הוא יניח שאתם יודעים לעשות את זה.חשוב להעביר למראיין את רמת הביטחון שלכם במה שאתם אומרים או כותבים. לדוגמא, לפעמים מגיעים לקטע בקוד שלא בטוחים בו, לא זוכרים בדיוק מה הפרמטרים של פונקציה שאתם משתמשים בה, אז אתם כותבים משהו זמני. ההנחה היא שאתם בטוחים במה שאתם עושים, ואם אתם אומרים דברים לא נכונים עלול להתקבל הרושם שאתם מחרטטים, במקום לומר "אני לא בטוח בזה אבל נראה לי ש…".
- Test – בחרו מספר דוגמאות ותעברו על הקוד שהתוצאה נכונה
הכוונה פה היא לקרוא שוב את הקוד ולנסות למצוא באגים – לא לכתיבת טסטים, או להרצה של הקוד עם קלטים לדוגמה. לפעמים בקוד שכתבתם יש באג או שניים, והמראיין מכיר את השאלה היטב ויודע למצוא את הבאגים. עכשיו אתם רוצים להראות לו שגם אתם יודעים למצוא באגים.
חשובלשים לב לדבג את הקוד שכתבתם ולא את מה שתכננתם לכתוב: תכננתם לכתוב לולאה שרצה 3 פעמים, אבל בגלל טעות בתנאי היא תרוץ 4 פעמים. הרבה אנשים מניחים שמה שהם כתבו עושה את מה שהם רצו שהוא יעשה ולכן יבדקו רק את האלגוריתם ולא את הקוד עצמו.
דרך טובה לבדוק את הקוד היא להשתמש בדוגמאות שכתבתם בהתחלה: הרבה פעמים עדיף להשתמש בהן, כי אחרי שמממשים את התוכנית המוח ננעל על דוגמאות שעובדות וקשה לחשוב על מקרי קצה.
לסיכום, התקשורת שלכם עם המראיין תקבע את ההצלחה שלכם בריאיון וזה התפקיד שלכם לוודא שהתקשורת הזו טובה. מלבד פתרון הבעיה, אתם צריכים לוודא שאתם גם מעבירים למראיין את כל המסרים שאתם רוצים להעביר ושמים דגש על הדברים שאתם רוצים שהוא יראה. למזלנו זה לא כ"כ קשה ובעזרת הדגשים האלה תוכלו בקלות לשים לב שאתם מתייחסים לנקודות החשובות.
הטיפים בכתבה הזו נכתבו בהשראת הסרטון הזה.
השאירו תגובה
רוצה להצטרף לדיון?תרגישו חופשי לתרום!