JavaRush /Java blogi /Random-UZ /Java Junior bo'lish uchun nimani bilishingiz kerak va bu ...

Java Junior bo'lish uchun nimani bilishingiz kerak va bu bilan nima qilish kerak?

Guruhda nashr etilgan
Potentsial Java ishlab chiquvchilari uchun talablar doimo o'zgarib turadi va ularga rioya qilish qiyin. Stajyor bo'lish uchun faqat Java Core-ni bilish kifoyami? Java Junior lavozimiga ega bo'lish uchun Spring va Hibernate-ni qanchalik yaxshi tushunishingiz kerak? Ma'lumotlar bazalarini o'rganish va saralash va qidirish algoritmlarini tushunishga arziydimi? JavaRush talabalarini bu savollar ko'pincha tashvishga solayotgani uchun biz ularni Java Juniors sifatida ishlayotgan yoki kompaniyalarda Java Trainees sifatida stajirovka o'tayotgan bitiruvchilarimizga berishga qaror qildik. E'tibor bering, respondentlarning 13 foizi birinchi urinishlarida Junior bosqichini chetlab o'tib, Java Middle o'rnini olish baxtiga muyassar bo'lgan. Java Junior bo'lish uchun nimani bilishingiz kerak va bu bilan nima qilish kerak?  - 1Respondentlar intervyudan o'tish uchun qanday texnologiyalar kerakligi va Java bilan bog'liq birinchi ishining birinchi yilida qaysi texnologiyalardan foydalanganlari haqida ma'lumot berishdi.

Java Core hammaga kerak

Java Core atamasi juda keng. Bu nom tilning elementar sintaksisini ham, ko'p o'qli kabi murakkab mavzuni ham anglatadi. Aslida, JavaRush kursi asosan Core-ga bag'ishlangan. Java Junior bo'lish uchun nimani bilishingiz kerak va bu bilan nima qilish kerak?  - 2Java sintaksisi. Til asoslari. Bu barcha ma'lumotlar turlari, operatorlar, tsikllar va filiallar. Tabiiyki, ishga kirganlarning 92,4 foizi sintaksis bo'yicha bilimlarini "yaxshi yoki zo'r" deb baholagan. Biroq, respondentlarning 7,6 foizi o'rtacha sintaktik bilimga ega Java stajyori bo'lishga muvaffaq bo'ldi. Biroq, buni ko'proq omad (yoki respondentlar bilan maqtanish :)) sifatida baholash kerak. Albatta, dasturchi sifatida ishga kirish uchun ariza topshirgan har bir kishi til sintaksisini bilishi kerak. Ob'ektga yo'naltirilgan dasturlash (OOP). Java-da hamma narsa ob'ektlardan iborat, shuning uchun OOPni tilning eng muhim mavzularidan biri deb hisoblash mumkin. Ob'ektga yo'naltirilgan yondashuv dastlab notanish bo'lib tuyulishi mumkin, ayniqsa siz oldin faqat protsessual tillarni o'rgangan bo'lsangiz, lekin ob'ektlarga o'tish qiyin emas. Yangi boshlanuvchilar uchun eng katta qiyinchiliklar - bu abstraktsiya darajalari va ularning mustaqil taqsimlanishi - yangi boshlanuvchi dasturchi ob'ektlar ierarxiyasini to'g'ri yaratishi, interfeys nima uchun javobgar bo'lishini va mavhum sinfga nima kiritilishi mumkinligini tushunishi, meros yaratishi kerak. narvon va boshqalar. Odatdagidek, bu qiyinchilik amaliyot bilan hal qilinadi. Respondentlarning ko'pchiligi, ya'ni birinchi ish joyiga ega bo'lganlarning 80,3 foizi OOP tamoyillarini yaxshi bilishgan va ulardan doimiy foydalanishgan. Java Juniors va stajyor sifatida ishlashning birinchi yilida respondentlarning 78,8 foizi OOP tamoyillarini tez-tez ishlatgan, 12,1 foizi vaqti-vaqti bilan. Tinglovchilarning 7,6 foizi ularni kamdan-kam ishlatgan - bu bolalar asosan birlik testlari va turli xil kichik vazifalar bilan band edilar. Ya'ni, albatta, ular sinflar yoki ob'ektlardan ham foydalanganlar (siz Java-da bu holda qilolmaysiz), lekin kamdan-kam hollarda sinf ierarxiyasini yaratdilar. To'plamlar ramkasi. To'plam - bu bir butun sifatida taqdim etilgan alohida ob'ektlar to'plami. Java-da to'plamlarni ifodalash uchun juda aqlli Collections Framework mavjud. To'plamlar mashhur ma'lumotlar tuzilmalariga asoslangan - ro'yxatlar, muntazam va bog'langan, to'plamlar, xesh-jadvallar. Shuning uchun to‘plamlarni o‘rganayotganda ma’lumotlar tuzilmalari bilan ko‘proq tanishish maqsadga muvofiqdir. To'plamlarni o'rganishdagi asosiy qiyinchilik ularning qanday ishlashini tushunish va eslab qolishdir. Agar siz ular qanday qilib elementga kirishini tushunsangiz, uni to'plamdan chiqarib, unga qo'shsangiz, u yoki bu tuzilmani qaerga qo'llashni tushuna boshlaysiz. Bu amaliyot bilan birga keladi. Ammo, xayriyatki, ko'p sonli to'plamlarning hammasi ham haqiqiy ishda faol foydalanilmaydi. Respondentlarning 80,3% birinchi ish taklifini olishdan oldin to'plamlar haqida yaxshi yoki hatto mukammal bilimga ega ekanligini ta'kidladilar va o'smirlar va stajyorlarning deyarli barchasi 96,9% birinchi ishlarida kolleksiyalardan foydalanishadi. Java Junior bo'lish uchun nimani bilishingiz kerak va bu bilan nima qilish kerak?  - 3Istisno bilan ishlash.Istisno - bu dasturni bajarishda yuzaga kelishi mumkin bo'lgan g'ayrioddiy holat. Barcha istisno sinflari java.lang.Exception sinfining pastki turlaridir. Istisnolarni qayta ishlash mexanizmi dasturlarda xatolarni topish jarayonini sezilarli darajada osonlashtiradi. Odatda, talabalar istisnolardan ancha erta foydalanishni boshlaydilar, aytaylik JavaRush da JavaRush da bu mavzu birinchi Java Syntax questida ko'tariladi. Ilk ish joyiga ega bo'lgan deyarli barcha JavaRush bitiruvchilari istisnolarni qanday hal qilishni bilishgan va, tabiiyki, ish paytida ulardan foydalanishgan. I/U oqimlari Java. Java-da yozilgan birinchi dasturlarda odatda System.out.println("Salom dunyo") kabi narsalar mavjud edi. Ko'pincha, yangi boshlanuvchilar println usuli konsolga chiziq bosib chiqarishini tushunishadi, lekin nima uchun System va out borligini va ular qanday ishlashini bilishmaydi. Biroz vaqt o'tgach, Java ma'lumotlarning uzluksiz oqimi bo'lgan oqimlar yordamida kiritish va chiqarish operatsiyalarini amalga oshiradi. Mavzular tushunarli mavzu emas va u yangi boshlanuvchilar ishlarida unchalik qo'llanilmaydi: Java Junior/Stajyorlik bo'yicha birinchi ish joyiga ega bo'lganlarning atigi 22,7 foizi kiritish-chiqarish iplaridan ko'p foydalanishini aytdi, 31,8 foizi - vaqti-vaqti bilan. vaqt, 25,8% - kamdan-kam hollarda. Shunday qilib, 20% dan sal kamrog'i Java dasturchisi sifatida birinchi yil davomida ulardan umuman foydalanmagan. O'qish davomida 18,2% oqimlar bilan bog'liq hech qanday qiyinchiliklarga duch kelmagan va ularni yaxshi bilgan, 36,4% o'z bilimlarini yaxshi deb baholagan, ammo 10,6% bu mavzuni e'tiborsiz qoldirgan. Multithreading (Java Multithreading/Concurrency). Ehtimol, bu yangi boshlanuvchilar orasida eng katta tushunmovchilikni keltirib chiqaradigan mavzu. Java-da multithreading juda yaxshi amalga oshirilgan bo'lsa ham, uni tushunish qiyin va oddiy dasturlarni yozishda ham muammolar paydo bo'lishi mumkin (masalan, ko'p oqimli "Salom, dunyo"). Ko'pgina ish beruvchilar buni tushunishadi va yangi boshlanuvchilardan multithreadingni chuqur tushunishni talab qilmaydilar, bu tajriba bilan kelishini kutishadi. Respondentlarning atigi 12 foizi birinchi taklifni olishdan oldin mavzuni yaxshi darajada bilishlarini ta'kidladilar, deyarli 32 foizi esa bu mavzu haqida umuman hech narsa bilmasligini tan oldi. Ko'pchilik, ya'ni 56,2%, ko'p ish zarralari haqida "bir oz tushunchaga ega" ekanligini aytdi. Shunday qilib, agar iplar bilan ishlashning qiyinchiliklari hozir siz uchun engib bo'lmaydigan bo'lib tuyulsa, bu raqamlar sizni ishontirishi mumkin. Ammo, agar siz intervyuda raqobatdosh ustunlikka ega bo'lishni istasangiz, bu mavzu sizning kuchli nuqtangiz bo'lishi mumkin. Haqiqiy loyihalarda yangi boshlanuvchilarga ham kamdan-kam hollarda iplar bilan ishlashga ruxsat beriladi. Shunday qilib, boshlang'ich dasturchilarning 15,1 foizi Java Multithreading bilan o'z ishlarida umuman duch kelmagan, 39,4 foizi esa kamdan-kam hollarda duch kelgan. Ko'pincha ishning birinchi yilida respondentlarning atigi 9,1 foizi multithreading bilan ishlashga majbur bo'lgan. Lambda ifodalari.Lambda iboralari va funktsional dasturlash bo'yicha maslahatlar Java 8 da paydo bo'ldi, ammo yangi boshlanuvchilar bu qulay vositadan tez-tez foydalanmaydi. Lambda ifodasi - bu hech qanday sinfga mansub bo'lmagan holda yaratilishi mumkin bo'lgan funksiya bo'lib, uni ob'ekt sifatida topshirishingiz yoki uni talab bo'yicha bajarishingiz mumkin. So'rovda qatnashgan bitiruvchilarning atigi 22,7 foizi birinchi ish taklifini olishdan oldin Lambda iboralarini yaxshi bilishgan va 48,5 foizi mavzu bo'yicha bilimlarini "nolga yaqin" deb baholagan. Shu bilan birga, yangi dasturchilarning 85% dan ortig'i o'zlarining birinchi yilida lambda ifodalaridan foydalanganliklarini aytishdi. Adolat uchun shuni ta'kidlaymizki, ushbu mavzuni biladiganlarning past foizi JavaRush-da lambda iboralari hozirgacha faqat yangi Java Syntax Pro kvestlari va maqolalarida taqdim etilgani bilan bog'liq bo'lishi mumkin . Shunday qilib, biz ishonch bilan ayta olamizki, har qanday potentsial Java Junior va hatto stajyor uchun Core Java-ni bilish juda zarur. Albatta, ba'zi mavzular, masalan, multithreading, biroz kamroq bilish uchun maqbuldir, ammo Java sintaksisi, OOP va to'plamlar sizning ongingizga mustahkam o'rnashgan bo'lishi kerak.

