Salam! Bu gün bir Java tərtibatçısının inkişaf yolu və tələbat olmaq üçün bilməli olduğu şeylər haqqında danışacağıq.
Müsahibədə hər hansı bir tərtibatçı vəzifəyə namizədi "uğursuz" edə bilər. Məsələn, o, cari layihədə qarşılaşdığı konkret mövzular haqqında suallar verməyə başlayacaq. Amma hər şeyi bilməmək yaxşıdır. Bəzi suallara cavab verməməyiniz də normaldır. Ümumiyyətlə, hər bir Java proqramçısının əsas inkişaf biliyi olmalıdır. Beləliklə, hansı texnologiyaların "əsas" hesab edildiyinə baxaq.
bu suallar toplusunda olduğu kimi Java müsahibə suallarını axtarmağı çox tövsiyə edirəm . Bu, tam olaraq nəyi öyrənməli olduğunuzu və hansı suallara hazırlaşmalı olduğunuzu anlamağa kömək edəcək.
MySQL daha sadədir, lakin PostgreSQL daha çox imkanlara malikdir. Başlamaq üçün onlardan ən azı biri ilə tanış olmaq kifayətdir. Əgər siz Googling bacarıqlarından istifadə edirsinizsə, verilənlər bazası tətbiqlərini öyrənə bilərsiniz - Youtube-da lazımi məqalələr və dərsliklər tapın. Sizi maraqlandıran sualları düzgün axtarmağı bacarmalısınız , çünki proqramçı Google axtarışlarında “qara kəmərli” şəxsdir.
Bununla bağlı maarifləndirici məqalələrlə yanaşı, Youtube-da bu texnologiyanı addım-addım mənimsəməyə kömək edəcək kifayət qədər videolar var. Əvvəlcə bir növ interfeys tətbiqi deyil, Git konsolundan istifadə etmək daha yaxşıdır, çünki orada hər şeyi əmrlər vasitəsilə etməli olacaqsınız. Müsahibələr zamanı insanlar tez-tez bəzi Git əmrlərini soruşurlar , ona görə də mən onları yazıb əlinizdə olan yerdə saxlamağınızı tövsiyə edirəm. Həm də sizə məsləhət görürəm ki, ən vacib məqamları qeyd edəcəyiniz bir qeyd tutasınız ki, müsahibədən əvvəl onu keçib yaddaşınızı təzələyə biləsiniz.
İndi bu çərçivə Java dilinin sintaksisini bilmək zərurəti ilə birinci yeri bölüşür. Baharın öz analoqu, yəni Java EE texnologiyaları olduğunu söyləyə bilərsiniz. Lakin Java EE köhnəlmişdir və artıq yeni layihələrdə istifadə edilmir. İndi Java tərtibatçılarının böyük əksəriyyəti Java Spring tərtibatçılarıdır, ona görə də bəzi əsas Spring texnologiyaları haqqında biliklər məcburidir. Bahar sadəcə bir çərçivə deyil, bütün çərçivələr platformasıdır:
Və bu, Baharın təmin etdiyi çərçivələrin yalnız bir hissəsidir. Bir başlanğıc üçün onlardan yalnız bir neçəsini bilmək kifayətdir:
Baharın nə olduğunu anlamaq üçün birinci yerdə olmalıdır: Bahar konteyneri, lobya, DI, IoC və s. Beləliklə, Bahardan istifadə etməyin fəlsəfəsini anlayın. Bahar çərçivələrinin sonrakı tədqiqi bu baza əsasında aparılacaqdır. Tədricən öyrəndiyiniz yeni texnologiyalar əlavə edəcəyiniz öz kiçik proqramınızı yaratmağa dəyər ola bilər.
Əvvəllər verilənlər bazası ilə əlaqə yaratmaq texnologiyası kimi JDBC texnologiyası haqqında danışdıq. Ümumiyyətlə, texnologiyanın “çılpaq” istifadəsi indi layihələrdə tapıla bilməz, ona görə də JDBC öyrənmək lazım olmadığı kimi görünə bilər. Amma belə deyil. JDBC-nin çılpaq sümüklərinə baxaraq, texnologiyanı daha aşağı səviyyədə görə bilərsiniz və onun problemlərini və çatışmazlıqlarını başa düşə bilərsiniz. Spring JDBC-ni öyrənməyə başladıqdan sonra bu çərçivənin nəyi təkmilləşdirdiyini, optimallaşdırdığını və gözümüzdən gizlətdiyini başa düşəcəksiniz.
Çılpaq JDBC-də olduğu kimi, bu çərçivə mövcud texnologiyadan istifadəni yaxşılaşdırır, bu halda Hibernate. Yaz olmadan Hibernate istifadə etməyi düşünürsünüzsə, Spring Hibernate istifadə etməyin faydasını dəqiq başa düşəcəksiniz.
Əvvəllər JPA haqqında danışdıq və bunun yalnız müxtəlif tətbiqlərin olduğu bir spesifikasiya olduğunu söylədik. Bu tətbiqlər arasında Hibernate ideala ən yaxın olanıdır. Baharın "başlıq altında" Hibernate istifadə edən və JPA spesifikasiyalarının idealına mümkün qədər yaxın olan JPA-nın öz ideal tətbiqi var. Bu texnologiya Spring JPA adlanır. Yeri gəlmişkən, verilənlər bazasına daxil olmağı çox asanlaşdırır. JPA-nı yalnız JDBC, Hibernate, Spring JDBC, Spring Hibernate öyrənmədən öyrənə bilərsiniz. Amma bu halda verilənlər bazasına qoşulmaq haqqında bilikləriniz çox səthi olacaq.
Bu texnologiya ilə biz tətbiqimizin veb interfeysini istifadəçilərə göstərə və interfeysin tətbiqin qalan hissəsi ilə əlaqə saxlamasına icazə verə bilərik. Ekrana cavabdeh olan bəzi proqram olduqda texnologiya ekransız da işləyə bilər və siz RESTful texnologiyasından istifadə edərək sorğu və cavablardan istifadə edərək bu proqramla qarşılıqlı əlaqədə olursunuz. Bahar haqqında məlumatları daha yaxşı başa düşmək üçün YouTube-da məqalə və mühazirələrdən əlavə, bir neçə kitab oxuya bilərsiniz. Walls Craig-in "Fəaliyyətdə olan bahar" kitabını çox bəyəndim. Təəssüf ki, rus dilində indi köhnəlmiş hesab edilən yalnız üçüncü versiya var. İngilis dilini yaxşı bilirsinizsə 6-cı versiyanı oxumağınızı məsləhət görürəm. Bahar haqqında başqa bir möhtəşəm kitab “Peşəkarlar üçün 5-ci bahar”dır. Öyrənmək daha çətindir və başdan sona oxumaqdansa əlinizdə saxlamaq daha yaxşı olan Bahar İncilinə bənzəyir.
Bu texnologiya Baharın istifadəsini çox asanlaşdırır. Siyahının sonuna bir səbəbə görə qoydum, çünki "başlıq" altında çox şey gizlədir və adi Baharla tanış olmayan bir insan üçün bir çox məqamlar aydın və anlaşılmaz olmaya bilər. Birincisi, Bahar çərçivələrinin necə işlədiyini daha yaxşı başa düşmək üçün müntəzəm Bahardan istifadə etməlisiniz, sonra isə Spring Boot-dan istifadənin bütün daha yüksək faydalarından istifadə etməlisiniz. Mən də sizə Spring Security və Spring AOP ilə tanış olmağı məsləhət görürəm. Ancaq yuxarıdakı texnologiyalardan fərqli olaraq, bu ikisi haqqında dərin biliyə indi ehtiyac yoxdur. Bu texnologiya yeni başlayanlar üçün deyil. Müsahibə zamanı yeniyetmələrdən onlar haqqında soruşulmur (bir səthi sual istisna olmaqla). Ümumiyyətlə, bu texnologiyaların nə olduğunu və necə işlədiyini oxuyun. Bu yazı boyu kitab oxumağı dəfələrlə qeyd etmişəm. Bir tərəfdən, bu lazım deyil. Bir kitab oxumadan, məqalələrdən və təlim videolarından lazım olan hər şeyi öyrənərək proqramçı ola bilərsiniz. Digər tərəfdən, hazırda təcrübəsiz tərtibatçılar üçün bazarda rəqabət yüksəkdir və bu, yeni başlayanlar üçün tələb olunan ilkin bilik üçün zolağı qaldırır. Buna görə də, nə qədər çox bilsəniz, müsahibini bilik səviyyənizlə heyran etməklə, ilk işinizi bir o qədər tez qura bilərsiniz. Hamınıza təşəkkür edirəm və Java sizinlə olsun .
1. Əsas alqoritmlər
Proqramlaşdırmanı öyrənməyə başladığınız zaman etməli olduğunuz ilk şey (bu, təkcə Java-ya aid deyil) əsasların təhlilidir. Məsələn, alqoritmlər. Onların sonsuz sayda var və siz mümkün qədər çox alqoritm öyrənmək üçün bütün illərinizi sərf etməməlisiniz: onların əksəriyyəti sizin üçün faydalı olmayacaq. Tələb olunan minimum biliyi “ Grocking Alqoritmləri ” kitabından əldə etmək olar . Bu, səyahətə başlamaq üçün kifayət edəcək, lakin istəsəniz, Robert Sedgwick və Kevin Wayne tərəfindən " Strukturlar və Alqoritmlər " və ya "Javada Alqoritmlər" kitabının köməyi ilə öyrənə bilərsiniz. Həm də sizə informatikanın əsasları üzrə biliklərinizi təkmilləşdirməyi məsləhət görürəm. Bu, CS50 kursundan istifadə edərək JavaRush-da edilə bilər .2. Java Sintaksisi
Alqoritmlərin əsaslarını öyrəndikdən sonra Java sintaksisini öyrənməliyik. Axı biz hamımız burada Java proqramçıları olmağı öyrənirik, elə deyilmi? JavaRush kursu bunun üçün mükəmməldir. Çoxsaylı tapşırıqların yerinə yetirilməsi prosesində siz Java sintaksisində səlis danışacaqsınız və çox düşünmədən Java kodunu ana diliniz kimi yazacaq/oxuyacaqsınız. JavaRush praktikadır və ona əlavə olaraq, tam olaraq nə etdiyinizi başa düşmək üçün nəzəriyyəyə də baxmaq lazımdır. Bunu etmək üçün kitabları oxuya bilərsiniz, məsələn, aşağıdakılardan birini:- “ Birinci Java-ya rəhbərlik et ”;
- Barry Bird tərəfindən "Butaforlar üçün Java";
- “Java. Başlayanlar üçün bələdçi” Herbert Schildt.
- “Yava fəlsəfəsi”, Brüs Ekkel;
- “Effektiv Proqramlaşdırma”, Joshua Bloch;
- “Java. Tam Bələdçi”, Herbert Şildt.
![Java tərtibatçısının yoxlama siyahısı. Tərtibatçı nəyi bilməlidir - 2](https://cdn.javarush.com/images/article/5dd9a531-7987-4835-93f7-18ba4bcfcbbc/512.jpeg)
![Java tərtibatçısının yoxlama siyahısı. Tərtibatçı nəyi bilməlidir - 3](https://cdn.javarush.com/images/article/7bf540ce-6718-4e56-943b-5b0c66946a6e/512.jpeg)
3. Proqramlaşdırma Nümunələri
Proqramlaşdırma nümunələri tez-tez baş verən kontekstdə problemin həllini təmsil edən bəzi təkrarlanan nümunələrdir. Onların arasında özünə hörmət edən hər bir proqramçının bilməli olduğu əsas, sadə şablonlar var. Bu mövzunu başa düşmək üçün “ Əvvəlcə baş. Dizayn nümunələri ." O, əsas proqramlaşdırma nümunələrini aydın şəkildə izah edəcək. Amma kitab Java haqqında çox danışır , ona görə də kitabı öyrənərkən bu proqramlaşdırma dilini mənimsəmək lazımdır. Nümunələrlə daha dərindən tanış olmaq üçün “Obyekt yönümlü Dizayn Texnikaları”nı da oxuya bilərsiniz. Dördlər Dəstəsindən Dizayn Nümunələri” ( Dördlər Dəstəsi: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides-dən ibarət müəlliflər qrupu - redaktorun qeydi) . Bu mövzunu öyrəndikdən sonra kodunuzun demək olar ki, hər yerində nümunələri görməyə başlayacaqsınız. Buna diqqət yetirin, xüsusən də Baharda istifadə olunan naxışlara diqqət yetirin , çünki bu, müsahibələrdə məşhur sualdır.4. Proqramlaşdırma paradiqmaları. Kod təmizliyi
Standart proqramlaşdırma nümunələri ilə yanaşı, bilməli olduğunuz müxtəlif prinsiplər və paradiqmalar var ( SOLID , GRASP ). Kodun təmiz və oxunaqlı olmasını da təmin etmək lazımdır. Bu mövzuda bilməli olduğunuz hər şey Robert Martinin “ Təmiz Kod ” kitabındadır və ya Stiv Makkonelin “Mükəmməl Kod” kitabındadır.5.SQL
Növbəti addımımız əlaqəli verilənlər bazalarının dilini öyrənməkdir - SQL . Verilənlər bazaları veb tətbiqinin məlumatlarının (məlumatlarının) saxlandığı yerdir. Verilənlər bazası çoxlu cədvəllərdən ibarətdir (telefonunuzdakı ünvan kitabçası belə cədvəllərin ən sadə nümunəsidir). Bu məqalədə verilənlər bazası haqqında daha çox oxuya bilərsiniz . Java tərtibatçıları üçün məsuliyyət sahəsi təkcə Java proqramı deyil, həm də onun qarşılıqlı əlaqədə olduğu və məlumatları saxladığı verilənlər bazasıdır. Əlaqəli (ən çox yayılmış) verilənlər bazalarında bütün qarşılıqlı əlaqə xüsusi bir dil - Strukturlaşdırılmış Sorğu Dili və ya SQL vasitəsilə baş verir. Bu mövzunu başa düşmək üçün kitablardan birini oxumaq kifayətdir:- Alan Bewley tərəfindən "SQL öyrənilməsi";
- “SQL”, Chris Fiaily;
- Lynn Bailey tərəfindən "Head First SQL".
6. MySQL/PostgreSQL
SQL dilini öyrəndikdən sonra xüsusi verilənlər bazası tətbiqi ilə tanış olmalısınız. Verilənlər bazasından asılı olaraq bəzi əmrlər kəskin şəkildə dəyişə bilər. Və verilənlər bazası imkanlarında fərq olduqca nəzərə çarpır. Ən çox yayılmış əlaqəli verilənlər bazaları MySQL və PostgreSQL- dir .![Java tərtibatçısının yoxlama siyahısı. Tərtibatçı nəyi bilməlidir - 4](https://cdn.javarush.com/images/article/9899c54b-57ee-4f85-b40d-e42bc887ad99/512.jpeg)
7. Maven/Qradl
Layihələrin yığılması üçün nəzərdə tutulmuş Gradle və ya Maven çərçivələrindən birini öyrənməlisiniz , çünki indi sizin üçün Java yalnız bir neçə sinif tapşırıqları deyil, həm də tam hüquqlu proqramların yazılması üçün bir dildir. Bir layihənin necə yığılacağını, montaj mərhələlərinin nə olduğunu, lazımi xarici kitabxanaları hazır kodla necə yükləməyi və daha çox şeyləri başa düşməlisiniz. Gradle daha yeni və daha təmiz olsa da, Maven əksər hallarda istifadə olunur. Buna görə də, onun montaj həyat dövrünə xüsusi diqqət yetirin.8. Git
Git paylanmış versiyaya nəzarət sistemidir. Bu texnologiya tərtibatçılara bir-birinə müdaxilə etmədən birgə bir proqram yaratmağa imkan verir. Əlbəttə ki, bu versiyaya nəzarət sisteminin analoqları var. Məsələn, Subversion . Amma əsasən Git istifadə olunur və siz onunla işləməyi bacarmalısınız.![Java tərtibatçısının yoxlama siyahısı. Tərtibatçı nəyi bilməlidir - 5](https://cdn.javarush.com/images/article/7c258025-d8af-44ad-ad08-04159185ca88/512.jpeg)
9. JDBC
Bu texnologiya Java proqramınız və əlaqəli verilənlər bazası arasında əlaqə təmin etmək üçün nəzərdə tutulmuşdur. Əsaslarla tanış olmaq üçün JDBC və ya Hamısı Harada Başlayır məqaləsini oxumağı məsləhət görürəm. Artıq heç kimin çılpaq JDBC-dən birbaşa istifadə etməməsinə baxmayaraq, JDBC texnologiyasını izah edən və elementar nümunələr verən çoxlu məqalələr var.10.JPA. Qışlama
JPA, JDBC kimi Java proqramı ilə verilənlər bazası arasında əlaqə yaratmaq üsuludur. Lakin eyni zamanda, JPA daha yüksək səviyyəli texnologiyadır və müvafiq olaraq istifadəsi daha asandır. Lakin JPA yalnız həyata keçirilməyən və konkret icra tələb edən spesifikasiyadır (konsepsiya). Bu cür tətbiqlər çoxdur, lakin populyar və inkişaf etmiş JPA ideallarına ən yaxın olanı Hibernate hesab olunur . İnkişaf karyeranızda bu texnologiya ilə bir dəfədən çox qarşılaşacaqsınız. Buna görə də, məqalələr vasitəsilə bu texnologiya ilə tanış olmaqdan əlavə, bu barədə bir kitab oxumağa dəyər ola bilər, məsələn, “ Java Persistence API ”.11. Bahar
Java tərtibatçısı olduqda, Bahar artıq sizin üçün sadəcə bir söz deyil.![Java tərtibatçısının yoxlama siyahısı. Tərtibatçı nəyi bilməlidir - 6](https://cdn.javarush.com/images/article/4474a5d6-8031-4111-9c12-6911487c2b51/512.jpeg)
![Java tərtibatçısının yoxlama siyahısı. Tərtibatçı nəyi bilməlidir - 7](https://cdn.javarush.com/images/article/a8f5bc0e-c9e6-42ba-acdf-f47ed8bd95d5/800.jpeg)
- Bahar nüvəsi
Baharın nə olduğunu anlamaq üçün birinci yerdə olmalıdır: Bahar konteyneri, lobya, DI, IoC və s. Beləliklə, Bahardan istifadə etməyin fəlsəfəsini anlayın. Bahar çərçivələrinin sonrakı tədqiqi bu baza əsasında aparılacaqdır. Tədricən öyrəndiyiniz yeni texnologiyalar əlavə edəcəyiniz öz kiçik proqramınızı yaratmağa dəyər ola bilər.
- Bahar JDBC
Əvvəllər verilənlər bazası ilə əlaqə yaratmaq texnologiyası kimi JDBC texnologiyası haqqında danışdıq. Ümumiyyətlə, texnologiyanın “çılpaq” istifadəsi indi layihələrdə tapıla bilməz, ona görə də JDBC öyrənmək lazım olmadığı kimi görünə bilər. Amma belə deyil. JDBC-nin çılpaq sümüklərinə baxaraq, texnologiyanı daha aşağı səviyyədə görə bilərsiniz və onun problemlərini və çatışmazlıqlarını başa düşə bilərsiniz. Spring JDBC-ni öyrənməyə başladıqdan sonra bu çərçivənin nəyi təkmilləşdirdiyini, optimallaşdırdığını və gözümüzdən gizlətdiyini başa düşəcəksiniz.
- Bahar Qışlama
Çılpaq JDBC-də olduğu kimi, bu çərçivə mövcud texnologiyadan istifadəni yaxşılaşdırır, bu halda Hibernate. Yaz olmadan Hibernate istifadə etməyi düşünürsünüzsə, Spring Hibernate istifadə etməyin faydasını dəqiq başa düşəcəksiniz.
- Bahar JPA
Əvvəllər JPA haqqında danışdıq və bunun yalnız müxtəlif tətbiqlərin olduğu bir spesifikasiya olduğunu söylədik. Bu tətbiqlər arasında Hibernate ideala ən yaxın olanıdır. Baharın "başlıq altında" Hibernate istifadə edən və JPA spesifikasiyalarının idealına mümkün qədər yaxın olan JPA-nın öz ideal tətbiqi var. Bu texnologiya Spring JPA adlanır. Yeri gəlmişkən, verilənlər bazasına daxil olmağı çox asanlaşdırır. JPA-nı yalnız JDBC, Hibernate, Spring JDBC, Spring Hibernate öyrənmədən öyrənə bilərsiniz. Amma bu halda verilənlər bazasına qoşulmaq haqqında bilikləriniz çox səthi olacaq.
- Bahar MVC
Bu texnologiya ilə biz tətbiqimizin veb interfeysini istifadəçilərə göstərə və interfeysin tətbiqin qalan hissəsi ilə əlaqə saxlamasına icazə verə bilərik. Ekrana cavabdeh olan bəzi proqram olduqda texnologiya ekransız da işləyə bilər və siz RESTful texnologiyasından istifadə edərək sorğu və cavablardan istifadə edərək bu proqramla qarşılıqlı əlaqədə olursunuz. Bahar haqqında məlumatları daha yaxşı başa düşmək üçün YouTube-da məqalə və mühazirələrdən əlavə, bir neçə kitab oxuya bilərsiniz. Walls Craig-in "Fəaliyyətdə olan bahar" kitabını çox bəyəndim. Təəssüf ki, rus dilində indi köhnəlmiş hesab edilən yalnız üçüncü versiya var. İngilis dilini yaxşı bilirsinizsə 6-cı versiyanı oxumağınızı məsləhət görürəm. Bahar haqqında başqa bir möhtəşəm kitab “Peşəkarlar üçün 5-ci bahar”dır. Öyrənmək daha çətindir və başdan sona oxumaqdansa əlinizdə saxlamaq daha yaxşı olan Bahar ![Java tərtibatçısının yoxlama siyahısı. Tərtibatçı nəyi bilməlidir - 8](https://cdn.javarush.com/images/article/d50d9c48-eb5a-42f1-898e-a2c872b7080d/512.jpeg)
- Yaz çəkmə
Bu texnologiya Baharın istifadəsini çox asanlaşdırır. Siyahının sonuna bir səbəbə görə qoydum, çünki "başlıq" altında çox şey gizlədir və adi Baharla tanış olmayan bir insan üçün bir çox məqamlar aydın və anlaşılmaz olmaya bilər. Birincisi, Bahar çərçivələrinin necə işlədiyini daha yaxşı başa düşmək üçün müntəzəm Bahardan istifadə etməlisiniz, sonra isə Spring Boot-dan istifadənin bütün daha yüksək faydalarından istifadə etməlisiniz. Mən də sizə Spring Security və Spring AOP ilə tanış olmağı məsləhət görürəm. Ancaq yuxarıdakı texnologiyalardan fərqli olaraq, bu ikisi haqqında dərin biliyə indi ehtiyac yoxdur. Bu texnologiya yeni başlayanlar üçün deyil. Müsahibə zamanı yeniyetmələrdən onlar haqqında soruşulmur (bir səthi sual istisna olmaqla). Ümumiyyətlə, bu texnologiyaların nə olduğunu və necə işlədiyini oxuyun. Bu yazı boyu kitab oxumağı dəfələrlə qeyd etmişəm. Bir tərəfdən, bu lazım deyil. Bir kitab oxumadan, məqalələrdən və təlim videolarından lazım olan hər şeyi öyrənərək proqramçı ola bilərsiniz. Digər tərəfdən, hazırda təcrübəsiz tərtibatçılar üçün bazarda rəqabət yüksəkdir və bu, yeni başlayanlar üçün tələb olunan ilkin bilik üçün zolağı qaldırır. Buna görə də, nə qədər çox bilsəniz, müsahibini bilik səviyyənizlə heyran etməklə, ilk işinizi bir o qədər tez qura bilərsiniz. Hamınıza təşəkkür edirəm və Java sizinlə olsun .![Java tərtibatçısının yoxlama siyahısı. Tərtibatçı nəyi bilməlidir - 9](https://cdn.javarush.com/images/article/dd380f81-815c-48f4-bce6-f436c53c8ca0/512.jpeg)
GO TO FULL VERSION