ספרי מחשבים: תכנות
אנשים שונים מעניקים פרשנויות שונות למושגים "מתחיל" ו"מתקדם". מכאן פתוחה הדרך גם להבטחות שיווקיות שנוגעות להתאמה של מוצר לקהל כזה או אחר. הפעם נדבר על שלושה ספרים - אחד למתחילים, אחד למתקדמים, ואחד לא מוצאים אותו עד היום
ספר של אמיצים - מי מפחד ממחשבים?
אופוס, 330 עמ', 99 ש"ח
"אם אתה רוצה להיות בעניינים, אתה חייב שיהיה לך מודם כדי שתוכל להתחבר לאינטרנט וכדי שתוכל לשלוח ולקבל פקסים מרחבי העולם ומחברות בינלאומיות שרוצות לעשות איתך, ורק איתך, עסקים בקנה מידה בלתי ייאמן" (עמ' 9).
בחרתי לפתוח בציטוט הזה מתוך הספר, משום שיש לי הרגשה שבקרקעיתה של כל פוביית-מחשב מסתתרים כמה משפטים כאלה בדיוק. ההילה המיתולוגית שמשווקים זריזים עוטפים בה את מוצרי ההייטק, היא בדיוק מה שמושך את חובבי הטכנולוגיה, ובדיוק מה שמפחיד את הטכנופובים. גם אם המשפט הזה נאמר בהומור דק, אזי יש דברים שאולי לא כדאי להתבדח עליהם. למשל, על זה שמישהו מפחד ממחשב בשנת 2002.
הרעיון שבבסיס הכותר הזה בסך-הכל הגיוני: להציע לאנשים שאין להם כל ידע בשימוש במחשב את עיקרי התורה על רגל אחת, בפורמט לעוס היטב וקל לעיכול. מה זה מחשב, מאיפה זה בא, ואיך משתמשים בזה. בלי יותר מדי התפלפלויות ומונחים טכניים. קצת Windows, קצת Office, קצת טיפול בקבצים, ואיך משתמשים בעכבר. ומכיוון שהספר בסך-הכל נראה וכתוב לא רע בכלל, אז בוודאי יהיו רבים שימצאו בו נחמה אחרי מסע ייסורים ארוך.
כפי שאפשר להבין, זה ספר שלא מיועד לקורא הממוצע של המגזין הזה, ואני מניח שהוא עשוי לקנות אותו - אם בכלל - רק כדי להעניק אותו במתנה למישהו מאותגר-מחשבית. אבל גם במקרה כזה ראוי לשאול האם הספר באמת עושה את העבודה. מהרבה בחינות אני מניח שהתשובה חיובית - הוא ניגש היישר לWindows XP-, מערכת ההפעלה שסביר שמשתמש חדש יקבל היום עם המחשב החדש שלו. הוא נוגע קצת בהיסטוריה, קצת באקטואליה, קצת בקבצים וקצת ביישומים. מבקר לרגע בלוח הבקרה, מסביר איך להתחבר לאינטרנט, נוגע בעיקרי השימוש בדחיסה.
יש שני דברים שמפריעים לי בספר. הראשון הוא חוסר האיזון. מצד אחד, יש כאן מידע אלמנטרי לחלוטין, שמתיישב יפה עם הקונספציה - הבסיס של הבסיס. מצד שני, הספר מתעקש לדבר על גיליונות אלקטרוניים, מסדי נתונים (ראה "עשה לך מסד נתונים עם Access", עמ' 161), ועוד נושאים שבאמת אין בהם צורך כאן. ועוד דוגמא: שלושה עמודים מהספר מוקדשים לICQ-, אחד-עשר לאודיגו. זה תמוה, אפילו חשוד, וכאמור, גם לא מאוזן.
הדבר שני שמפריע לי, וגם הוא קצת מעורר חשד, הוא שאין קרדיט לכותב או לכותבים, אלא רק לעורך (יעקב פיאלקוב). האם זה משום שמאחורי הספר עומדים כותבים רבים? האם כותב הספר אינו יכול להשתמש בשמו מסיבה כלשהי? או שאולי הספר הזה הורכב כלקט של חומרים ממקורות שעדיף היה לא לאזכר אותם?
עם השאלות הפתוחות האלו, ולמרות כל ההסתייגויות, אפשר לסכם ולומר שהספר מציע תמורה הוגנת מאד למחיר שלו. אם אתם מכירים מישהו שעושה את צעדיו הראשונים בשימוש במחשב, וקשה לו, הציעו לו לקנות את הספר. רק תגידו לא, שזה באמת בסדר אם ידלג על הפרק שעוסק במסדי נתונים.
הכי טוב ב-Java - חושבים Java
פוקוס, 948 עמ', 199 ש"ח
"חושבים Java" של ברוס אקל הוא לא סתם עוד ספר על תכנות. זהו מסמך בעל מוניטין. כבר במהדורה הראשונה שלו, שיצאה לאור לפני שנים מספר, הפך הספר הזה לאחד האהודים והנחשבים בתחומו, ומתכנתים בכל העולם משתמשים בו כדי ללמוד Java. זו הסיבה לכך שצאתו לאור בעברית היא עניין משמח, ואני מניח שזו גם הסיבה למחירו הגבוה יחסית (199 ש"ח). המחיר הזה גבוה בכמה עשרות שקלים מהממוצע המקובל לספרי מפתחים מתורגמים. הוא שווה בהחלט את הכסף, אם יודעים לאילו משימות ומפתחים הוא מתאים. אבל באותה מידה חשוב לדעת, שהוא לא שווה את הכסף אם קונים אותו לאיש הלא נכון.
תנו דעתכם לכך שמדובר באחד הספרים המבריקים ביותר ללימוד פיתוח תוכנה מוכוון עצמים. בניית הנושאים לדיון בתחום הזה, שרחוקה מלהיות מלאכה טריוויאלית (למרות שרוב ספרי המפתחים מתייחסים אליה בשוויון נפש), נעשית כאן באופן שונה מהרגיל. ישנה סקירה של מגוון פתרונות לכל בעיה תכנותית, הסברים מפורטים אודות כל אחד מהם, והליכה בנתיב בטוח המוליך ישירות אל אלה העונים באופן השלם והנכון ביותר לעקרונות של תכנות מונחה עצמים. בניית רצף הנושאים זוכה גם היא לשבחים, ובסך-הכל מי שיעקוב אחרי הספר לא ייטעה.
יחד עם זאת, ישנן כאן שתי נקודות חשובות לשקול לפני הקנייה. ראשית, הספר איננו מדריך למתחילים חסרי רקע בפיתוח בכלל. אלה ילכו בו לאיבוד עוד לפני שיצליחו לומר "ברוס אקל". ושנית - אולי העובדה שהספר זמין בשלמותו, חינם, כולל עדכונים שמטבע הדברים לא נכנסים לדפוס, באתר האינטרנט של המחבר, תשפיע משהו על החלטתך להיפרד מ-200 ש"ח?
יש מגזר לא קטן של מתכנתים שהאנגלית היא עבורם יותר משפת-אם - זו השפה שבה הם רגילים לקרוא על תכנות, וקריאה של ספר תכנות בעברית גורמת להם בעיקר תסכול. אם אתה משתייך לקבוצה הזו, ואם אין לך העדפה מיוחדת לטקסט מודפס וכרוך על-פני מדריך מקוון, קשה להניח שתרצה להשקיע בספר הזה. אבל אם אתה דומה לרוב המכריע של המתכנתים, הגורם העיקרי בהחלטה שלך האם לקרוא בעברית או באנגלית הוא איכות התרגום. מהבחינה הזו, הספר בהחלט ראוי ושווה את הכסף.
הרבה ספרי תכנות מביכים יצאו לאור בישראל במשך השנים. חלקם נכתבו בצורה עילגת, תורגמו בחוסר כשרון, כללו טעויות שונות או הקנו לקורא מושגים לא מקובלים או לא מדוייקים. בחלק מהמקרים היו אלו תרגומים טובים לספרים לא מספיק טובים. באחרים הצליחו ההוצאות להרוס עוד ספר טוב, ולהשריש את הדעה הרווחת לפיה אסור לקרוא על תכנות בעברית. "חושבים Java" הוא סיפור שונה לגמרי. מומלץ. גדי שוורץ
מה שלא סיפרו לך - תכנות מהצעד הראשון
פוקוס, 443 עמ' 129 ש"ח
מתכנת מובחר הוא כמו קפה מובחר. לא מספיק לגדל אותו במקום הנכון, לטפל בו יפה ולהכין אותו כראוי. צריך גם הרבה מזל. את הטובים באמת, ה"טבעיים", אתה פוגש רק לעיתים נדירות. יש כאלו שמביאים איתם מוח מבריק, תכונות אופי מתאימות ותעודה ממוסד יוקרתי. אבל המתכנתים המוכשרים באמת, כמו פולי קפה נדירים, בדרך-כלל מגיעים משום מקום ובלי ידע מסודר, רק עם כשרון שמפצה על הכל.
אף ספר לא יהפוך אותך למתכנת, כולל הספר הזה. רובם לא יועילו - או מפני שאינך זקוק להם, או מפני שאין בהם את מה שאתה צריך. הספרים הטובים באמת, הם בדרך-כלל אלו שמתמקדים בנושא ספציפי, בשפה או סביבת פיתוח מסויימות, ומדקדקים עד הפרט האחרון. אלו הספרים שאפשר באמת ללמוד מהם, ולהחזיק אותם בהישג יד במהלך העבודה. אגב, רובם אינם מיועדים לחסרי ניסיון. מה לעשות.
"תכנות מהצעד הראשון" הוא כמעט ההפך הגמור, ודווקא מהסיבה הזו מדובר בספר מפתיע לטובה. השפה היחידה שהוא באמת ילמד אותך היא Visual Basic, גם זה במגבלות האובייקטיביות של מאת העמודים שהוקדשו לעניין, וגם זה רק משום שהכותב מאמין שזו השפה שכדאי למתכנתים חדשים להתחיל בה. ייתכן בהחלט שיהיו קוראים שהחלק הזה בספר ישמש עבורם נקודת פתיחה (עם דגש על "פתיחה") טובה, ויראו בכותר הזה ספר ללימוד תכנות ותו לא. אבל זה בכלל לא העניין פה.
היתרון העיקרי של הספר לא נמצא ובתיאורי הפקודות והוראות תחביר, בטבלאות האופרטורים או בדוגמאות קוד (הלא רעות אגב). הוא טמון בדיון התיאורטי, שנותן לקורא תמונה רחבה שבתוכה יוכל לשבץ את מה שילמד ואת מה שהוא כבר יודע.
הוא פותח בסקירה היסטורית של עולם התכנות, מבאר מושגים ומציג עקרונות, ומגיע לשפות התכנות השונות רק בהמשך. מלבד הדיון הארוך יחסית בVB-, הוא סוקר את תחומי הפיתוח השונים ושפות התכנות הנפוצות, באוסף של פרקים קצרצרים. תפגוש שם את C/C++, שפות תסריט (Scripts), HTML, DHTML, XML, Java, JavaScript. יש גם פרק שמוקדש ל"מושגים החשובים בתכנות אינטרנט" (HTML, ActiveX, ASP, VBScript, וכו').
בחלק מהמקרים מה שהתקבל הוא דיון שטחי מאד, אפילו מביך (כמו שלושת העמודים שתחת הכותרת "מבוא קצר למבני נתונים", ראה עמ' 232). ברור שהספר הזה לא מסוגל ללמד אותך את כל הנושאים והשפות הללו, אבל מי אמר שזו המטרה. כשמכניסים את הכל לקונטקסט הנכון, מתברר שמה שיש כאן הוא בעצם השלמה למה שמוכר לתלמידי מדעי המחשב כקורס "שפות תכנות", ואולי בעצם ללימודי מחשבים בכלל. לאו דווקא ספר "למתחיל בתכנות מחשבים", אלא יותר ספר שיעזור למתכנתים בשלבים שונים של ההתפתחות המקצועית שלהם "להתאפס" ולתפוס כיוון.
האקדמיה עברה בשנים האחרונות רביזיה לא קטנה בתחום. במשך הרבה זמן היא חשבה שחשוב יותר ללמוד אסמבלר ולפתח על Unix מאשר להכיר כלי פיתוח ויזואליים. אחרי שנים של התעלמות הפגנתית מההתפתחויות הטבעיות של עולם התוכנה, היא הסכימה בסופו של דבר להכניס בדלת האחורית סדנאות להכרת המחשב (PC), קורסים לתכנות בשפות פופולריות (Java, XML ואפילו Visual Basic), ועוד כהנה וכהנה שיקוצים. אז נכון שיש שיפור גדול, אבל זה עדיין כל-כך רחוק מלהכין את התלמידים לעולם האמיתי, או לתת להם איזה מושג אמיתי על מה קורה שם באמת.
אפילו כשישנם קורסי בחירה מוצלחים, שאת הסילבוס שלהם אפשר להוריד מאינטרנט, הרבה סטודנטים מוצאים את עצמם נבוכים מול המושגים הלא מוכרים. במה בוחרים? מה מתאים למה? ומה הם יוכלו לעשות עם זה אחר-כך? הסיבה לכך, אגב, פשוטה מאד - רוב המחלקות למדעי המחשב לא רואות עצמן כמשירות מתכנתים, אלא כמכשירות מדענים. קטונתי מלקבוע האם זה נכון או לא, אבל אני חושב שאפשר לקבוע במידה רבה של וודאות שהרבה סטודנטים זקוקים ליותר מזה.
"תכנות מהצעד הראשון" לא יקנה לקורא מומחיות בשום תחום. אבל זהו כלי עזר מצויין עבור סטודנטים - כמו גם לתלמידי תיכון במגמות מחשבים, או מתכנתי-נישה - שרוצים לקבל תמונה טובה יותר של כיוונים אליהם הם יכולים להתפתח. או איזה קורסים כדאי להם לקחת. הוא יועיל גם למתכנתים צעירים מאד, שיש להם את הזמן ללמוד אבל מחפשים את התחומים המתאימים להם ולמה שהם רוצים. בונוס נוסף הוא החלק האחרון של הספר ששמו "עסקי תכנות". הוא עוסק בכל הפרטים, הקטנים אך חשובים כל-כך, שמשפיעים על חיי המתכנת - החל מהפצת יישומים והתקנתם, דרך סוגי המשרות בתעשיית התוכנה, ועד למבנה האופייני של ארגון או מחלקה העוסקים בתכנות.
הספר הזה, שבקלות אפשר לטעות בו ולחשוב שהוא סתם ספר שטחי, בעצם נוגע בכמה מהצדדים המוזנחים ביותר של עולם התכנות וחיי המתכנת. כל מתכנת מתחיל, אפילו הוא כשרון גדול, יכול להפיק תועלת מספר שיעזור לו לתעל את היכולת שלו למקומות הנכונים.