בתשובה ליוסי, 02/11/10 16:28
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 555046
אני לא מדבר על הכרת השפה על בוריה. את זה אין למפתחים אחרי חמש שנות נסיון (אך יש יותר למהנדסים מנוסים שמכירים מספר שפות תכנות אחרות).

כמה זמן אתה מעריך שצריך מהנדס ג'אווה עם נסיון רב להגיע לרמת פיתוח ב #C כולל הבנה מסוימת של דקויות השפה בתחום בו הוא מתמכה?
נניח שהתפנתה משרה למפתח בטכנולוגיות מיקרוסופט בחברתך. אם יש לך כמעסיק אופציה לבחור ילד שהתמקצע ב - #C עם שלוש שנים נסיון רק בשפה זו או מהנדס עם נסיון של יותר מעשר שנים בג'אווה ובעוד שפות תכנות שונות ומשונות האם לא היית מעדיף את השני?
למה?
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 555047
ג'אווה ו־C#‎ הן שפות דומות למדי (סביבות העבודה יכולות להיות שונות לחלוטין). אני לא מכיר אותה טוב במיוחד, אבל מהמעט שראיתי, מי שיודע לחשוב בג'אווה, ידע בד"כ גם לחשוב ב־C#‎. המעבר בין שפות אחרות יכול להיות קצת פחות חלק. מהבחינה הזו יש יתרון למי שמכיר כמה שפות שונות.

אבל שפה אינה הדבר היחיד. יש תחומי התמחות אחרים. אני הייתי יכול להעדיף אולי מישהו שמכיר את התחום הכללי (לדוגמה: פרוטוקולי רשת) היטב גם אם הוא לא מכיר בדיוק את השפה שבה אנו עובדים.

