עבור לתוכן

מחפש מאיזה שפה להתחיל ללמוד

Featured Replies

פורסם

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

עכשיו קראתי קצת באינטרנט והאמת זה עוד יותר בילבל אותי כי ראיתי שיש מיליון שפות תכנות אז השאלה שלי זה מאיפה להתחיל.

אני מעוניין בעצם בשפה הכי פשוטה שממנה כביכול ייצאו שפות אחרות עכשיו אם אני לא טועה זה C או C++ או בC#

יש לי ספר של הוד עמי לשפת התכנות C שיצא ב2001(שאיתו למדתי בכיתב ח' :) ) השאלה אם הוא עדיין רלוונטי?

אני יודע שההודעה די מבולגנת כזה אבל פשוט אני די מבולבל ורציתי לתת כמה שיותר מידע לגבי

פורסם

קודם כל תפריד בין שלוש השפות השונות: C ו-++C הן שפות דומות (ליתר דיוק - ++C היא "הרחבה" של C). לעומתן, #C היא שפה שונה לחלוטין (היא יותר דומה ל-Java מאשר לשתי השפות הנ"ל) וגם הרבה יותר חדשה (היא בת 10 שנים, בניגוד ל-C ו-++C שהן בנות כ-40 ו-30 שנה בהתאמה).

הבעיה העיקרית עם ספרים ב-C בעברית היא שהם נוטים להיות מיושנים. וכשאני אומר מיושנים אני מתכוון שאמנם הם יצאו בשנת 2001, אבל הם מלמדים באופן שהיה נכון לשנת 1985 (שפת C, אגב, לא ממש השתנתה ב-10 השנים האחרונות).

בכל מקרה, מבחינת שפות אני יכול להציע שלושה כיוונים אפשריים:

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

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

- ++C. בעקרון אני פחות ממליץ עליה, כי היא יותר ישנה ויותר קשה ללמידה. היתרון הוא שהשפה הזו היא יותר low-level וככה תכיר קצת יותר לעומק את נבכי המחשב, איך באמת הוא עובד וכו'.

פורסם

השאלה נשאלה פה הרבה. לכל אחד יש המלצות משלו. הנה הפרספקטיבה שלי:

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

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

שפה פשוטה יותר עם פחות סיבוכים, שאולי עדיף ללמוד בהתחלה היא שפה כמו פייתון - היא קלה יותר ללימוד ושימוש. עושים בה גם שימוש מקצועי ומחקרי. אבל דווקא בגלל שהיא חוסכת מהמשתמש מספר פרטים שהם low level, היא קצת יותר מוגבלת בשימושים שלה מ-C. מי שיודע פייתון לא בהכרח מבין מצביעים, paging, קבצים, או אפילו איך בונים מבני נתונים בסיסיים כמו רשימה מקושרת או עצים. בעצם, לא מבין איך עובד מחשב.

אני ממליץ ללמוד את שתיהן, אבל על מנת ללמוד תכנות - עדיף להתחיל עם פייתון.

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

פורסם

אתה מוזמן להתסכל בתגובה שלי כאן:

http://hwzone.co.il/community/index.php?topic=494791.msg4247004#msg4247004

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

אחת מהדברים שכתבתי שם:

JAVA זו שפה נפלאה (אני יותר אוהב C#,שמאוד דומה, אבל יש לה הרבה פיצ'רים שואין לJAVA) אבל מאוד high level. באופן כללי אני מאמין שמתכנת צריך להתחיל מהבסיס, ועל אחת כמה וכמה מישהו שהכיוון שלו זה אבטחת מידע.

בJAVA אמנם תראה דברים זזים על המסך הרבה יותר מהר, ותוכל לבנות אפליקציות יותר בקלות, אבל JAVA ו C# מסתירות ממך הרבה מאוד.

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

ה"אני מאמין" שלי אומר שמתכנת צריך לדעת מה קורה כשהוא מריץ פקודה מסוימת. בשביל זה צריך להתחיל מהבסיס.

אני לא חושב שצריך להתחיל מאסמבלי - מהסיבה הפשוטה שאני מרגיש שידיעה מעמיקה של C++ מביאה הבנה מספקת של איך דברים עובדים.

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

אגב, העדכון האחרון לC++ נעשה ב2003 אם אני לא טועה.

פייתון בעיני היא לא שפת תכנות מהסיבות שתאר זליג. אני אוסיף ואומר שאת הדברים שזליג תאר כסיבות לא ללמוד פייתון גם לא תדע (בהכרח) אם תתחיל בC# או JAVA, כי גם הן מסתירות את הדברים האלה מהמתכנת (ברמה מסוימת).

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

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

בעיני כדאי להשקיע בללמוד STL, שאמנם לא רלוונטי לC# או JAVA אבל בהחלט מספק עקרונות טובים של עבודה עם ספריה סטנדרטית.

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

ארכיון

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

דיונים חדשים