ייעוץ בנושא חיפוש עבודה ב- Java

oriori56

New member
ייעוץ בנושא חיפוש עבודה ב- Java

שלום חברים,

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

על הנייר הכל טוב ויפה, אבל הבעייתיות אצלי כרגע בחיפוש עבודה **לפי איך שאני רואה את זה לפחות** מתבטאת ב-2 דברים עיקריים:
1. הניסיון שלי היה מה שנקרא ב-pure java . אף פעם לא התעסקתי עם ספריות חיצוניות (או frameworks) כדוגמת spring, hibernate וכו', אלא רק בספריות הבסיסיות שמגיעות ב-Java SE.
2. אין לי ניסיון כל כך בנושאי Database. אני כן מכיר SQL וקצת MongoDB בעיקר מהתואר, אבל זה לא שיש לי ניסיון מעשי איתם במהלך שנותיי כמפתח. במהלך שנות הפיתוח שלי, פיתחתי מעל מוצרי מדף שעטפו לי את ה-DB עם API ייחודי שלהם, ובגלל זה לא הייתה לי נגיעה ישירה מול ה-DB.

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

בשורה התחתונה אני רוצה להתייעץ איתכם מה הכי כדאי לי לעשות..יש לי כמה שאלות:
1. שאלה למראיינים ומגייסים למיניהם שנמצאים פה- אם לצורך העניין היו מפתחים בפרויקט אצלכם ב-spring ו-hibernate, האם הייתם פוסלים מועמד רק בגלל שאין לו ניסיון בספריות הללו? לצורך העניין אני מגדיר את עצמי גם כאחד שיודע להשתלב בתחומים חדשים ובעל יכולות לימוד גבוהות ומהירות.
2. שקלתי אולי לנסות וללמוד את הנושאים הללו באופן עצמאי בבית לפני שאני ממשיך לראיונות עבודה הבאים. האם לדעתכם זה יהיה צעד חכם או שזה יהיה בזבוז זמן כי רוב המעסיקים יעדיפו מישהו עם ניסיון בדברים הללו ולא רק ידע תאורטי?
3. האם בעקבות חוסר הידע שלי בנושאים שכתבתי כדאי לי להוריד את דרישות השכר שלי על מנת שיהיה לי יותר קל למצוא עבודה? (לצורך העניין כרגע אני מעוניין ב-26K, בערך הממוצע בשוק למפתח JAVA עם 5-6 שנות ניסיון).
4. אשמח לשמוע כל טיפ ועצה אחרת שיש לכם להציע לי.

תודה רבה.
 

hookedatwalla

New member
מוזר לי מאוד

שאתה עם 6 שנות ניסיון ולא מכיר ספריות רבות של ג'אווה שזה אחד הדברים שיותר מחפשים אותו.
לגבי העבודה מול DB, רושמים את זה, אבל וואלה, שיבואו אליי ויגידו לי בראיון תכתוב לנו שאילתת SQL כזו וכזו, אני אגיד לו, אני לא יודע לכתוב שאילתות, ואני לא רוצה לכתוב שאילתות. לכתוב שאילתות ולהבין בDB, זה התפקיד של הDBA, אני מדבר על מסדי נתונים טיפה מורכבים. DBA זה מקצוע כמו שלהיות מתכנת זה מקצוע. לכן אתה יכול בזמנך הפנוי לקרוא קצת על SQL או NOSQL ולדעת מה ההבדל, איך הם עובדים, איך לכתוב שאילתות בסיסיות, אבל לדעת מעבר לזה ברמה גבוהה - זה אתה לא חייב לעשות - כי בדרך כלל אין זה מעניינו של מפתח.
זו דעתי וככה זה בחברות שעבדתי עד עכשיו, יכול להיות שתגיע לחברה שכן תצטרך גם לכתוב קוד וגם לתכנן את הDB. אבל אתה לא חייב ללכת לראיון שם :)
ממה שאני מכיר מחברים, לא נתקלתי כ'כ בשאלות על DB מעבר לשאלות סטנדרטיות ומה זה אינדקס ולמה הוא משמש.

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

6 שנות ניסיון לבקש 26 זה השכר הממוצע וזה לא מוגזם.

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

oriori56

New member
קודם כל, תודה רבה על המענה.

