חברים יקרים, בזמן האחרון יש יותר מידי הודעות שעוסקים בנושא מציאת הקומפיילר המתחיל, שאלות כמו מאיםה להתחיל?, איזו שפה עדיפה? ועוד שאלות שלא ניתן לענות אליהן מכייון שהשאלה עצמה לא נכונה. ובכן, במטרה להרים פה איזה שהוא משהו שדומה לקהילת פיתוח החלטתי לרכז פה שו"ת (שאלות ותשובות).
לפני שאני אתחיל, לכל מי ששואל את עצמו "מי זה? ולמה נראה לו שהוא יודע?" אז אני אלי, הייתי מנהל אתר והקמתי את צוות התמיכה. היום אני סטודנט להנדסת תוכנה ועובד בתחום.
עכשיו אפשר להתחיל.
אני יודע שרובכם כנראה באים לפה בעבקות איזה תרגיל שקיבלו בבית הספר או לחילופין סקרנות. וזה בסדר. ככל שתרפו יותר מהאגו בתחום הזה, תגלו שתמיד יש מה ללמוד ותגדילו את הידע שלכם.
כלל ברזל - אין גוגל - אין מתכנת! (תדקלמו את זה) - תהיו מוכנים שלא תמיד אפשר להאכיל אתכם בכפית בלימודים או כל מקום אחר, בגישה לפתרון בעיות שונות יהיה עליכם לגשת למאגר המידע הגדול הלא הוא גוגל. מתכנת שלא מסוגל לעשות קצת מחקר לבדו וללמוד לבד, יתקשה מאד להתקדם בתחום.
מה זה תיכנות?
אני לא מתכוון לצטט פה כל מיני אמירות פלצניות. בגדול, לתכנת בשפה כל שהיא, זה להריץ שורה של פקודות ברצף הגיוני ע"מ להגיע למטרה/פתרון בעייה ממוחשב. אותם רצפי פקודות ירשמו בשפות שונות (שפות תיכנות) שאת כולם המעבד (זה שיבצע את הפקודות) לא מבין! . אלא מקבל אותם כאשר הם בשפת מכונה.
מה זה שפת מכונה?
נניח שישנה חיה מוזרה שחיה בתוך המחשב שלכם. כעת נניח שהחיה הזו מבינה שפה סודית, אבל מה? אין לכם מושג מה היא. עכשיו, נניח שאתם רוצים לומר לאותה חיה שבתוך המחשב שלכם לבצע כל מיני דברים אבל שוב, אין לכם מושג כיצד לומר לה זאת. כעת בואו נקרה ל"חיה" הזו בשמה - מעבד (CPU), המעבד היקר שלנו הוא רכיב אלקרטרוני, ומשוכלל ככל שיהיה, הוא אינו מבין אנגלית, רוסית, צרפתית,ערבית, הוא כל שפה אחרת. הוא מבין רק 1 ו- 0 .(מי שלומד אלקטרוניקה.חשמל כנראה יבין לעומק גם למה).
מסיבה זו כל פקודה נרצה שהמעבד יבצע דרך התכנות שלנו יגיע בסופו של דבר לשפת המכונה הזו, הידוע גם כ-שפה בינארית (מלשון בינארי->2)
מה זה קומפיילר?
לאחר שהבנו מה זה שפה בינארית, אנחנו צריכים בכל זאת לתת פקודות למעבד. מי שירצה לרשום למעבד לבצע פקודה פשוטה (כמו יצירת לולאה פשוטה למשל) יאלץ לרשום את הפקודות האלה בקוד בינארי (שפת מוכנה) מאד מאד מאד (מאד...) ארוך. וכל זה למשהו מאד מאד פשוט. אז לכן זה מאד לא פרקטי. לכן המציאו בני האדם את שפות התיכנות. שהם שפות קצת יותר קרובות לשפה אנושית. אבל, שוב אנו חוזרים לבעיה שהמעבד לא יבין את אותם פקודות. את זה עושה לכם הקומפיילר (מהדר).
אותו קומפיילר דואג שתרשמו את הפקודות שלכם לפי חוקי השפה שאתם רושמים בה. ובסופו של דבר לוקח את הקוד שלכם וממיר אותה לשפת מכונה (1 ו- 0).
האמת שבדרך הוא ממיר את הקוד לשפה תחתית בשם אסמבלר, אבל אני לא אכנס לזה אלא אם כן תבקשו זאת.
עם איזה קומפיילר ממולץ לי לעבוד?
יופי. פה אני רוצה לחדד משהו!:
יש אין סוף מהדרים וסביבות פיתוח. כדי שתתרגלו לעבוד במה שמקובל בעולם האמיתי אני מציע לעבוד כך: (כדי למנוע ויכוחים - זאת המלצה שלי בלבד! לא טוב לכם? לא צריך.. )
visual studio 2008 (לא חסר הורדות מלאות ברשת או שתורידו גרסת ניסיון ל חודשיים)
זוהי הסביבה הדומיננתית לפיתוח בשפות הבאות:
הקומפיילר הזה כולל בתוכו (בגרסת הPRO) את כל התמיכות לכל השפות שציינתי ועוד. הוא מהווה סביבת עבודה (ולא רק קומפיילר) נוחה יעילה וחזקה מאד.
- c
- c++
- asp.net
- vb.net
- וכל שאר הטכנולוגיות שעושות שימוש בטכנולוגיית .NET
ECLIPSE + JDK 1.6 - שניהם חינמיים
הוא כמובן יכול לעבוד עם שפות רבות
- JAVA
- C
אני רוצה להתחיל לתכנת. מאיזו שפה להתחיל?
ת. השאלה היא כמה אתם באמת רוצים להיכנס לעולם הפיתוח. אני אתן פה את המסלול, שלדעתי (!), יעלה אתכם על דרך המלך ויוציא אתכם מפתחים תותחים:
יש תיכנות WEB ויש תיכנות מדף. מה עדיף?
- C
- C++
- JAVA
- ASSEMBLER 16/32 (מומלץ ללמוד אותו בשלב זה כדי לקבל תמונה אמיתית של תהליכים)
- html/css
- asp
- php
- asp.net
- c#
- sql+ xml
- xsl
- java script
- ajax
אז ראשית חשוב שכוווולם יפנימו-> העולם עובר יותר ויותר לעולם הWEB. היום היכולות של מפתחי WEB הרבה יותר גבוה ממה שהיה בעקבות התפתחות הטכנולוגיה. יגיע היום ורוב מוצרי המדף (OFFICE וכו) יעלמו ויהיו מבוססי WEB. בצעו שיקול זה כאשר הרגע יגיע להחליט. לכן חשוב מאד מאד לבצע היכרות עם עולם הWEB, עם פרוטוקולי תקשורת ועם השפות הנלוות.
מה זה שפה עילית?
שפה עילית היא שפת תיכנות שקרובה יותר לשפת אדם (אנגלית) ורחוקה יותר משפת מכונה.
שפה שאינה עילית היא שפה שמאד קרובה לשפת מכונה. דוגמא:
נרצה לבצע השמה ולשמים בתוך משתנה את הערך 5 (לקיחת ערך ממקום אחד לתוך השני): בשפה עלית כמו C:
פשוט נכון? ובכן זה יותר זה המראה של שפות עיליות. בשפה לא עילית כמו אסמבלר:x=5
וזה עוד בלי הגדרת משתנים וטיפול בזיכרון המחסניתmov ax,5
mov x,ax
----------
טוב, אני אוסיף עוד בפעם אחרת (או שהמנהלים ירגישו חופשי להוסיף שאלות שחוזרות על עצמן)
אני מאד מקווה שנצליח לגבש פה קהילה קצת יותר עם מוטיבציה לפיתוח. זה יעזור לכולנו.![]()








עוד אין לך
ציטוט ההודעה





