משתמש:The duke/מבוא לתכנות של קבוצת בטא: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
אין תקציר עריכה
החלפת הדף בתוכן '{{הערה|זאת היתה טיוטה לספר מבוא לתכנות של קבוצת בטא שהועבר למרחב הציבורי. הטיוטה נמחקה כב...'
שורה 1:
{{הערה|זאת היתה טיוטה לספר [[מבוא לתכנות של קבוצת בטא]] שהועבר למרחב הציבורי. הטיוטה לאנמחקה מתעדכנתכבר. יותר,הבטא אבלספר נשארתהאמיתי נמצא כאן: [[מבוא לתכנות כרפרנסשל למקרהקבוצת הצורךבטא]].}}
 
==מה זה? איפה הבטא ספר?==
 
כתוב למעלה. הוא עכשיו נמצא ב[[מבוא לתכנות של קבוצת בטא]].
== בטא ספר! ==
ככה אנחנו קוראים לספר הזה בבטא.
 
== ברוכים הבאים לבטא ==
בטא היא קבוצה של אנשים שמתעניינים בקוד-תוכנה ובדברים המטורפים שאפשר לעשות איתו.
 
מי שרוצה להיות חבר בטא לא חייב רקע בתכנות, אבל כן חייב להיות מסוגל ללמוד לבד. כי מי שלא מסוגל ללמוד לבד לעולם לא יהיה נינג'ה.
 
כדי שלכולנו יהיה בסיס משותף ושפה משותפת, כל מי שרוצה להצטרף לבטא צריך ללמוד את שפת התכנות C לפני שהוא מתחיל לעסוק בפרוייקטים. מרגע שחברי בטא מבינים תכנות בסיסי עם C, הם יוכלו להיחשף לתחומים נוספים בהם עוסקים בבטא, ולמצוא את התחומים שמעניינים אותם אישית.
 
השלב של למידת התכנות הבסיסי וכניסה למסלול נקרא '''שלב הלימוד הראשוני'''.
 
המדריך הזה יעזור לכם לעבור את שלב הלימוד הראשוני - הוא יסביר איך לארגן סביבת עבודה שמתאימה לחברי בטא, ואחר כך ידריך אתכם בכתיבת התוכנה הראשונה שלכם. לאחר מכן תוכלו להמשיך ללמוד לבד עבודה על לינוקס ואת שפת C.
 
כשתסיימו את שלב הלימוד הראשוני, תוכלו לפנות לפעילי בטא להמשך הכוונה ולהתחלת עבודה על פרוייקטים של בטא.
 
גם במהלך שלב הלימוד הראשוני אפשר להיעזר בחברי בטא בקבוצת הפייסבוק Beta Program - public space, כדי לא להיתקע. הם באמת נחמדים (למי שנחמד אליהם).
 
==שאלות נפוצות על שלב הלימוד הראשוני==
[[משתמש:The duke/מבוא לתכנות של קבוצת בטא/שאלות נפוצות על שלב הלימוד הראשוני|עדיין יש שאלות? תבדקו אם כבר ענו עליהן!]]
 
== איך לומדים C בבטא? ==
* מיד אחרי ההתנסות הראשונית בכתיבת תוכנה (שנמצאת בהמשך המדריך הזה), הלימוד הוא עצמאי, מתוך מקורות בויקיספר או מחוץ לו. קישורים למקורות שמצאנו מתאימים ומקיפים אפשר למצוא בסוף המסמך הזה. בכל מקרה יש עדיפות למקורות שמשתמשים בסגנון כתיבה קרוב ל[[w:en:1TBS|1TBS]] שמקובל בבטא.
 
* ישנן הצעות ל[[The dukeמשתמש:/מבוא לתכנות של קבוצת בטא/פרויקטי תכנות קטנים בC|פרויקטי תכנות קטנים בC]], למי שצריך להגדיר מטרה ללימוד.
 
==סביבת העבודה בבטא==
* סביבת העבודה המועדפת בבטא היא לינוקס, בעיקר דביאן (וKnoppix אם צריך). השימוש בה נלמד תוך כדי עבודה, ובהמשך המדריך הזה יוזכרו גם מדריכים שיכולים לעזור. בשלב הראשוני ניתן להשתמש גם בסביבות Cygwin או MingW.
 
* הקומפיילר שמשתמשים בו בבטא הוא gcc, מאחר שמדובר בקומפיילר חופשי שמקובל גם בתעשיה.
 
* עורך הטקסט שמשתמשים בו בבטא הוא Emacs. ניתן להשתמש גם בvi אבל אין מנטור לvi. על windows נהוג להשתמש בnotepad++.
 
== גנו\לינוקס ==
מערכת ההפעלה העיקרית בה משתמשים בבטא היא GNU\Linux, הידועה גם פשוט בשם "לינוקס". גנו\לינוקס היא מערכת הפעלה חופשית. הכוונה במילה "חופשית" היא שהיא מכבדת את החופש של המשתמשים, לאו דווקא שהיא חינמית (למעשה ניתן גם לרכוש אותה בכסף). מערכת הפעלה זו שומרת על שקיפות מלאה וכל אדם יכול לראות את הקוד שלה ולשנות אותו, מאחר שהיא מערכת בקוד פתוח. זאת בניגוד למערכות נפוצות כמו Windows של מיקרוסופט או IOS ו OSX של אפל.
 
ישנן מספר דרכים לארגן לעצמך מערכת לינוקס:
 
===התקנה רגילה===
הצורה הפשוטה ביותר לעבוד עם לינוקס היא להתקין אותו על מחשב כמערכת ההפעלה היחידה. ההפצה המומלצת בבטא היא Debian שאת קובץ ההתקנה שלה ניתן להוריד מהאתר של פרוייקט דביאן. לא תמיד אפשרי להקדיש מחשב ללינוקס, ולכן ניתנות כאן אופציות נוספות.
 
===Live CD===
אם צריכים לעבוד על מחשב שלא ניתן להתקין עליו מערכת הפעלה, או אפילו על מחשב ללא כונן קשיח, ניתן לעבוד מlive CD. זהו דיסק שמכיל מערכת לינוקס מלאה שניתן לעבוד איתה מרגע שהמחשב עולה. כאשר מסיימים לעבוד ומוציאים את הדיסק, חוזר המחשב להיות כמו שהיה לפני שעבדנו עליו עם הלינוקס. הפצת הlive CD המועדפת בבטא היא Knoppix. דיסקים של קנופיקס ניתנו לכל פעילי בטא בקרית שמונה, כך שיוכלו לעבוד בכיתות המחשבים עד שיותקן שם גם לינוקס.
 
===dual boot===
את המערכת ניתן להתקין לצידה של מערכת קיימת (dual boot) ואז, כל פעם שמדליקים את המחשב ניתן להחליט אם רוצים שיפעיל את לינוקס או את המערכת שהיתה מותקנת במקור.
 
===וירטואליזציה===
אפשרות נוספת היא להשתמש ב'''וירטואליזציה''' - הדמיה של פעולה מחשב נוסף עליו מותקנת לינוקס. היתרון הוא קלות ההתקנה והאפשרות לעבור בין מערכות הפעלה בלי לכבות את המחשב. החיסרון הוא פגיעה בביצועים (למרות שבמחשבים מודרנים זה לא בהכרח מורגש).
 
== יצירת סביבת עבודה של בטא ==
===אופציה א': קנופיקס===
אם יש ברשותכם דיסק של קנופיקס, אין צורך להתקין כלום, כל הכלין כבר נמצאים שם. מכניסים את הדיסק, עושים reboot (איתחול) למחשב, מחכים שיעלה הממשק הגרפי, ומתחילים לעבוד.
 
שימו לב ששינויים שעשיתם בשולחן העבודה לא יישמרו אחרי כיבוי המחשב (אלא אם יצרתם סקריפט שייצור אותם מחדש בפעם הבאה שאתם מעלים קנופיקס).
 
גם קבצים לא יישמרו אחרי כיבוי המחשב, אלא אם נשמרו על הדיסק של המחשב (לא תמיד אפשרי), או על USB. אחת האופציה היא עם סיום העבודה לשמור את הקבצים בשירות אכסון ברשת או לשלוח לעצמכם במייל. ככה גם יהיה ניתן לגשת אליהם מכל מקום, ויהיה להם תמיד גיבוי.
 
===אופציה ב': Cygwin===
רלוונטית את אתם נאלצים לעבוד תחת מערכת הפעלה חלונות.
 
הורידו את מערכת Cygwin, התקינו אותה, התקינו גם את החבילות gcc וEmacs.
 
העבודה היא דרך Msys.
 
פירוט של ההתקנה וצורת העבודה יתווספו בעתיד.
 
== ההתנסות הראשונית - איך כותבים תוכנה ==
ישנם שני כלי תוכנה בהם נשתמש בכדי ליצור תוכנת מחשב:
* '''עורך טקסט''' (Editor): עורך הטקסט מאפשר למשתמש ליצור קובץ המכיל קוד של תוכנית ולשמור אותו. דוגמאות לעורכי טקסט: Notepad, Emacs, Notepad++.
* '''קומפיילר''' (Compiler): קומפיילר הוא תוכנת מחשב שמאפשרת תרגום של קובץ הכתוב בשפה אחת לקובץ אחר המכיל את אותה התוכנית בשפה אחרת. אנו נשתמש בקומפיילר שיתרגם קבצים בשפת התכנות C לקבצים בשפת מכונה. שפת מכונה (machine language, או binary) היא השפה היחידה שהמחשב מבין. כל שפה אחרת חייבת להיות מתורגמת לשפת מכונה על מנת שאפשר יהיה להריץ אותה. דוגמאות לקומפיילרים: gcc, VC++, turbo C.
 
אנו נכתוב את הקוד בעורך הטקסט ואז '''נקמפל''' את הקוד בעזרת הקומפיילר. ככה נקבל תוכנה שאפשר להריץ.
 
== התוכנה הראשונה: Hello World ==
מבוסס על מדריך מתוך [[מבוא לתכנות ולמדעי המחשב בשפת C/מבוא ותוכנית ראשונה|הקורס של אורי מוסנזון]]
 
אנחנו מוכנים לכתוב את תוכנית המחשב הראשונה שלנו. בגלל שמדובר בתחילת הלמידה, נכתוב את התוכנית הפשוטה ביותר שתבצע משהו שאפשר להבחין בו. באופן מסורתי נהוג לכתוב תוכנית שמדפיסה על המסך את המילים [http://en.wikipedia.org/wiki/Hello_world_program Hello World], רק כדי להבין איך נראה הקוד. ככה מתחילים ללמוד כל שפת תכנות.
=== כתיבת הקוד ===
כתבו את הקוד הבא בעורך טקסט (ממש לכתוב, לא להעתיק ולהדביק. אחרת לא לומדים כלום.):
<source lang = "c" line="GESHI_NORMAL_LINE_NUMBERS">
#include <stdio.h>
 
int main() {
printf("Hello World\n");
return 0;
}
</source>
 
 
(מספרי השורות אינם חלק מהתוכנית. הם נועדו רק להסברים, כדי שאפשר להתייחס לכל שורה לפי מספרה)
 
שימרו אותו כקובץ בשם '''hello.c'''. (שימו לב! לינוקס מבדיל בין אותיות גדולות לקטנות.) פקודת השמירה באימקס היא C-x C-s.
 
'''הסבר''': למרות שמדובר בתוכנית פשוטה ביותר, כבר כאן נכללים הרבה אלמנטים שעדיין מוקדם לתת להם הסבר מלא. בשלב זה נסתפק בהסבר פשטני במקצת ובשלב מאוחר יותר ניתן את ההסבר המלא.
 
* בשורה 1, אנו אומרים לתוכנה להשתמש בספריה stdio. ככה מאפשרים שימוש באמצעי קלט\פלט - מקלדת ומסך (פרטים - בהמשך). שימו לב, לא מדובר במילה "סטודיו" אלא ב'''stdio''' - קיצור לSTandard Input Output.
* שורה 2 ריקה וכל תפקידה הוא להפריד בין חלקי הקוד. הקומפיילר מתעלם ממנה וכל תפקידה הוא להפוך את הקוד לקריא יותר.
* בשורה 3 אנו מצהירים על תחילתו של החלק הראשי של התוכנית שלנו - הפונקציה main.
* שורה 4 היא פקודת הדפסה של המשפט "Hello World" על המסך. הסימון n\ מורה למחשב לעבור לשורה הבאה. שימו לב לסימן ה - ''';''' שמופיע בסוף הפקודה. נקודה-פסיק ([http://en.wikipedia.org/wiki/Semicolon semicolon]) הוא סימון שמופיע בסוף כל פקודה לביצוע ב- C. סימן זה מאפשר לקומפיילר להבחין ולהפריד בין פקודות.
* שורה 5 מורה על סיום main ויציאה מהתוכנית - חזרה למערכת ההפעלה.
* שורה 6 סוגרת את "בלוק" הקוד של - main. התוכן שנמצא בין סוגריים מסולסלים - {...} מהווה קטע קוד בעל משמעות מסויימת. המשמעות מושפעת מההקשר, כלומר מהקוד ש"עוטף" את הבלוק. במהלך הלימוד יופיעו דוגמאות שיבהירו את הכוונה.
 
'''אינדנטציה:''' כפי שבוודאי שמתם לב, שורות 4 ו 5 מוזזות לצד ימין. הזזה זו איננה נדרשת ע"י כללי השפה אבל היא עוזרת לאדם שקורא את הקוד להבין את המבנה הלוגי שלו. השם העברי לפעולה זו נקרא '''הזחה''' ובלועזית '''indentation''' (או אינדנטציה). בהירות הקוד כל כך חשובה שאינדנטציה הפכה למוסכמה בקרב אנשי המקצוע ולא מקובל לכתוב קוד שאינו מוזח.
 
{{הארה|נהוג לבצע הזחה באמצעות התו Tab. אבל יש גם עורכי טקסט שמעדיפים לעשות זאת באמצעות התו רווח. בבטא נשתמש בטאבים.}}
 
קיימים עורכי טקסט שיודעים לבצע אינדנטציה באופן אוטומטי מתוך פיענוח שפת התכנות הספציפית שבה כותבים.
 
הסיבה ששורות 4 ו 5 מוזזות היא ששורות אלה מהוות את התוכן של main - נהוג לומר שהן "בתוך" main. בכל פעם שקבוצת פקודות מסויימת מהווה חלק מוגדר בקוד, נזיח אותה ימינה ביחס לקוד העוטף. הדברים יהיו מובנים יותר בהמשך הלימוד.
 
'''צבעים:''' שיטה נוספת להגביר את קריאות הקוד היא שימוש בצבעים. עורכי טקסט מודרניים יודעים לצבוע בעצמם חלקים שונים בקוד לפי המשמעות התחבירית שלהם. לדוגמה, מספרים יצבעו בצבע אחד, מילים שמורות בצבע אחר וכו'. אין מוסכמה מקובלת לגבי אופן הצביעה. גם הקוד בויקי הזה נצבע אוטומטית לפי שיטת צביעה שהוגדרה עבורו.
 
=== קימפול (הידור) ===
[[קובץ:Nuvola-inspired-terminal.svg|ימין|ממוזער|100px|אייקון לתוכנת טרמינל בסביבה גרפית של לינוקס.]]
פיתחו חלון טרמינל - המסך השחור שמאפשר לכם לתקשר עם המערכת (בקנופיקס זה יהיה האייקון השלישי משמאל בשורת המשימות, ראו תמונה). התוכנה שפועלת בטרמינל ובה כותבים את הפקודות נקראת [[w:he:מעטפת (מחשבים)|shell]] ("קליפה").
 
{{הארה|אי אפשר להיות נינג'ה אמיתי בלי להסתכל ללינוקס בשחור של העיניים - בטרמינל שמאחורי הציורים היפים. אי אפשר גם להיות נינג'ה אם לא קוראים הוראות עד הסוף.
 
בקנופיקס, כמו בכל לינוקס, הממשק הגרפי הוא רק עוד תוכנה שעובדת באחד הטרמינלים של מערכת ההפעלה. יש שם בדרך כלל בין 5 ל7 טרמינלים, והממשק הגרפי פועל בטרמינל האחרון. אם תלחצו Ctrl-Alt-F1 (קונטרול ואלט שמאליים!) תגלו שעברתם לטרמינל מספר 1 - זה שהמערכת הראתה בו את כל ההודעות כשהיא עלתה. Ctrl-Alt-F2 יביא אתכם לטרמינל 2. ככה אפשר לטייל בין הטרמינלים עד טרמינל 5 (או 7) שם תראו שוב את הסביבה הגרפית.
 
אם יום אחד נתקעת לכם משום מה הסביבה הגרפית, זה הזמן ללכת לצעוק קצת על הלינוקס בטרמינל.}}
 
הקלידו בshell את הפקודה הבאה:
<syntaxhighlight lang = "Bash">
gcc hello.c -o hello
</syntaxhighlight>
[http://he.wikipedia.org/wiki/GCC gcc] הוא שם הקומפיילר. קומפיילר, כזכור, הוא תוכנה המקבלת קובץ קוד בשפה אחת ויוצרת קובץ תוכנה שקול בשפה אחרת. במקרה שלנו מדובר בקומפיילר המקבל תוכנית בשפת C ויוצר תוכנית מתאימה בשפת המכונה שמעבד המחשב מבין. במילים אחרות, gcc '''מתרגם''' עבורנו את הקובץ שכתבנו ב C לקובץ חדש בשפת מכונה.
 
[[תמונה:gcc.png|center|500px]]
<br />
 
פקודת ה shell שכתבנו, מפעילה את התוכנה gcc ונותנת לה מספר פרמטרים. הפרמטר הראשון, hello.c הוא שם הקובץ (בתוך התיקייה הנוכחית) שעליה לתרגם. הפרמטר השני o- מראה כי אנחנו עומדים לציין שם קובץ הפלט (Output)- שם הקובץ בשפת המכונה שיווצר. הערך של הפרמטר השני, hello, הוא שם הקובץ שינתן לקובץ בשפת המכונה. אם לא היינו מציינים את שם הקובץ שמכיל שפת מכונה וכותבים רק <code> gcc check.c </code> היה ניתן לו שם של ברירת מחדל - a.out.
 
לאחר הפעלת פקודת התרגום שרשמנו למעלה, יווצר בתיקייה הנוכחית קובץ חדש בשם hello. אם ננסה לקרוא אותו בעזרת עורך טקסט או להתייחס אליו באופן אחר כקובץ טקסט, נקבל מידע חסר משמעות. הקובץ הזה מקודד באופן אחר (לפעמים מכנים אותו קובץ בינארי).
 
'''הערה:''' בהמשך נוסיף עוד פרמטר אחד לפקודת הקומפילציה שיגרום לקומפיילר להיות יותר קפדן מבחינת ההערות שייתן. הפרמטר Wall- הוא קיצור של all warnings כלומר, דרישה שהקומפיילר יתריע בפנינו בכל מקרה שהוא רואה בעיה, גם עם לא מדובר בשגיאה ממש. הדרישה הזאת תעזור לכם מאוד לאתר תקלות חמקמקות במיוחד. פקודת הקומפילציה בה השתמשנו תיראה כעת כך:
<syntaxhighlight lang = "Bash">
gcc -Wall hello.c -o hello
</syntaxhighlight>
 
{{אתגר|אל תאמינו לכל מה שאתם קוראים. נסו לפתוח את התוכנה שיצרתם באמצעות עורך טקסט!
 
אפשר גם להשתמש בתוכנה cat בטרמינל כדי להראות את התוכנה שיצרתם:
<syntaxhighlight lang = "Bash">
cat hello
</syntaxhighlight>
 
ואם רוצים אפשר גם להשתמש בתוכנה cat בטרמינל כדי להראות את התוכנה cat:
<syntaxhighlight lang = "Bash">
cat /bin/cat
</syntaxhighlight>
 
ומה קיבלנו?
 
cat fight.
}}
 
=== הרצה ===
 
הקובץ hello הוא קובץ ריצה, הוא כתוב בשפה שאותה המעבד שלנו יודע לבצע. בשביל להריץ את הקובץ hello אפשר ללחוץ עליו לחיצה כפולה בסייר קבצים (תוכנה גרפית כגון thunar או konqueror בלינוקס), אבל זה לחלשים.
 
אנחנו נעדיף להריץ אותו בטרמינל.
 
סתם כתיבה של השם בשורת הפקודה כנראה תיתן שגיאה, משיקולי אבטחה.
<syntaxhighlight lang = "Bash">
check: command not found
</syntaxhighlight>
 
{{הארה|בלינוקס מאובטח נורמלי, כאשר רוצים להריץ תוכנה מהתיקיה שבתוכה נמצאים, צריך לציין במפורש שמדובר בתיקיה הזאת. הסיבה היא פשוטה: כשכותבים שם של תכנית, לינוקס ינסה לחפש אותה בכמה מיקומים, ביניהם התיקיה הנוכחית והתיקיה bin/. אם אתם רוצים להריץ את התוכנה bin/prog/ מספיק לכתוב prog והתוכנה שרציתם תרוץ. אבל מה אם מר האקר הכניס לכם לתיקיה הנוכחית וירוס בשם prog. מה יקרה כשתריצו prog? איזו תוכנה תרוץ?
 
מסקנה: לא לוקחים סיכונים, כשרוצים תוכנה מהתיקיה הנוכחית, כותבים במפורש prog/. ואז ברור ש"נקודה" מתכוון לתיקיה הנוכחית ואין ספק.}}
 
כדי להריץ את הקובץ יש לציין את המסלול המפורש:
<syntaxhighlight lang = "text">
./check
</syntaxhighlight>
ואז נקבל את הפלט:
<syntaxhighlight lang = "text">
Hello World
</syntaxhighlight>
 
אם תקלידו במערכת ההפעלה שלכם את השורה:
<syntaxhighlight lang = "text">
man gcc
</syntaxhighlight>
 
תקבלו את כל האופנים בהם ניתן להריץ את הקומפיילר.
 
{{תיבה עם כותרת|
כותרת=הטיפ של סשה|
תוכן=אם אתם רוצים לשנות משהו בתוכנה, תצטרכו לקמפל שוב. כמו בתרגום של ספר, אם עידכנתם את הספר המקורי, התרגום לא מתעדכן אוטומטית - צריך לתרגם מחדש.|
צבעכ=#F0F080|
צבער=#FFFFA0}}
 
==לאן עכשיו?==
לאחר שכתבתם תכנית ראשונה, מומלץ ללמוד קצת איך לעבוד עם הטרמינל בלינוקס, רק כדי לא להסתבך, ואז להמשיך לויקיספר של לימוד C.
 
===עבודה עם הטרמינל בלינוקס===
כדאי לעבור על [http://www.whatsup.org.il/index.php?pagename=%E4%FA%EE%F6%E0%E5%FA%20%E1%F1%E9%F1%E9%FA%20%E1%EE%F2%F8%EB%FA%20%E4%F7%E1%F6%E9%ED&op=modload&name=phpWiki&file=index המדריך המתוקצר של whatsup.org.il לפקודות בלינוקס], ולנסות לשחק עם הפקודות שמופיעות שם.
 
מי שצריך יותר הסברים ימצא אותם במדריך "[http://www.guides.co.il/download.php?guide=57 שורת פקודה – טיפים למשתמש הביתי]" שבאתר מדריך הטרמפיסט למחשבים.
 
* מי שרוצה להעמיק יכול להיעזר במדריך הבא שמלמד באנגלית עבודה עם הכלים של לינוקס (וגם של יוניקס): [http://www.doc.ic.ac.uk/~wjk/UnixIntro/ Unix intro]
 
===לימוד C===
 
אין כיום לבטא מקור רשמי ללמידת C. יש מדריכים בעברית, אבל או שהם מתמטיים מדי, או שהם משתמשים בצורת כתיבה מאוד שונה מאוד ממה שמקובל בבטא, או שהם חלקיים, או שיש להם בעיות בתצוגה, או שהם מכילים שגיאות, או שהם עסוקים בלהיות צודקים והקורא לא מבין מה הם רוצים מהחיים שלו. באנגלית יש המון מדריכים מעולים, אבל לא כל מי שמצטרף לבטא יכול כבר בהתחלה להשתלט על טקסט טכני באנגלית.
 
יום אחד יהיה ויקיספר C בעברית שמתאים בדיוק לבטאים. עד אז תבחרו מה הכי מתאים לכם ממה שיש.
 
אתם מוזמנים לצלול לספר שתבחרו ולחזור לכאן כשאתם כבר יודעים C!
 
'''מדריכי C בעברית'''
* למי שיצליח להתמודד עם הכתיבה הטכנית: [[w:he:שפת C|ויקיספר שפת C]] הוא ספר מעולה שגם מכיל בתוכו תרגילים תוך כדי לימוד. חסרונות: לפעמים כתוב בניסוח כל כך רשמי שבא לך לשים עניבה, מאוד לא תואם לסגנון כתיבת הקוד בבטא. כשכתוב "שקול לדלג על נושא זה", מומלץ למתחילים אכן לדלג עליו.
 
* לחובבי מתימטיקה: הויקיספר [[מבוא לתכנות ולמדעי המחשב בשפת C]] של אורי מוסנזון הוא מקור טוב. חסרונות: לא מתאים למי שמתימטיקה לא עושה לו את זה, מעט לא תואם לסגנון כתיבת הקוד בבטא, ויש כמה שגיאות עריכה.
 
* למי שצריך שיסדרו לו את החשיבה: [http://he.eytam.com/c/course/ קורס C המקוון של עיטם רובוטיקה] גם מלמד וגם נותן בסיס טוב לעבודה נכונה. החסרון: חסרים התרגילים שיש בספר המודפס, מאוד לא תואם לסגנון כתיבת הקוד בבטא, לא ניתן לעריכה ולכן לא ניתן להכניס שם טיפים שיעזרו להבנה.
 
'''מדריכי C באנגלית'''
* למי שרוצה להינות בזמן שהוא לומד: [http://beej.us/guide/bgc/ מדריך C של Beej] הוא אחד המשעשעים.
 
* למי שרוצה לדעת את כל מה שיש לדעת בצורה הכי נכונה (אבל יצטרך הרבה סבלנות): [[w:en:C programming|הויקיספר האנגלי לתכנות C]] יספר לכם את ה-כ-ל, והוא נחשב גם ויקיספר איכותי.
 
* אפשר גם לחפש בכל מנוע חיפוש "C tutorial". יש ה-מ-ו-ן מדריכים באנגלית ברשת.
 
 
'''תוספות'''
* מי שצריך קצת פירוט על עבודה עם gcc יוכל למצוא פרטים ב[http://www.linuxguide.org.il/debian/%D7%A9%D7%99%D7%9E%D7%95%D7%A9_%D7%91%D7%A1%D7%99%D7%A1%D7%99_%D7%91_gcc מדריך מlinuxguide].
 
==טחנתי את החומר, אני יודע C ועובד עם לינוקס! מה עכשיו?==
מזל טוב, סיימת את שלב הלימוד הראשוני.
זה הזמן לפנות לחברי בטא בקבוצת הפייסבוק Beta Program - public space ולשאול אותם באיזה פרוייקטים אפשר לעזור. הם כבר יכוונו אותך לממלכה המטורפת של בטא.
 
[[קטגוריה:מבוא לתכנות של קבוצת בטא]]