שניצל פורסם 2013 בינואר 21 Share פורסם 2013 בינואר 21 ברוכים הבאים!בערך פעם בשבוע נשאלת השאלה איזו שפת תכנות כדאי ללמוד, ומאיפה כדאי להתחיל. לכן החלטתי לפתוח את הדיון הזה שבו תוכלו להביע את דעתכם בנושא.למקורות מידע בנושאי תכנות, אנא היכנסו לדיונים הבאים:שפות עילית (Java, C/C++, Python וכו')פיתוח אתרי אינטרנט (HTML, JavaScript, CSS, PHP וכו')אלו הן שתי האגורות שלי בנושא:בראש ובראשונה חשוב לזכור את המשפט: שפת תכנות היא כלי, לא מטרה. המטרה היא לתכנת, ולכן פחות חשוב איזו שפה תלמדו, ויותר חשוב להבין ולהפנים את העקרונות התכנותיים. מתכנת טוב יידע להתמודד עם שפות חדשות בקלות, כאשר כל מה שהוא יצטרך ללמוד זה תחביר חדש של השפה. כיוון שהיכולות של השפות הפופולריות כיום הן די זהות ביכולותיהן (זה נובע מכך שהן שפות General Purpose - שפות שנועדו לכתיבת כל תכנית, ולא רק לתוכניות מסוג מסוים) השיקולים לבחירת השפה צריכים לנבוע מכמה נוח לעבוד עם השפה, כמה היא קלה ללמידה, וכמה היא מלמדת עקרונות תכנות נכונים.ההמלצה העיקרית שלי היא להתחיל ללמוד אחת משלוש השפות: Python, Java או #C. שלושתן שפות מודרניות, מונחות עצמים עם ניהול זכרון, ועם בסיס משתמשים רחב מאוד.Python היא שפה מאוד נוחה וקלה ללמידה עם כללי תחביר מאוד גמישים. הכללים הגמישים האלו מאפשרים ללמוד אותה במהירות והופכים אותה לשפה מאוד קריאה (כלומר, מקריאה בלבד של הקוד אפשר להבין בקלות מה הוא עושה), ומאפשרים למתכנתים להתמקד באלגוריתמיקה ולא בהתעסקות עם "ג'יפה" של מימוש. עם זאת, הגמישות הזו היא חרב פיפיות, משום שהיא יכולה גם להקנות למתכנת הרגלי תכנות לא נכונים. אני ממליץ להתחיל משפה זו למי שרוצה לקבל טעימה מעולם התכנות, ולכתוב תוכניות פשוטות במהירות וביעילות.Java ו-#C הן שתי שפות מאוד דומות (#C שאבה השראה רבה מ-Java). שתיהן מזכירות את ++C בתחביר שלהן, אבל שם הדמיון מסתיים, והן שפות הרבה יותר נוחות וחזקות ממנה (למרות השם, אין קשר בין ++C ל-#C). בניגוד לפייתון יש להן חוקי תחביר הרבה יותר קשיחים, שלדעתי יעזרו להקנות לכם הרגלי תכנות נכונים. לשתיהן יש סביבות פיתוח חינמיות (Eclipse עבור Java, ו-Visual Studio Express עבור #C) ועשרות, אם לא מאות, מדריכים ברשת. יש לשים לב שבגלל שהשפות כל הזמן מתפתחות ומשתפרות עדיף ללמוד ממדריך עדכני, לפחות משנת 2005-6 (ליתר דיוק, לפחות מגרסה 5.0 של Java או גרסה 2.0 של #C). אישית, אני מעדיף את שפת #C ממספר סיבות - היא מכילה מספר כלים יותר חזקים מאשר Java, מיקרוסופט כל הזמן מעדכנת ומכניסה בה שיפורים, והחבילה הסטנדרטית שלה יותר רחבה ונוחה לשימוש (לדוגמה, כתיבת ממשק גרפי - GUI - הרבה יותר קלה ב-#C מאשר ב-Java). לעומתה, Java הוא Cross-Platform (כלומר ניתן להשתמש בה בכל מערכת הפעלה, ולא רק בחלונות) והיא יותר חופשית לשימוש (רוב השפה הוא קוד פתוח) ולכן היא יותר נפוצה בלימודים באוניברסיטאות.בניגוד למה שרבים אומרים, אני ממליץ לא להתחיל מ-C או מ-++C (או רחמנא ליצלן, ללמוד C ואז "להתקדם" ל-++C). הן אמנם מלמדות יותר איך "באמת" עובד המחשב (על ידי כך שהן מתורגמות ישירות לשפת המכונה שרצה על המעבד ללא שפת ביניים, והן משתמשות בגישה ישירה לזכרון בלי שום ניהול) והן עדיין השפות הפופולריות ביותר בשוק פיתוח התוכנה, אך הן יותר קשות ללימוד ולתחזוקה, מתכנתים צריכים להתעסק הרבה ב"ג'יפה" שמסביב לתכנות, וזה ויכול בקלות מאוד להרתיע מתכנתים חדשים.בנוסף, חשוב לציין האם אתם רוצים ללמוד שפת תכנות למטרה ספציפית. לדוגמה, אם ברצונכם ללמוד לתכנת עבור טלפונים סלולריים, אז מומלץ ללמוד דווקא Java (אשר באמצעותה כותבים למערכת Android) או Objective-C (שפה המבוססת על C, ובאמצעותה כותבים למערכת iOS). אם ברצונכם לפתח אתרי אינטרנט, אז תלמדו את השפות המתאימות לכך - HTML+CSS (לבנייה ועיצוב של אתרים) ולאחר מכן JavaScript ושפת צד שרת (PHP, ASP.NET וכד') בשביל לבנות אתרים דינמיים.עוד פרט חשוב: כמו כל נושא בתחום המחשבים, חשוב לדעת אנגלית ברמה סבירה. אמנם קיימים ספרים ומדריכים ברשת בעברית המלמדים תכנות, אך בדרך כלל הרמה שלהם פחותה מזו של חבריהם באנגלית, הם לא מעודכנים, או שהם עוסקים אך ורק בנושאים הבסיסיים, ולכן הם טובים למתחילים אבל כבר לא יתאימו למתכנת שרוצה ללמוד נושאים מתקדמים יותר. קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2013 בינואר 23 מחבר Share פורסם 2013 בינואר 23 אני חושב שצריך להתחשב גם בגיל הלומד.צודק, ובגלל זה לתלמידים צעירים אני אמליץ להתחיל מפייתון (ולא בייסיק). האינטרפרטר גם מאפשר להריץ קוד ולקבל תוצאות מיד, מה שלדעתי נותן חווית לימוד יותר מהנה.חוץ מזה, אין קשר בין זה שהשפה היא מפורשת (interpreted) לזה שאין צורך להגדיר בה משתנים (אלה שתי תכונות נפרדות של השפה, למרות שהרבה פעמים שפות המקיימות את האחת מקיימות גם את השנייה). לדוגמה, Visual Basic היא שפה שבה אין צורך להגדיר משתנים מראש, אבל היא אינה מפורשת. קישור לתוכן שתף באתרים אחרים More sharing options...
Dimka פורסם 2013 בינואר 23 Share פורסם 2013 בינואר 23 בתור אחד שכבר טעם מאסמבלי, C, JAVA, Visual basic, C#הייתי מוסיף במקום אנגלית סבירה, אנגלית טכנית...מה שרשמת זה מעולה ולדעתי יש מקום לשים בסטיקי. קישור לתוכן שתף באתרים אחרים More sharing options...
Gil28 פורסם 2013 בינואר 23 Share פורסם 2013 בינואר 23 רעיון מעולה.אני מציע גם להוסיף מדריכים טובים ועוד FAQ למיניהם, לכל שפה. קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2013 בינואר 24 מחבר Share פורסם 2013 בינואר 24 http://hwzone.co.il/community/index.php?topic=553185.0 http://hwzone.co.il/community/index.php?topic=553186.0 קישור לתוכן שתף באתרים אחרים More sharing options...
Gil28 פורסם 2013 בינואר 24 Share פורסם 2013 בינואר 24 אחלה, עכשיו תוסיף את שני הקישורים הללו להודעה הראשית.אולי מחר אני אמלא שם כמה מדריכים טובים. קישור לתוכן שתף באתרים אחרים More sharing options...
tranq פורסם 2013 בינואר 25 Share פורסם 2013 בינואר 25 אולי כדאי לשים את המקורות המומלצים באיזהשהו דף מרוכז\בויקי בפורמט אחיד לפני שזה יתפרס על פני כמה דפים כשכל הודעה מודגשת בסגנון שונה? קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2013 בינואר 26 מחבר Share פורסם 2013 בינואר 26 כשנגיע למצב שיהיו לנו מספיק מקורות בשביל זה, יהיה על מה לדבר. בינתיים זה עוד לא רלוונטי, והמטרה העיקרית של הדיונים הללו היא לאסוף מקורות. בכל מקרה, הנושא לא רלוונטי לת'רד הנוכחי. קישור לתוכן שתף באתרים אחרים More sharing options...
nat64x פורסם 2013 בינואר 26 Share פורסם 2013 בינואר 26 לא משנה. אין לי כוח להתעסק עם זה. בהצלחה. קישור לתוכן שתף באתרים אחרים More sharing options...
lordgod פורסם 2013 בינואר 26 Share פורסם 2013 בינואר 26 מה השפה הכי מומלצת למתחיל,בשביל ליצור תוכנה עם GUI,שתעבוד עם לינוקס,ווינדווס ומק,ושלא תגביל אותי באיזשהי צורה ?ז"א שאני יכתוב את כל התוכנה בה,ולא אצטרך להתעסק בעוד שפה. קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2013 בינואר 26 מחבר Share פורסם 2013 בינואר 26 Java כמובן. אמנם ה-gui בה יכול להיות קצת מתסכל בהתחלה, אבל הבנתי שכשלומדים לעבוד איתו זה אמור להיות מאוד נוח. קישור לתוכן שתף באתרים אחרים More sharing options...
lordgod פורסם 2013 בינואר 26 Share פורסם 2013 בינואר 26 Java כמובן. אמנם ה-gui בה יכול להיות קצת מתסכל בהתחלה, אבל הבנתי שכשלומדים לעבוד איתו זה אמור להיות מאוד נוח.תודה ^^ קישור לתוכן שתף באתרים אחרים More sharing options...
lordgod פורסם 2013 בפברואר 18 Share פורסם 2013 בפברואר 18 מצטער על הדאבל פוסט,אני רואה שאף אחד לא מגיב פה..בכל מקרה,השאלה שלי היא למה לא לבחור בפייתון,לפי הדרישות שרשמתי מקודם?כרגע אין לי זמן לזה,אבל שאני יתפנה ללמוד שפת תכנות אני רוצה ללמוד אחת ולעשות בחירה נכונה לפני שאני מתחיל לחרוש,יש לי קצת רקע בCאז אני רוצה משהו עם הדרישות שרשמתי למעלה,וחשבתי למה לא פייתון? קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2013 בפברואר 18 מחבר Share פורסם 2013 בפברואר 18 גם פייתון תתאים למה שאתה מחפש. הסברתי בהודעה הראשונה למה לדעתי ג'אווה עדיפה על פניה, אבל זה עניין של העדפה אישית - כאמור לדעתי ג'אווה מקנה הרגלי תכנות נכונים יותר, וקל בה יותר לבנות גדולות (אם כי יש רבים שיחלקו על דעתי). קישור לתוכן שתף באתרים אחרים More sharing options...
gman_il פורסם 2013 בפברואר 19 Share פורסם 2013 בפברואר 19 הדיון הזה הוא כללי מידי.אין תשובה אחת טובה ואין תשובות לא נכונות.יש כמה שאלות שצריך לשאול:מה הצורך? ידע כללי? התקבלות למקום עבודה? הקמת אפליקציה מסוימת? להריווח הכי הרבה כסף? קישור לתוכן שתף באתרים אחרים More sharing options...
Recommended Posts
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.