Joel on Software

Joel on Software   יואל על תוכנה

 

מאמרים שתורגמו לעברית

גרסה אנגלית

כתבו למחבר

 

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


מאת יואל ספולסקי
תרגום: אבי אהרון
עריכה: יואל ספולסקי
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 ושאר הזבל האופנתי של ימינו. רצוי שתקדיש לפחות סמסטר אחד כדי להתקרב למכונה ככל שתוכל כדי שתלמד לכתוב קוד שיעיל אפילו בשפות עיליות. זכור שהעבודות הטובות ביותר עוסקות בקומפיילרים ומערכות הפעלה, והן דורשות כמובן היכרות טובה עם המכונה. בלי היכרות עם המכונה, לא תוכל ליצור ארכיטקטורה לפרויקטים גדולים. לא חשוב כמה אתה יודע על Continuation, Closure ו-Exception Handling. אם לא תדע להסביר למה

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

יואל ספולסקי ייסד את Fog Creek Software, בית תוכנה קטן בניו יורק. במשך שירותו הצבאי (בנח"ל מוצנח) היה בין מייסדי קיבוץ חנתון שבגליל. לאחר לימודים באוניברסיטת ייל, עבד בתור מתכנת ומנהל ב-Viacom, Microsoft, ו-Juno.


אלה דעות של בן אדם אחד ותו לא.
© 1999-2005 Joel Spolsky. כל הזכויות שמורות.

FogBUGZ | CityDesk | Fog Creek Software | Joel Spolsky