"אבל זה ידע בסיסי!"

GuestOfHonor

New member
"אבל זה ידע בסיסי!"

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

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

ואז - אז מגיעה שאלה בסיסית בתכנות מונחה-עצמים.

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

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



מראיינים - האם גם אתם נתקלתם בתופעה הזאת?

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

משורה

Member
קשה לענות בלי דוגמא ל"שאלה בסיסית" בעיניך

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

GuestOfHonor

New member
אוקיי - נלך על דוגמא

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

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

user32

Well-known member
מנהל
שאלת ראיון טובה בעיניי

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

"ירושה" למימוש של ממשק.
הימים הללו להערכתי חלפו (למעט ++C?).
מימוש ממשק משותף *אינו* ירושה.

ירושה - רע. שתי רגליים, אה סליחה ממשק - טוב.
 
הנה שאלת המשך משעשעת - נניח שאין שום מגבלות בבניית הצבא

הצבא כבר קיים.
מה הסיבוכיות (ב-N = מספר החברים בצבא) של פונקציית count כאשר נדרש ממך להמנע מ stackoverflow?
 

bismark1

New member
איזו שאלת המשך? הייתי נתקע באיך לתרגם חפ"ש לשם מחלקה...

 

NomadSoul

New member
נראה לי שזה חלק מהשאלה - להבין שהכוונה היא לא לממש ברקורסיה

 

GuestOfHonor

New member
אפשר לפתור את זה גם כך וגם כך

במקרים יותר סבוכים, יש tradeoff בין:
1. ירושה.
2. רק ממשקים ומחלקות שמממשות.

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

הבעיה היא שהרבה מועמדים לא מגיעים אפילו לזה, וזה מפתיע ומאכזב בעיני.
 

הפרבולה

New member
נראה לי שהפתרון הוא

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

Grosseto

New member
אם כבר- מפקד יורש מחייל

שהרי כל מפקד הוא גם חייל, אבל לא להיפך.
&nbsp
נניח מגדירים אובייקט "חייל" שיש בתוכו שתי פונקציות, ADD_SIGARETS פרייבט ו GET_CIGAERETS פרוטקטד
&nbsp
ועוד אובייקט "מפקד" שיורש מחייל , ואז יש לו גישה רק ל GET_CIGAERETS,
&nbsp
ובנוסף יש בתוכו אובייקט "חיילים" שיש בתוכו מערך של איברים מסוג "חייל" עם פונקציה
GET_CIGAERETS
&nbsp
ועוד אובייקט מסוג "צבא" שמכיל בתוכו אובייקט מסוג "חיילים"
&nbsp
ואז נשאר לכתוב:
&nbsp
CArmy army;
army.get_cigarets
&nbsp
&nbsp
&nbsp
&nbsp
&nbsp
&nbsp
 

משורה

Member
זאת ממש לא שאלה לחמש דקות

רק כדי להבין מה אתה רוצה קראתי את הטקסט שלוש פעמים. רק בשביל חשיבה על המימוש (בלי לכתוב שורת קוד אחת, בלי להגיד מילה אחת) היו נדרשות לי לפחות עוד 10 דקות. כל זה כשאני פה בישיבה נינוחה ולשאלה הזאת אין שום משמעות להמשך חיי.
בראיון אמיתי רק המילה "צבא" היתה מכניסה אותי לבלקאאוט.
&nbsp
הפורום הזה כנראה מלא בגאונים שפותרים כל בעיה בשניות. יכולתי לחשוב שמשהו אצלי לא בסדר אבל סיפרת שאצלך כל התותחים נופלים. אז כנראה משהו לא בסדר בשאלה ולא במרואיינים.
&nbsp
"לממש צבא" - סירייסלי? יש לך מושג כמה זה נשמע מאיים? אם כל המטרה שלך היא לבדוק ידע על מחלקות וירושה אז גרסה אחרת של השאלה (למשל עם מכונות ורובוטים) כבר היתה יכולה לעזור לאנשים להתמקד בבעיה ולא בקונוטציות של הסיפור.
&nbsp
הדגמת פה יפה התנהגות זחוחה של מראיינים שנתקלתי בה לא פעם. הם לוקחים בעיה שהם עצמם כבר טחנו ולעסו ולכן היא נראית להם טריוויאלית. אבל מישהו מבחוץ ועוד בסיטואציה מלחיצה של ראיון בקושי מבין מה רוצים ממנו ובטח שלא מסוגל לספק פתרון במסגרת הזמן שהקצו לו. המרואיין מסומן כאידיוט ונשלח הביתה. הוא מפסיד והחברה מפסידה. רק המראיין מרוויח - הנאה מתחושת העליונות על חשבון מועמד מובס. הידד.
&nbsp
נסה לזכור את הכלל: אם 10% מהתלמידים נכשלו - זאת בעיה שלהם. אם 90% מהתלמידים נכשלו - זאת בעיה של המורה.
אצלכם 100% נכשלים! אתם כנראה צריכים לעשות בדק בית רציני.
 
למעלה