כך תבחר את שפת התכנות הראשונה שלך !
כיצד לבחור את שפת התיכנות הראשונה
מאת טל פורסם בתאריך 5/9/2008 12:42:00 AM
הרבה אנשים מגיעים להחלטה (המצויינת) שהם רוצים ללמוד לתכנת. יכולת התיכנות מאפשרת לכתוב תוכנות, לפתח משחקים ולבנות אתרי אינטרנט דינאמים. אני ממליץ בחום לכל אחד שמביע עניין בנושא פשוט להתחיל לתכנת, אין צורך להשקיע כסף או לרכוש תוכנות מיוחדות.
שאלה שנשאלת פעמים רבות היא:
"באיזה שפה כדאי להתחיל לתכנת ?"
אם תשאלו את השאלה ברחבי האינטרנט, בוודאי תקבלו הרבה תשובות סותרות:
* "ASM הטובה ביותר להבנה אמיתית של המחשב"
* "חייבים לדעת C בשביל בסיס חזק"
* "#C היא השפה הטובה ביותר למתחילים"
* וכדומה...
למרות שיש אמת בכל אחת מן התשובות, קשה באמת לדעת מהי התשובה הנכונה ומהי השפה הכי מתאימה בשבילכם. שפות התיכנות השונות מאפשרות יכולות שונות ולכל אחת יתרונות וחסרונות. כאשר מדובר בשפה הראשונה שתלמדו, נכנסים שיקולים נוספים.
השיקול העיקרי שיש לשים אליו לב הוא המשפט: "אל תלמדו שפת תיכנות, תלמדו לתכנת". למידה נכונה של יסודות התיכנות תאפשר לכם ללמוד כל שפת תכנות באופן מהיר יותר, בהיר יותר והתוכניות שתכתבו יהיו טובות יותר. כמובן שכדי להתחיל ללמוד את העקרונות, יש לעשות את זה תוך כדי למידת שפת תכנות המתאימה לכך.
ננסה לעשות מעט סדר בדברים ולבסוף אני אמליץ על השפה שלדעתי הכי כדאי להתחיל בה.
אסמבלי (Assembly). מחשב איננו מבין את שפת התיכנות שבה אנו כותבים ויכול להבין רק שפת מכונה. לבני אדם קשה מאוד לקרוא ולכתוב בשפת מכונה ולכן אסמבלי מאפשרת לכתוב פקודות מעט יותר ברורות שיתורגמו לשפת מכונה. בשפה זו, אפילו על מנת לכתוב תוכנית פשוטה(הכותהת את המילה Hello למסך) נדרשות פקודות רבות. שפת אסמבלי נקראת שפת סף וכל השפות הבאות נקראות שפות עיליות והפקודות בהן דומות מאוד לשפה האנגלית.
קוד לדוגמה ב-Assembly:
mov ax, 100 add ax, [EAX] mov A, ax
שפת סי (C). שפה נפלאה שכמעט ואינה מגבילה את המתכנת ומאפשרת לו חופש בתיכנות התוכניות. ניתן לתכנת בה תוכניות מהירות ובאופן פשוט יחסי. פעולות פשוטות כמו כתיבה למסך כוללת פקודה אחת, אך כאשר רוצה לתכנת תוכניות מורכבות יותר, יש לכתוב המון קוד בעצמנו. בנוסף, המתכנת נדרש לנהל את הזיכרון, משימה שעלולה להתגלות כמעט קשה בהתחלה.
כך נראה קוד ב-C:
int x;
x = 5;
printf("Hello %i",x);שפת סי פלוס פלוס (++C). זוהי שפה המרחיבה את C ומעניקה לה תכונות ויכולות חדשות. היכולת המשמעותית ביותר היא תיכנות מונחה עצמים (OOP = Object Oriented Programming), המאפשרת לכתוב תוכניות גדולות ומורכבות. שפה מצויינת , הרבה תוכנות ומשחקים נכתבו בעזרתה.
קוד C++ לדוגמה:
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
int result;
result = abs(-10);
cout << result;
return 0;
}שפת Java. שפת תיכנות קלה ופשוטה בעלת יכולות מתקדמות. היא מאפשרת כתיבת תוכנות מסובכות בזמן קצר יחסית ובעזרת מספר מועט של פקודות ניתן לבצע פעולות מסובכות(כמו שליחת מידע לאינטרנט). Java היא שפה מונחת עצמים כמו ++C, שיודעת לנהל את הזיכרון בעצמה וחוסכת את המשימה מהמתכנת. תוכניות הנכתבות ב-Java יכולות לרוץ על כל מערכת הפעלה: Windows, Linux, Mac, Unix ועוד, ולכן מהווה יתרון לעומת שפות כמו C ו-++C.
קוד ב-Java נראה כך:
public class ConvertDoubleToString {
public static void main(String[] args) {
double aDouble = 0.11;
String aString = Double.toString(aDouble);
}
}שפת סי שארפ (#C). דומה מאוד ל-Java, מונחת עצמים, מנהלת את הזיכרון בעצמה ומאפשרת לפתח תוכניות מורכבות בזמן קצר. מאפשרת תיכנות תוכניות רגילות(Windows Applications) ותוכנות לרשת האינטרנט(Web Applications).
קוד לדוגמה:
using System;
public class FindRadius {
public static void Main() {
Double r;
Double area;
area = 10.0;
r = Math.Sqrt(area / 3.1416);
Console.WriteLine("Radius is " + r);
}
}ההמלצה שלי
אני יוצא מנקודת הנחה שבסופו של דבר מתכנתים יודעים לתכנת במספר שפות תכנות. לכן חשוב לבחור את הסדר בו לומדים אותן. אם ברצונכם ללמוד את עקרונות התיכנות בצורה ברורה, פשוטה ויסודית, ולאחר מכן להיות מסוגלים לכתוב תוכניות מורכבות שעובדות, ההמלצה שלי היא ללמוד Java או #C.
הדמיון בין שתי השפות גדול ולכן ההיתרונות שהן מציעות למתחילים יכולים להסתכם בכך:
1. שפות מונחות עצמים
2. לא נדרש מהמתכנת לנהל את הזיכרון והן לא משתמשות במצביעים (Pointers)
3. מהדר(Compiler) נוח וברור
תוכלו להתחיל את מסע הלימודים שלכם בעזרת מדריכי ה-Java באתר, המלווים את המתכנת המתחיל מהתקנת Java, דרך כתיבת התוכנית הראשונה והרצתה וממשיכה בהקניית כלים לתיכנות.
אני אשמח לשמוע (בתגובות) באיזה שפת תכנות בחרתם בסוף. בהצלחה !
תגיות: Java, C#, .NET, כללי


