Potensial Java tərtibatçıları üçün tələblər daim dəyişir və onlara uyğunlaşmaq çətindir. Təcrübəçi olmaq üçün sadəcə Java Core bilmək kifayətdirmi? Java Junior mövqeyini əldə etmək üçün Bahar və Qış rejimini nə qədər yaxşı başa düşməlisiniz? Verilənlər bazalarını öyrənməyə, çeşidləmə və axtarış alqoritmlərini başa düşməyə dəyərmi? JavaRush tələbələrini tez-tez bu suallar narahat etdiyi üçün biz onları artıq Java Juniors kimi işləyən və ya Java Təcrübəçiləri kimi şirkətlərdə təcrübə keçən məzunlarımıza soruşmaq qərarına gəldik. Qeyd edək ki, respondentlərin 13%-i Junior mərhələsindən yan keçərək ilk cəhddə Java Middle mövqeyini əldə etmək şansı qazanıb. Respondentlər müsahibədən keçmək üçün hansı texnologiyalara ehtiyac duyduqları və Java ilə bağlı ilk işlərinin ilk ilində hansı texnologiyalardan istifadə etdikləri barədə məlumat paylaşdılar.
- Java nüvəsi
- Alqoritmlər və məlumat strukturları
- Vahid sınağı
- Kommunal kitabxanalar, GUI və faydalı komponentlər
- Çərçivələr
- Avtomatlaşdırma alətləri və tətbiq serverləri yaradın
- Fərqli texnologiyalar və nümunələr
Hər kəsə Java Core lazımdır
Java Core termini olduqca genişdir. Bu ad həm dilin elementar sintaksisinə, həm də çox iş parçacığı kimi mürəkkəb mövzuya aiddir. Əslində, JavaRush kursu əsasən Core-a həsr olunub. Java sintaksisi. Dil əsasları. Bütün bu məlumat növləri, operatorlar, döngələr və filiallar. Təbii ki, işə düzələnlərin 92,4%-i sintaksis biliklərini “yaxşı və ya əla” kimi qiymətləndirib. Bununla belə, respondentlərin 7,6%-i orta sintaksis biliyi ilə Java Tələbələri olmağı bacarıb. Ancaq bunu daha çox bəxt (yaxud respondentlərin lovğalanması :)) kimi qiymətləndirmək lazımdır. Təbii ki, proqramçı kimi işə müraciət edən hər kəs dilin sintaksisini bilməlidir. Obyekt yönümlü proqramlaşdırma (OOP). Java-da hər şey obyektlərdən ibarətdir, ona görə də OOP dilin ən vacib mövzularından biri hesab edilə bilər. Obyekt yönümlü yanaşma əvvəlcə qeyri-adi görünə bilər, xüsusən də əvvəllər yalnız prosedur dillərini öyrənmisinizsə, lakin obyektlərə keçmək çətin deyil. Başlayanlar üçün ən böyük çətinliklər abstraksiya səviyyələri və onların müstəqil paylanmasıdır - təcrübəsiz bir proqramçı obyektlərin iyerarxiyasını düzgün qurmağı, interfeysin nəyə cavabdeh olacağını və mücərrəd bir sinfə nəyin daxil edilə biləcəyini başa düşməyi, miras yaratmağı bacarmalıdır. nərdivan və s. Həmişə olduğu kimi, bu çətinlik təcrübə ilə həll olunur. Respondentlərin əksəriyyəti, ilk işə başlayanların 80,3%-i OOP prinsiplərini yaxşı bilir və onlardan daim istifadə edir. Java Juniors və təcrübəçi kimi işinin ilk ilində respondentlərin 78,8%-i OOP prinsiplərindən çox tez-tez, 12,1%-i isə vaxtaşırı istifadə edib. Dinləyicilərin 7,6%-i onlardan nadir hallarda istifadə edirdi - bu uşaqlar əsasən vahid testləri və müxtəlif kiçik tapşırıqlarla məşğul olurdular. Yəni, əlbəttə ki, onlar siniflərdən və ya obyektlərdən də istifadə edirdilər (Java-da onsuz edə bilməzsiniz), lakin nadir hallarda sinif iyerarxiyaları yaradırdılar. Kolleksiyalar Çərçivəsi. Kolleksiya bütövlükdə təqdim olunan fərdi obyektlərin toplusudur. Java kolleksiyaları təmsil etmək üçün çox ağıllı Collections Framework-ə malikdir. Kolleksiyalar populyar məlumat strukturlarına əsaslanır - siyahılar, adi və əlaqəli, dəstlər, hash cədvəlləri. Beləliklə, kolleksiyaları araşdırarkən məlumat strukturları ilə daha yaxından tanış olmaq yaxşı bir fikirdir. Kolleksiyaları öyrənməkdə əsas çətinlik onların necə işlədiyini başa düşmək və yadda saxlamaqdır. Əgər onların elementə necə daxil olduğunu, kolleksiyadan çıxarıb ona əlavə etdiyini başa düşsəniz, bu və ya digər strukturu hara tətbiq edəcəyinizi anlamağa başlayırsınız. Təcrübə ilə gəlir. Ancaq xoşbəxtlikdən, çox sayda kolleksiyanın hamısı real işdə fəal şəkildə istifadə edilmir. Respondentlərin 80,3%-i ilk iş təklifini almamışdan əvvəl kolleksiyalar haqqında yaxşı və ya hətta mükəmməl biliyə malik olduqlarını qeyd etdi və yeniyetmələrin və kursantların demək olar ki, hamısı 96,9%-i ilk işlərində kolleksiyalardan istifadə edir. İstisna ilə işləmə.İstisna proqramınızın icrası zamanı baş verə biləcək qeyri-adi vəziyyətdir. Bütün istisna sinifləri java.lang.Exception sinifinin alt tipləridir. İstisna ilə işləmə mexanizmi proqramlarda səhvlərin tapılması prosesini xeyli asanlaşdırır. Adətən, tələbələr istisnalardan çox erkən istifadə etməyə başlayırlar, məsələn, JavaRush-da JavaRush-da bu mövzu ilk Java Sintaksis axtarışında qaldırılır. İlk iş yerlərini alan demək olar ki, bütün JavaRush məzunları istisnalarla necə davranmağı bilirdilər və təbii ki, işləyərkən onlardan istifadə edirdilər. I/O axınları Java. Java-da yazılmış ilk proqramlarda adətən System.out.println (“Salam dünya”) kimi bir şey var idi. Çox vaxt yeni başlayanlar başa düşürlər ki, println metodu konsola xətt çap edir, lakin System və out-un niyə orada olduğunu və necə işlədiyini bilmirlər. Bir az sonra məlum oldu ki, Java davamlı məlumat axını olan axınlardan istifadə edərək giriş və çıxış əməliyyatlarını həyata keçirir. Mövzular başa düşmək üçün ən asan mövzu deyil və o, yeni başlayan işlərdə çox istifadə edilmir: ilk Java Junior/Trainee işini alan insanların yalnız 22,7%-i I/O mövzularından çox istifadə etdiklərini, 31,8%-i isə zaman-zaman istifadə etdiyini bildirib. vaxt, 25,8% - nadir hallarda. Beləliklə, 20%-dən bir qədər az hissəsi Java tərtibatçısı kimi ilk il ərzində onlardan ümumiyyətlə istifadə etməyib. Təhsil aldığı müddətdə 18,2% axınlarla bağlı heç bir xüsusi çətinlik yaşamadı və onları yaxşı tanıdı, 36,4% biliklərini yaxşı qiymətləndirdi, lakin 10,6% bu mövzuya məhəl qoymadı. Multithreading (Java Multithreading/Concurrency). Bəlkə də bu, təcrübəsiz tərtibatçılar arasında ən böyük anlaşılmazlığa səbəb olan mövzudur. Java-da multithreading çox yaxşı tətbiq olunsa da, onu başa düşmək çətindir və hətta sadə proqramlar (məsələn, çoxillikli “Salam, dünya”) yazarkən belə problemlər yarana bilər. Bir çox işəgötürən bunu başa düşür və yeni başlayanlardan multithreading haqqında dərin anlayış tələb etmir, bunun təcrübə ilə gələcəyini gözləyir. Respondentlərin yalnız 12%-i ilk təklifi almamışdan əvvəl mövzunu yaxşı səviyyədə bildiklərini, demək olar ki, 32%-i isə mövzu haqqında ümumiyyətlə heç nə bilmədiklərini etiraf edib. Əksəriyyət, 56,2%, çoxlu oxunma haqqında "bir qədər anlayışa sahib olduqlarını" söylədi. Beləliklə, iplərlə işləməyin çətinlikləri indi sizə keçilməz görünürsə, bu rəqəmlər sizi əmin edə bilər. Bununla belə, müsahibədə rəqabət üstünlüyü əldə etmək istəyirsinizsə, bu mövzu sizin güclü nöqtəniz ola bilər. Həqiqi layihələrdə, yeni başlayanlara da nadir hallarda iplərlə işləməyə icazə verilir. Belə ki, təcrübəsiz proqramçıların 15,1%-i öz işlərində Java Multithreading ilə ümumiyyətlə, 39,4%-i isə nadir hallarda rastlaşıb. Çox vaxt işin ilk ilində respondentlərin yalnız 9,1%-i multithreading ilə işləməli olub. Lambda ifadələri.Lambda ifadələri və funksional proqramlaşdırma göstərişləri Java 8-də ortaya çıxdı, lakin yeni başlayanlar bu lazımlı alətdən çox istifadə etmirlər. Lambda ifadəsi heç bir sinfə aid olmadan yaradıla bilən funksiyadır və siz onu obyekt kimi ötürə və ya tələb olunduqda icra edə bilərsiniz. Sorğuda iştirak edən məzunların yalnız 22,7%-i ilk iş təklifini almamışdan əvvəl Lambda ifadələrini yaxşı bilirdi və 48,5%-i mövzu ilə bağlı biliklərini “sıfıra yaxın” olaraq qiymətləndirib. Eyni zamanda, yeni proqramçıların 85%-dən çoxu ilk ilində lambda ifadələrindən istifadə etdiklərini söylədi. Ədalət naminə qeyd edirik ki, bu mövzunu bilənlərin aşağı faizinin səbəbi JavaRush-da lambda ifadələrinin indiyə qədər yalnız yeni Java Syntax Pro axtarışında və məqalələrində təqdim edilməsi ilə bağlı ola bilər . Beləliklə, əminliklə deyə bilərik ki, istənilən potensial Java Junior və hətta Stajyer üçün Core Java bilikləri sadəcə zəruridir. Əlbəttə ki, bəzi mövzular, məsələn, multithreading, bir az daha az bilmək üçün məqbuldur, lakin Java sintaksisi, OOP və kolleksiyalar şüurunuzda möhkəm şəkildə yerləşməlidir.Alqoritmlər və məlumat strukturları
Çeşidləmə və axtarış alqoritmlərinin öyrənilməsi ilə bağlı daimi mübahisələr gedir. Bir tərəfdən, ən yaxşı alqoritmlər çoxdan yazılıb və bütün populyar proqramlaşdırma dillərinin, o cümlədən Java-nın kitabxanalarına daxil edilib. Və onlar öz kodunuzu yazmaqda çətinlik çəkmədən qanuni şəkildə istifadə edilə bilər. Bununla belə, proqramçılar yetişdirən mütəxəssislər hələ də hər bir təcrübəsiz tərtibatçının bütün bu qabarcıq alqoritmlərini, birləşmələri, ikili axtarışları və sairələri yazaraq beynini məşq etməyi tövsiyə edir. Birincisi, bu alqoritmlər proqramçının bacarıqlarının (yəni bilik deyil, bacarıqlar) və insanın proqramlaşdırmanın prinsipcə nə olduğunu başa düşməsinin bir növ lakmus testidir. Əgər beyniniz artıq bu cür işə yaxşı köklənibsə, alqoritmləri nisbətən asanlıqla yazacaqsınız. Bununla belə, yadda saxlamalısınız: beyninizi məşq etmək üçün dəqiq alqoritmlərə ehtiyacınız var... və müsahibədən keçmək üçün: onları aparan korroziyalı Baş tərtibatçılar bu və ya digər alqoritm yazmaq tələbi ilə abituriyentlərə əzab verməyi çox sevirlər. Lakin öz işlərində əksəriyyət (48,5%) effektiv və sübut edilmiş standart kitabxana alqoritmlərindən istifadə edir, respondentlərin 16%-i isə proqramçı kimi işlədiyi ilk ildə ümumiyyətlə çeşidləmədən istifadə etməyib. Məzunların 69,6%-i iddia edir ki, ilk iş təklifini almamışdan əvvəl onlar çeşidləmə və axtarış alqoritmlərini yaxşı başa düşürlər və onları özləri yaza bilirdilər. Biz artıq Java kolleksiyalarından danışarkən məlumat strukturları mövzusuna toxunmuşduq. Bəli, harada və hansı strukturun tətbiq olunacağını bilmək üçün onları başa düşmək daha yaxşıdır. Kitabxanaların timsalında öz məlumat strukturlarınızı yaratmaq, onları daha yaxşı başa düşməyə kömək edəcək əla məşqdir. Siz, məsələn, ArrayList-in öz versiyasını yazmağa cəhd edə və ya öz tək bağlı siyahınızı təklif edə bilərsiniz (Java-da adi LinkedList ikiqat bağlıdır). İşləyərkən təcrübəsiz proqramçılar əsasən standart məlumat strukturlarından istifadə edirdilər.Vahid sınağı
JUnit kitabxanası Java-da vahid testindən məsuldur. Əslində, demək olar ki, təlimin ən əvvəlində vahid testinə başlaya bilərsiniz. Ən azı, ilk müstəqil layihənizi, hətta çox kiçik bir layihəni həyata keçirdiyiniz zaman bu alətdə artıq bacarıqlı olmağınız daha yaxşıdır. Vahid testlərini yazmaq o qədər də çətin deyil, baxmayaraq ki, bəzi nüanslar var. JUnit-i öyrənmək çox vaxt aparmayacaq, lakin onu bilmənin faydaları çox böyükdür. Özünüzün və başqalarının kodunu testlərlə əhatə edə biləcəksiniz. Çox vaxt yeni başlayanlara həmkarları üçün vahid testləri yazmaq tapşırığı verilir, buna görə də bu, onların yeni işlərində birbaşa faydalı ola bilər. Respondentlərin 57,5%-i ilk uğurlu Java müsahibəsindən əvvəl JUnit-dən istifadə etdiklərini, 83%-dən çoxu isə ilk ilində vahid testindən istifadə etdiyini bildirib.Kommunal kitabxanalar, GUI və faydalı komponentlər
JavaRush məzunlarının bir sıra alətlərlə nə dərəcədə tanış olduqlarını soruşduq, onlardan bəziləri kursumuzda əhatə olunub.- Servletlər serverin imkanlarını genişləndirən Java proqram komponentləridir.
- JDBC Java proqramları və verilənlər bazası arasında qarşılıqlı fəaliyyət üçün platformadan müstəqil standartdır. JDBC java paketi kimi həyata keçirilir. sql Java SE (Standard Edition) ilə birlikdədir.
- log4j ən məşhur mesaj qeydləri kitabxanasıdır. O, java kodunda kitabxana zənglərini yazmağa və sonra artıq yazılmış kodu dəyişmədən onu çevik şəkildə fərdiləşdirməyə imkan verir.
- Cekson/JSON. JSON (JavaScript Object Notation) son dərəcə populyar açıq standart fayl və məlumat mübadiləsi formatıdır və Cekson Java üçün yüksək performanslı JSON prosessorudur.
Çərçivələr
Əvvəllər heç kim Java Junior-un Spring və ya Hibernate-i biləcəyini gözləmirdi. Lakin zaman dəyişir və bu gün hətta Təcrübəçidən də bəzən bu gözlənilir. Bu texnologiyaları özünüz öyrənmək asan deyil. Hər şey aydın görünsə də, tələbələr tez-tez nə olduğunu çox tez unudurlar. Bəzən hətta Baharda müstəqil olaraq yazılmış ərizələr də panacea deyil. Yalnız aktiv iş kömək edəcəkdir. Bununla belə, uğurlu müsahibədən əvvəl respondentlərin üçdə biri Baharla yaxşı səviyyədə tanış idi və 45,5%-i onu orta hesabla başa düşürdü. Spring boot ilə bağlı vəziyyət bir qədər pisdir (36,4% bunu ümumiyyətlə bilmirdi) və sorğuda iştirak edən JavaRush məzunlarının demək olar ki, 44%-i Hibernate haqqında yaxşı biliklərə malik olduqlarını bildirib. Eyni zamanda, işləyərkən əsas Java çərçivəsi yeni proqramçıların demək olar ki, 88%, Spring Boot - 83%, Hibernate - 81% tərəfindən istifadə edilmişdir.Avtomatlaşdırma alətləri və tətbiq serverləri yaradın
Müsahibə edilən JavaRush məzunlarının əksəriyyəti layihə qurucuları ilə işləməyə çalışıblar. Ən tez-tez bu Maven idi (40,9% bunu təcrübədə sınadı, digər 30,3% vaxtaşırı istifadə etdi və 12,1% təhsil zamanı daim istifadə etdi). Maven ilə işləyərkən 72,7% (tez-tez), 7,6% (bəzən) və 3% (nadir hallarda) ilə qarşılaşdım. Qradla gəlincə, vəziyyət bir qədər pisdir. Yalnız 22,7% bu kollektorla məşq edib və onların əksəriyyəti texnologiyanı yenicə sınaqdan keçirib. Respondentlərin demək olar ki, yarısı işlərində Gradle-dən istifadə edib. Qarışqa öz mövqeyini çoxdan itirib və bu, onun məzunlarımız arasında populyarlığında özünü göstərir: respondentlərin yalnız 3%-i bununla məşğul olub. Sualları cavablandıranların isə 12%-i onunla işləməli olub. Tətbiq serverləri arasında Tomcat liderdir; respondentlərin 77%-dən çoxu bunu tədqiqatları zamanı anlayıb, 11%-i GlassFish-i, 12%-i JBoss-u sınayıb. Artıq işləyənlər arasında serverlərin populyarlığı oxşar görünür. İşə qəbul edilənlərin yalnız 31,8%-nin Tomcat ilə təcrübəsi yox idi. Həmçinin JavaRush məzunları proqramçı kimi işlədikləri ilk il ərzində WebSphere, Jetty, Netty, Wildfly, Weblogic kimi serverləri sınaqdan keçiriblər.Başqa?
Respondentlərin böyük əksəriyyəti, hətta ilk işini əldə etməmişdən əvvəl:- HTML, CSS və JavaScript haqqında anlayışa malik idi;
- verilənlər bazası ilə işləyir, SQL dilini bilir;
- demək olar ki, hər kəs Git və GitHub-dan istifadə edirdi;
- təmiz XML ilə işləməyə çalışdı.
GO TO FULL VERSION