Algoritmlar va ma'lumotlar tuzilmalari

Saralash va qidirish algoritmlarini o'rganish bo'yicha doimiy munozaralar mavjud. Bir tomondan, eng yaxshi algoritmlar uzoq vaqtdan beri yozilgan va barcha mashhur dasturlash tillari kutubxonalariga, shu jumladan Java-ga kiritilgan. Va ular o'z kodingizni yozishda qiyinchiliksiz qonuniy ravishda ishlatilishi mumkin. Biroq, dasturchilarni tayyorlaydigan mutaxassislar hali ham har bir yangi boshlanuvchi dasturchiga barcha pufakcha algoritmlarini yozish, birlashtirish, ikkilik qidiruv va shunga o'xshashlar orqali miyasini o'rgatishlarini tavsiya qiladi. Birinchidan, bu algoritmlar dasturchining ko'nikmalarini (ya'ni, bilim emas, balki ko'nikmalar) va insonning dasturlash nima ekanligini tushunishning o'ziga xos lakmus testidir. Agar sizning miyangiz allaqachon bunday ishga yaxshi sozlangan bo'lsa, siz algoritmlarni nisbatan oson yozasiz. Va shunga qaramay, yodda tutishingiz kerak: sizga miyangizni o'rgatish uchun aniq algoritmlar kerak ... va suhbatdan o'tish uchun: ularni olib boradigan korroziv Katta ishlab chiquvchilar abituriyentlarni u yoki bu algoritm yozishni so'rab qiynashni juda yaxshi ko'radilar. Ammo ko'pchilik (48,5%) o'z ishlarida samarali va isbotlangan standart kutubxona algoritmlaridan foydalanadi, respondentlarning 16 foizi dasturchi sifatida ishlagan birinchi yilida saralashdan umuman foydalanmagan. Java Junior bo'lish uchun nimani bilishingiz kerak va bu bilan nima qilish kerak?  - 4Bitiruvchilarning 69,6 foizi birinchi ish taklifini olishdan oldin saralash va qidirish algoritmlarini yaxshi tushunganliklarini va ularni o'zlari yozishlari mumkinligini ta'kidlaydilar. Java Junior bo'lish uchun nimani bilishingiz kerak va bu bilan nima qilish kerak?  - 5Java to'plamlari haqida gapirganda, biz allaqachon ma'lumotlar tuzilmalari mavzusiga to'xtalib o'tdik. Ha, qaerga va qanday tuzilmani qo'llashni bilish uchun ularni tushunish yaxshiroqdir. O'zingizning ma'lumotlar tuzilmalaringizni kutubxonalar tasvirida yaratish ularni yaxshiroq tushunishingizga yordam beradigan ajoyib mashqdir. Siz, masalan, ArrayList-ning o'z versiyasini yozishga harakat qilishingiz yoki o'zingizning alohida bog'langan ro'yxatingizni taklif qilishingiz mumkin (Java-dagi odatiy LinkedList ikki marta bog'langan). Java Junior bo'lish uchun nimani bilishingiz kerak va bu bilan nima qilish kerak?  - 6Ishlayotganda, tajribasiz dasturchilar asosan standart ma'lumotlar tuzilmalaridan foydalanganlar.Java Junior bo'lish uchun nimani bilishingiz kerak va bu bilan nima qilish kerak?  - 7

