Whatsup - לינוקס, תוכנה חופשית וקוד פתוח בעברית

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

Anonymous - 12/09/2017 - 19:06
נושא ההודעה: אני צריך מאגר של שאלות גנריות בתחום התכנות בראיונות עבודה.
שאלות כמו
* מציאת האיבר הגדול ביותר במערך
* sorting למערך
ושאר שאלות חשיבה לוגית (ופחות סינטקס)

השפה לא משנה, אבל אני מתכוון לענות על התשובות בפרל/פיתון/js (לפי הסדר)
Anonymous - 13/09/2017 - 08:01
נושא ההודעה:
https://github.com/kdn251/interviews
https://github.com/mr-mig/every-programmer-should-know
https://github.com/jwasham/coding-interview-university
https://github.com/andreis/interview
mksoft - 13/09/2017 - 09:47
נושא ההודעה:
אף פעם לא הבנתי את השאלות מהסוג הזה. בטח, בוא נשאל אותך שאלות על דברים שהם בעיות פתורות מזמן וכל מפתח/ת מתחיל/ה ימצאו תשובה תוך שניה ב-StackOverflow וכד'.

אפשר לחשוב זה ממש קשור למה שעליך לעשות בחברה.
Anonymous - 13/09/2017 - 09:55
נושא ההודעה: Re: אני צריך מאגר של שאלות גנריות בתחום התכנות בראיונות עבוד
Anonymous :
שאלות כמו
* מציאת האיבר הגדול ביותר במערך
* sorting למערך
ושאר שאלות חשיבה לוגית (ופחות סינטקס)

השפה לא משנה, אבל אני מתכוון לענות על התשובות בפרל/פיתון/js (לפי הסדר)


הדבר הזה זה פשוט ביזבוז זמן, תיקח ספר בחינות של מדעי המחשב בנושאי אלגוריתמים.
Anonymous - 13/09/2017 - 10:23
נושא ההודעה:
אפשר ללכת לשחק גולף.... גולף קוד!

https://codegolf.stackexchange.com/
Anonymous - 13/09/2017 - 16:17
נושא ההודעה:
המון תודות לעונים.
קיבלתי "טיפ" לפני ראיון שאבחן בכל שפה שאבחר על שאלות כאלה.
חבר שלי סיפר לי שיש גם את crack the code מסתובב היכן שהוא אבל אני שומר חוק. (מציין זאת לדורות הבאים)
בכל אופן הראיון קרוב מדי בשביל לעכל משהו מכל הלינקים הנ"ל. לדבר כזה צריך ללמוד.
מאיר(?) - וזו בכלל משרה של סיסטם. לך תבין.
elcuco - 13/09/2017 - 16:21
נושא ההודעה:
mksoft :
אף פעם לא הבנתי את השאלות מהסוג הזה. בטח, בוא נשאל אותך שאלות על דברים שהם בעיות פתורות מזמן וכל מפתח/ת מתחיל/ה ימצאו תשובה תוך שניה ב-StackOverflow וכד'.

אפשר לחשוב זה ממש קשור למה שעליך לעשות בחברה.


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

