איך להתכונן לראיונות טכניים
סלביק ניימר
סלביק ניימר
מפתח מעל 10 שנים

הראיון בדרך כלל יכלול 3 חלקים:

  1. הצגה עצמית - בחלק הזה אתם צריכים להיות מוכנים לספר על עצמכם מאוד בקצרה (2-3 דקות) תוך כדי הדגשת החוזקות שלכם. יכול להיות שיבקשו מכם להרחיב על חלק מהדברים. אל תנסו לאלתר בראיון, אלא תגיעו מוכנים (ואם אף פעם לא יצא לכם לעשות את זה "על אמת", אז כדאי לכם להתנסות לתת את ה-speech מול חבר/מראה כמה פעמים (הרי בראיון אמיתי רמת הלחץ תהיה יותר גבוהה מהרגיל, אז אם תתחילו להתבלבל כשתתאמנו מול חבר, סיכוי גבוה שתתבלבלו גם בראיון).
  2. לספר על משהו שעשיתם:
    • אם אתם מחפשים את העבודה הראשונה שלכם, אז יבקשו מכם לספר על איזשהו פרויקט שעשיתם. אז תדעו לספר עליו טוב. תתחילו מהצגת הפרויקט בכמה משפטים, ואז כנראה יבקשו מכם לספר קצת על ה-design שעשיתם, באיזה טכנולוגיות השתמשתם, למה בחרתם אותן, וכדומה. תדעו לענות טוב (תהיו מוכנים שיבקשו מכם לשרטט דיאגרמה שכוללת את הקומפוננטות המרכזיות, ומי מתקשר עם מי).
  3. שאלות טכניות, שיכולות להיות מהסוגים הבאים:
    • שאלה בה תצטרכו לפתור בעיה (בדרך כלל פשוטה/בינונית) ולכתוב קוד שעובד.
    • שאלת חשיבה (בינונית/קשה), שמספיק שתכתבו פסאודו-קוד, או אפילו תסבירו בנפנופי ידיים.
    • שאלת design, בה יתארו לכם איזושהי מערכת, ויבקשו מכם לחשוב בקול איך הייתם בונים אותה (אילו קומפוננטות צריכות להיות, מה יהיו ה-interface-ים ביניהן וכדומה).

תוך כדי השאלות האלה יכולים לשאול אתכם גם שאלות תיאורטיות (למשל, למה בחרת להשתמש כאן ברשימה ולא במערך ומה ההבדלים ביניהם, איך עובד garbage collection וכו').

 

נושאים תיאורטיים שכדאי ללמוד ממש טוב לקראת ראיונות:

  1. מבני נתונים: איזה סוגים יש, על איזה צורך כל מבנה נתונים עונה, איזה פעולות אפשר לעשות על כל אחד ובאיזה סיבוכיות, ואיך כל פעולה מתבצעת מאחורי הקלעים (למשל, איך בנוי HashSet ככה שהכנסת איבר תהיה בסיבוכיות O(1).
  2. אלגוריתמים על גרפים (בעיקר BFS ו-DFS), כי יכולים לשאול אתכם שאלה שלכאורה בכלל לא קשורה לגרפים, אבל הפתרון שלה מאוד דומה לאחד משני אלה (דוגמה)
  3. תכנות דינאמי (דוגמה: בכמה דרכים שונות אפשר לתת 100 ש"ח בעזרת מטבעות של שקל, שנקל, 5 שקלים ו-10 שקלים?)
  4. תהיו ממש טובים בשפת תכנות כלשהי, ותדעו לענות איך הדברים עובדים מאחורי הקלעים.
    1. למשל למשרות ++c:
      • השימושים השונים של const
      • מה זה פונקציה וירטואלית, איך הקומפיילר מממש את זה, מתי destructor צריך להיות וירטואלי ולמה
      • מה זה overloading
      • מה זה פולימורפיזם 
      • איך עובדת ירושה מרובה
    2. למשרותfront-end, javascript :
      • עבודה עם מערכים, כולל iterating
      • מה זה scope (וההבדל בין var ל-let)
      • The global object
      • Strict mode
      • Objects
      • Type system
      • Math & date
      • DOM
  5. design patterns בסיסיים (singleton, factory, actor…)
  6. איזושהי תשתית unit-testing (במיוחד למשרות JAVA, ו-#C, וכדומה)
  7. איזושהי תשתית ל-Dependency injection
  8. למשרות back-end, תשתיות, ++c/c:
    • multi-threaded programming (כולל mutex ו-semaphore)
    • ההבדל בין stack ל-heap (מתי משתמשים בכל אחד, ואיך הזיכרון משתחרר)
    • מערכות הפעלה (כולל ההבדל בין process ל-thread)

 

המלצות שיעזרו לעבור טוב שאלות מסוג כתיבת קוד וחשיבה:

  1. לא מעט מראיינים מבקשים שתכתבו קוד על לוח / דף / notepad, כדי לראות כמה הכתיבה זורמת (וזה לא משנה אם זה לא 100% מתקמפל) - המטרה היא לראות את הדרך בה אתם חושבים וכותבים קוד - אז תתרגלו באתרים כמו leetcode.
    כשאתם פותרים שאלות, המטרה היא להגיע למצב בו הקוד שאתם כותבים עובד בפעם הראשונה. אם בהגשה אתם מקבלים הודעה שיש input שעבורו הקוד שלכם לא עבד, תבינו איך פספסתם את מקרה הקצה הזה, ובשאלות הבאות נסו לחשוב יותר טוב. זה באמת ממש חשוב. המטרה היא לא סתם לעשות כמה שיותר תרגילים, אלא להגיע למצב שאתם פותרים נכון על הפעם הראשונה (שגיאות קומפילציה זה בסדר - הכוונה שלי היא שהקוד צריך לעבוד בפעם הראשונה שהוא מתקמפל).
  2. יש ספר ששמעתי עליו המלצות מאוד חמות מלא מעט אנשים: Cracking the Coding Interview.
  3. אתרי תרגול לשאלות (לא מכיר אישית, רק שמעתי המלצה על כל אחד מאלה):

 

כמה טיפים לסיום:

  1. תראו הרצאת TED על איך לא להילחץ בראיון, ותזכרו לעשות את התרגיל שהיא ממליצה לפני כל ראיון: Your body language may shape who you are
  2. אם עכשיו אתם בתקופת מבחנים, תשקיעו בציונים - ממוצע גבוה מעלה את הסיכוי שיקראו לכם לראיון.
  3. תענו על שאלות ב-StackOverflow בנושאים שאתם יודעים טוב - זו דרך מעולה להעשיר את הידע שלכם, וגם לצבור נקודות (על כל שאלה שאתם עונים, אתם מקבלים נקודות) - שווה להזכיר את זה בקו"ח, זה ייתן לכם יתרון.

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

בעל ניסיון של שנים גם בתפקידים טכניים בכירים (בתחום ה-backend, גם ב-low level וגם ב-high level) וגם בתפקידי ניהול בכירים, עם ניסיון עשיר בגיוס לתפקידי פיתוח

הישארו מעודכנים

הצטרפו לעמוד הטלגרם שלנו!

*זוהי קבוצה שקטה שבה רק האדמינים שולחים הודעות

עזרנו לכם? שתפו את הכתבה עם חברים!

שיתוף ב email
שיתוף ב telegram
שיתוף ב whatsapp
שיתוף ב linkedin
שיתוף ב twitter
שיתוף ב facebook

יש לך מאמר שיעזור?