מה ללמוד: JAVA או C++? - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

מה ללמוד: JAVA או C++?


TaZeR

Recommended Posts

שלום לכולם,

אני כברק יודע את הבסיס של C++ כולל מצביעים ואני לא יודע אם בכלל שווה להעמיק בשפה או להתחיל JAVA (שמעתי שבהרבה מקומות עובדים עם JAVA)???

ד"א אני יודע C# ואמרו לי שזה 95% כמו JAVA.... C# אני בטוח מעמיק, השאלה היא אם ללמוד גם JAVA???

שאלה שנייה:

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

קישור לתוכן
שתף באתרים אחרים

השאלה שלך מאוד באוויר. אפשר לממש כל אלגוריתם בכל שפה. בד"כ השפות היותר גבוהות (כמו JAVA) מאוד מתאימות לזה אבל לפעמים עדיף דברים יותר פשוטים (תנסה פעם Scheme :-).

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

בהצלחה.

קישור לתוכן
שתף באתרים אחרים

שאלה ראשונה: לוקח הרבה זמן ללמוד JAVA? זאת שפה מסובכת?

שאלה שנייה: מה הכוונה "תכנות עם שיניים"?

שאלה שלישית: בתקווה שאני לא הולך לתכנת שבבים ורכיבי חומרה אחרים, שווה בכלל להמשיך ללמוד C++?

תודה לכל העונים...

קישור לתוכן
שתף באתרים אחרים

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

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

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

3. אם אתה מתעניין בעבודה/כסף:

א. בעיני הרבה הרבה יותר מעניין לעבוד בתחומים אמבדד וRT (ובשביל זה חשוב מאוד C/++C ולינוקס).

ב. זה הרבה יותר כסף 8)

קישור לתוכן
שתף באתרים אחרים

אני כולה בתיכון והכסף היחידי שאני עושה זה שיעורים פרטיים במחשבים - אז כאן לא כ"כ משנה השפה.

אם בעתיד אני ארצה לתכנת ב EMBEDED (זה תכנות שבבים ומכשירים, נכון?) כדאי לי להשקיע עכשיו ב C++ או שאם למדתי בעבר C++ ואני לומד עכשיו JAVA או בC# אני אוכל לחזור בקלות ל C++?

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

ונראה לי שהתבלבלת בין ל"יוניקס" (אני לא בטוח אבל אני זוכר שאחת המורות שלי אמרה שיש לה גם יוניק במחשב כי היא מתכנתת...)

קישור לתוכן
שתף באתרים אחרים

"אני כברק יודע את הבסיס של C++" ??

אם אתה יודע C# אתה גם יודע Java +- (עד כדי השטויות הקטנות שיש לכל שפה וכמה פיטצרים שונים לגמרי).

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

A-Long, מה שאמרת בסעיף הראשון ממש לא נכון, במיוחד היום שיש כלכך הרבה שפות וכל כך הרבה סוגי שפות.... זה שאתה יודע לתכנת ב C, לא אומר שיש אתה יכול לקפוץ ל ML או Haskell או Lisp. זה שאתה יודע לתכנת ב C++ לא אומר שאתה ישר יכול לקפוץ ל SmallTalk וכו'.

לתכנת embedded זה כבר עניין של העדפה, יש בזה כסף, אבל בהרבה מקרים אנשים שאני מכיר שמתעסקים בזה סובלים.

קישור לתוכן
שתף באתרים אחרים

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

מבחינת מה שלומדים בפועל ברמה של 4 ו 5 יחידות לא נראה לי שיש קשר ישיר להבנת אלגוריתמים.

אם ניקח למשל אלגוריתם כמו BFS (חיפוש לרוחב בגרף):

http://he.wikipedia.org/wiki/%D7%90%D7%9C%D7%92%D7%95%D7%A8%D7%99%D7%AA%D7%9D_%D7%97%D7%99%D7%A4%D7%95%D7%A9_%D7%9C%D7%A8%D7%95%D7%97%D7%91

(ממליץ דווקא על העמוד באנגלית: http://en.wikipedia.org/wiki/Breadth-first_search )

כדי להבין אותו ברמה השיטחית שמלמדים בבית ספר, צריך לדעת:

שפת תכנות נורמלית (בשביל ליישם אותו).

מה זה גרף וייצוג בסיסי של גרף בשפת תכנות מסויימת (בשביל להבין מה הוא עושה ואיך ליישם אותו).

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

וזהו, אתה יכול להבין מה הוא עושה בגדול.

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

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

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

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

קישור לתוכן
שתף באתרים אחרים

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

ובקיצור, אם שנה הבאה אני אלמד חומר של 5 יח', אני אוכל להתמודד עם הספר הזה?!

קישור לתוכן
שתף באתרים אחרים

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

קישור לתוכן
שתף באתרים אחרים

ארכיון

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

×
  • צור חדש...