JavaRush /مدونة جافا /Random-AR /ما الذي تحتاج إلى معرفته لتصبح Java Junior، وماذا تفعل بك...

ما الذي تحتاج إلى معرفته لتصبح Java Junior، وماذا تفعل بكل ذلك؟

نشرت في المجموعة
تتغير متطلبات مطوري Java المحتملين باستمرار ويصعب مواكبتها. هل يكفي معرفة Java Core فقط لتصبح متدربًا؟ ما مدى حاجتك إلى فهم Spring وHibernate للحصول على منصب Java Junior؟ هل يستحق تعلم قواعد البيانات وفهم خوارزميات الفرز والبحث؟ وبما أن طلاب JavaRush غالبًا ما يهتمون بهذه الأسئلة، فقد قررنا أن نطرحها على خريجينا الذين يعملون بالفعل كمتدربين في Java Juniors أو يتدربون في الشركات كمتدربين في Java. لاحظ أن 13% من المشاركين كانوا محظوظين بما يكفي للحصول على مركز Java الأوسط في محاولتهم الأولى، متجاوزين مرحلة المبتدئين. ما الذي تحتاج إلى معرفته لتصبح Java Junior، وماذا تفعل بكل ذلك؟  - 1شارك المشاركون معلومات حول التقنيات التي يحتاجونها لاجتياز المقابلة والتي استخدموها في السنة الأولى من أول وظيفة لهم في Java.

الجميع يحتاج إلى جافا كور

مصطلح Java Core واسع جدًا. يشير هذا الاسم إلى كل من بناء الجملة الأولي للغة وموضوع معقد مثل تعدد مؤشرات الترابط. في الواقع، دورة JavaRush مخصصة بشكل أساسي لـ Core. ما الذي تحتاج إلى معرفته لتصبح Java Junior، وماذا تفعل بكل ذلك؟  - 2بناء جملة جافا. أساسيات اللغة. كل هذه أنواع البيانات والمشغلين والحلقات والفروع. وبطبيعة الحال، صنف 92.4% ممن حصلوا على الوظيفة معرفتهم في بناء الجملة بأنها "جيدة أو ممتازة". ومع ذلك، تمكن 7.6% من المشاركين من أن يصبحوا متدربين في لغة Java مع معرفة متوسطة في بناء الجملة. ومع ذلك، ينبغي تقييم ذلك على أنه حظ (أو تفاخر بالمستجيبين :)). وبطبيعة الحال، يجب على كل من يتقدم لوظيفة كمبرمج أن يعرف تركيب اللغة. البرمجة الشيئية (OOP). كل شيء في Java يتكون من كائنات، لذلك يمكن اعتبار OOP أحد أهم موضوعات اللغة. قد يبدو النهج الموجه للكائنات غير مألوف في البداية، خاصة إذا كنت قد درست اللغات الإجرائية فقط من قبل، ولكن ليس من الصعب التبديل إلى الكائنات. أكبر الصعوبات التي يواجهها المبتدئين هي مستويات التجريد وتوزيعها المستقل - يجب أن يكون المبرمج المبتدئ قادرًا على إنشاء تسلسل هرمي للكائنات بشكل صحيح، وفهم ما ستكون الواجهة مسؤولة عنه وما يمكن وضعه في فئة مجردة، وإنشاء الميراث سلم، وهكذا. كالعادة، يتم حل هذه الصعوبة بالممارسة. غالبية المشاركين، 80.3% ممن حصلوا على وظيفتهم الأولى، يعرفون مبادئ OOP جيدًا ويستخدمونها باستمرار. في السنة الأولى من العمل كمتدربين ومتدربين في Java Junior، استخدم 78.8% من المشاركين مبادئ OOP كثيرًا، و12.1% - من وقت لآخر. نادرًا ما يستخدمها 7.6% من المستمعين - كان هؤلاء الأشخاص مشغولين بشكل أساسي باختبار الوحدة ومختلف المهام الصغيرة. وهذا يعني أنهم استخدموا أيضًا الفئات أو الكائنات (لا يمكنك الاستغناء عنها في Java)، ولكن نادرًا ما قاموا بإنشاء تسلسلات هرمية للفئات. إطار المجموعات. المجموعة عبارة عن مجموعة من الكائنات الفردية المقدمة ككل. تتمتع Java بإطار عمل مجموعات ذكي جدًا لتمثيل المجموعات. تعتمد المجموعات على هياكل البيانات الشائعة - القوائم، العادية والمتصلة، المجموعات، جداول التجزئة. لذلك، عند استكشاف المجموعات، من الجيد أن تصبح أكثر دراية بهياكل البيانات. الصعوبة الرئيسية في دراسة المجموعات هي فهم وتذكر كيفية عملها. إذا فهمت كيفية الوصول إلى عنصر ما، واستخراجه من المجموعة وإضافته إليه، فإنك تبدأ في فهم مكان تطبيق هذه البنية أو تلك. يأتي مع الممارسة. ولكن، لحسن الحظ، لا يتم استخدام كل العدد الهائل من المجموعات بنشاط في العمل الحقيقي. أشار 80.3% من المشاركين إلى أن لديهم معرفة جيدة أو حتى ممتازة بالمجموعات قبل تلقي عرض العمل الأول، ويستخدم جميع المبتدئين والمتدربين البالغ عددهم 96.9% تقريبًا المجموعات في وظيفتهم الأولى. ما الذي تحتاج إلى معرفته لتصبح Java Junior، وماذا تفعل بكل ذلك؟  - 3معالجة الاستثناء.الاستثناء هو موقف غير عادي قد يحدث أثناء تنفيذ البرنامج. جميع فئات الاستثناء هي أنواع فرعية من فئة java.lang.Exception. تعمل آلية معالجة الاستثناءات على تبسيط عملية البحث عن الأخطاء في البرامج إلى حد كبير. عادة، يبدأ الطلاب في استخدام الاستثناءات في وقت مبكر جدًا، على سبيل المثال، في JavaRush. في JavaRush، يتم طرح هذا الموضوع في أول مهمة لبناء جملة Java. عرف جميع خريجي JavaRush تقريبًا الذين حصلوا على وظائفهم الأولى كيفية التعامل مع الاستثناءات، وبطبيعة الحال، استخدموها أثناء العمل. الإدخال/الإخراج تيارات جافا. عادةً ما تحتوي البرامج الأولى المكتوبة بلغة Java على شيء مثل System.out.println("Hello World"). في كثير من الأحيان، يفهم المبتدئون أن طريقة println تطبع سطرًا إلى وحدة التحكم، لكن ليس لديهم أي فكرة عن سبب وجود النظام والخروج وكيف يعملان. بعد ذلك بقليل، اتضح أن Java تنفذ عمليات الإدخال والإخراج باستخدام التدفقات، دفق مستمر من البيانات. المواضيع ليست الموضوع الأسهل للفهم، ولا يتم استخدامها كثيرًا في وظائف المبتدئين: فقط 22.7% من الأشخاص الذين حصلوا على أول وظيفة Java Junior/Trainee قالوا إنهم يستخدمون سلاسل الإدخال/الإخراج كثيرًا، 31.8% - من وقت لآخر الوقت 25.8٪ - نادراً. لذا فإن ما يقل قليلاً عن 20% لم يستخدموها على الإطلاق خلال عامهم الأول كمطورين لـ Java. خلال دراستهم، لم يواجه 18.2% أي صعوبات خاصة في التدفقات وكانوا يعرفونها جيدًا، وصنف 36.4% معرفتهم بأنها جيدة، لكن 10.6% تجاهلوا هذا الموضوع. تعدد مؤشرات الترابط (جافا تعدد مؤشرات الترابط/التزامن). ربما يكون هذا هو الموضوع الذي يسبب أكبر سوء فهم بين المطورين المبتدئين. على الرغم من أن تعدد مؤشرات الترابط في Java يتم تنفيذه بشكل جيد للغاية، إلا أنه من الصعب فهمه، وقد تنشأ مشاكل حتى عند كتابة برامج بسيطة (على سبيل المثال، "Hello, World" متعدد مؤشرات الترابط). يفهم العديد من أصحاب العمل هذا ولا يطلبون فهمًا عميقًا للتعددية من المبتدئين، متوقعين أن يأتي ذلك مع الخبرة. وأشار 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 الجديدة . وبالتالي، يمكننا أن نقول بأمان أن معرفة لغة Java الأساسية لأي Java مبتدئ وحتى متدرب محتمل هي ببساطة ضرورية. بالطبع، بعض المواضيع، على سبيل المثال، تعدد مؤشرات الترابط، مقبولة لمعرفة أقل قليلا، ولكن يجب أن تكون بناء جملة Java و OOP والمجموعات متأصلة بقوة في وعيك.

الخوارزميات وهياكل البيانات

هناك جدل مستمر حول دراسة خوارزميات الفرز والبحث. من ناحية، تمت كتابة أفضل الخوارزميات منذ فترة طويلة وإدراجها في مكتبات جميع لغات البرمجة الشائعة، بما في ذلك Java. ويمكن استخدامها بشكل قانوني دون الحاجة إلى كتابة التعليمات البرمجية الخاصة بك. ومع ذلك، لا يزال الخبراء الذين يقومون بتدريب المبرمجين يوصون بأن يقوم كل مطور مبتدئ بتدريب دماغه عن طريق كتابة كل هذه الخوارزميات الفقاعية والدمج والبحث الثنائي وما شابه ذلك. أولاً، تعد هذه الخوارزميات نوعًا من اختبار عباد الشمس لمهارات المبرمج (أي ليس المعرفة، بل المهارات) وفهم الشخص لماهية البرمجة من حيث المبدأ. إذا كان عقلك مستعدًا بالفعل لهذا النوع من العمل، فسوف تكتب الخوارزميات بسهولة نسبية. ومع ذلك، يجب أن تتذكر: أنت بحاجة إلى خوارزميات لتدريب عقلك على وجه التحديد... ومن أجل اجتياز المقابلة: كبار المطورين المتآكلين الذين يقومون بها مغرمون جدًا بتعذيب المتقدمين بطلبات كتابة هذه الخوارزمية أو تلك. لكن في عملهم، يستخدم الأغلبية (48.5%) خوارزميات المكتبة القياسية، الفعالة والمثبتة، في حين أن 16% من المشاركين لم يستخدموا الفرز على الإطلاق في السنة الأولى من العمل كمبرمج. ما الذي تحتاج إلى معرفته لتصبح Java Junior، وماذا تفعل بكل ذلك؟  - 4يقول 69.6% من الخريجين أنه قبل تلقي عرض العمل الأول، كان لديهم فهم جيد لخوارزميات الفرز والبحث وكان بإمكانهم كتابتها بأنفسهم. ما الذي تحتاج إلى معرفته لتصبح Java Junior، وماذا تفعل بكل ذلك؟  - 5لقد تطرقنا بالفعل إلى موضوع هياكل البيانات عندما تحدثنا عن مجموعات Java. نعم، من الأفضل أن نفهمها لكي نعرف أين وأي هيكل يجب تطبيقه. يعد إنشاء هياكل البيانات الخاصة بك على صورة هياكل المكتبة تمرينًا رائعًا سيساعدك على فهمها بشكل أفضل. يمكنك، على سبيل المثال، محاولة كتابة نسختك الخاصة من ArrayList أو اقتراح قائمة مرتبطة منفردة خاصة بك (قائمة LinkedList المعتادة في Java مرتبطة بشكل مزدوج). ما الذي تحتاج إلى معرفته لتصبح Java Junior، وماذا تفعل بكل ذلك؟  - 6أثناء العمل، استخدم المبرمجون المبتدئون بشكل أساسي هياكل البيانات القياسية.ما الذي تحتاج إلى معرفته لتصبح Java Junior، وماذا تفعل بكل ذلك؟  - 7

وحدة التجارب

مكتبة JUnit مسؤولة عن اختبار الوحدة في Java. في الواقع، يمكنك البدء باختبار الوحدة تقريبًا في بداية التدريب. على أقل تقدير، عندما تبدأ مشروعك المستقل الأول، حتى ولو كان صغيرًا جدًا، فمن الأفضل أن تكون ماهرًا في هذه الأداة. اختبارات وحدة الكتابة ليست بهذه الصعوبة، على الرغم من وجود بعض الفروق الدقيقة. لن يستغرق تعلم JUnit الكثير من الوقت، لكن فوائد معرفتها هائلة. ستكون قادرًا على تغطية الكود الخاص بك ورمز الآخرين من خلال الاختبارات. في كثير من الأحيان، يتم تكليف المبتدئين بكتابة اختبارات الوحدة لزملائهم، لذلك يمكن أن يكون ذلك مفيدًا بشكل مباشر في وظيفتهم الجديدة. قال 57.5% من المشاركين أنهم استخدموا JUnit قبل أول مقابلة ناجحة لهم مع Java، وأكثر من 83% استخدموا بالفعل اختبار الوحدة في عامهم الأول.

مكتبات المرافق، واجهة المستخدم الرسومية والمكونات المفيدة

لقد سألنا عن مدى إلمام خريجي JavaRush بعدد من الأدوات، والتي تمت تغطية بعضها في الدورة التدريبية لدينا.
  • Servlets هي مكونات برامج Java تعمل على توسيع قدرات الخادم.
  • JDBC هو معيار مستقل عن النظام الأساسي لقابلية التشغيل البيني بين تطبيقات Java وقواعد البيانات. يتم تنفيذ JDBC كحزمة جافا. تم تضمين SQL مع Java SE (الإصدار القياسي).
  • log4j هي ​​مكتبة تسجيل الرسائل الأكثر شهرة. يسمح لك بكتابة استدعاءات المكتبة في كود جافا، ثم تخصيصه بمرونة دون تغيير الكود المكتوب بالفعل.
  • جاكسون/جسون. يعد JSON (JavaScript Object Notation) تنسيقًا شائعًا للغاية لتبادل الملفات والبيانات القياسية المفتوحة، ويعتبر Jackson معالج JSON عالي الأداء لـ Java.
كل هذه الأدوات مفيدة جداً وكثيراً ما تستخدم في العمل، ولم يهملها معظم الطلاب عند التحضير للمقابلة. هذا ينطبق بشكل خاص على جاكسون، الذي واجهه 72.7٪ من المتقدمين لمنصب مبرمج Java، JDBC - تمت تجربة هذه المكتبة من قبل أكثر من 78٪ من المشاركين. استخدم الجميع تقريبًا هذه التقنيات في عملهم. لا يصادف مطورو Java واجهات المستخدم الرسومية كثيرًا. لقد طرحنا سؤالاً حول JavaFX: 18% فقط من المشاركين واجهوا هذه التكنولوجيا في العمل. ما الذي تحتاج إلى معرفته لتصبح Java Junior، وماذا تفعل بكل ذلك؟  - 8عمل ثلثا المشاركين مع servlets، وقد جربها عدد أقل قليلاً من المشاركين أثناء دراستهم. اتضح أيضًا أن بعض مبرمجي Java الجدد واجهوا مشاريع مثل Apache Commons (مجموعة من المكتبات التي تركز على جميع جوانب مكونات Java القابلة لإعادة الاستخدام) وGuava (مجموعة من المكتبات العامة مفتوحة المصدر لـ Java، تم تطويرها بشكل أساسي بواسطة مهندسي Google).ما الذي تحتاج إلى معرفته لتصبح Java Junior، وماذا تفعل بكل ذلك؟  - 9

إطار أعمال

في السابق، لم يكن أحد يتوقع أن يعرف Java Junior الربيع أو السبات. لكن الزمن يتغير، واليوم يُتوقع هذا أحيانًا حتى من المتدرب. تعلم هذه التقنيات بنفسك ليس بالأمر السهل. حتى لو بدا كل شيء واضحًا، فغالبًا ما ينسى الطلاب ما هو الأمر بسرعة كبيرة. في بعض الأحيان، حتى الطلبات المكتوبة بشكل مستقل في الربيع ليست حلاً سحريًا. فقط العمل النشط سوف يساعد. ومع ذلك، قبل إجراء مقابلة ناجحة، كان ثلث المشاركين على دراية بالربيع بمستوى جيد، وكان 45.5% لديهم فهم متوسط ​​له. الوضع مع Spring Boot أسوأ إلى حد ما (36.4٪ لم يعرفوا ذلك على الإطلاق)، وقال ما يقرب من 44٪ من خريجي JavaRush الذين شملهم الاستطلاع أن لديهم معرفة جيدة بالإسبات. ما الذي تحتاج إلى معرفته لتصبح Java Junior، وماذا تفعل بكل ذلك؟  - 10في الوقت نفسه، أثناء العمل، تم استخدام إطار Java الرئيسي من قبل ما يقرب من 88٪ من المبرمجين الجدد، Spring Boot - 83٪، Hibernate - 81٪.ما الذي تحتاج إلى معرفته لتصبح Java Junior، وماذا تفعل بكل ذلك؟  - أحد عشر

بناء أدوات الأتمتة وخوادم التطبيقات

لقد حاول معظم خريجي JavaRush الذين تمت مقابلتهم العمل مع منشئي المشاريع. غالبًا ما كان Maven (40.9٪ جربوه عمليًا، واستخدمه 30.3٪ آخرون من وقت لآخر، واستخدمه 12.1٪ باستمرار أثناء دراستهم). عند العمل مع Maven، واجهت 72.7% (غالبًا)، و7.6% (أحيانًا)، و3% (نادرًا). أما بالنسبة لجرادل فالوضع أسوأ إلى حد ما. فقط 22.7% تدربوا مع هذا المجمع، ومعظمهم جربوا هذه التكنولوجيا للتو. ما يقرب من نصف المشاركين استخدموا Gradle في عملهم. ما الذي تحتاج إلى معرفته لتصبح Java Junior، وماذا تفعل بكل ذلك؟  - 12لقد فقدت شركة Ant مكانتها منذ فترة طويلة، وهذا ينعكس في شعبيتها بين خريجينا: 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، أو أي شخص آخر في هذا الشأن، على دراية بكل ما سبق. إنها معرفة وليست معرفة عميقة. لذا ننصحك بأخذ استراحة من لغة Java أحيانًا وتوسيع آفاقك من خلال دراسة هذه التقنيات. كما أشار بعض الذين أجابوا على الأسئلة إلى أنه كان من المتوقع منهم في المقابلة أن يكون لديهم معرفة، على الأقل نظرية، بأنماط التصميم، والأنماط المعمارية، وكذلك الأخلاق الحميدة في البرمجة (كل هذه KISS، DRY، SOLID). ومع ذلك، في أغلب الأحيان في المقابلة، كانت التعريفات فقط كافية: أولئك الذين أجروا المقابلات كانوا يدركون جيدًا أن الفهم الحقيقي لمثل هذه الأشياء لا يأتي إلا من خلال الممارسة المستمرة. هل كانت مفيدة في عملك؟ بالطبع كانت مفيدة.

الاستنتاجات

نأمل ألا نخيفك كثيرًا بعدد التقنيات التي يتعين عليك تعلمها. ليس من الضروري معرفة كل هذا بدقة، علاوة على ذلك، فإن اكتشاف كل هذا أمر مثير للاهتمام. ليس من قبيل الصدفة أنك قررت أن تصبح مبرمجًا، أليس كذلك؟ لذا استمر في تعلم Java وحافظ على دوافعك. حظ سعيد! ملحوظة: إذا كنت قد وجدت وظيفة بالفعل وتريد التحدث عن تجربتك، فمرحبًا بك في التعليقات!
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION