הנדסת תוכנה או מדעי המחשב

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

השלבים הראשונים דומים מאוד

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

הבדלים תפיסתיים ויישומיים

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

תארים שונים באופן מהותי

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

אפשרויות תעסוקה

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