(ומי שידע לכתוב כאן C++‎ ידע גם לכתוב C#‎. כל מה שצריך הוא LRM).
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 555054
זו בדיוק היתה הנקודה שלי. בהנחה שלמועמד היכרות נרחבת עם שפות תכנות שונות, תחומי ההתמחות זה בדרך כלל חשוב ורלבנטי יותר מאשר הכרות עם שפת תכנות ספציפית.
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 555051
בתנאים שסיפקת, הייתי מעדיף את ההיא עם הציצים הגדולים.
(במילים אחרות: מעבר לרף מסוים, יש עוד הרבה שיקולים מעבר לשנות הניסיון בשפת תכנות).
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 555198
הבמילים אחרות הוא אמירה טריביאלית. השטן הוא בניואנסים. הטענה היא שמעבר לרף מסוים, יש להוסיף גם את הניסיון בשפת תכנות ספציפית למערכת השיקולים ולא להיפך. מעבר לרף מסוים של ניסיון, המעבר בין שפות תכנות הופך להיות קל וחלק יותר (גם אם נניח שהוא לא טריביאלי, למרות שברובו הוא דווקא כן טריביאלי). לשים את ההכרות עם שפת תכנות במרכז ראיון העבודה, במקום את ההבנה בהנדסת תוכנה, את הניסיון הכללי בפיתוח, את תחומי ההתמחות, את ההבנה האלגוריתמית ואת יכולות התקשורת המקצועית של המועמד, זה פשוט להתרכז בשטויות.

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

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

גם "עיבוד אותות" זו צורת חשיבה שונה, ו־device drivers זו צורת חשיבה שונה, ו־embedded systems זה משהו אחר לגמרי.

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

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

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

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

1 פיסיקה הוא לא ידע (:
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 556708
סיפור מעניין ומאלף.
שאלה מעניינת (כלומר מעניינת אותי) היא האם לדעתך ההבדל בין הביצועים המרשימים של מהנדס זה במשימה אחת מול ביצועים עלובים במשימה אחרת קשורים יותר לשפה\סביבה, או לטיב המשימות עצמן?

גם אני הזכרתי מהנדסים (למשל החתום מעלה) עלובים ב-gui וטובים בדברים אחרים וההפך - אבל במקרה זה מעבר שפה לא שינה לא את הטוב ולא את הרע.
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 556712
אני חושב שהצלחתו של הנ"ל בפייתון נבעה מכך שבשפה זו ישנו יחס גבוה מאוד של תפוקה ביחס להשקעה, גם בזמני עבודה קצרים, המתאימים לאורך הקשב שלו. משום כך לדעתי הוא גם התמחה בשפה זו, ולא למשל בג'אווה או ++C בהן הדבר בד"כ אינו ניתן, אך הן כן טובות יותר לפרוייקטים גדולים (מסויימים) וכמובן, מבחינת ביצועים (מהירות, צריכת זיכרון). התשובה משום כך היא שהסיבה הראשונית היא כאן טיב המשימות, ולא השפה.
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 556715
אני מכיר כמה פרויקטים (ואפילו מוצלחים) בפייתון, אולי לא "גדולים" אבל משהו כמו 50KLOC (שכנראה שקול לפחות ל 150KLOC, ויש אומרים 300, בג'אווה).
מאד יתכן שאותו מהנדס היה נכשל גם שם.

מצד שני יש סוג משימות מהאופי של "פגע וברח" גם בפרויקטים גדולים וסבוכים ב ++C ("תמצא איפה הבעיה ותגרום לנביילה הזו לרוץ פי שלוש יותר מהר") - שבהחלט יכולות להתאים למהנדסים מסוימים שלא מסוגלים לתכנן ולהריץ פרויקט שלם, אפילו קטן.
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 556716
אלו בדיוק הבעיות המצומצמות אותן הוא קיבל. אבל כאן נכנס גורם נוסף, לדעתי הספקולטיבית מאוד: אצל חלק מבעלי בעיות הריכוז הן מחמירות באופן קיצוני כאשר הם עוסקים בדבר (שפה במקרה זה) שאינו מלהיב אותם, גם אם הם מאוד היו רוצים לסיים את המשימה.
מלחמת שפות!!1 556725
ג'אווה? מילא מהירות, אבל טובה בצריכת זיכרון!?
מלחמת שפות!!1 556727
מה שהיה לי בראש כשכתבתי זאת היא השפה בה אני עובד בשבועיים האחרונים (VBA) ופייתון. לא בדקתי אז אני חוזר בי מן הטענה שבג'אווה ניצול הזיכרון טוב יותר מאצלן.
מלחמת שפות!!1 556749
ג'אווה אכן טובה בצריכת זיכרון. לא סתם טובה, ג'אווה מתמכה בצריכת זיכרון! צריכת (עוד ועוד) זיכרון זה אחד מהפיצ'רים המרכזיים ביותר של השפה.
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 556711
תסריט בו העובד הזה היה מגיע אל מעסיק שלא היה מצליח להבין מהן נקודות החוזק והחולשה שלו הוא תסריט סביר. היו מתאכזבים ממנו שוב ושוב ומפטרים אותו. בקלות היו יכולים לקטלגו כמהנדס תוכנה כושל שאת התוצרת שלו אפשר רק לעטוף בעשר לירות ולזרוק לפח. מזל שהוא הגיע אליך.

בין השאר, הסיפור הזה מלמד אותנו את החשיבות והמרכזיות שיש להחלטות ההנהלה בהצלחתו או כשלונו של העובד (ושל פרוייקטי תוכנה באופן כללי). אם היה לי שקל על כל פעם שראיתי קוד גרוע שנכתב בגלל מנהלים גרועים ע''י מהנדסים מוכשרים (שמוצאים את עצמם כותבים ובוכים) הייתי יכול לעשות אקזיט.
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 556771
איך מסתדרים עם הפרעות קשב וריכוז במקום העבודה?
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 556814
באופן מוזר יצא לי לראות כמה פעמים קוד של מהנדסים (ולפעמים גם צוותים שלמים) שעברו משפה "נמוכה" לשפה "גבוהה" (ז"א מ-c ל-c++ ומ-C++ לג'אווה - הכרתי גם צוות שעבר כולו מדלפי לג'ווה אבל בגלל שאני לא מכיר דלפי אז אני לא יכול לדעת אם זאת הסיבה שהקוד שלהם היה כל כך מוזר), ובהחלט אפשר להבחין בזה. יש דברים שמהנדס ששולט בשפה מסויימת לא יעשה (לא שהם בהכרח לא נכונים או לא עובדים, נגיד להגדיר את כל המשתנים בתחילת הפונקציה ולא בסקופ שלה, אבל הקוד שנוצר הוא פחות קל לתחזוקה) ויש דברים שמי שלא מכיר את השפה מספיק טוב יפחד לעשות (למשל exception בג'אווה, וכמובן שאפשר לעקוף את זה על ידי החזרת ערך, אבל...) בלי צידוק מספק. שינוי ההרגלים הזה לוקח זמן, ועולה כסף, וכשמדובר על צוות שלם אז הרבה פעמים ההרגלים האלה גם לא משתנים (זה גם תלוי באופי של הצוות) אחרי שנים.
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 556841
מהניסיון האישי שלי ובהכללה גסה:

אנשים עם ניסיון המתרכז בשפות "גבוהות" או אפילו חסרי ניסיון לחלוטין, מסתגלים מהר יותר לכתוב קוד נכון יותר ב - python מאשר מפתחים עם ניסיון מסוים או רב שנים ב - ++C. לא פשוט לדרוש ממפתחים שרגילים לכתוב בצורה מסוימת לכתוב כמו כל שאר החבר'ה על פי המלצות PEP 8. היה אפילו אחד שהתעקש, כמו פרד, להוסיף נקודה פסיק בסופי שורות פקודה, כאילו הסימן הזה מחובר אצלו במקלדת למקש ה - enter.
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 556055
תלוי מה אני מחפש. אם אני רוצה קבוצה קטנה של אנשים שיפתחו פרוייקט נסיוני, אני מעדיף את המעולה והמגוון. אם יש לי מחסור באנשי #C אני אעדיף את זה שיוכל לפחות לסייע או לייעץ לשאר המפתחים.
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 556068
זה כמו לחפש חקלאי ''עם ניסיון בג'ון דיר''. אתה כמובן יכול לעשות זאת (ורבים אכן נוהגים כך) אבל זו לא הבחירה האינטליגנטית.
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 556106
בהרבה מקרים זה יותרכמו חקלאי עם נסיון בגידול פירות. שפה זה לא רק תחביר, זה גםאוסף שלם של כלים ומתודולוגיה.
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 556147
גם ג'ון דיר.
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 556229
תראה, ברור שמפתח טוב יכול ללמוד כל דבר, אבל הוא לא יכול לעשות את זה באפס עלות. להגיע למקצועיות בסביבת עבודה חדשה יכול לקחת בין חצי שנה לשנה (ברור שמפתח טוב יותר עושה את זה מהר יותר). חצי שנה עד שנה כזו של פרודוקטיביות שווה הרבה למעסיק. בנוסף, אם חסר ידע ספציפי בקבוצת פיתוח שלמה, אז למפתח חדש שכבר יש לו הידע הזה יש גם אפקט של מכפיל כוח בגלל כל העזרה, העצה וההדרכה שהוא יכול לתת למפתחים האחרים (שאולי לא פחות מוכשרים ממנו אבל לא מכירים את הטכנולוגיה הספציפית).
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 556301
אני מסכים עם כל מלה שכתבת, רק שאני לא חושב שלמרכיב ה"שפה" במכלול הידע יש משקל משמעותי.
ברגע שאתה מדבר על "טכנולוגיה מסוימת" אז גם אני כבר אמרתי כאן דברים דומים למה שאתה אומר.
נכון ש"שפה" זה גם ספריות, אבל אני בכל זאת לא חושב שנכון לייחס להם משקל.

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

כמובן, כדי שבכלל תוכל לגבש דעה מושכלת בשאלה אתה צריך להתחיל להיות מוכן לשכור אנשים ולהתעלם מהשאלה אם הם כבר מכירים את השפה.
מאחר שכנראה אינך מוכן לעשות זאת, לעולם לא תיווכח בצדקתי... ;)
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 556306
כל מה שאתם כותבים זה מעניין מאוד, אבל בפועל, אם תכתבו בגוגל ''דרושים תוכנה'' תקבלו פירוט על פי ידע בשפות.
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 556319
לא אמרתי שהשאלה אם לאנשים יש נסיון בשפה‏1 תמיד חשובה. אמרתי שהשאלה תלויה בסט היכולות שכבר יש לך בצוות ובמטרות של הצוות הזה. היה לי הרבה נסיון מוצלח של לעבוד עם הרבה אנשים שהגיעו בלי נסיון בשפה הרלבנטית (למעשה, כל אחת מהמשרות שאני-עצמי התקבלתי אליהן היתה בשפה שלא היה לי נסיון משמעותי בה). אבל בתנאים שונים, הדרישות שונות.

שפה היום זה לא כמו שהיה בשנות השמונים. שפה (ביחוד השפות החדשות, כמו Perl, Python, ובצורה בולטת Java ו#C) באה עם הרבה מאוד הנחות, הרגלים קבוצתיים, תבניות עיצוב, העדפות, כללי עשה ואל תעשה, קונבנציות, וזה עוד לפני שדיברנו על קוד ממש, מסגרות, כלים, סטנדרטים ופרוטוקולים לעבודה שנאספו סביבה. בהרבה מקרים אתה יכול להגיד שחלק גדול מההיכרות שפירטת עם תרבות, גוף תוכנה, נוהלי עבודה, ואפילו יחסי הגומלין בין פרוייקטים ומוצרים עברו סטנדרטיזציה במסגרת של "שפות", עד־כדי־כך שמתכנת שעובר מחברה אחת לחברה אחרת באותה שפה יכול להרגיש די בבית. לוקח הרבה זמן ללמוד את זה.

1 למרות שאתה כתבת "מכירים את השפה".
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 556335
קודם כל מוזר לראות התייחסות ל "Perl, Python, ובצורה בולטת Java ו#C" בתור "שפות חדשות".
נדמה לי שהגיל הממוצע הוא בערך 20, לא?
(אכן #C באמת קצת יותר צעירה‏1).

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

ושאלה לראובן: היכרות עם איזו שפה או סביבה עומדת כרגע למחסום בדרך למשרות שנראות מעניינות?
יכול להיות שיש טריק שעוזר לשבור את פרדוקס הביצה והתרנגולת (מעסיקים דורשים נסיון מוכח בשפה, אבל ללא עזרת מעסיק לא ניתן לייצר ניסיון מוכח).
ה"טריק" הוא לתרום לפרויקט קוד פתוח שמתנהל בשפה\סביבה המבוקשות. נכון שיתכן שהניסיון המוכח החסר הוא בשפה\סביבה שלא ניתן למצוא בהן פרויקט קוד פתוח (אני למשל מאד אופתע אם יש פרויקט קוד פתוח ש DB2 מהווה בו קומפוננטה מרכזית), אבל יתכן שהשורות החסרות ברזומה הן דווקא כאלו שקל מאד למצוא פרויקטים שמתרכזים בהם - למשל php, RoR, פייתון ועוד.

_____________
1 בפועל, #C זה שיבוט של ג'אווה שלא טורח להשמע לכללים של סאן בגלל איזו תביעה משפטית בעבר הרחוק או משהו.
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 556357
מצאתם כפתור, תפרתם חליפה ועכשיו אתם שואלים אותי איזה שרוול קצר לי? איפה ראית שאמרתי שמה שחסר לי זה ידיעת שפת תיכנות כלשהי? אם יש שפה שידיעתה עשויה היתה לעזור לי אני מניח שזאת סינית (כמו לכל ההי-טק הישראלי).
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 556406
>> מצאתם כפתור, תפרתם חליפה ועכשיו אתם שואלים אותי איזה שרוול קצר לי? איפה ראית שאמרתי שמה שחסר לי זה ידיעת שפת תיכנות כלשהי? אם יש שפה שידיעתה עשויה היתה לעזור לי אני מניח שזאת סינית (כמו לכל ההי-טק הישראלי).

קודם כל אתה צודק - השאלה שלי לא נוסחה טוב. מה שהתכוונתי היה בתגובה למשהו שכתבת כאן:

>> כל מה שאתם כותבים זה מעניין מאוד, אבל בפועל, אם תכתבו בגוגל "דרושים תוכנה" תקבלו פירוט על פי ידע בשפות

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

ההערה האחרונה שלי, לגבי האפשרות לצבור "ניסיון מוכח" דרך פרויקט קוד פתוח וכך לעקוף את בעיית הביצה והתרנגולת לא כוונה דווקא אליך - הכוונה הייתה לאמירה כללית שמעלה דרך התמודדות אפשרית (תאורטית - כאמור לא ניסיתי) למישהו שנמצא במצב הזה.
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 557770
מנסיוני הדל, את המעסיקים לא מעניין הנסיון עם פרוייקטי קוד פתוח. בדיוק דחו אותי ממשרת ג'אווה בגלל שאין לי נסיון מוכח בג'אווה, למרות שיש כמה פרוייקטים משמעותיים של ג'אווה שתרמתי להם קוד.
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 557778
למה הם מתכוונים בנסיון מוכח?
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 560039
יענו שקיבלת עליו כסף. אף מעסיק לא שאל אותי על עברי בקוד הפתוח, למרות שהוא מוזכר אחר כבוד בפסקה שלמה בקורות החיים שלי.
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 562359
כאן לפחות יש דרישה מפורשת לתרומה לקוד פתוח: "Active contributor to open source software" (אבל עדיין נדרש ניסיון בעבודה).
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 562388
נו באמת, לקחת את יאהו!, זה לא באמת דוגמא למעסיק טיפוסי.

ברור לי שיש כאלה שמחפשים את זה (למשל lingnu.com), אבל מנסיוני את הרוב זה לא מעניין. כולל מעסיקים שלינוקס עומדת בבסיס המוצר שהם מפתחים (למעשה כמעט כל החברות שפניתי אליהם מבוססים באופן כזה או אחר על קוד פתוח). יכול להיות שהנסיון שלי מוטה (באמת יכול להיות), ונפלתי במקרה על חברות שלא מעניין אותן והרוב כן, אבל בכל זאת לפי נסיוני האנקדוטלי, את החברות בארץ לא מעניין אם עשית קוד פתוח או לא (קרי, לא שואלים אותך על הנושא, על אף שזה מופיע בקורות החיים, ועל אף שהזכרתי את זה בריאיון. לדוג' אני מספר על העבודה הקודמת "עשיתי X..." "ומה עוד? עם מה?", "עשיתי קוד פתוח Y" <שתיקה>.

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

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

נסיון בתכנות תוכנה חופשית הוא נסיון בתכנות. ההבדל העיקרי הוא שלא צריך לסמוך על המלצות כדי לבדוק את איכות העבודה.
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 562409
אגב, ראיינתי פעם מועמד לתפקיד מפתח תוכנה/אלגוריתמאי שבמקום המלצות שלח לי קישורים לקוד פתוח שכתב. במקרה הספציפי ההוא הקוד לא היה ברמה סבירה וגם לא הצביע על פוטנציאל.
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 562423
מעניין. אני מניח שהוא מעריך את הקוד שהוא כתב קצת יותר ממך (לפחות ברמת הפוטנציאל), אחרת הוא לא היה משתמש בו ככרטיס ביקור. מדובר על פרויקט שלו בלבד / בעיקר או משהו שעבר מספיק ביקורת עמיתים? קוד שנמצא בשימוש במקומות אחרים?
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 562425
השאלות במקום, אלא שאני לא זוכר פרטים מעבר לזה.
החיים נעשו ארוכים יותר, אז גם ההתבגרות מתארכת... 562411
אני חושב שיש כאן עניין של סטנדרט. כשמישהו אומר לך שהוא עבד שנתיים וחצי על X בחברה שאפשר להסכים שהיא סבירה, אז אתה יודע בדיוק מה זה אומר: בערך כמה שעות ביום הוא עבד, שהוא היה כנראה צריך לעבוד עם מנהלים ועמיתים, לתאם דברים עם אנשי בקרת־איכות ומנהלי־מוצר, שהוא עבד עם מערכת ניהול באגים ומערכת ניהול גרסאות, שהוא ראה לכל הפחות ארבעה-חמישה מחזורי גרסאות ויודע להתאים את אופי וקצב העבודה שלו אליהם, וכיו"ב. אתה גם יודע עוד משהו: שבמשך שנתיים וחצי, שזה די והותר זמן להכיר עבודה של אדם, הוא היה לפחות טוב מספיק כדי שלא יפטרו אותו.

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

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

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

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

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

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

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

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

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

חזרה לעמוד הראשי המאמר המלא

מערכת האייל הקורא אינה אחראית לתוכן תגובות שנכתבו בידי קוראים