Birlik sinovi

JUnit kutubxonasi Java-da birlik testi uchun javobgardir. Darhaqiqat, siz birlik testini deyarli mashg'ulotning boshida boshlashingiz mumkin. Hech bo'lmaganda, siz birinchi mustaqil loyihangizni qabul qilganingizda, hatto juda kichik bo'lsa ham, ushbu vositani allaqachon bilganingiz ma'qul. Birlik testlarini yozish unchalik qiyin emas, garchi ba'zi nuanslar mavjud. JUnitni o'rganish ko'p vaqt talab qilmaydi, lekin uni bilishning foydasi juda katta. Siz o'zingizning va boshqa odamlarning kodini testlar bilan qoplashingiz mumkin. Ko'pincha, yangi boshlanuvchilarga hamkasblari uchun birlik testlarini yozish topshiriladi, shuning uchun bu ularning yangi ishida foydali bo'lishi mumkin. Respondentlarning 57,5 ​​foizi JUnit-dan birinchi muvaffaqiyatli Java intervyusidan oldin foydalanishgan va 83 foizdan ortig'i birinchi yilida birlik testidan foydalangan.

Yordamchi kutubxonalar, GUI va foydali komponentlar

Biz JavaRush bitiruvchilari bir qancha vositalar bilan qanchalik tanishligini so‘radik, ularning ba’zilari kursimizda yoritilgan.
  • Servletlar - bu server imkoniyatlarini kengaytiruvchi Java dasturiy komponentlari.
  • JDBC Java ilovalari va ma'lumotlar bazalari o'rtasida o'zaro ishlash uchun platformadan mustaqil standartdir. JDBC java paketi sifatida amalga oshiriladi. sql Java SE (Standard Edition) ga kiritilgan.
  • log4j - eng mashhur xabarlar jurnali kutubxonasi. Bu sizga java kodida kutubxona qo'ng'iroqlarini yozish imkonini beradi va keyin allaqachon yozilgan kodni o'zgartirmasdan uni moslashuvchan tarzda sozlash imkonini beradi.
  • Jekson/JSON. JSON (JavaScript Object Notation) — juda mashhur ochiq standart fayl va maʼlumotlar almashish formati, Jekson esa Java uchun yuqori unumdor JSON protsessoridir.
Bu vositalarning barchasi juda foydali va ko'pincha ishda qo'llaniladi va ko'pchilik talabalar suhbatga tayyorgarlik ko'rishda ularni e'tiborsiz qoldirmagan. Bu, ayniqsa, JDBC-da Java dasturchisi lavozimiga da'vogarlarning 72,7 foizi duch kelgan Jekson uchun to'g'ri keladi - bu kutubxona respondentlarning 78 foizidan ko'prog'i tomonidan sinab ko'rilgan. Deyarli har bir kishi o'z ishida ushbu texnologiyalardan foydalangan. Java ishlab chiquvchilari grafik interfeyslarni tez-tez uchratishmaydi. Biz JavaFX haqida savol berdik: respondentlarning atigi 18 foizi ushbu texnologiyani ish joyida uchratgan. Java Junior bo'lish uchun nimani bilishingiz kerak va bu bilan nima qilish kerak?  - 8Respondentlarning uchdan ikki qismi servletlar bilan ishlagan; bir oz kamroq respondentlar ularni o'qish davomida sinab ko'rishgan. Bundan tashqari, ba'zi yangi Java dasturchilari Apache Commons (qayta foydalanish mumkin bo'lgan Java komponentlarining barcha jihatlariga yo'naltirilgan kutubxonalar to'plami) va Guava (birinchi navbatda Google muhandislari tomonidan ishlab chiqilgan Java uchun ochiq kodli umumiy kutubxonalar to'plami) kabi loyihalarga duch kelganligi ma'lum bo'ldi.Java Junior bo'lish uchun nimani bilishingiz kerak va bu bilan nima qilish kerak?  - 9

Ramkalar

Ilgari hech kim Java Junior-ning Spring yoki Hibernate-ni bilishini kutmagan edi. Ammo vaqt o'zgaradi va bugungi kunda buni hatto Stajyordan ham kutish mumkin. Ushbu texnologiyalarni mustaqil ravishda o'rganish oson emas. Hamma narsa aniq bo'lib tuyulsa ham, talabalar ko'pincha nima ekanligini tezda unutishadi. Ba'zida bahorda mustaqil ravishda yozilgan arizalar ham panatseya emas. Faqat faol ish yordam beradi. Biroq, muvaffaqiyatli intervyu oldidan respondentlarning uchdan bir qismi Bahorni yaxshi darajada bilishgan va 45,5% bu haqda o'rtacha tushunchaga ega edi. Spring boot bilan bog'liq vaziyat biroz yomonroq (36,4% buni umuman bilmas edi) va so'rovda qatnashgan JavaRush bitiruvchilarining deyarli 44% Hibernate haqida yaxshi bilimga ega ekanligini aytishdi. Java Junior bo'lish uchun nimani bilishingiz kerak va bu bilan nima qilish kerak?  - 10Shu bilan birga, ishlayotganda, asosiy Java ramkasidan deyarli 88% yangi dasturchilar, Spring Boot - 83%, Hibernate - 81% foydalangan.Java Junior bo'lish uchun nimani bilishingiz kerak va bu bilan nima qilish kerak?  - o'n bir

Avtomatlashtirish vositalari va dastur serverlarini yarating

Intervyu qilingan JavaRush bitiruvchilarining aksariyati loyiha quruvchilar bilan ishlashga harakat qilishgan. Ko'pincha bu Maven edi (40,9% amalda sinab ko'rdi, yana 30,3% vaqti-vaqti bilan foydalandi va 12,1% o'qish paytida doimiy ravishda foydalandi). Maven bilan ishlaganda men 72,7% (ko'pincha), 7,6% (ba'zan) va 3% (kamdan-kam) uchratdim. Gradlega kelsak, vaziyat biroz yomonroq. Faqatgina 22,7% ushbu kollektor bilan shug'ullangan va ularning aksariyati texnologiyani endigina sinab ko'rgan. Respondentlarning deyarli yarmi o'z ishlarida Gradledan foydalangan. Java Junior bo'lish uchun nimani bilishingiz kerak va bu bilan nima qilish kerak?  - 12Chumoli uzoq vaqtdan beri o'z mavqeini yo'qotdi va bu bizning bitiruvchilarimiz orasida mashhurligida namoyon bo'ladi: respondentlarning atigi 3 foizi u bilan o'ylashgan. Savollarga javob berganlarning 12 foizi esa u bilan ishlashga majbur bo‘lgan. Ilova serverlari orasida Tomcat yetakchi hisoblanadi; respondentlarning 77% dan ortigʻi buni oʻqish davomida aniqladi, 11% GlassFish, 12% JBoss-ni sinab koʻrdi. Ishlayotganlar orasida serverlarning mashhurligi o'xshash ko'rinadi. Ishga kelganlarning atigi 31,8 foizi Tomcat bilan tajribaga ega emas edi. Shuningdek, JavaRush bitiruvchilari dasturchi sifatida ishlagan birinchi yilida WebSphere, Jetty, Netty, Wildfly, Weblogic kabi serverlarni sinab ko'rishgan.Java Junior bo'lish uchun nimani bilishingiz kerak va bu bilan nima qilish kerak?  - 13

Nima yana?

Respondentlarning aksariyati, hatto birinchi ishga kirishdan oldin:
  • HTML, CSS va JavaScript haqida tushunchaga ega edi;
  • ma'lumotlar bazalari bilan ishlagan, SQL tilini bilgan;
  • deyarli hamma Git va GitHub dan foydalangan;
  • sof XML bilan ishlashga harakat qildi.
Bu texnologiyalarning barchasi ularga keyingi ishlarida foydali bo'ldi. Java dasturchisi yoki boshqa birov yuqorida aytilganlarning barchasi bilan sukut bo'yicha tanish bo'lishi kutiladi. Bu chuqur bilim emas, tanishish. Shuning uchun biz Java-dan ba'zan tanaffus qilishni va ushbu texnologiyalarni o'rganish orqali dunyoqarashingizni kengaytirishni tavsiya qilamiz. Shuningdek, savollarga javob berganlarning ba'zilari suhbatda ulardan dizayn naqshlari, me'moriy naqshlar, shuningdek, dasturlashda yaxshi xulq-atvor (bularning barchasi KISS, DRY, SOLID) bo'yicha kamida nazariy bilimga ega bo'lishlari kutilganligini ta'kidladilar. Biroq, ko'pincha intervyuda faqat ta'riflar etarli edi: intervyu o'tkazganlar, bunday narsalarni haqiqiy tushunish faqat doimiy amaliyot bilan bo'lishini yaxshi bilishardi. Ular sizning ishingizda foydali bo'lganmi? Albatta, ular foydali edi.

xulosalar

Umid qilamizki, biz sizni o'rganishingiz kerak bo'lgan ko'plab texnologiyalar bilan qo'rqitmaganmiz. Bularning barchasini to'liq bilish shart emas, bundan tashqari, barchasini aniqlash juda qiziq. Siz dasturchi bo'lishga qaror qilganingiz bejiz emas, to'g'rimi? Shunday ekan, Java o'rganishni davom eting va motivatsiyani saqlang. Omad! PS Agar siz allaqachon ish topib olgan bo'lsangiz va tajribangiz haqida gapirmoqchi bo'lsangiz, sharhlarga xush kelibsiz!
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION