JavaRush /בלוג Java /Random-HE /מה אתה צריך לדעת כדי להפוך ל-Java Junior, ומה לעשות עם כל...

מה אתה צריך לדעת כדי להפוך ל-Java Junior, ומה לעשות עם כל זה?

פורסם בקבוצה
הדרישות למפתחי Java פוטנציאליים משתנות ללא הרף וקשה לעמוד בקצב. האם זה מספיק לדעת רק Java Core כדי להיות מתאמן? כמה טוב אתה צריך להבין את Spring ו-Hibernate כדי לקבל משרת Java Junior? האם כדאי ללמוד מאגרי מידע ולהבין אלגוריתמי מיון וחיפוש? ומכיוון שתלמידי JavaRush מודאגים לעתים קרובות מאוד מהשאלות הללו, החלטנו לשאול אותן את הבוגרים שלנו שכבר עובדים כ-Java Juniors או מתמחים בחברות כ-Java Trainees. שימו לב ש-13% מהמשיבים היו ברי מזל מספיק כדי לקבל עמדת Java Middle בניסיון הראשון שלהם, תוך עקיפת שלב הג'וניור. מה אתה צריך לדעת כדי להפוך ל-Java Junior, ומה לעשות עם כל זה?  - 1המשיבים שיתפו מידע לגבי הטכנולוגיות שהם צריכים כדי לעבור את הראיון ובאילו השתמשו בשנה הראשונה לעבודה הראשונה שלהם בג'אווה.

כולם צריכים Java Core

המונח Java Core הוא די רחב. שם זה מתייחס הן לתחביר היסודי של השפה והן לנושא מורכב כל כך כמו ריבוי פתילים. למעשה, קורס JavaRush מוקדש בעיקר ל-Core. מה אתה צריך לדעת כדי להפוך ל-Java Junior, ומה לעשות עם כל זה?  - 2תחביר ג'אווה. יסודות השפה. כל סוגי הנתונים הללו, אופרטורים, לולאות וענפים. באופן טבעי, 92.4% מאלו שקיבלו את העבודה דירגו את הידע שלהם בתחביר כ"טוב או מצוין". עם זאת, 7.6% מהמשיבים הצליחו להפוך לחניכי Java עם ידע תחביר ממוצע. עם זאת, יש להעריך זאת יותר כמזל (או התפארות במגיבים :)). כמובן שכל מי שמגיש מועמדות לעבודה כמתכנת צריך לדעת את תחביר השפה. תכנות מונחה עצמים (OOP). הכל ב-Java מורכב מאובייקטים, כך ש-OOP יכול להיחשב לאחד הנושאים החשובים ביותר של השפה. הגישה מוכוונת אובייקט אולי נראית לא מוכרת בהתחלה, במיוחד אם למדת רק שפות פרוצדורליות בעבר, אבל זה לא קשה לעבור לאובייקטים. הקשיים הגדולים ביותר למתחילים הם רמות ההפשטה והפצתן העצמאית - מתכנת מתחיל חייב להיות מסוגל ליצור נכון היררכיה של אובייקטים, להבין על מה הממשק יהיה אחראי ומה ניתן להכניס למחלקה אבסטרקטית, ליצור ירושה. סולם וכן הלאה. כרגיל, קושי זה נפתר על ידי תרגול. רוב המשיבים, 80.3% מאלה שקיבלו את העבודה הראשונה שלהם, הכירו היטב את עקרונות ה- OOP והשתמשו בהם ללא הרף. בשנה הראשונה לעבודה כ-Java Juniors ומתמחים, 78.8% מהמשיבים השתמשו בעקרונות OOP לעתים קרובות מאוד, 12.1% - מעת לעת. 7.6% מהמאזינים מיעטו להשתמש בהם - החבר'ה האלה היו עסוקים בעיקר בבדיקות יחידות ובמשימות קטנות שונות. כלומר, כמובן, הם השתמשו גם במחלקות או באובייקטים (אי אפשר בלעדיהם בג'אווה), אבל רק לעתים רחוקות יצרו היררכיות מחלקות. מסגרת אוספים. אוסף הוא אוסף של חפצים בודדים המוצגים כמכלול. ל-Java יש מסגרת אוספים חכמה מאוד לייצוג אוספים. אוספים מבוססים על מבני נתונים פופולריים - רשימות, רגילות ומקושרות, סטים, טבלאות גיבוב. אז כאשר בוחנים אוספים, מומלץ להכיר יותר מבני נתונים. הקושי העיקרי בלימוד אוספים הוא להבין ולזכור איך הם פועלים. אם אתה מבין איך הם ניגשים לאלמנט, מחלצים אותו מאוסף ומוסיפים אותו אליו, אז אתה מתחיל להבין היכן ליישם מבנה זה או אחר. זה בא עם תרגול. אבל, למרבה המזל, לא כל המספר העצום של האוספים משמשים באופן פעיל בעבודה אמיתית. 80.3% מהנשאלים ציינו שיש להם ידע טוב או אפילו מצוין באוספים לפני שקיבלו את הצעת העבודה הראשונה שלהם, וכמעט כל 96.9% מהג'וניורים והחניכים משתמשים באוספים בעבודה הראשונה שלהם. מה אתה צריך לדעת כדי להפוך ל-Java Junior, ומה לעשות עם כל זה?  - 3טיפול חריג.חריג הוא מצב חריג שעלול להתרחש בזמן הפעלת התוכנית שלך. כל מחלקות החריגות הן תת-סוגים של המחלקה java.lang.Exception. מנגנון הטיפול בחריגים מפשט מאוד את תהליך מציאת השגיאות בתוכניות. בדרך כלל, תלמידים מתחילים להשתמש בחריגים די מוקדם, נניח, ב-JavaRush. ב-JavaRush, נושא זה מועלה ב-Java Syntax קווסט הראשון. כמעט כל בוגרי JavaRush שקיבלו את העבודה הראשונה שלהם ידעו להתמודד עם חריגים, ומטבע הדברים, השתמשו בהם בזמן העבודה. I/O Streams Java. התוכניות הראשונות שנכתבו ב-Java בדרך כלל הכילו משהו כמו System.out.println ("שלום עולם"). לעתים קרובות, מתחילים מבינים ששיטת println מדפיסה שורה לקונסולה, אבל אין להם מושג למה מערכת ומחוצה יש שם ואיך הם עובדים. קצת מאוחר יותר מתברר ש-Java מבצעת פעולות קלט ופלט באמצעות זרמים, זרם רציף של נתונים. נושאים הם לא הנושא הכי קל להבנה, ולא נעשה בו שימוש בתדירות גבוהה בעבודות מתחילים: רק 22.7% מהאנשים שקיבלו את העבודה הראשונה שלהם ב-Java Junior/Trainee אמרו שהם משתמשים הרבה בשרשורי I/O, 31.8% - מעת לעת. זמן, 25.8% - לעתים רחוקות. אז קצת פחות מ-20% לא השתמשו בהם בכלל במהלך השנה הראשונה שלהם כמפתחי Java. במהלך הלימודים, 18.2% לא חוו קשיים מיוחדים בזרימות והכירו אותם היטב, 36.4% דירגו את הידע שלהם כטוב, אך 10.6% התעלמו מהנושא הזה. ריבוי פתילים (Java Multithreading/Concurrency). אולי זה הנושא שגורם לאי ההבנה הגדולה ביותר בקרב מפתחים מתחילים. למרות ש-multithreading ב-Java מיושם היטב, קשה להבין אותו, ובעיות עלולות להתעורר גם בעת כתיבת תוכניות פשוטות (לדוגמה, multithreaded "Hello, world"). מעסיקים רבים מבינים זאת ואינם דורשים הבנה מעמיקה של multithreading ממתחילים, בציפייה שזה יבוא עם ניסיון. רק 12% מהנשאלים ציינו שהם מכירים את הנושא ברמה טובה לפני שקיבלו את ההצעה הראשונה, בעוד שכמעט 32% מהנשאלים הודו שהם לא יודעים כלל על הנושא. הרוב, 56.2%, אמרו כי "יש להם הבנה מסוימת" בריבוי השרשורים. אז אם הקשיים בעבודה עם חוטים נראים לכם בלתי עבירים כעת, המספרים הללו עשויים להרגיע אתכם. עם זאת, אם אתה רוצה להשיג יתרון תחרותי בראיון, נושא זה יכול להיות הצד החזק שלך. בפרויקטים אמיתיים, רק לעתים רחוקות מותר למתחילים לעבוד עם חוטים. כך, 15.1% מהמתכנתים המתחילים כלל לא נתקלו ב-Java Multithreading בעבודתם, ו-39.4% נתקלו בכך, אך לעיתים רחוקות. לעתים קרובות בשנה הראשונה לעבודה רק 9.1% מהמשיבים נאלצו לעבוד עם ריבוי השחלות. ביטויי למדה.ביטויי Lambda ורמזים לתכנות פונקציונלי הופיעו ב-Java 8, אך מתחילים אינם משתמשים בכלי שימושי זה לעתים קרובות מאוד. ביטוי למבדה הוא פונקציה שניתן ליצור מבלי להשתייך למחלקה כלשהי, וניתן להעביר אותה כאובייקט או לבצע אותה לפי דרישה. רק 22.7% מהבוגרים שנשאלו הכירו את ביטויי למבדה היטב לפני שקיבלו את הצעת העבודה הראשונה שלהם, ו-48.5% דירגו את הידע שלהם בנושא כ"קרוב לאפס". במקביל, יותר מ-85% מהמתכנתים החדשים אמרו שהם השתמשו בביטויי למבדה בשנה הראשונה שלהם. למען ההגינות, אנו מציינים שהאחוז הנמוך של אלה שמכירים את הנושא הזה עשוי לנבוע מהעובדה שב-JavaRush, ביטויי lambda מוצגים עד כה רק במסע ובמאמרים החדשים של Java Syntax Pro . לפיכך, אנו יכולים לומר בבטחה שידע של Core Java עבור כל ג'אווה ג'וניור פוטנציאלי ואפילו מתאמן הוא פשוט הכרחי. כמובן שחלק מהנושאים, למשל ריבוי שרשורים, מקובלים לדעת קצת פחות, אבל תחביר Java, OOP ואוספים צריכים להיות טבועים היטב בתודעתכם.

אלגוריתמים ומבני נתונים

יש ויכוח מתמיד על חקר אלגוריתמי מיון וחיפוש. מצד אחד, האלגוריתמים הטובים ביותר נכתבו זה מכבר ונכללו בספריות של כל שפות התכנות הפופולריות, כולל Java. וניתן להשתמש בהם באופן חוקי ללא הטרחה של כתיבת קוד משלך. עם זאת, מומחים המאמנים מתכנתים עדיין ממליצים לכל מפתח מתחיל לאמן את המוח שלו על ידי כתיבת כל אלגוריתמי הבועות הללו, מיזוג, חיפוש בינארי וכדומה. ראשית, האלגוריתמים הללו הם מעין מבחן לקמוס של כישורי מתכנת (כלומר, לא ידע, אלא כישורים) והבנת האדם מהו תכנות באופן עקרוני. אם המוח שלך כבר מכוון היטב לעבודה מהסוג הזה, אתה תכתוב אלגוריתמים בקלות יחסית. ועדיין, כדאי לזכור: אתה צריך אלגוריתמים בדיוק כדי לאמן את המוח שלך... וכדי לעבור ראיון: המפתחים הבכירים המאכלים שעורכים אותם מאוד אוהבים לייסר פונים בבקשות לכתוב אלגוריתם זה או אחר. אבל בעבודתם, הרוב (48.5%) משתמשים באלגוריתמי ספרייה סטנדרטיים, יעילים ומוכחים, בעוד ש-16% מהנשאלים כלל לא השתמשו במיון בשנה הראשונה לעבודה כמתכנת. מה אתה צריך לדעת כדי להפוך ל-Java Junior, ומה לעשות עם כל זה?  - 469.6% מהבוגרים טוענים שלפני שקיבלו את הצעת העבודה הראשונה שלהם, הם הבינו היטב באלגוריתמי מיון וחיפוש ויכלו לכתוב אותם בעצמם. מה אתה צריך לדעת כדי להפוך ל-Java Junior, ומה לעשות עם כל זה?  - 5כבר נגענו בנושא של מבני נתונים כשדיברנו על אוספי Java. כן, עדיף להבין אותם כדי לדעת היכן ואיזה מבנה ליישם. יצירת מבני נתונים משלך בדמותם של ספרייה היא תרגיל נהדר שיעזור לך להבין אותם טוב יותר. אתה יכול, למשל, לנסות לכתוב גרסה משלך של ArrayList או להציע רשימה משלך עם קישור יחיד (ה-LinkedList הרגיל ב-Java מקושרת כפול). מה אתה צריך לדעת כדי להפוך ל-Java Junior, ומה לעשות עם כל זה?  - 6בזמן העבודה, מתכנתים מתחילים השתמשו בעיקר במבני נתונים סטנדרטיים.מה אתה צריך לדעת כדי להפוך ל-Java Junior, ומה לעשות עם כל זה?  - 7

בדיקת יחידה

ספריית JUnit אחראית על בדיקת יחידות ב-Java. למעשה, אתה יכול להתחיל בדיקות יחידה כמעט בתחילת האימון. לכל הפחות, כשאתה לוקח על עצמך את הפרויקט העצמאי הראשון שלך, אפילו קטן מאוד, כדאי שכבר תהיה בקיאים בכלי הזה. כתיבת מבחנים ביחידות לא כל כך קשה, אם כי יש כמה ניואנסים. לימוד JUnit לא ייקח הרבה זמן, אבל היתרונות של הכרתו הם עצומים. תוכל לכסות את הקוד שלך ושל אנשים אחרים באמצעות בדיקות. לעתים קרובות, מתחילים מופקדים בכתיבת מבחנים ליחידה עבור עמיתים, כך שזה יכול להיות שימושי ישירות בעבודה החדשה שלהם. 57.5% מהמשיבים אמרו שהם השתמשו ב-JUnit לפני הראיון הראשון המוצלח שלהם עם Java, ולמעלה מ-83% כבר השתמשו בבדיקות יחידות בשנה הראשונה שלהם.

ספריות שירות, GUI ורכיבים שימושיים

שאלנו עד כמה בוגרי JavaRush מכירים מספר כלים, שחלקם כוסו בקורס שלנו.
  • Servlets הם רכיבי תוכנת Java שמרחיבים את היכולות של שרת.
  • JDBC הוא תקן בלתי תלוי בפלטפורמה עבור יכולת פעולה הדדית בין יישומי Java ומסדי נתונים. JDBC מיושם כחבילת Java. sql כלול ב-Java SE (מהדורה סטנדרטית).
  • log4j היא ספריית רישום ההודעות המפורסמת ביותר. זה מאפשר לך לכתוב שיחות ספרייה בקוד ג'אווה, ולאחר מכן להתאים אותו באופן גמיש מבלי לשנות את הקוד שכבר נכתב.
  • ג'קסון/JSON. JSON (סימון אובייקטים של JavaScript) הוא פורמט פתוח סטנדרטי פתוח ופורמט של החלפת נתונים, וג'קסון הוא מעבד JSON בעל ביצועים גבוהים עבור Java.
כל הכלים הללו שימושיים מאוד ומשמשים לעתים קרובות בעבודה, ורוב התלמידים לא הזניחו אותם בהכנות לראיון. זה נכון במיוחד לגבי ג'קסון, ש-72.7% מהמועמדים לתפקיד מתכנת Java נתקלו בו, JDBC - ספרייה זו נוסתה על ידי יותר מ-78% מהמשיבים. כמעט כולם השתמשו בטכנולוגיות הללו בעבודתם. מפתחי Java לא נתקלים ב-GUI לעתים קרובות מאוד. שאלנו שאלה לגבי JavaFX: רק 18% מהמשיבים נתקלו בטכנולוגיה הזו בעבודה. מה אתה צריך לדעת כדי להפוך ל-Java Junior, ומה לעשות עם כל זה?  - 8שני שלישים מהנשאלים עבדו עם סרבלטים; מספר קטן מעט יותר של הנשאלים ניסו אותם במהלך הלימודים. מתברר גם שכמה מתכנתי Java חדשים נתקלו בפרויקטים כמו Apache Commons (סט ספריות המתמקד בכל ההיבטים של רכיבי Java הניתנים לשימוש חוזר) ו-Guava (סט של ספריות נפוצות בקוד פתוח עבור Java, שפותחו בעיקר על ידי מהנדסי גוגל).מה אתה צריך לדעת כדי להפוך ל-Java Junior, ומה לעשות עם כל זה?  - 9

מסגרות

בעבר, אף אחד לא ציפה ש-Java Junior יכיר את Spring או Hibernate. אבל הזמנים משתנים, וכיום זה צפוי לפעמים אפילו ממתאמן. ללמוד את הטכנולוגיות האלה בעצמך זה לא קל. גם אם הכל נראה ברור, תלמידים שוכחים מהר מאוד מה זה מה. לפעמים אפילו בקשות שנכתבו באופן עצמאי באביב אינן תרופת פלא. רק עבודה פעילה תעזור. עם זאת, לפני ראיון מוצלח, שליש מהנשאלים הכירו את אביב ברמה טובה, ו-45.5% הבינו אותו בממוצע. המצב עם אתחול Spring הוא קצת יותר גרוע (36.4% לא ידעו זאת כלל), וכמעט 44% מבוגרי JavaRush שנשאלו אמרו שיש להם ידע טוב ב-Hibernate. מה אתה צריך לדעת כדי להפוך ל-Java Junior, ומה לעשות עם כל זה?  - 10במקביל, במהלך העבודה, המסגרת הראשית של Java שימשה כמעט 88% מהמתכנתים החדשים, Spring Boot - 83%, Hibernate - 81%.מה אתה צריך לדעת כדי להפוך ל-Java Junior, ומה לעשות עם כל זה?  - אחד עשר

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

רוב בוגרי JavaRush שרואיינו ניסו לעבוד עם בוני פרויקטים. לרוב זה היה מייבן (40.9% ניסו אותו בפועל, 30.3% נוספים השתמשו בו מעת לעת, ו-12.1% השתמשו בו ללא הרף במהלך הלימודים). כשעבדתי עם מייבן, נתקלתי ב-72.7% (לעתים קרובות), 7.6% (לפעמים) ו-3% (לעיתים רחוקות). לגבי גרדל, המצב קצת יותר גרוע. רק 22.7% התאמנו עם האספן הזה, ורובם זה עתה התנסו בטכנולוגיה. כמעט מחצית מהמשיבים השתמשו בגרדל בעבודתם. מה אתה צריך לדעת כדי להפוך ל-Java Junior, ומה לעשות עם כל זה?  - 12נמלה איבדה מזמן את מעמדה, וזה בא לידי ביטוי בפופולריות שלה בקרב הבוגרים שלנו: רק 3% מהנשאלים התעסקו בזה. ו-12% מאלה שענו על השאלות נאלצו לעבוד איתו. בין שרתי היישומים, Tomcat היא המובילה; יותר מ-77% מהמשיבים הבינו זאת במהלך הלימודים, 11% ניסו את GlassFish, 12% ניסו את JBoss. הפופולריות של שרתים בקרב אלו שכבר עובדים נראית דומה. רק ל-31.8% מאלו שקיבלו את העבודה לא היה ניסיון עם Tomcat. כמו כן, בוגרי JavaRush, במהלך שנת עבודתם הראשונה כמתכנת, ניסו שרתים כמו WebSphere, Jetty, Netty, Wildfly, Weblogic.מה אתה צריך לדעת כדי להפוך ל-Java Junior, ומה לעשות עם כל זה?  - 13

מה עוד?

הרוב המכריע של המשיבים, עוד לפני קבלת העבודה הראשונה שלהם:
  • היה בעל הבנה של HTML, CSS ו-JavaScript;
  • עבד עם מסדי נתונים, ידע SQL;
  • כמעט כולם השתמשו ב-Git וב-GitHub;
  • ניסיתי לעבוד עם XML טהור.
כל הטכנולוגיות הללו היו שימושיות עבורם בעבודתם הנוספת. מתכנת Java, או כל אחד אחר לצורך העניין, צפוי כברירת מחדל להכיר את כל האמור לעיל. זו היכרות, לא ידע מעמיק. לכן אנו ממליצים לקחת הפסקה מג'אווה לפעמים ולהרחיב את האופקים על ידי לימוד הטכנולוגיות הללו. כמו כן, חלק מאלה שענו על השאלות ציינו כי בראיון מצופה מהם להיות בעלי ידע, לפחות תיאורטי, בדפוסי עיצוב, דפוסים אדריכליים, וכן את כללי הנימוס בתכנות (כל אלה KISS, DRY, SOLID ). עם זאת, לרוב בראיון, הספיקו רק הגדרות: מי שערך את הראיונות היה מודע היטב לכך שהבנה אמיתית של דברים כאלה באה רק עם תרגול מתמיד. האם הם היו שימושיים בעבודתך? כמובן שהם היו שימושיים.

מסקנות

אנו מקווים שלא הפחדנו אותך יותר מדי עם מספר הטכנולוגיות שאתה צריך ללמוד. לא צריך לדעת את כל זה לעומק, וחוץ מזה, להבין את הכל זה די מעניין. לא סתם החלטת להיות מתכנת, נכון? אז המשך ללמוד ג'אווה והשאר עם מוטיבציה. בהצלחה! נ.ב. אם כבר מצאתם עבודה ואתם רוצים לדבר על הניסיון שלכם, ברוכים הבאים לתגובות!
הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION