כותרות TheMarker >
    ';

    פרטי קהילה

    מחקר ופיתוח

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

    אינטרנט והייטק

    חברים בקהילה (1517)

    היזם
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין
    ששת שצ
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין
    zin7
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין
    eicher077
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין
    nonetheless
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין
    עופר מאיר
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין
    לואיס קרול
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין
    אביאן
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין
    jetman
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין
    אריק גינזבורג
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין
    Groove
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין
    יוסי קרמר
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין

    פורום

    מו"פ - כללי

    דיונים בכל נושא הקשור למו\"פ

    צרור עצות לסטודנט למדעי המחשב

    8/7/07 13:05
    2
    דרג את התוכן:
    2008-04-11 05:31:41
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין

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

     

    אריאל

     

     

    ------------------------

    צרור עצות לסטודנט למדעי המחשב

    מאת יואל ספולסקי

    תרגום: [אבי אהרן user:avi] עריכה: יואל ספולסקי ושלומי פיש 2 ינואר 2005

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

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

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

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

    ובכן.

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

    על מה דיברנו? אה, כן, עצה.

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

    1. לימדו לכתוב לפני סיום הלימודים

    2. לימדו לתכנת ב-C לפני סיום הלימודים

    3. למדו מיקרוכלכלה לפני סיום הלימודים

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

    5. קחו קורסים עתירי תכנות

    6. הפסיקו לדאוג מכל המשרות שעוברות להודו

    7. בקיץ, עיבדו בהשתלמות (Internship) בחברת היי-טק טובה

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

    לימדו לכתוב לפני סיום הלימודים

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

    הזדמן לכם לשמוע על Extreme Programming? בלי להכנס לכל מה שיש לי להגיד על XP, הסיבה לכך ששמעתם על זה היא בגלל שהרעיון הזה מקודם על-ידי אנשים שיודעים לדבר ולכתוב, ועושים זאת היטב.

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

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

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

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

    התחל לכתוב יומן או בלוג. ככל שתכתוב יותר, כך יהיה לך קל יותר, וככל שיהיה לך קל יותר, תכתוב יותר, וטוב יותר.

     

     

    לימדו לתכנת ב–C לפני סיום הלימודים

    שים לב לכך שלא אמרתי ++C. אך ש-C הופכת נדירה יותר ויותר, היא עדיין השפה המשותפת בקרב תוכניתנים. היא השפה בה הם משתמשים כדי לדבר אחד עם השני, וחשוב יותר, היא הרבה יותר קרובה למכונה מאשר שפות "מודרניות" שמלמדים היום באוניברסיטה, כמו ML, ג'אווה, Python ושאר הזבל האופנתי של ימינו. רצוי שתקדיש לפחות סמסטר אחד כדי להתקרב למכונה ככל שתוכל כדי שתלמד לכתוב קוד שיעיל אפילו בשפות עיליות. זכור שהעבודות הטובות ביותר עוסקות בקומפיילרים ומערכות הפעלה, והן דורשות כמובן היכרות טובה עם המכונה. בלי היכרות עם המכונה, לא תוכל ליצור ארכיטקטורה לפרויקטים גדולים. לא חשוב כמה אתה יודע על Continuations, Closures ו-Exception Handling.

    אם לא תדע להסביר מדוע קטע הקוד

    while (*s++ = *t++);

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

     

     

    למדו מיקרוכלכלה לפני סיום הלימודים

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

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

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

     

     

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

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

    זילזול בקורסים מחוץ למקצוע מבטיח לך ציון סופי נמוך.

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

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

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

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

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

    קיבלתי 10. ואם אני הצלחתי בכך, גם אתה יכול.

     

     

    קחו קורסים עתירי תכנות

    אני זוכר את הרגע המדויק בו נשבעתי לעצמי שלא אמשיך לתואר שני.

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

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

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

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

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

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

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

    ניסיתי. באמת שניסיתי.

    בזבזתי שעות בספריה בניסיון להוכיח.

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

    לא שזה משנה ללוגיקנים דינמיים: הם לא עושים את זה בגלל המעשיות. הם עושים את זה כדי לעלות בדרגה.

    עזבתי את הקורס באמצע ונשבעתי שלא לשוב עוד לתואר שני במדעי המחשב.

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

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

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

     

     

    הפסק לדאוג בגלל מקומות העבודה שהולכים להודו

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

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

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

     

     

    בקיץ, עבדו בחברת היי-טק טובה

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

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

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

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


    מאמר זה הופיע לראשונה באנגלית בשם Advice for Computer Science College Students

    מה אתם חושבים? מעתה קל יותר להוסיף תגובה. עוד...
     

    הוספת תגובה על "צרור עצות לסטודנט למדעי המחשב "

    נא להתחבר כדי להגיב.

    התחברות או הרשמה   

    8/7/07 17:14
    0
    דרג את התוכן:
    פורסם ב: 2007-07-08 17:14:13
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין

    קבל כוכב על התרגום, אחלה מאמר

     


    --
    Curiosity is a bitch... not enough time...
    work at: www.superderivatives.com
    paint at: www.avipinto.com
    8/7/07 17:25
    0
    דרג את התוכן:
    פורסם ב: 2007-07-08 17:25:25
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין

    את הקרדיט לתרגום לא אני מקבל.

     

    תרגום: [אבי אהרן user:avi] עריכה: יואל ספולסקי ושלומי פיש 2 ינואר 2005

     

    ניתו למצוא עוד פוסטים של יואל ספולסקי מתורגמים לעברית ב- http://local.joelonsoftware.com/mediawiki/index.php/%D7%A2%D7%91%D7%A8%D7%99%D7%AA_Hebrew

     

     

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


    --
    אריאל כץ -
    אתם מוזמנים להצטרף לקהילת המו\"פ הראשונה בישראל: randd.cafe.themarker.com
    9/7/07 01:26
    0
    דרג את התוכן:
    פורסם ב: 2007-07-09 01:26:24
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין

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

     

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

     

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


    --
    מנהל קהילת מחקר ופיתוח:
    http://randd.cafe.themarker.com
    10/7/07 14:03
    0
    דרג את התוכן:
    פורסם ב: 2007-07-10 14:03:22
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין

    לא יודע, עשיתי תואר שני והתמחיתי בלוגיקה הסתברותית.

    נכון שזה לא מי יודע מה תרם לי בעבודה אבל המדעי של "מדעי המחשב" היה חסר לי כשסיימתי את הלימודים והתחלתי לעבוד.

     

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

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

     

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

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

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

     

     

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

    10/7/07 14:08
    0
    דרג את התוכן:
    פורסם ב: 2007-07-10 14:08:37
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין

    וואלה, כבר שכחתי שתירגמתי את זה :-)

    ספולסקי הוא באמת עילוי.


    --
    http://www.aviaharon.com
    10/7/07 19:10
    0
    דרג את התוכן:
    פורסם ב: 2007-07-10 19:10:57
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין

    התפיסה שלי לגבי "קורסים עתירי תכנות" היא זו: תכנות לשם כתיבת הרבה קוד לא מוסיף ערך אמיתי לדעתי. את זה תעשו ממילא בתעשייה והרבה!

     

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

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

     

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

     

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

     


    --
    אריאל כץ -
    אתם מוזמנים להצטרף לקהילת המו\"פ הראשונה בישראל: randd.cafe.themarker.com
    12/7/07 16:00
    0
    דרג את התוכן:
    פורסם ב: 2007-07-12 16:00:59
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין
    המאמר מצויין לדעתי (במיוחד העצה על ללמוד C). בתור מתכנת שסיים לא מזמן מדעי המחשב באוניברסיטה העברית , הייתי מוסיף שחובה לקחת איזשהו קורס שכולל את שלל נושאי ה"הנדסת תוכנה" - design patterns, unit-testing, refactoring, aspect oriented programming וכו'. גם אם לא משתמשים בהכל אחרי זה , זה פותח את הראש לגביי מה זה באמת לפתח תוכנה מורכבת ומרובת גרסאות בצוות של כמה מתכנתים לאורך זמן...
    12/7/07 16:05
    0
    דרג את התוכן:
    פורסם ב: 2007-07-12 16:05:42
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין

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

     

    אתם מוזמנים לקרוא עוד כאן: http://cafe.themarker.com/view.php?t=77654

     


    --
    אריאל כץ -
    אתם מוזמנים להצטרף לקהילת המו\"פ הראשונה בישראל: randd.cafe.themarker.com
    12/7/07 16:35
    0
    דרג את התוכן:
    פורסם ב: 2007-07-12 16:35:55
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין

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

    עם זאת , יש הטוענים שתוכנה לעולם לא תהיה "מסודרת" או פורמלית כמו הנדסות אחרות , כי מספר המצבים בה לאורך זמן הוא עצום ואינסופי בהשוואה לשאר התחומים (בניין,חומרה,אווירונאוטיקה וכו'). מאמר מעניין של פרד ברוקס בנושא - http://www.virtualschool.edu/mon/SoftwareEngineering/BrooksNoSilverBullet.html

    12/7/07 16:40
    0
    דרג את התוכן:
    פורסם ב: 2007-07-12 16:40:59
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין

     הי אבי זה עמית

    כן הבלוג של הבחור בהחלט ממולץ (http://www.joelonsoftware.com/)

    לך דווקא היתי ממליץ לקרוא את הפוסט הזה שלו שעוסק בגיוס עובדים

    http://www.joelonsoftware.com/articles/GuerrillaInterviewing3.html

     

    --
    www.seren.co.il/shvilam/
    12/7/07 16:59
    0
    דרג את התוכן:
    פורסם ב: 2007-07-12 16:59:17
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין

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

    20/9/07 09:13
    0
    דרג את התוכן:
    פורסם ב: 2007-09-20 09:13:46
    1. שלח הודעה
    2. אוף ליין
    3. אוף ליין

    הי,

    אני עובדת כרגע כמהנדסת חומרה (device eng). אשמח אם מישהו יוכל להסביר לי מה בדיוק עושה מהנדס וריפיקציה. האם זה נחשב כתפקיד DESIGN ? עד כמה תפקיד כזה נחשב יוקרתי (מבוקש) ?

    תודה



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

    /null/text_64k_1#

    מה אתם חושבים? מעתה קל יותר להוסיף תגובה. עוד...
     

    הוספת תגובה על "צרור עצות לסטודנט למדעי המחשב "

    נא להתחבר כדי להגיב.

    התחברות או הרשמה