חצי
הנדסת תוכנה.

חצי ../images/Emo32.gif הנדסת תוכנה.

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

עידו פ

New member
אתה מוזמן להסתכל בלינק הבא

http://he.wikipedia.org/wiki/%D7%94%D7%A0%D7%93%D7%A1%D7%AA_%D7%AA%D7%95%D7%9B%D7%A0%D7%94 הסבר קצר וקולע לגבי ההבדלים
 
לאחר שהבנתי בערך את ההבדל

אני כיום תוכניתן לסביבת האינטרנט (אולי אני גם אמשיך להיות כזה, לא יודע) העוסק במיוחד בצד לקוח: XHTML,CSS,JS וגם לומד צד שרת עם JAVA: JSP/Servlets תוך שימוש בידע קודם ב-ASP. כיום אני לומד בבי"ס ואני במסלול אקדמי של כיתות מופ"ת(מתמטיקה פיזיקה ותרבות(בספק בכיתה שלי
)) בארץ. ככל הנראה שנה הבאה (כיתה י') או בכיתה י"א אני אוכל כבר להתחיל להשתלב עם שאר הסטונדטים באוניברסיטאות (כיום זה בר-אילן, ואני לומד עם נערים ונערות מבתי ספר שונים שנמצאים במסגרת שלי) וללמוד בפקולטאות השונות. אני כתוכניתן אמור בסוף להוציא תואר במדעי המחשב או בהנדסת תוכנה ? האם אני צריך לשלב את שני התחומים בקורסים שאני בוחר? לפי מה שהבנתי מהויקיפדיה מדעי המחשב עוסק יותר בפיתוח אלגוריתמים ואילו הנדסת תוכנה עוסק יותר בפיתוח התוכנית עצמה. אבל כדי שתוכניתן ידע לתכנת נכון ויעיל (מעבר לנושא התכנון הנכון) הוא צריך לדעת אלגוריתמים, לדעת להרכיב אלגוריתמים יעילים, ולדעת את הנושאים הנלמדים במדעי המחשב אז איך מהנדס תוכנה (שזה מקביל לתוכניתן ?) עובד טוב מבלי לדעת את הנושאים הנ"ל ? תודה ניר
*נראה לי עשיתי קצת בלאגן
 

עידו פ

New member
עבדתי עם הרבה תוכניתנים

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

טרול שבד"כ "מתקיף" את פורום שפות תכנות בשאלות טרוליות שהן כמוהן
(כבר שמעת על מישהו שניסה לקמפל קוד C++ דרך הוורד ?)
 

עידו פ

New member
הוא גם בפורום "מובטלי הייטק"

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

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

הוליסטי

New member
מדעי המחשב

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

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

® רן

New member
מסכים איתך, ומוסיף

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

bgu4u

New member
דוגמא

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

T i k t a k i t

New member
זה אולי ב"רצוי" אבל לא ב"מצוי"

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