עבור לתוכן

מה כדאי ללמוד היום? ++Java ,.NET3.5 ,C, או אולי בכלל web mastering?

Featured Replies

פורסם

יש לי רקע בתכנות עוד מתק' התיכון (פורטרן, בייסיק ופסקל) וכן בJava מהלימודים באוניברסיטה. אין ספק שעבר לא מעט זמן מאז אך אני יכול לומר שאני נהנתי מאד מלימודי התכנות.

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

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

הנה כמה שאלות בהם תוכלו לעשות לי סדר:

- איפה יש ביקוש היום, אם בכלל, ואיפה השוק מוצף (net.?)

- מה צפי ההכנסה בתחילת הדרך ובהמשך לאחר צבירת נסיון מסויים?

- איזה נתיב ייתן לי אפשרויות טובות יותר להתפתח ולהתקדם בהם?

- איזו שפה נראה שהולכת להיות יותר דומיננטית בשוק העבודה ונוגעת ביותר תחמים?

- מהם היישומים השונים של כל שפה ומה הצפי לעתיד?

תודה,

ריפר.

פורסם

התשובה לשאלה המרכזית היא בכלליות כל פלטפורמת ה .net עם דגש על c#

באותה נשימה ניתן להמליץ על אחותה java

כל אפליקציה קיימת ניתנת לתכנות על ידן

שוב, תלוי כמה אתה ספציפי

אם אתה כלל לא ספציפי .net זאת התשובה שלך

אבל לדוגמא לתכנות יותר ממוקד לדוגמא בחברת משחקים(יש בארץ בכלל?) , c++ או c יהיו הרבה יותר מקובלות

פורסם
  • מחבר

אתה ממקד אותי ב net. ו- Java שזה כבר טוב אבל מה בכל זאת ההבדלים בינהם? מה היתרונות והחסרונות של כל אחת?

למשל באיזה תחום אני יוגבל יותר? איזו שפה מהירה ויציבה יותר? איזו שפה מבוקשת יותר? מה ההבדלים בממשק המשתמש (Java Sun מול MS Framework)? וכדומה.

פורסם

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

ג'אווה ו-#C די דומות בסה"כ, מבחינת היכולות והשימושים שלהן. היתרון העיקרי של ג'אווה על #C הוא ה-cross-platform (תוכנית בג'אווה תוכל לרוב לרוץ גם על חלונות, גם על מקינטוש וגם על לינוקס, בניגוד לתוכנית ב-#C שהיכולת שלה לרוץ על פלטפורמות שאינן חלונות מוגבלת).

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

דרך אגב, Java Runtime וה-Net Framework. הם לא הממשק, הם פשוט סביבת הריצה. בתור מפתח לא תתעסק איתם הרבה. אם אתה מתכוון לסביבת הפיתוח, אז זה סיפור אחר. במקרה של שפות דוטנט יש לך את Visual Studio, ובמקרה של ג'אווה יש לך הרבה סביבות פיתוח שונות, שלכל אחת יש יתרונות וחסרונות משלה.

פורסם

לגבי השאלה על מצב השוק.

השוק תמיד מוצף ב"מומחים" למיניהם, שמזכירים בקורות החיים שלהם ידע מקיף בהרבה תוכנות.

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

הסינון של אנשים בעבודה מתבסס על שני שלבים (באופן מאוד כללי) - בחירת קורות החיים מבין אילו המונחים על השולחן, ובחינת תוקף הדברים שרשומים שם בראיון עבודה.

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

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

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

פורסם

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

פורסם
  • מחבר

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

אז הנק' שלך היא ללמוד ++C בנוסף?

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

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

ג'אווה ו-#C די דומות בסה"כ, מבחינת היכולות והשימושים שלהן. היתרון העיקרי של ג'אווה על #C הוא ה-cross-platform (תוכנית בג'אווה תוכל לרוב לרוץ גם על חלונות, גם על מקינטוש וגם על לינוקס, בניגוד לתוכנית ב-#C שהיכולת שלה לרוץ על פלטפורמות שאינן חלונות מוגבלת).

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

מה לגבי תכנות באינטרנט / אפליקציות רשת, האם יש פה יתרון לאחד מהשניים?

פורסם

לא, רק שכולם מדברים היום רק על השפות האלו, והם לא כל העולם.

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

את .NET אפשר להתקין רק על חלונות, יש תחליפים ברמה זו או אחרת של בשלות נמוכה יותר כמו למשל MONO שאפשר להתקין על כל פלטורמה, זאת בניגוד ל JAVA ששם הפלטפורמה הרשמית רצה באופן זהה בכל המקומות.

פורסם

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

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

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

Java ME שרץ על פלאפונים ומכשירים מוגבלים הוא שונה קצת ממה שרץ על מחשבים אישיים.

ישנן גרסאות של JAVA כמו docomo JAVA שיש להן ספריה סטנדרטית שונה.

אפליקציות Android מתכנתים בשפה JAVA עם ספרייה שונה, אבל המכונה הוירטואלית היא בכלל dalvik.

מישהו יודע מה המצב בשוק השרתים?

גם .net של windows CE/mobile מכילה רק חלק קטן ממה שיש ב.net הרגיל (כלומר הספריה הסטנדרטית קטנה יותר).

פורסם

הכוונה פה היתה באורייטציה של ה Desktop בלבד (התייחסות ל JavaSE). זה ברור שבשוק הניידים שם שם המשחק זה יותר התפשרות (בגלל משאבים ומגוון) אז העסק יותר דינאמי. הסיבה שגוגל הלכו על DALVIK אני מאמין בגלל בעיות רישוי מול סאן שהם ניסו לעקוף.

פורסם
  • מחבר

אני מקווה שאני לא טועה אבל נוצר בי הרושם שג'אווה נותנת יותר חופש באפשריות שגלומות בה.

מה לגבי קוד פתוח איזו שפה פופולרית בנישה זו, האם יש שימוש בג'אווה בהקשר זה?

פורסם

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

C/C++ מאוד פופלאריות בנישה זו, אבל לא רק, יש גם P Y T H O N ו P E R L שהולכות חזק וכן, גם J A V A מתוקף זה שהיא רצה על הרבה פלטפורמות.

תחפש באינטרנט יש כל מני אתרים שעוקבים אחרי פופלאריות של שפות תכנות. (רווח בגלל מערכת הגנה מפגרת של האתר).

פורסם

אם יש משהו שאני מסכים עם אלו לפני זה בקשר ל c++

2 דברים

מרבית האנשים לא יודעים לנצל את התכונות שלה

מי שלא תיכנת בה או ב c לא יודע להשתמש בדברים הכי חשובים (לא תמיד) בתכנות

השאלה עכשיו מה אתה רוצה מעצמך

אם אתה רוצה ליהיות מתכנת דגול ולא איכפת לך מה אתה עובר בדרך, תלמד c++ או c לעומק

תלמד אלגוריתמיקה

ואחרי זה לעשות טרנספר ל c# זה הדבר הכי פשוט בארץ מהסיבה ששפות תכנות דומות זו לזו

אם אתה רוצה ישר לקפוץ למים אתה יכול ללמוד c# ישר

אני הייתי מציע את הדרך הראשונה

פורסם

תתחיל עם C תעבור לC++ ואז לC++.NET

פורסם

התכוונת אולי ל C++/CLI ? זה שפה שהיא נראית לי שפת ביניים בשביל לקשר בין קוד C/C++ רגיל לבין קוד .NET (לא מצאתי לה שימוש אחר).

ארכיון

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

דיונים חדשים