כדאי ללמוד MATLAB?

BravoMan

Active member
אה, וכאן אנחנו מגיעים ללב העניין!

השאלה היא: מה אתה, בתור מעסיק \ ראש צוות \ מנהל פרויקט, צריך כדי לספק את התוצר שלך.
&nbsp
על פניו, לפי מה שאתה מספר כאן, אתה ספציפית צריך יותר מתמטיקאים, מאשר מתכנתים.
&nbsp
לא יצא לי אישית לראיין איש, אבל עבדתי צמוד עם אנשים שראיינו בחברה שלי, והם התייעצו איתי לגבי שאלות שיש לשאול, ובדקו מולי תשובות ופתרונות שהתקבלו.
&nbsp
בתחומים בהם עבדתי, לא היה אכפת לנו עם מומעדים יודעים לפתור משוואה ברמה של 4 יח' מתמטיקה, וגם לא היו שאלות מתמטיות בכלל בראיונות.
מצד שני, מה שכן היה חשוב לנו, זה יכולת פיתוח מעשית, ממש אפשרות לכתוב קוד שעובד, או להבין למה קוד מסוים לא עובד לפתרון "בעיה".
&nbsp
כשעומד מולי בוגר טרי שזה עתה הועסק, ואני אומר לו "source control" והוא מסתכל עלי כאילו דיברתי סינית (כי הרי לא מזכירים את זה אפילו באקדמיה), זה הרבה יותר חמור מבחינתי מאשר יכולת מתמטית שלו (שלרוב תהיה גבוהה פי כמה משלי).
&nbsp
&nbsp
אני לא יודע אם רוב המתכנתים טובים או לא טובים.
אין לי סטטיסטיקות. אני לא מתיימר לחלוק עליך אם בוגרי תואר בממוצע טובים יותר או פחות מבוגרי ממר"מ.
&nbsp
אבל נראה שאתה מסתכל על העולם מהנישה המתמטית הספציפית שלך, ומשליך ממנה על כלל עולם הפיתוח, ואני חושב שזה פשוט לא נכון ולא מציאותי.
עבור לא מעט משרות פיתוח, קורסים מתמטיים של התואר אכן לא בשימוש, ולכן לא בטוח כמה זה נכון להאשים את מי שרק מעביר אותם בשביל ה-V.
&nbsp
סתם כדוגמה:
עשינו יישומים עבור חברות ביטוח. יישום כזה מטפל במידע רגיש, ולכן יש בו אלמנטים קריפטוגרפיים שהם מרכזיים ליישום, אבל, לא היה צורך לאף מתכנת להבין את המתמטיקה מאחוריהם.
&nbsp
מה כן היה צריך?
&nbsp
לדעת להשתמש בקומפוננטות הצפנה מוכרות ובדוקות שאפילו עברו אישורים.
לדעת לא להחזיק לאורך זמן מידע רגיש היכן שלא צריך כדי שלא ידלוף.
לדעת היכן כן אפשר לשמור דברים לאורך זמן והיכן לא, כי גם אם נראה כאילו המקום מסוים מוגן, בפועל השמירה היא ב-plain text ורק הגישה מוגבלת עם הרשאות.
&nbsp
כל מיני דברים מאוד פרקטיים ומאוד לא מתמטיים.
&nbsp
וכאשר חברת האבטחה עשתה audit על היישומים ונתקלנו בכמה פסילות, הידע לו נדרשתי כדי לטפל בעניין גם הוא לא היה מתמטי ולא תאורטי שמלמדים באקדמיה, אלא הכרות מעשית עם הגרסה האחרונה של מערכת ההפעלה הספציפית, כדי להראות מה כן אפשרי ומה לא אפשרי במסגרת אותה מערכת.
&nbsp
כאן כמובן אפשר לשאול את השאלה:
מה יש יותר בתעשייה? פרויקטים עם צרכים כמו זה שאתה עובד עליו, או כמו אלה שאני עבדתי עליהם?
&nbsp
וזו תהיה שאלה באמת טובה, שאין לי דבר מעבר לתחושה כדי לענות עליה...
&nbsp
נ.ב.
זה יפה מאוד שיצא לך לקחת קורס אוניברסיטאי רק כדי להשלים ידע בדומיין שנזקקתם לו למוצר.
זו מותרות שברוב המקרים לא קיימת לא בחברות גדולות ולא בקטנות.
לרוב זה פשוט לא מציאותי מבחינת לוחות זמנים (גם אם היה את כל הכסף שבעולם להשקיע בפרויקט).
&nbsp
מצד שני, זה גם מדגים את מה שדיברתי עליו קודם: צריך להיות ברור לך, שקורס בודד ב-GIS, לא נותן לך את כל הידע של מי שסיים תואר 4 שנתי בהנדסה גאודזית.
אבל זה גם בסדר, כי אתה מתכנת ולא מהנדס גאודזיה, ואתה לא צריך את כל הידע שלו למשימה שלך, רק הבנה מסוימת.
ואם היה צורך בידע כזה, אני מניח שבחברה שלך היו מביאים מהנדס כזה ולא מסתפקים בשליחתך אותך לקורס...
&nbsp
זה כמובן בהקשר לטענה שלי שמתכנת צריך להיות קודם כל מתכנת, לא מתמטיקאי, כימאי, GIS, וכו'.
 

