חזרה על C/C++ לראיון עבודה

yMaster

New member
חזרה על C/C++ לראיון עבודה

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

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

תודה רבה וסוף שבוע מעולה.
 

Bubllik

New member
שאלות ששאלו אותי

מהניסיון שלי, בדרך כלל בראיונות כשצריך לכתוב קוד בC++ מספיק לדעת את השפה ברמה די בסיסית והאתגר הוא יותר אלגוריתמי. כדאי להכיר את מבני הנתונים שיש ב STL וקצת אלגוריתמים בסיסיים משם.
שאלות ידע של C++ ששאלו אותי-
1. מגדירים כמה מחלקות עם יחסי ירושה והכלה ושואלים איזה קונסטרקטורים/דיסטרקטורים נקראים ולפי איזה סדר כאשר אובייקט ממחלקה מסויימת נוצר/נמחק.
2. איך ממומש המנגנון של פונקציות וירטואליות?
3. להסביר את המשמעויות השונות של static.
נראה לי שזאת הרמה פחות או יותר שמצפים מבוגר טרי.
 

mom at work

New member


 

דייהטסו

New member
כדאי להתמצא ב-STL

קונטיינרים ואלגוריתמים. לחזור על טמפלטים, ולהכיר את החידושים העיקריים ב C++11
 

ipv6

Member
STL -CPP11/14 זה בור ללא תחתית

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

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

yMaster

New member
מה לגבי C?

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

דייהטסו

New member
ב-C ישאלו אותך כנראה פחות על סינטקס

אולי ישאלו שאלות תכנות קלאסיות כמו חיפוש ברשימה משורשרת, merge sort וכדומה
 

ipv6

Member
גם אם המשרה מתוארת כ- C++ אני הייתי מצפה ממך לשלוט ב-C

במה להתמקד? בהכל לדעתי..
 

vinney

Well-known member
C זה זכרון

תשלוט בכל הקשור למצביעים וניהול זכרון.
 

דייהטסו

New member
אני תוהה אם אתה אומר את זה מתוך הכרות

STL הופך את התכנות בC++ ליעיל בטוח וקריא בהרבה. אני אומר את זה אחרי ניסיון של שנים ארוכות בלי ושנים ארוכות עם.
C++11 מכיל פונקציות למבדה, שהופכות את השימוש ב-STL לנוח הרבה יותר. move semantics/ rvalue reference הוא משהו שכל מי שמקמפל בקומפיילר מודרני משתמש בו, ירצה או לא ירצה, גם אם הוא לא יודע מה זה. אז כדאי שידע איך זה משפיע.
שאר החידושים של c++11/14 פחות קריטיים.
בכל מקרה ידע כזה יכול רק להועיל, אפילו אם יש מקומות שתקועים בשיטות תכנות של שנות ה-90, וכתוצאה מכך התכנות אצלהם פירושו איך ליצור segmentation fault , דריכות זיכרון וזליגות זיכרון ואחר כך לנסות להתמודד איתן (שיהיה בהצלחה).
ועוד משהו חשוב ששכחתי לציין, רצוי להבין מה זה RAII.
 

ipv6

Member
יצא לי גם לכתוב שורה או שתיים


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

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

בוא תסתכל בלינק הבא ותראה את התשובה עם רייטינג 78 של vitus.
http://stackoverflow.com/questions/7510182/how-does-stdmove-transfer-values-into-rvalues

אתה רואה בוגר טרי מסביר בצורה כזאת בראיון? וזאת תשובה לשאלה שהיה יחסית בסיסית?
 

דייהטסו

New member
יש אמת בדבריך

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