עבור לתוכן

ספר ל-C

Featured Replies

פורסם

אין צורך לצטט את ההודעה האחרונה כשאתה מגיב עליה...

  • 3 שבועות מאוחר יותר...
פורסם

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

פורסם

אני יכול להעיד מהניסיון שלי באוניברסיטה הפתוחה:

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

למדתי C בקורס אחר, והשפה חוזרת בקורסים מתקדמים.

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

שורה תחתונה, אני מצטרף להמלצה על C#/Java בתור שפה ראשונה, ועד כמה שידוע לי באוניברסיטאות יעדיפו Java, למרות שהשפות זהות בבסיס.

פורסם

כמובן, אני ממליץ ללמוד #C או Java. יש איזו קונספציה מוזרה ש-C היא "הבסיס לכל השפות", וזה פשוט לא נכון. יש הרבה מתכנתים טובים שלא למדו C מעולם (סתם לדוגמה - חברתי מתכנתת Java כבר 6 שנים ורק עכשיו התחילה ללמוד C בשביל האוניברסיטה, ואני אמנם למדתי C אבל מעולם לא עבדתי בה מעבר לפרוייקטים באוניברסיטה - אני עובד רק ב-#C ומעט ++C).

מי שרוצה ללמוד שפה ראשונה, הרבה שפות מתאימות עבורו וC איננה "הבסיס לכל השפות"

מה שכן אפשר לומר על C כעל "בסיס לשפות" היא שרוב שפות התכנות, הקומפיילר שלהן כתוב ב-C (או ++C), מערכות הפעלה (קרנלים ודרייברים) כתובות ב-C וכו'. רוב השפות שצויינו כאן הקומפיילר/אינטרפרטר שלהן נכתב ב-C או שהם מחוללים קוד ביניים (בלתי מובן בעליל) ב-C.

מה שבטוח, שאם תרצה לעבוד או ללמוד תכנות מערכות, תצטרך ללמוד בשלב כלשהו את C ואולי גם את אחותה השמנה ++C שבחלק מהפרוייקטים מחליפה אותה (לדוג' ה-JVM והקומפיילר של java כתובים ב++C)

מה מיוחד כ"כ ב-C שהיא משמשת כמעט לכל פרוייקט?

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

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

ג. היום יש קומפיילר C לכל חומרה שהיא ואם רוצים לכתוב משהו שירוץ נייטיב על הרבה פלטפורמות אז בחירה ב-C סבירה בהחלט (ולרוב הקומפיילר הוא gcc)

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים