לימוד שפות תכנות

ohade

New member
לימוד שפות תכנות

שלום לכולם. אני מעוניין להיכנס לעולם התכנות וללמוד שפות. האם מישהו יכול לתת לי רשימה של ספרים/תוכנות/אתרים לשפות שמתחיל כמוני יכול להתרשם מהם... מודה לכם.
 

scalla

New member
עד כמה אתה רוצה להכנס לעולם הזה?

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

ohade

New member
אני...

אני רוצה מאוד ללמוד את יכולות התכנות... נכנס לי ג'וק חזק למחשבים ואני חושב שתכנות זה דרך מעולה להיכנס לזה.
 

scalla

New member
טוב אם נכנס לך ג'וק

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

DadleFish

New member
שאלה

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

MotiAd

New member
אני יכול להגיד לך...

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

gilad_no

New member
מוטי,

אם אתה כבר מתחיל עם שפות, למה לא לכתוב כבר מאמר כולל (כמו שהבטחת לנו :))?
 

MotiAd

New member
../images/Emo11.gif../images/Emo6.gif אני יעשה את זה בשמחה...

אבל רק בחופש הגדול.
 
עוד דעה...../images/Emo26.gif

בדרך כלל השפות שאוהבים להתחיל מהן זה: פסקל, C או Java.
פסקל: היתרון הוא שזו שפה "פדנטית"... קשה לך לעשות בה שטויות, וזה מאוד חשוב כשמתחילים ללמוד תכנות - היא מאלצת אותך לאמץ הרגלי-תכנות נכונים. החסרון הוא שהשפה לא ממש מבוקשת בשוק... (שלא תטעה - אם אתה יודע את עקרונות התכנות בפסקל - אתה יודע את עקרונות התכנות בכל השפות הפופולריות האחרות... המעבר ל-C יהיה מהיר ופשוט יחסית ללמוד אותה כפשה ראשונה).
C: שפה מאוד פופולרית ומאוד מבוקשת. יתרון נוסף הוא שהתחביר שלה דומה לזה של C++ ושל Java, ומהבחינה הזו - זה מקל את המעבר אליהן (בהשווה לפסקל למשל). החסרון הוא שהשפה קצת "קריפטית" - התחביר שלה פחות מובן אינטואיטיבית, וקל מאוד לעשות בה שטויות וללמוד הרגלי-תכנות גרועים...
Java: גם היא פופולרית מאוד. שפה מאוד מגוונת ובניגוד ל-C/C++ מהרבה בחינות דווקא כן מכווינה אותה להרגלי תכנות נכונים (משהו בין פסקל ל-C מהבחינה הזו). בנוסף - מדובר בשפה מונחית אובייקטים (OOP)... השאלה היא אם זה יתרון או חסרון...
יתרון: כיום זה אחד העקרונות החשובים ביותר של עולם התכנות, והוא עקרון מהותי בשפות תכנות רבות (C++, Java, Csharp וכו')... חסרון: יש הטוענים שכדאי להתחיל משפה שהיא אינה OOP (=שפה פרוצדורלית) כמו C או פסקל, ורק לאחר שלומדים את העקרונות הפרוצדורלים - לעבור לשפה OOP כמו Java או C++. מקווה שעזר במשהו...
 
אף פעם לא הבנתי את הגישה הזאת.

למה ללמוד שפה לא OOP ואז ללמוד שפה שהיא כן OOP, אם OOP זה הדבר שנחשב למשו הכי טוב שקרה לשוק שפות התכנות בשנים האחרונות? לעזאזל, אני לא יכול אפילו למצוא אנלוגיה מתאימה לזה, כי זה פשוט דבר שלא הרבה נעשה, וטוב שכך. חבר שלי, למשל, לומד באוניברסיטה הפתוחה ++C, אבל בתור שפה פרוצדורלית בלי להיכנס למעמקי הOOP. ואני שואל - למה? טוב, נו, גם הצעקתה וכאלה
.
 
תורת-היחסות...../images/Emo26.gif

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

IP yuval

New member
למדתי C, ולמדתי גם קצת פסקל,

ואני לא מסכים איתך בקשר לזה שבC קל לקבל הרגלים גרועים וקל לעשות שגיאות. הרגלי תכנות לא נכונים קבלתי דווקא כשלמדתי פסקל, אבל עכשיו כשאני עובד עם gcc -ansi -pedantic -W -Wall, אני חושב לפחות שאני מקבל הרגלי תכנות נכונים. אני גם מעדיף את התחביר של C, לדעתי הוא יותר נוח ויותר מובן.
 
בגלל זה אתה חושב ש-C יותר מובן...

תמיד שפה שלמדת ראשונה נראית לך הכי טבעית... (תשאל סיני אם סינית היא שפה מסובכת...
)
 

scalla

New member
אני למדתי את BASIC ואחרי זה את

PASCAL, וC נראת לי הרבה יותר טיבעית מאשר שתייהן.
 
אני למדתי בדיוק את אותן שפות

ובדיוק באותו סדר - ואני חושב בדיוק הפוך. זו גם שאלה של כמה עבדת עם כל אחת מהן... ברור שהיום, אחרי שטחנתי C, CPP ו-Java - הסינטקס של C נראה לי טבעי כמו מיץ של פריגת, so what?...
 

DecayCell

New member
אני לא חושב שזה בכלל משנה...

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