JavaRush /Java Blogu /Random-AZ /Java Junior olmaq üçün nəyi bilməlisiniz və bütün bunlarl...

Java Junior olmaq üçün nəyi bilməlisiniz və bütün bunlarla nə etməli?

Qrupda dərc edilmişdir
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. Java Junior olmaq üçün nəyi bilməlisiniz və bütün bunlarla nə etməli?  - 1Respondentlə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.

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 Junior olmaq üçün nəyi bilməlisiniz və bütün bunlarla nə etməli?  - 2Java 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. Java Junior olmaq üçün nəyi bilməlisiniz və bütün bunlarla nə etməli?  - 3İ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. Java Junior olmaq üçün nəyi bilməlisiniz və bütün bunlarla nə etməli?  - 4Mə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. Java Junior olmaq üçün nəyi bilməlisiniz və bütün bunlarla nə etməli?  - 5Biz 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). Java Junior olmaq üçün nəyi bilməlisiniz və bütün bunlarla nə etməli?  - 6İşləyərkən təcrübəsiz proqramçılar əsasən standart məlumat strukturlarından istifadə edirdilər.Java Junior olmaq üçün nəyi bilməlisiniz və bütün bunlarla nə etməli?  - 7

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.
Bütün bu vasitələr çox faydalıdır və işdə tez-tez istifadə olunur və tələbələrin əksəriyyəti müsahibəyə hazırlaşarkən onları nəzərdən qaçırmırdı. Bu, Java proqramçısı vəzifəsinə müraciət edənlərin 72,7%-nin qarşılaşdığı Cekson üçün xüsusilə doğrudur, JDBC - bu kitabxana respondentlərin 78%-dən çoxu tərəfindən sınaqdan keçirilmişdir. Demək olar ki, hər kəs öz işində bu texnologiyalardan istifadə edirdi. Java tərtibatçıları GUI-lərə çox rast gəlmirlər. JavaFX haqqında sual verdik: respondentlərin yalnız 18%-i bu texnologiya ilə iş yerində qarşılaşıb. Java Junior olmaq üçün nəyi bilməlisiniz və bütün bunlarla nə etməli?  - 8Respondentlərin üçdə ikisi servletlərlə işləmişdir; bir qədər az sayda respondent onları təhsilləri zamanı sınaqdan keçirmişdir. Həmçinin məlum olur ki, bəzi yeni Java proqramçıları Apache Commons (yenidən istifadə edilə bilən Java komponentlərinin bütün aspektlərinə yönəlmiş kitabxanalar toplusu) və Guava (ilk növbədə Google mühəndisləri tərəfindən hazırlanmış Java üçün açıq mənbəli ümumi kitabxanalar toplusu) kimi layihələrlə qarşılaşıblar.Java Junior olmaq üçün nəyi bilməlisiniz və bütün bunlarla nə etməli?  - 9

Çə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. Java Junior olmaq üçün nəyi bilməlisiniz və bütün bunlarla nə etməli?  - 10Eyni 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.Java Junior olmaq üçün nəyi bilməlisiniz və bütün bunlarla nə etməli?  - on bir

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. Java Junior olmaq üçün nəyi bilməlisiniz və bütün bunlarla nə etməli?  - 12Qarış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.Java Junior olmaq üçün nəyi bilməlisiniz və bütün bunlarla nə etməli?  - 13

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ı.
Bütün bu texnologiyalar onlara gələcək işlərində faydalı oldu. Java proqramçısının və ya bu mövzuda başqa birinin yuxarıda göstərilənlərin hamısı ilə tanış olması gözlənilir. Bu tanışlıqdır, dərin bilik deyil. Odur ki, Java-dan ara-sıra fasilə verməyi və bu texnologiyaları öyrənməklə üfüqlərinizi genişləndirməyi tövsiyə edirik. Həmçinin sualları cavablandıranlardan bəziləri qeyd ediblər ki, müsahibədə onlardan dizayn nümunələri, memarlıq nümunələri, eləcə də proqramlaşdırmada gözəl davranış qaydaları (bütün bu KISS, DRY, SOLID) haqqında ən azı nəzəri biliklərə malik olmaları gözlənilir. Bununla belə, əksər hallarda müsahibədə yalnız təriflər kifayət edirdi: müsahibə aparanlar yaxşı bilirdilər ki, belə şeyləri real dərk etmək yalnız daimi təcrübə ilə olur. İşinizdə faydalı oldularmı? Təbii ki, faydalı oldular.

nəticələr

Ümid edirik ki, öyrənməli olduğunuz texnologiyaların sayı ilə sizi çox qorxutmadıq. Bunların hamısını hərtərəfli bilmək lazım deyil və bundan əlavə, hər şeyi başa düşmək olduqca maraqlıdır. Proqramçı olmağa qərar verməyiniz boş yerə deyil, elə deyilmi? Beləliklə, Java öyrənməyə davam edin və motivasiya olun. Uğurlar! P.S. Əgər siz artıq iş tapmısınızsa və təcrübəniz haqqında danışmaq istəyirsinizsə, şərhlərə xoş gəlmisiniz!
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION