יום שלישי, 28 בינואר 2014

"תואר החלומות" - הסערה

וואהו. אני חייב להודות שהופתעתי!

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

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




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

מה קרה?
  • כ 50 תגובות (רובן בגיקטיים)
  • מעל 700 שיתופים של הפוסט (בערך פי 10 מהמספר הגבוה ביותר שאני זוכר לפוסט יחיד)
  • 6 מיילים אישיים
  • תגובות בעבודה
  • שיחת טלפון (ממישהו שלא הכרתי)
  • הרבה רגשות

שני לקחים אישיים:
  1. העורך של גיקטיים מבין משהו בבחירת תכנים.
  2. נגעתי בנושא טעון למדי. הייתי מנסח אותו כ: "עד כמה תואר אקדמי הוא יעיל?"

מפה לשם היו הרבה רעיונות, דעות (חלק קטן מהן נראו פשוט מקובעות: "תואר בהנדסה חייב  ל... <משהו>") ופרשנויות.
יופי! אני שמח מאוד על הדיון.


מה לקחתי מהתגובות? (לטווח המיידי - הכנס)


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

הנה תקציר:
  • "תואר החלומות" הוא איננו תוכנית מבושלת - הוא היה אמצעי טכני להציג רעיונות (שדווקא בהם התמקדתי) בצורה מוחשית יותר. רעיונות כגון:
    • התמקדות בצרכים של רוב הסטודנטים - ולא של מיעוט (לו ניתן להקדיש תואר מיוחד, נקרא לו "מדעי-המחשב")
    • הכרה בכך שידע הפך זמין יותר מבעבר, וכנראה שניתן וכדאי להסתגל בהתאם ולקצר את מחזור ההשכלה (כמה זמן לוקח עד שמתחילים לעבוד).
    • בחינה מחדש של הערך (value) של כל נושא שנלמד, ללא הגנות מיוחדות, וצמצום ה waste.
    • מהנדסי תוכנה (שאני חוויתי) מתמודדים הרבה יותר עם בעיות ארגוניות / מערכתיות / אנושיות - מאשר עם אלגוריתמים. למה להשקיע בשני פי X יותר מבראשון? (יצירת השכלה שעונה על הצרכים המעשיים)
    • כמה רעיונות טכניים שנראים לי לא אופטימליים באוניברסיטה (לימוד ה stack הטכנולוגי מהברזלים למתכנת - ולא להיפך, שמהניסיון שלי הוא כיוון יותר יעיל; התמקדות בשכבת הפשטה אחת מתחת לעבודה השוטפת - ולא שלושה, כפי שמקובל לעתים רבות וכו'...). 
  • לא הייתה שום מחשבה / רמיזה על הפחתת הרמה האקדמית של החומר הנלמד. אמנם זרקתי כמה באזזים על שמות הקורסים - המטרה הייתה לחדד את משמעות הקורס.
  • אכן נתתי משקל רב יותר לפיתוח ווב / מערכות מידע ממה שיש צורך (תודה לכל המגיבים). אני מניח שזו הייתה הטיה אישית שלי לנושאים שהתעסקתי בהם בתקופה האחרונה.
  • אכן חתכתי את המתמטיקה לגמרי - ובהחלט אפשר לתת לה מקום של כבוד כנושא לבחירה (בכלל, תואר אקדמי הוא מנגנון עם מעט התאמה אישית לסטודנט - וזה נראה לי פספוס).


לצורך התרשמות בלבד

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



זכרו:

  • זה לא מלוטש
  • עכשיו אחת בלילה :)
  • זו דעתי - ואני לא טוען שזו אמת מוחלטת.



"אז מה אתה מציע?"

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

הנה מייל מעניין ורלוונטי שקיבלתי (פרטי השולח שמורים במערכת) - והתשובה שנתתי. ניסיתי.

שלום ליאור,

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

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

לאור מה שכתבת בפוסט ומהיכרותך עם השטח, היכן ומה היית ממליץ לי ללמוד? האם יש טעם בלימודי ההנדסה בכלל, או שעדיף ללמוד מדעי המחשב ולחסוך שנה? האם יש דברים שמומלץ ללמוד בעצמי תוך כדי התואר שלא כלולים בתוכנית הלימודים?

אודה לעזרתך בנושא,
מיסטר-X.


תגובתי:

היי מיסטר-X,

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

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

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

מה אני יכול להמליץ?
להישאר באוניברסיטה, לא "להתאבד" על קורסי מתמטיקה או בקורסים תאורטיים למדי (למרות שזה יכול לפגוע בממוצע, עדיין אכפת יותר מציונים בקורסי מחשבים) ולא להסתפק במה שאתה מקבל מהתואר מבחינת ההשכלה.
למצוא מסגרת העשרה עכשווית ש"מדליקה" אותך, כגון:
  • meetups כלשהם (ניתן למצוא ב http://www.meetup.com/ או http://www.geektime.co.il/eventsboard/) - אל תחשוש להגיע כי "אתה עדיין סטודנט".
  • למצוא בעל עסק קטן שישמח להשתמש בתוכנה כלשהי - ולכתוב לו אפילו במחיר זעום (הניסיון של כתיבה ללקוח אמיתי - היא מעשירה ומתגמלת יותר מכל כתיבת תוכנה "למגירה"). יכול גם מאוד לעזור בקבלה לעבודה.
  • לקרוא כמה ספרי מופת בהנדסת תוכנה (גם אם יעברו על הרעיונות שהספר מבטא בתואר, הם לרוב יכוסו בצורה רדודה יחסית למקור).
  • משהו אחר...

מקווה שעזרתי,
ליאור


סיכום

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


15 תגובות:

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

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

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

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

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

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

    השבמחק
    תשובות
    1. היי משה,

      אני מתחבר מאוד למה שאתה אומר (כולל התמימות שלי?! :) ) ולתמונה הצלולה שאתה מציג.
      אהבתי את ההבחנה מדוע סביר יותר שמהפכה תתחיל בעולם התוכנה ולא בתחומים אחרים. אלו באמת תנאים שונים.

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

      ליאור

      מחק
    2. תגובה זו הוסרה על ידי המחבר.

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

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

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

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

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

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

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

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

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

    במקצוע הבניה יש 3 עיסוקים מרכזיים: בנאי, מהנדס וארכיטקט.

    בנאי רוכש את השכלתו ומיומויותיו בקורסים מקצועיים או on-the-job.
    מהנדס בניין (קונסטרוקטור) רוכש תואר אקדמי בפקולטה להנדסת בניין או הנדסה אזרחית.
    ארכיטקט רוכש תואר אקדמי בפקולטה לארכיטקטורה.
    מהנדס עוסק מיומו הראשון בהנדסה. ארכיטקט עוסק מיומו הראשון בארכיטקטורה.

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

    רבותי ארכיטקטי התוכנה: מה אתם רוצים להגיד על המקצוע שלכם? שאין מאחוריו שום ידע.יכולות.מיומנויות ברמה אקדמית? שאפשר את הכל ללמוד on-the-job?

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

    בדיוק מסיבה זו יזמתי את הכנס בכנרת!!!

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

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

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

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

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

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

    תרימו את הראש ליום אחד מהמקלדת, תעלו על האוטו ובוא לכנרת לדבר על זה!

    שלכם,
    עמיר.

    השבמחק
    תשובות
    1. היי עמיר,

      בהתייחס להקבלה שלך לעולם הבנייה - אני רואה את התמונה דיי אחרת:

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

      * אדריכל (בניין) אינו מתמפה היטב לארכיטקט (תוכנה): האדריכל עוסק בעיקר בפן הפונקציונלי של המוצר. את זה בתעשייה עושה מנהל המוצר / Product Owner. הוא מגדיר "מה" ולא כ"כ "איך". "מה שנראה" ולא "מה שבפנים".

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

      על כן הייתי אומר שיש 2 מקצועות, ודווקא מסלולי ההכשרה עושים שכל:
      * מהנדס-בנאי (=מתכנת). הוא לומד הנדסת תוכנה.
      * מהנדס בכיר-קבלן --> (= ארכיטקט) מסלול קידום דיי טבעי למהנדס-בנאי. אני לא חושב שהידע התאורטי הנדרש הוא שונה. עליו להיות עמוק יותר - ועומק זה נבנה באופן טבעי תוך כדי עבודה. הן מניסיון אישי (עשיתי-טעיתי-למדתי) והן בשל ההכרח לפתוח ספר / איטנרנט ולשבת וללמוד בכדי להצליח לבצע את המשימות.
      * אדריכל (= Product Owner) רבים מה POs בתעשייה היו מתכנתים מצויינים - וזו לא נקודה לטובתם. ה PO זקוק להכשרה אחרת וחוזקות אחרות ודווקא ה POs הטובים יותר הם אלו שקרובים יותר ל Business. להם, תואר במנהל עסקים + הבנה טובה של ה Domain היא ההכשרה המשמעותית לתפקיד (ולרבים מהם - אין אותה, ויש הרבה מקום לשיפור).

      המשך תגובה בקרוב (בישיבה הלא-פרודקטיבית הבאה ;-) )
      ליאור

      מחק
    2. המשך תגובה:

      "תוכנה קורסת לא הורגת אף אחד" --> "אולי נותן את הפתח לקדם אנשים לתפקידים בכירים ללא הכשרה השכלתית המתאימה"

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

      דבר שני: איזה הכשרה השכלתית קיימת שיכולה לעזור?
      בכירים רבים בעולם התוכנה משלימים תואר MBA (בעצם: יותר Executive MBA) - וייתרונות התואר הזה מוטלים בספק (רפרנס לדוגמה: http://goo.gl/CfdjuE).
      תואר / השכלה לניהול קבוצה / ארכיטקטורה - אין ממש. אני לא רואה איך תואר מתקדם בהנדסת תוכנה יעזור. הבעיות / הנושאים הטכנולוגיים הקשים הם דיי ספציפיות לדומיין ורוב הפתרונות נמצאים ב Basics שמתאימים לתואר ראשון - פשוט צריך להבין אותם טוב יותר כדי להגיע לפתרון. יש גם אספקט אנושי/ארגוני שהוא חלק גדול מהתמודדות של כל מי שמתקדם מעבר למשרת מפתח זוטר - שלא מכוסה בצורה מעשית בשום תואר שנתקלתי בו (פן אישי: עשיתי במשך שנה קורסים של MBA ופרשתי לאחר שהבנתי שאקבל יותר במקומות אחרים).

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

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

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

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

      ליאור

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

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

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

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

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

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

      ליאור

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

      מחק
    6. נכון, אבל סביר יותר שתוכל להשתמש בידע על שכבות ההפשטה הקרובה (HTTP/TCP) מאשר את השכבות הרחוקות (Datalink / IP routing). אפשר גם ללמוד הנדסת חומרים כיצד ה CPU בנוי - והכל עובד עליו, אבל לא כ"כ סביר שתוכל לנצל ידע זה כדי ליצור תוכנה טובה יותר.

      מחק