המלצה לספר

vinney

Well-known member
הא, אין שום טעם בזה (אקדמית)

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

DadleFish

New member
code review...

...נעשה ב-LEVEL הרבה יותר גבוה מקומפיילר ומ-DEBUGGER. מדובר על בדיקה למשל אם ה-DESIGN תואם את המימוש, בדיקה האם זכרון ישוחרר, בדיקת THREAD SAFETY וכו'. הייתי מקבל את זה אם היו נותנים קטע קוד של 2-3 עמודים ושואלים "איזה בעיית THREAD SAFETY יש בקוד שלפניך?", אבל כשנותנים לך לכתוב 20 עמודים של קוד ומורידים על נקודה פסיק חסרה בסוף ההגדרה של CLASS, זה נראה לי אידיוטי.
 

vinney

Well-known member
../images/Emo6.gif

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

DadleFish

New member
הייתי מפטר תוכניתן כזה.

אם יש משהו שאני לא אוהב זה אנשים ש"מסיימים" לעבוד ומטילים את האחריות לבדיקה על ה-QA. פעם ראיינתי מישהו שלשאלתי "איך אתה עושה UNIT TEST" ענה "אני לא, בשביל מה יש QA?". הראיון הסתיים אחרי 3 דקות.
 

vinney

Well-known member
אבל זה לא QA ../images/Emo13.gif

ממתי CODE REVIEW זה QA? (והעובד הזה יכול לפטר אותי, לא הפוך
) (ולזכותו של אותו מועמד - הוא יודע שצריך לעשות UNIT TEST, בעבודה הנוכחית שלי זה בגדר ידע תיאורטי)
 

DadleFish

New member
נכון, CR זה לא QA,

אבל מצד שני - CR צריך להתבצע (לדעתי...) אחרי UNIT TESTING, ולא לפניו.
 

vinney

Well-known member
אלה שני דברים לא קשורים

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

DadleFish

New member
אה, והוא מזמן לא הבוס שלי ../images/Emo8.gif

אני כבר הספקתי אפילו לעזוב את החברה שבה הוא עובד כיום. הוא PM בכלל עכשיו
 
נמאס לי כבר

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

TheWiseGuy

New member
אם מה שבאמת מעניין אותך זה תכנות,

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

vinney

Well-known member
שטויות במיץ

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

vinney

Well-known member
מה שאמרת פשוט לא נכון

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

DadleFish

New member
לגבי המשפט האחרון,

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

DadleFish

New member
גם בהנדסת תוכנה לא לומדים תכנות

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

inbal76

New member
ניסיון להשיב על שאלתך (המובנת)

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

DadleFish

New member
וכתוספת לתשובה של ענבל,

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