פיתוח ב-++C וב-Java - תחומים שונים

viczi

New member
פיתוח ב-++C וב-Java - תחומים שונים

שלום לפורום,

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

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

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

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


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

BravoMan

Active member
מהכירותי, 2 תחומים עיקריים בהם Java שולט היום הם:

1. פיתוח יישומים ל-Android.
2. פיתוח צד שרת של אפליקציות Web.
&nbsp
היות וביקשת ניסיון אישי, אדבר על תחום מס' 1 (זו הסיבה שבחרתי למספר ככה
)
&nbsp
פיתוח יישומים ל-Android הוא פיתוח תוכנה פרופר, והוא למעשה כולל בתוכו המון תחומים שונים:
החל מאפליקציות מציאות רבודה שמצריכות ראיה ממוחשבת, ועד ליישומים קטנים שכל מה שהם עושים הוא לדבר עם שרת http, ובעצם מחליפים ממשק Web.
&nbsp
לפי כך, גם אופי העבודה משתנה בהתאם לחברה (ויש חברות מכל גודל ומכל סוג ארגון בתחום), ולפי התחום הספציפי של היישום אותו מפתחים.
&nbsp
קשה לדבר על חסרונות ויתרונות בלי להשוות בין דברים ספציפיים, אבל אם הייתי צריך לציין את החיסרון הגדול ביותר של Android וגם שאר המתחרות שלה בתחום מערכות הפעלה למובייל, הייתי מציין את מגבלת הכלים והשפות.
&nbsp
בעוד שבסביבת Dekstop ו-Server ניתן לפתח בעשרות שפות ידועות, פלטפורמות מובייל מוגבלות לטכנולוגיות הספציפיות שהיצרן שלהן בחר.
&nbsp
במקרה של Google מדובר ב-Java כשפה ראשית, עם אפשרות לקרוא לספריות C ו-++C דרך JNI (ממשק המחבר java ל-native).
&nbsp
ניסיון לפתח בכל שפה אחרת (ויש כאלה), ייצור יישום שהוא "אזרח סוג ב'" במערכת.
המשמעויות יכולות להתבטא במראה הממשק, ביכולת גישה לפונקציונליות של המערכת, ועוד.
&nbsp
בפיתוח Web אגב, אין את הכפייה הזו, לכן ל-Java יש מספר מתחרים מאוד חזקים, אפילו PHP שהרבה שונאים אותו משום מה, עדיין מחזיק בנתח שוק ניכר.
&nbsp
מה צריך לדעת לפני שנכנסים לתחום?
לדעתי הדבר החשוב ביותר הוא שהתחום יעניין אותך.
&nbsp
כמו בכל עבודת פיתוח, אם לא אוהבים את העבדה שעושים, קשה יותר לעשות אותה, ורמת הביצועים והתוצרים יורדת.
&nbsp
בהצלחה!
 

viczi

New member
תודה ושאלות

קודם כל, תודה על התשובה המפורטת


לגבי אנדרואיד,
1. מניסיון שלך, האם לרוב האנשים העובדים בתחום יש תואר במדעי המחשב?
2. לדעתך, האם אדם עם תואר במדעי המחשב, ידע בג'אווה (בלי הרבה ניסיון) וניסיון ב-C++ ו-OO יכול להשתלב בתחום במשרת ג'וניור או שמדובר בתחום שיש ללמוד אותו בבית כדי להיכנס אליו?
3. האם קיימות משרות סטודנט בתחום?
4. אני מבינה שאתה עובד בתחום אנדרואיד. אם היית רוצה לעבור מתחום אחר, למשל לפיתוח צד שרת של אפליקציות Web, האם מעבר כזה היה פשוט או מורכב מבחינתך? האם מעבר הפוך (מישהו שכתב צד שרת ב-Java) הוא יותר פשוט?

תודה שוב
 

selalerer

New member
מאוד מוזרות השאלות שלך.

בתור מתכנת עם נסיון ב-++C לא הייתה לי שום בעיה להשתלב בכתיבת Java או #C.

בוודאי שלא שקלתי לקחת משרת Junior רק בגלל שהחלפתי שפה.

אולי את מרגישה שזה דרוש אצלך בגלל האיכות של העבודה שעשית ולא בגלל השפה?
 

viczi

New member
מוזר זה טוב


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

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

2. הוגנות
אני עבדתי בתחום מסוים בשפה מסוימת.
עכשיו *אני* רוצה לשנות שפה ותחום.
האם חברה כלשהי צריכה לשלם לי כלמפתח ג'אווה מנוסה בזמן שאני בתהליך להפוך למפתח ג'אווה מנוסה? אני חושבת שלא...
אני חושבת שאני צריכה "לספוג" את עלות השינוי ואני רואה בעלות זו השקעה לעתיד.

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

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

selalerer

New member
זה כמובן תלוי בך, פשוט נראה לי מזיק ולא נחוץ.