* לממש סקיצה של אלגוריתם להקצאת זיכרון. אתה מבקש איזור זכרון, ואת כות וקורה ממנו. הקוד לא מסובך - אבל רוצים לראות איך הקוד של המהנדס נראה (וכמה טריקים פשוטים מאוד בהקצאת זכרון).
* הסבירו לי על רגל אחת איך עובד אלגוריתם של path finding. בשלוף נתתי למראיון אלרוגיתם שהיכרתי ב־O(n^3), ואז הוא נתן לי אלרגוריתם וביקשו ממני לממש ב־pseudo code, ואז שאלו האם זה BFS או DFS. ואז ביקשו ממני לממש אלגוריתים שעובד בצורה אחרת (פה הייתי כבר גמור כי היה אחרי שעתיים של ראיון ושאלות מהסוג הזה).
* בראיון אחר שאלו אותי משהו וברגע שאמרתי state machine השאלה נסגרה. זה מה שרצו לשמוע.
* נותנים רשימה של מספרים ואומרים וביקשו ממני לברר איזה חסר, זה ב־O(1).
* נותנים רשימה של מספרים, ורוצים לדעת האם יש רצף מסויים של מספרים עוקבים שהסכום שלהם הוא "x".
* בראיון אחר ביקשו ממני לממש מין תחביר פשוט של regex. עשינו את התרגיל על לוח, צילמתי ובינינו, הוא לא עבד.
* בראיון אחר, נתנו לי שאלה מסובכת (רק להסביר ולהבין אותה לקח 20 דקות), והתשובה שחיפשו הייתה std::atomic (ואני סתם רציתי לשים mutex).
* שואלים אותי הרבה על mutex vs semaphore vs critical section.
* נותנים לי תרגילי בית, חלקים לא מסובכים (משהו פשוט עם מצלמה על אנדראיד, להפעיל מטריצות אפיניות על ביטמפים וכו'). שוב - פה המטרה היא לבדוק את הקריאות של הקוד.
* שאלה טכנית ששאלו: תכתוב קוד שמקבל שתי מחרוזות, וכתוצאה אתה מקבל העתק של המחרוזת הראשונה ללא השנייה. זה צריך להיעשות ב־O(n). אפשר לעשות את זה בעזרת העתקה למחרוזת שנייה, אבל אז זה לא inplace. ומי שחושב לעשות strstr טועה, כי זה O(n^2).
Anonymous - 13/09/2017 - 16:50
נושא ההודעה:
elcuco :
mksoft :
אף פעם לא הבנתי את השאלות מהסוג הזה. בטח, בוא נשאל אותך שאלות על דברים שהם בעיות פתורות מזמן וכל מפתח/ת מתחיל/ה ימצאו תשובה תוך שניה ב-StackOverflow וכד'.

אפשר לחשוב זה ממש קשור למה שעליך לעשות בחברה.


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

* לממש סקיצה של אלגוריתם להקצאת זיכרון. אתה מבקש איזור זכרון, ואת כות וקורה ממנו. הקוד לא מסובך - אבל רוצים לראות איך הקוד של המהנדס נראה (וכמה טריקים פשוטים מאוד בהקצאת זכרון).
* הסבירו לי על רגל אחת איך עובד אלגוריתם של path finding. בשלוף נתתי למראיון אלרוגיתם שהיכרתי ב־O(n^3), ואז הוא נתן לי אלרגוריתם וביקשו ממני לממש ב־pseudo code, ואז שאלו האם זה BFS או DFS. ואז ביקשו ממני לממש אלגוריתים שעובד בצורה אחרת (פה הייתי כבר גמור כי היה אחרי שעתיים של ראיון ושאלות מהסוג הזה).
* בראיון אחר שאלו אותי משהו וברגע שאמרתי state machine השאלה נסגרה. זה מה שרצו לשמוע.
* נותנים רשימה של מספרים ואומרים וביקשו ממני לברר איזה חסר, זה ב־O(1).
* נותנים רשימה של מספרים, ורוצים לדעת האם יש רצף מסויים של מספרים עוקבים שהסכום שלהם הוא "x".
* בראיון אחר ביקשו ממני לממש מין תחביר פשוט של regex. עשינו את התרגיל על לוח, צילמתי ובינינו, הוא לא עבד.
* בראיון אחר, נתנו לי שאלה מסובכת (רק להסביר ולהבין אותה לקח 20 דקות), והתשובה שחיפשו הייתה std::atomic (ואני סתם רציתי לשים mutex).
* שואלים אותי הרבה על mutex vs semaphore vs critical section.
* נותנים לי תרגילי בית, חלקים לא מסובכים (משהו פשוט עם מצלמה על אנדראיד, להפעיל מטריצות אפיניות על ביטמפים וכו'). שוב - פה המטרה היא לבדוק את הקריאות של הקוד.
* שאלה טכנית ששאלו: תכתוב קוד שמקבל שתי מחרוזות, וכתוצאה אתה מקבל העתק של המחרוזת הראשונה ללא השנייה. זה צריך להיעשות ב־O(n). אפשר לעשות את זה בעזרת העתקה למחרוזת שנייה, אבל אז זה לא inplace. ומי שחושב לעשות strstr טועה, כי זה O(n^2).



במה אתה עובד?

שאלות ממש מורכבות (בשבילי, נכון להיום)
הלוואי ויבוא יום שבו אדע לענות על שאלות כאלו בראיון עבודה וכמובן שהיום שלי יהיה מלא בחידות מהסוג הנ״ל Smile

לצערי נכון להיום זנחתי את לימודי הסי שלי בשביל משרת פיתוח ג׳אווה/ווב ואני אפילו לא קרוב לידע מעניין ומורכב בג׳אווה, ובכלל ווב זה התעללות ואונס בJS.
Anonymous - 13/09/2017 - 17:41
נושא ההודעה:
elcuco :

* נותנים רשימה של מספרים ואומרים וביקשו ממני לברר איזה חסר, זה ב־O(1).


מה זאת אומרת "מי חסר"? אני אומר ש-7 חסר, בדוק. זה ב-O(1)
Laughing Laughing
mksoft - 13/09/2017 - 19:18
נושא ההודעה:
כל מה שציינת קשור לזה ש-C++ שפה מסריחה Smile

בכל מקרה איך זה רלוונטי לכתיבת:

וכן הלאה...
elcuco - 13/09/2017 - 20:21
נושא ההודעה:
מאיר, תפסיק לבלבל את השכל, השפות ההיפסטריות עם הזקנקן המגוחך הזה כתובות ב-C++‎ אז... כן. ולא, הן לא מתאימות לכל מטרה.

ומה אתה היית שואל מרואיין לתפקיד של פיתוח ווב?
Anonymous - 13/09/2017 - 22:05
נושא ההודעה:
לא מצליח להבין את הרעה החולה הזו שנקראת js
פשוט לא מצליח להבין.

גילוי נאות: לכותב אין שמץ ב c/cpp
mksoft - 13/09/2017 - 22:21
נושא ההודעה:
elcuco :
מאיר, תפסיק לבלבל את השכל, השפות ההיפסטריות עם הזקנקן המגוחך הזה כתובות ב-C++‎ אז... כן. ולא, הן לא מתאימות לכל מטרה.

ומה אתה היית שואל מרואיין לתפקיד של פיתוח ווב?


מה הקשר? האם הם הולכים לממש את השפות האלה בעצמם? את מי זה מעניין?

או לצורך העניין לממש דברים שהם כבר בעיה פתורה?

נ.ב., ככל הידוע לי, Go בונה את עצמה כעת, אין שום C או C++ שם.

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

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

המבנה יהיה גם שונה אם מראיין למשרה של מישהו שאמור להקים את הפרוייקט ולהוביל אותו לעומת מישהו שאמור להשתלב בו.
Anonymous - 14/09/2017 - 08:28
נושא ההודעה:
יש ב github רשימה של חברות אשר לא עושות סוגי בחינות בסגנון הזה:
https://github.com/poteto/hiring-without-whiteboards

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

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

הרעיון הוא בד"כ להבין איך הבן אדם חושב ומתמודד מאשר אם הוא יודע לספק את התשובה שעובדת.

במידה ואני מבקש ממישהו שב יום בבית ותענה על צורת של המשימה תגיש לי אותה ונמשיך משם (עם הוראות מה כן ומה לא), זה יעבוד הרבה יותר טוב.
Anonymous - 14/09/2017 - 12:41
נושא ההודעה:
איש C++ למשרה שמספקת interface (web) ל מערכת BI.

שאלות ששאלו אותי בעבר כללו בדיקות של האם יש מעגל בתלויות שטוענים (לממש פסאודו קוד ).
שאלות לגבי אלגברה רציליונית (לא יודע מה היה הקשר בגלל שזה היה למקום שעובד עם מונגו ).
הביאו שאילתה פשוטה (join + where clause + aggregate) ושאלות לגבי איך שאילתת T-SQL עובדת (קדימויות).
ביקשו לבנות פרסר json בפסאודו קוד.
להראות שימוש בעצים וגרפים ב PHP.
ביקשו להראות איך משתמשים ב E-TAGs .
ביקשו לעשות state machine בשביל להתאים ביטוי רגולרי פשוט.
Anonymous - 14/09/2017 - 12:46
נושא ההודעה:
[quote="elcuco"]
mksoft :

* שאלה טכנית ששאלו: תכתוב קוד שמקבל שתי מחרוזות, וכתוצאה אתה מקבל העתק של המחרוזת הראשונה ללא השנייה. זה צריך להיעשות ב־O(n). אפשר לעשות את זה בעזרת העתקה למחרוזת שנייה, אבל אז זה לא inplace. ומי שחושב לעשות strstr טועה, כי זה O(n^2).

קוד:

void copy (const std::string & s1 , const std::string &  s2, std::string & s3)
{s3 = s1;}


אבל אפשר פשוט להשתמש ב string_view ואז זה אתה חוסף העתקה.
elcuco - 14/09/2017 - 13:43
נושא ההודעה:
[quote="Anonymous"]
elcuco :
mksoft :

* שאלה טכנית ששאלו: תכתוב קוד שמקבל שתי מחרוזות, וכתוצאה אתה מקבל העתק של המחרוזת הראשונה ללא השנייה. זה צריך להיעשות ב־O(n). אפשר לעשות את זה בעזרת העתקה למחרוזת שנייה, אבל אז זה לא inplace. ומי שחושב לעשות strstr טועה, כי זה O(n^2).

קוד:

void copy (const std::string & s1 , const std::string &  s2, std::string & s3)
{s3 = s1;}


אבל אפשר פשוט להשתמש ב string_view ואז זה אתה חוסף העתקה.


לא הסברתי את עצמי מספיק טוב:

קוד:

char * epic_func( char* s1, const char *s2);

char *s1 = strdup("1122aabb22cc");
epic_func( s1, "22" );
// s1 = "11aabbcc"

Anonymous - 14/09/2017 - 15:29
נושא ההודעה:
קוד:
//let's screw with elcucu
//will your code work with such a call ?
char you_dont_mess_with_c[4] = {'a','b','c','d'};
epic_func(s1,you_dont_mess_with_c); //how to teach people not to ask for char * but use either char * + length or something like std::string or a vector for saner code


Anonymous - 14/09/2017 - 15:32
נושא ההודעה:
Anonymous :
קוד:
//let's screw with elcucu
//will your code work with such a call ?
char you_dont_mess_with_c[4] = {'a','b','c','d'};
epic_func(s1,you_dont_mess_with_c); //how to teach people not to ask for char * but use either char * + length or something like std::string or a vector for saner code



או וריאציות אחרת (אתה מבין את הרעיון של const ו חוסר ב NULL)

const char s1[] = "abc22";
epic_func(s1,"22");
Anonymous - 14/09/2017 - 22:56
נושא ההודעה: שולה מוקשים
עדכון.
היום בראיון השאלה היתה שבע בום (עד מאה)
כמובן שלא התכוננתי אז בהתחלה חשבתי על לולאה שמתחילה משבע בצעדים של עשר. (ככה דורכים על כל המוקשים. כפילויות לא נחשבות. שאלתי. שאלת קיטבג)
אחר כך הבנתי שצריך להדפיס גם מספרים. אז הלכתי על המודולוס וההופכי לי.
כתבתי על הלוח פסאודו קוד שנראה כמו פיתון (בשתים זה כנראה היה אפילו מתקמפל כי כתבתי פרינט בלי סוגריים)

האבחנה שלי היא שאני מתאבד על מקרי קצה. לא מחפש להלך בין הביצים.
נפלא. בזה הרגע קידמתי את עצמי לדרגת ילדת HR
Anonymous - 15/09/2017 - 14:41
נושא ההודעה:
אגב חשבתי בבית על תשובה הולמת (הגעתי אליה בעצמי. הלוואי והייתי נותן אותה בראיון) לשבע בום -

קוד:
% python
Python 3.6.2 (default, Jul 20 2017, 03:52:27)
[GCC 7.1.1 20170630] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print([ 'boom!' if x//10 == 7 or x%10 == 7 else x for x in range(100)])
[0, 1, 2, 3, 4, 5, 6, 'boom!', 8, 9, 10, 11, 12, 13, 14, 15, 16, 'boom!', 18, 19, 20, 21, 22, 23, 24, 25, 26, 'boom!', 28, 29, 30, 31, 32, 33, 34, 35, 36, 'boom!', 38, 39, 40, 41, 42, 43, 44, 45, 46, 'boom!', 48, 49, 50, 51, 52, 53, 54, 55, 56, 'boom!', 58, 59, 60, 61, 62, 63, 64, 65, 66, 'boom!', 68, 69, 'boom!', 'boom!', 'boom!', 'boom!', 'boom!', 'boom!', 'boom!', 'boom!', 'boom!', 'boom!', 80, 81, 82, 83, 84, 85, 86, 'boom!', 88, 89, 90, 91, 92, 93, 94, 95, 96, 'boom!', 98, 99]
>>>


אשמח לריג'קטים.
Anonymous - 15/09/2017 - 16:06
נושא ההודעה:
14: בום. 701: בום.
Anonymous - 15/09/2017 - 16:24
נושא ההודעה:
צפריר :
14: בום. 701: בום.

הדרישה היתה להדפיס פוף כאשר מופיעה הסיפרה 7 בין המספרים 1 עד 100
השוואת סטרינגים לא באה בחשבון.
עכשיו תסביר לי למה בחרת כריג'קט את 701.

תודה.
mksoft - 17/09/2017 - 09:18
נושא ההודעה:
ככל הזכור לי, זה גם דורש עבור מספר שמתחלק ב-7.
Anonymous - 17/09/2017 - 15:42
נושא ההודעה:
mksoft :
ככל הזכור לי, זה גם דורש עבור מספר שמתחלק ב-7.

גם אתה היית שם בחדר ? Laughing
לא היתה דרישה לחלוקה ב7 ואם היתה היה מתווסף עוד or x%7==0 , זה לא העניין.
ריג'קטים מבחינתי זה נגיד...
* הזן של פיתון שקוד צריך להיות קריא.
* או שימוש בזבזני של זיכרון (אפשר להשתמש ב set כי הוא mutable)

דברים כאלה...
mksoft - 17/09/2017 - 15:58
נושא ההודעה:
פשוט זה המקרה הסטנדרטי של 7 בום. זו הסיבה שצפריר הזכיר שם את 14.

יכול להיות שהמראיין שלך לא מכיר, אז הוא צריך ראיון למראיינים.
Anonymous - 17/09/2017 - 20:29
נושא ההודעה:
mksoft :
פשוט זה המקרה הסטנדרטי של 7 בום. זו הסיבה שצפריר הזכיר שם את 14.

יכול להיות שהמראיין שלך לא מכיר, אז הוא צריך ראיון למראיינים.

אני מבין שתשובות אני לא אקבל פה.
יש לך המלצות לאתרים בהם כן עונים?
(בקשר למה זה mutable ומה זה hashable והאם שימוש ב set יותר נכון במקרה הנ"ל)
mksoft - 18/09/2017 - 00:12
נושא ההודעה:
לא, הוא לא יעזור לך פה, set הוא גם mutable.

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

set עוזר כאשר אתה רוצה להבטיח ייחודיות ערכים ו/או לבצע פעולות על קבוצות (מכיל, הבדל, וכד'). אם ממש היית רוצה set שהוא לא mutable, היית יכול להשתמש ב-frozenset, למרות ששוב, כאן לא היה נותן לך ממש יתרון.

מידע נוסף תוכל למצוא בתיעוד של הטיפוסים הסטנדרטיים:
https://docs.python.org/3/library/stdtypes.html
Anonymous - 18/09/2017 - 09:37
נושא ההודעה:
תודה על התשובה המפורטת (עושה חשק לעוד)
מתברר שיש משהו בדבריו של הקוקו. בעוד אני משתולל עם אופרטור טרנרי (או הכי קרוב לזה בפיתון) וגנרטור ומרגיש מה זה מגניב כי כתבתי את זה בשורה אחת - בפרוייקט קצת יותר רציני הגרבג' קולקטור יעיף אותי מכל המדרגות Smile
ראה דיון על האלקטרון.
mksoft - 18/09/2017 - 10:05
נושא ההודעה:
נראה לי שאתה קצת מתפזר בין דברים שאתה קורא/מתרשם/אחרים אומרים, עדיף לבחור בסוג העבודה שאתה רוצה ואז להתמקד בתחום.
כל הזמנים הם GMT + 2 שעות