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.
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.
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".
GO TO FULL VERSION