Guy Yafe

New member
אין ספק שאתה מתאר את הרוב המוחלט של המשרות

עבדתי בלא מעט חברות וזו הפעם הראשונה שאני נתקל בכל כך הרבה דרישות מתמטיות.
&nbsp
המוצר שלנו מאוד ייחודי ומאוד מעניין (בעיני) בכך שמצד אחד הוא אלגוריתמי ודורש הבנה מתמטית, ומצד שני הוא נדרש ליכולת הנדסית מאוד גבוהה. ניצול מלא של המעבד ושל הזיכרון, עבודה עם GPU, טסטביליות מלאה, עבודה עם רשתות תקשורת ועוד.
&nbsp
הגישה שלי שונה משלך כאן: לא אכפת לי אם בוגר לא יודע מה זה source control. אני מוכן ללמד אותו את זה. למעשה אני מעביר הרצאת GIT לאנשים מהחברה שלי בערך כל חודשיים.
אני בכלל יוצא מנקודת הנחה שבוגר אוניברסיטה לא יודע לתכנת. אני יודע שאצטרך ללמד אותו לתכנת, ואני מוכן ש - code review ותיקונים יהוו 80 אחוז מהזמן בשנה הראשונה. אני גם מצפה ממנו ללמוד לבד תחומים, בעיקר את אלה בהם אני לא מתמצא.
מצד שני אני כן דורש להיות בטוח שאני מקבל מישהו עם יכולת חשיבה ופתרון בעיות חזקות. כרגע אני מודד אותן בין השאר באמצעות מדידת היכולות המתמטיות של המועמד. אני לא משוכנע במאה אחוז שזו הדרך הנכונה, כפי שאני לא משוכנע במאה אחוז שאם אני אלמד אותו לתכנת הוא יהפוך למכנת טוב.
&nbsp
הגישה שלי אומרת גם שאני מצפה מכל העובדים בצוות להכיר את כל המוצר, ולדעת לתכנת כל אחד מהרכיבים בו. הסיבה לזה היא שאני לא רוצה שאף אחד יפול לנישה כלשהי שבסוף ימאס לו ממנה.
אז נכון שכשהיינו צריכים לעשות עבודת Hard Realtime עבור מעבד שמעולם לא שמעתי עליו, לקחנו מומחה חיצוני, וכך גם כשהיינו צריכים להתאים את הממשקים שלנו לתקנים בינלאומיים.
בהחלט יכול להיות שכשהמוצר יתפתח וילך לכיוונים נוספים, לא תהיה לנו ברירה אלא להפריד בין הרכיבים ולתת לכל אחד להתמקצע על רכיב מסויים על פי היכולות שלו.
&nbsp
אנקדוטה מעניינת לגבי הצוות שלנו: אין לנו שני אנשים עם אותו תואר.
אני פיסיקאי (פלוס מדעי המחשב), יש לנו כימאית (פלוס מדעי המחשב), מתמטיקה שימושית, הנדסת חשמל, מדעי המחשב מדעי המוח ועוד.
&nbsp
לגבי עניין ה - GIS: אציין שתשעים אחוזים מהקורס לא היו רלוונטיים עבורי. העשרה אחוז הנוספים שהיוו בעיקר שמות של אלגוריתמים ורפרנסים לספרות, וקשרים שיצרתי עם המרצה, בהחלט היו שווים את הזמן ואת הכסף שהשקענו בו.
 
לא

השפה כמעט ולא קיימת בתעעשייה. R ופייתון החינמיות אוכלות אותה בלי מלח. זה שיש באוניבריסטאות מנוי חינם לא יכול לאפשר לשלם מנוי באלף דולר לכל עובד כש-R נותנת את אותה תמורה (אולי קצת פחות וייתכן שיותר) והיא בחינם.
הנה השוואה בגוגל טרדס לחיפוש nlp (תחום חם וחדש) ושם שפת התכנות. מטלב פשוט לא קיימת.
https://www.google.com/trends/explore?q=nlp python,nlp matlab,nlp r
מטלב מאוד חזקה בעיבוד תמונה אז בדקתי גם דיפ לרנינג ביחס לשפה וציפיתי שלפחות שם מטלב תתן בראש וגם שם לא. פייתון הכי פופלרית ו-R ומטלב אותו דבר בערך.
https://www.google.com/trends/explore?q=deep learning python,deep learning matlab,deep learning r
 

bismark1

New member
המסקנה נכונה, הבדיקה לא כל כך...

מטלב חזקה בעיקר בעיקר בתחומים של עיבוד אות, תמונה ובקרה - אלו תחומים שהם הרבה יותר low level מהחיפושים שעשית שקשורים כולם ל-ML.
מטלב דועכת בעיקר בגלל תמחור מטורף והתפזרות לתחומים לא רלוונטיים (הם השקיעו המון מאמץ שיווקי לדוגמא בנסיון לשכנע לשלב מטלב ב-production עם הצלחה מועטה).
 
למעלה