סקירה וביקורת ספר: Programming in C

פוסט זה הוא סקירה וביקורת על הספר Programming in C, 4th Edition מאת Stephen G. Kochan, שנשלח אליי על ידי ההוצאה לאור תמורת ביקורת כנה בדף המוצר ב-Amazon. מכיוון שיש לא מעט חבר'ה שרוצים ללמוד C גם בארץ ומחפשים מקורות, החלטתי להוסיף מיוזמתי סקירה של הספר גם כאן בבלוג.

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

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

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

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

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

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

לגבי סביבת הפיתוח המתאימה לעבודה עם הספר: שם מוזכר קומפיילר gcc ב-linux, אך כמובן שכל קומפיילר/סביבת פיתוח אחרים ל-c יעשו את העבודה, עם התאמות קלות לכל היותר. אני עבדתי עם סביבת הפיתוח Code::Blocks שמומלצת בחום – יש גרסאות לרוב מערכות ההפעלה, רק שימו לב שלפעמים צריך להתקין את הקומפיילרים בנפרד.

הספר מגיע במהדורה מודפסת (530 עמודים בכריכה רכה) או אלקטרונית (epub/mobi/pdf). המחיר למהדורה המודפסת, נכון לכתיבת שורות אלה, הוא כ-$40 לא כולל משלוח.

להרשמה
הודע לי על
0 Comments
Inline Feedbacks
הראה את כל התגובות