1. יש לך בסיס יציב. את מתכנתת עם נסיון, כנראה מתכנתת טובה לפי הפידבקים שקיבלת. את הידע שספציפי לשפה אפשר להשלים בקריאה.
&nbsp
2. זה לא ממש בעיה שלך. את לא מזייפת את קורות החיים ולא משקרת לאף אחד. שמי שממיין את הקורות חיים ומי שמראיין אותך יחליט אם זה בעייתי לו או לא.
&nbsp
3. לא רואה איך הטייטל ג'וניור ישפר לך את המיומנות. את אותו השיפור את יכולה לעשות תחת כל טייטל. כמו שכתבתי בסעיף הקודם, לא שיקרתי לאף אחד בדרך, הם יודעים בדיוק עם איזה ידע הגעת.
&nbsp
4. שכר וטייטל בד"כ קשורים זה בזה. למשרת ג'וניור לא יסכימו לשלם שכר של מישהו בעל נסיון.
 

viczi

New member
מדוע אתה חושב שזה מזיק?

1. יש לי בסיס יציב במה שאני עושה. אני רוצה לבנות בסיס יציב בתחום החדש ולחזק את השפה שאני פחות מנוסה בה.

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

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

4. שכר ג'וניור לשנה-שנתיים זה משהו שאני יכולה לחיות איתו. אני מניחה שתוך שנה אתחיל לתרום יותר מג'וניור רגיל ואני רוצה להאמין שהחברה תתחיל לעדכן את השכר בהתאם לתרומה שלי.
 

Lhuna1

New member
לגבי 2 אני סבורה ומכירה מציאות אחרת

מההיכרות שלי בהחלט יש נכונות לגייס מתכנתי ++C מנוסים לתקנים של מתכנתים מנוסים בשפות אחרות, ו-JAVA זו אחת השפות הקרובות.
&nbsp
 

viczi

New member
יותר מחמש, רובן ב-C

ב-C כתבתי OO ו-multithreading כך שמבחינה הזאת יש לי ניסיון.
עברתי מ-C ל-C++ בלי שום הכנה מוקדמת והיה ממש בסדר. אני אוטודידקטית אז השקעתי כמה ימי שישי כדי לחזור על C++ וצללתי. תוך זמן קצר כבר הייתי זו שיוזמת שיפורים לקטעי קוד מרכזיים שנכתבו לפני שהצטרפתי. אבל זה היה בחברה שבה המנהלים הכירו אותי היטב ולא היה עליי לחץ להוכיח את עצמי. גם היה להם ברור שבחודש-חודשיים הראשונים התפוקה שלי ב-C++ לא תהיה זהה לתפוקה שלי בשפה ומערכת שהכרתי ממש טוב. גם לא הייתי היחידה שעוברת כך שלא הרגשתי נבוכה מחוסר ידע פה ושם.

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

BravoMan

Active member
קודם כל, זה יפה מאוד שעבדת ב-C בצורה של OO.

הרבה זמן חשבתי שהדבר לא אפשרי (כי ללא השכלה פורמלית האמנתי לתומי ש-OO זה משהו תלוי שפה).
&nbsp
ואז גיליתי את +GTK וזה פתח לי את העניים.
&nbsp
אני חושב שהבנה של נקודות כמו "OO זו דרך חשיבה ותכנון ולא פיצ'ר של שפה כזו או אחרת", וניסיון במימוש מודל כזה בשפה שאין לה סינטקס יעודי בשבילו, תורמים הרבה למפתח.
&nbsp
אבל בחיאת - תפסיקי לחשוב שכל המנהלים בחוץ מטומטמים, ויצפו ממך לדברים לא הגיוניים רק כי הם לא מכירים אותך אישית!
&nbsp
לכל מנהל נורמלי יהיה ברור שמפתח, מנוסה ככל שיהיה, יזדקק לתקופת הסתגלות לכלי חדש.
לכל מנהל נורמלי יהיה ברור שמפתח, מנוסה ככל שיהיה, שרק עכשיו נחת בחברה חדשה יהיו לו פערי ידע, גם אם עבד בטכנולוגיות דומות.
&nbsp
תני למנהלים לעשות את עבודתם, ותסמכי עליהם שכל עוד את מציגה את המצב כפי שהוא - ניסיון מעל 5 שנים בפיתוח, רק לא בכלים ספציפיים, הם כבר ידעו מה לצפות ממך, ואם צריך יתאמו ציפיות מולך.
 

Lhuna1

New member
מבוכה מחוסר ידע?

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

viczi

New member


מזדהה עם הרגשה שאני כמעט מכירה אותך


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

Lhuna1

New member
כמי שעשתה מעבר דומה מאוד

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

viczi

New member
תודה על התגובה


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

zaske

New member
מעניין שפייסבוק, אובר, ליפט, אמאזון, גוגל ועוד רבים אחרים

לא מסכימים איתך.

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


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

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

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

איך חבר שלי שהוא מנהל באינטל אומר - "עזוב אותך, גם עוד 7 שנים, ה class יהיה עדיין class "

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

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

S h a r k 1 8

New member
אמנם לא הייתה בעיה, אבל אם התעסקת

בstorage ב C++ ומשם עברת ל web ב Java אז החלפת למעשה את כל המסביב, וזה שינוי משמעותי. כמובן שאתה לא שקול למתכנת Java עם אותן שנות ניסיון.
&nbsp
&nbsp
&nbsp
 
למעלה