אז ככה..
&nbsp
בכל 6 שנות הניסיון שלי הייתי במקום אחד שהוא די נישתי ומתמקד במשהו ספציפי והיינו קצת מאחור מבחינה טכנולוגית ולכן לא השתמשנו באף ספריה חיצונית.
אני כן מכיר פחות או יותר את המהות של הספריות (spring - לצורך ניהול תלויות, בדיקות יחידה וכו', hibernate - עוזרת בעצם בהתממשקות ל-DB רלציוני כאשר האובייקטים שלנו מבחינת OOP הם אובייקטים ולא טבלאות), אבל לא התנסיתי בהם וזו הבעיה.
&nbsp
לגבי ראיונות עבודה, כבר הייתי בכמה מקומות.. מבחינת השליטה ב-Java הדבר היחידי שאולי הלך לי פחות טוב באופן כללי היה נושא ה-multi-threading אבל זה נושא שאני עכשיו חוזר עליו ולומד אותו לקראת הראיונות הבאים.
מראיון לראיון הרגשתי שהשתפרתי, אבל עדיין היו לי גם ראיונות מאוד טובים שהחליטו לא להמשיך איתי ואני לא יודע למה (וזה הכי מתסכל).
&nbsp
כרגע ההתלבטות שלי לפני שאני ממשיך לעוד גל של ראיונות עבודה היא האם ללמוד קצת בבית קצת את spring ו-hibernate.. אם אלמד ואספר את זה גם בראיונות עצמם.. האם זה משהו שיתן לי גם נקודות זכות או שזה בזבוז זמן לדעתך?
 

choo

Active member
אישית, אני בעד למידה, אבל למד לקח - ללמוד כל הזמן

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

oriori56

New member
אתה צודק

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

user32

Well-known member
מנהל
אי שימוש בפרימוורקים הוא לא בהכרח פיגור טכנולוגי

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

choo

Active member
זה פיגור טכנולוגי מבחינתו של העובד, לא בהכרח של החברה

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

ipv6

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

אני לא מגיע מהתחום של Java אבל בתחומים אחרים יש חברות שהעיקר השאלה. היא אלגוריתמית \ תכנון מערכת שנעשית על לוח או דף נייר הרבה פעמים בלי קוד או חשיבות זניחה לאיכות הקוד.
בצד השני של המתרס יש חברות שרוצות קוד קרוב למושלם חלקן אפילו דורשות לכתוב על notepad או אפילו עורכות "תרגיל מחשב" בתור שלב בראיונות.

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

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

oriori56

New member
כן, זה בדיוק מה שאני עושה

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

selalerer

New member
מתכנת Java עם 6 שנים נסיון שלא יודע multi-threading ולא SQL

זה בעייתי. על פניו נראה גם שלא עבדת עם no-sql או איזשהו תחליף ל-SQL.
&nbsp
בחרת בנתיב קריירה לא מוצלח. החוסר ידע שלך בדברים שנחשבים בסיסיים וחשובים מרתיע. מי שמחפש לגייס מתכנת עם 6 שנים נסיון אין לו שום סיבה לקחת מישהו שלא יודע את הדברים האלו. הוא יכול לקחת בוגר טרי.
&nbsp
תשלים את הידע, בצורה כמה שיותר יסודית וכמה שיותר מהר. תצניע את זה שלא עסקת בזה בקורות חיים ובראיונות ותקווה שתהיה מספיק טוב בראיון בנושאים האלו כך שלא ישימו לב.
&nbsp
בהצלחה.
 

oriori56

New member
multi-threading אני כן יודע

פשוט רק כתבתי שאני צריך לחזור על זה לקראת הראיונות כדי לחזק את זה עוד.
&nbsp
מבחינת בסיסי נתונים, זה יותר הבעיה.. תשמע, אני מכיר את הקונספט של מה זה DB ומתי צריך לפנות אליו ומתי לא כדאי, ומה כדאי לשמור שם ומה כדאי לשמור ב-cache, פשוט במערכת שעבדתי עליה רוב הזמן היה DB שעטוף לנו עם API אחר, אז זה כאילו מוריד מהניסיון והעבודה שלי ישירות מול ה-DB.
אני יודע שהתואר לא משקף הרבה אבל עבדתי בתואר עם MongoDB באיזשהו קורס וגם ובפרוייקט גמר שלי.
&nbsp
אני יודע שזה כאילו נשמע בעייתי "על הנייר", אבל זה באמת לא כזה רע כמו שזה נשמע.. אני בטוח שכשאגיע לחברה כלשהי אני אשלים מאוד מהר את הפערים, הבעיה היא כמובן למצוא את המקום עבודה שיתן את הצ'אנס..
 

TakeCtrl

New member
אבל עם מה כן עבדת? אני עובד עכשיו עם pure java

(ודי מאושר אחרי שיצאתי בשיניים בציפורניים בspring ו Hibernate וכל עבודות הIT).
אבל עכשיו אני כן עובד עם Multi-threading , xml-dom, webservices, והרבה.. הרבה sockets.גם אלו ספריות שמגיעות עם javase (אתה יכול להקים web server שלם עם web servies רק ע"י שימוש בEndPoint).
 

oriori56

New member
תשמע, בגדול עבדתי עם הרבה דברים ממה שהזכרת

web services, xml, serlvets, multi-threading, בנוסף גם הרבה עם תקשורת נתונים..
והתעסקתי גם עם GUI (Swing) אבל אני יודע שזה לא נפוץ אז אני אפילו לא מזכיר את זה כל כך..
עשיתי גם הרבה Refactoring ושיפורי ביצועים למערכת שעבדתי בה.
&nbsp
ואם נדבר רגע על שיווק עצמי, אז אני חושב שאני מביא איתי גם איזשהו פרופיל אישיותי כבן אדם וכמתכנת, מאוד מקצועי וטוב, ולא רק הידע שלי הוא מה שיש לי להציע, הבעיה שחברות לא תמיד שמות על זה דגש בראיון וקשה להראות את זה..
 

oriori56

New member
כן, אבל זה בערך הדבר היחידי שעבדתי בו ב-j2ee..

פיתחתי servlets מעל שרת tomcat apache וזה הכל.
ממה שקראתי, j2ee זה הרבה יותר מזה, לא?
 

TakeCtrl

New member
אבל זה כבר ממה לא Pure java

פיתוח servlet משמעו כבר כניסה לעולם הweb , שצריך לדעת דברים על url, session,
הבדלים בין Post ל get, איך מקבלים נתונים לforms, איך מקנפגים tomcat וכו' וכו'.. זה הכניסה לJ2ee במובן מסויים.
 

oriori56

New member
נכון, מה שכתבת אלה דברים שאני יודע

אבל למען האמת אני רואה את הדברים האלה נורא בסיסיים וכמעט כל מי שפיתח קצת צד שרת ב-java אמור להכיר אותם.
אז סבבה, לא פיתחתי רק pure java אלא java בסיסית פלוס קצת j2ee.
הנקודה שרציתי להעלות בנושא היא שיש לי מחסור בניסיון מעשי ובידע ב- DB, SQL וכמובן בספריות שהזכרתי spring+hibernate, וזה מה שאני עובד על לשפר אותו.
 

user32

Well-known member
מנהל
takecntrl צודק

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

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

בהצלחה
 

oriori56

New member
טוב לדעת

די מעודד אותי לשמוע מה שאתם אומרים :)
תודה.
 

user32

Well-known member
מנהל
אני אתן לך תשובה מלומדת

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

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

יש לי חבר שעבד 12 שנה בOracle Forms ואורקל ERP בכלל שזה איזה משהו מבוסס ג'אווה אבל יש שם מעט מאוד פיתוח ג'אווה ורובו ככולו לא רלוונטי לעולם מחוץ להתקנות אורקל. בעידודי הוא מצא עבודה בסטארטאפ של בערך 100 עובדים (שנמכר לא זמן קצר לפני שהתקבל לשם). שם הוא כותב בspring, hibernate לראשונה למד להשתמש בsource control, בילד maven או כל הדברים שמובנים לרוב המפתחים אבל זרים לאנשיי ERP. כעבור שנה הוא כבר ממוצב טוב.
מה שכן, הוא התקבל בזכות הידע שלו באורקל כי החברה חיפשה מישהו עם הידע הזה. אז לא יודע במה אתה עוסק בחברה הנוכחית אבל אם צברת איזשהו ידע בדומיין כלשהו יהיה לך הרבה יותר קל להתחיל מחברות שיכולות להתעניין בנסיון שצברת.

בהצלחה
 
למעלה