למה בכלל ללמוד תכנות?
מה למה?
כדי שאתם תשלטו במחשב במקום שהוא ישלוט בכם.
מתכנתים טובים הם כמו מכשפים, ומי שלא רוצה לעשות כשפים שיעמוד בתור בצד, בתור של המיועדים להפיכה לצפרדע.
אבל איך?
בגדול, כדי ללמוד תכנות, לא מספיק לקרוא ספרים. צריך לתרגל כל דבר ולמצוא איך להשתמש בדברים בצורה אלגנטית בקוד שלך תוך כדי לימוד.
אפשר לקבל עזרה מחבר שמבין, או בערוץ של השפה בIRC, רק שימו לב לא לשאול שאלות לפני שניסיתם למצוא את התשובה בעצמכם באינטרנט כדי להמנע מאי נעימויות.
יש הרבה משותף בין תכנות לבין שחיה:
אי אפשר ללמוד שחיה בלי לשחות, ואי אפשר ללמות תכנות בלי לתכנת.
הכי טוב יהיה אם תכתבו איזו תוכנה תוך כדי שאתם לומדים.
אתם יכולים להחליט מה היא תעשה כבר עכשיו, לא צריך לדעת תכנות בשביל זה. (מקסימום תשנו את הדרישות קצת אחר כך, אם תראו שזה קשה מדי).
התוכנית הראשונה שאני כתבתי (ואני לא מחשיב תוכנית שמציירת נינג'ה שכתבתי בביסיק בגיל 14) היתה פז"מבוט, תוכנית שרצה ברשת אולטינט, קיבלה הודעות הרשמה מאנשים, רשמה אותם בקובץ ופרסמה מפעם לפעם טבלאת פז"מ, כמה שניות כמה דקות וכמה ימים נותרו לשחרור, וכו'.
אני חושב שהיא עדיין רצה איפשהו.
הנקודה היא שהתוכנית שתכתבו תוך כדי שאתם לומדים לא צריכה להיות מתוחכמת במיוחד, מה שחשוב זה שתישמו את כל מה שאתם לומדים על התוכנית שלכם.
ג'אווה
ג'אווה היא שפת תכנות נוחה למתחילים, עם Garbage collector מובנה, שחוסך את הצורך להתעסק בשחרור זכרון.
עוד יתרונות למתחילים:
* סביבת הריצה (JRE) מאוד יציבה, ובדרך כלל מקבלים הודעות שגיאה בעלות משמעות ולא סתם קריסות על טעויות.
* פשוטה הרבה יותר מ++C.
* השפה כוללת ממשקי תכנות לריבוי נימים (Threads), ממשקי משתמש גרפיים, ובאופן כללי, כמעט כל מה שתצטרכו בשביל לכתוב תוכניות מורכבות. (פחות ספריות חיצוניות ללמוד).
איך מתחילים:
1. הורד את הJDK, אני ממליץ על JDK 1.5 Standard edition בלי Netbeans, שאפשר למצוא פה.
2. הורד את Eclipse, שהיא סביבת פיתוח מעולה לג'אווה.
3. עבור בשיטתיות על הטוטוריאלים של סאן, תוך שאתה מנסה לכתוב כל דוגמא בעצמך.
רצוי לעבור על כל הקורסים שם, למעט אולי כמה ספציפיים שמתעסקים בדברים מאוד מסויימים שפחות רלוונטיים לכם (כמו 3D, סאונד או בסיסי נתונים).
אם אין לכם נסיון בתכנות, קחו בחשבון שאתם מסתכלים על בין שלושה חודשים לשנה של לימוד, תלוי באינטנסיביות של הלימוד שלכם.
ספרים מומלצים:
אני אישית למדתי ג'אווה בלי ספרים – הכל ממידע שהיה זמין (כבר ב1999) באינטרנט, אז אין לי המלצות קונקטיות על ספרים בג'אווה.
באופן כללי, הספר Design patterns הוא ספר חובה לכל מתכנת בימינו, אבל אני לא ממליץ לקרוא אותו לפני שאכלתם קצת חרא מהבעיות שהוא בא לפתור, או במילים אחרות, אחרי שתכתבו תוכנה גדולה יחסית.
C++
C++ היא שפה קשה למתחילים, שליטה מלאה בשפה יכולה לקחת שנה או שנתיים.
למרות זאת, C++ היתה השפה הראשונה שאני למדתי, ובהחלט נהנתי מהתהליך.
איך מתחילים:
1. לא מומלץ להתחיל ללמוד תכנות חלונות, יש הרבה מאוד דברים רעים בממשקי התכנות של חלונות, ואם לא רוצים שהם ישפיעו לרעה על נפשכם הרכה.
2. להתאפס על קומפיילר, גם וויזו'אל סטודיו טוב, בתנאי שאתם לא מפרים את תנאי מספר 1 – כלומר, להתרחק ממשקי התכנות של חלונות (לתכנת ישומי מסוף – קונסול)
3. למצוא טוטוריאל טוב למתחילים, עם דגש על מתחילים. C++ נותנת הרבה מאוד חבל למי שרוצה להטביע את עצמו.
חיפוש קצר בגוגל העלה את זה, שנראה מתאים למתחילים, אבל יש המון אחרים.
4. לעבור על הטוטוריאל בשיטתיות, תוך שאתה מנסה כל דבר חדש (ראית const? תכניס const לאפליקציה שלך. ראית exceptions? תכניס לאפליקציה וכו').
ספרים מומלצים:
הספרEffective C++ של סקוט מיירס.
הספר של סטראוסטרופ – The C++ programming language הוא ספר מצויין, אבל לא למתחילים.
עוד ספר שאני נעזר בו לפעמים הוא Thinking in C++, אבל לא קראתי אותו ממש אלא רק נעזרתי בו מפעם לפעם.