Hi! Ngayon ay pag-uusapan natin ang tungkol sa landas ng paglago ng isang developer ng Java at kung ano ang dapat niyang malaman upang maging in demand. Checklist ng isang developer ng Java.  Ano ang dapat malaman ng isang developer - 1Sa isang panayam, maaaring i-ihaw ng sinumang developer ang kandidato sa trabaho. Halimbawa, maaari silang magsimulang magtanong tungkol sa mga partikular na paksa na naranasan nila sa kanilang kasalukuyang proyekto. Ngunit hindi alam na ang lahat ay normal. Normal din ang katotohanan na hindi mo masasagot ang ilang tanong. Bilang isang pangkalahatang tuntunin, ang bawat Java programmer ay dapat magkaroon ng pangunahing pag-unawa sa pagbuo ng software. Kaya't tingnan natin kung ano ang itinuturing na "basic".

1. Mga pangunahing algorithm

Ang unang bagay na dapat harapin kapag nagsisimulang matuto ng programming (hindi lamang Java) ay upang maunawaan ang mga pangunahing kaalaman. Halimbawa, ang mga algorithm. Mayroong walang katapusang bilang ng mga ito, at hindi mo dapat patayin ang buong taon ng iyong buhay sa pagsisikap na matuto ng maraming algorithm hangga't maaari: karamihan sa mga ito ay hindi magiging kapaki-pakinabang sa iyo. Makukuha mo ang kinakailangang minimum na kaalaman mula sa aklat na "Grokking Algorithms". Ito ay sapat na upang makapagsimula ka, ngunit kung gusto mo, maaari kang matuto mula sa aklat na "Mga Structure at Algorithms" o "Mga Algorithm sa Java" ni Robert Sedgewick at Kevin Wayne. Inirerekomenda ko rin na pagbutihin mo ang iyong kaalaman sa mga pangunahing kaalaman sa computer science. Magagawa ito sa kursong Harvard CS50.

2. Java Syntax

Pagkatapos matutunan ang mga pangunahing kaalaman ng mga algorithm, kailangan nating matutunan ang Java syntax. Kung tutuusin, lahat tayo ay nag-aaral para maging Java programmer dito, di ba? Ang kursong CodeGym ay perpekto para dito. Habang nagsasagawa ka ng hindi mabilang na mga gawain, makukuha mo ang iyong mga kamay sa Java syntax at pagkatapos, nang walang labis na pag-aalinlangan, isusulat/babasa mo ang Java code na parang ito ang iyong katutubong wika. Ang CodeGym ay kasanayan, ngunit higit pa doon, kailangan mo ring tingnan ang teorya upang maunawaan kung ano ang iyong ginagawa. Upang gawin ito, maaari kang magbasa ng mga libro. Halimbawa, isa sa mga sumusunod:
  • "Unang ulo sa Java",
  • "Java for Dummies" ni Barry Bird;
  • "Java: A Beginner's Guide" ni Herbert Schildt.
Pagkatapos basahin ang mga aklat na ito, maaari kang pumunta sa mas mahirap na mga libro:
  • "Pag-iisip sa Java," Bruce Eckel;
  • "Effective Java" ni Joshua Bloch;
  • "Java: The Complete Reference" ni Herbert Schildt.
Ang huling tatlong libro ay hindi madaling basahin para sa mga nagsisimula, ngunit nagbibigay sila ng matibay na pundasyon sa teorya ng Java. Gayundin, huwag kalimutan ang tungkol sa mga artikulo ng CodeGym, dahil nagbibigay ang mga ito ng mga paliwanag para sa karamihan ng mga paksang maaaring interesado ka. Makakahanap ka ng may-katuturang artikulo sa pamamagitan ng pag-type sa paksang interesado ka sa search bar: Checklist ng isang developer ng Java.  Ano ang dapat malaman ng isang developer - 2Lubos kong inirerekumenda ang paghahanap ng mga tanong mula sa mga panayam sa Java. Makakatulong ito sa iyo na maunawaan kung ano ang eksaktong kailangan mong matutunan at kung anong mga tanong ang ihahanda.

3. Mga pattern ng disenyo

Ang mga pattern ng disenyo ay ilang mga paulit-ulit na pattern na lumulutas ng mga problema sa mga madalas na nakakaharap na konteksto. Kasama sa mga ito ang mga basic, simpleng pattern na dapat malaman ng bawat self-respecting programmer. Upang maunawaan ang paksang ito, kunin ang aklat na "Head First Design Patterns". Ipinapaliwanag nito ang mga pangunahing pattern ng disenyo sa isang madaling paraan. Ngunit marami ang pinag-uusapan ng aklat tungkol sa Java, kaya kapag ginamit mo ang aklat na ito kakailanganin mo rin ang katatasan sa programming language na ito. Para sa mas malalim na pagsisid sa mga pattern, maaari mo ring basahin ang "Mga Pattern ng Disenyo: Mga Elemento ng Reusable Object-Oriented Software" mula sa Gang of Four ( Tala ng editor: ang Gang of Four ay isang pangkat ng mga may-akda na kinabibilangan nina Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides.). Kapag napag-aralan mo na ang paksang ito, magsisimula kang makakita ng mga pattern sa halos lahat ng dako sa iyong code. Bigyang-pansin ito, lalo na sa mga pattern na ginamit sa Spring, dahil ito ay isang tanyag na tanong sa panayam.

4. Programming paradigms. Kalinisan ng code

Bukod sa karaniwang mga pattern ng disenyo, mayroong iba't ibang mga prinsipyo at paradigm na dapat malaman ( SOLID , GRASP ). Kailangan mo ring panatilihing malinis at nababasa ang iyong code. Para sa lahat, kailangan mong malaman ang tungkol sa paksang ito, tingnan ang Clean Code ni Robert Martin, o tingnan ang "Code Complete" ni Steve McConnell.

5. SQL

Ang aming susunod na hakbang ay pag-aralan ang isang wika para sa mga relational database — SQL . Ang mga database ay kung saan nakaimbak ang impormasyon (data) na ginagamit ng isang web application. Ang isang database ay binubuo ng ilang mga talahanayan (ang address book sa iyong telepono ay isang simpleng halimbawa). Ang mga developer ng Java ay responsable hindi lamang para sa Java application, kundi pati na rin ang database kung saan ito nakikipag-ugnayan at kung saan ito nag-iimbak ng data nito. Sa mga relational database (na ang pinakakaraniwang uri), ang lahat ng pakikipag-ugnayan ay nangyayari sa pamamagitan ng isang espesyal na wika na tinatawag na Structured Query Language, o SQL. Upang maunawaan ang paksang ito, ang kailangan mo lang gawin ay basahin ang isa sa mga aklat na ito:
  • "Pag-aaral ng SQL" ni Alan Beaulieu;
  • "SQL" ni Chris Fehily;
  • "Head First SQL" ni Lynn Beighley.
Ngunit ang pagsasanay na walang teorya ay hindi pinuputol ito, hindi ba? At sa mga panayam maaari mong asahan ang isang pagsubok ng iyong kaalaman sa SQL. Ang mga tagapanayam ay madalas (halos palagi) ay nagbibigay ng isa o dalawang gawain na kinabibilangan ng pagsulat ng isang SQL query. Bilang isang resulta, napakahalaga na mahasa ang iyong mga praktikal na kasanayan sa SQL upang ipakita ang iyong sarili sa isang magandang liwanag.

6. MySQL/PostgreSQL

Pagkatapos matutunan ang wikang SQL, kailangan mong maging pamilyar sa isang partikular na pagpapatupad ng database. Depende sa database, ang ilang mga command ay maaaring mag-iba nang malaki. At may mga kapansin-pansing pagkakaiba sa mga kakayahan ng database. Ang pinakakaraniwang relational database ay MySQL at PostgreSQL . Checklist ng isang developer ng Java.  Ano ang dapat malaman ng isang developer - 3Ang MySQL ay mas simple, ngunit ang PostgreSQL ay may mas malawak na kakayahan. Ang pagiging pamilyar sa kahit isa sa kanila ay sapat na upang makapagsimula. Maaari mong pag-aralan ang mga pagpapatupad ng database kung gagamitin mo ang iyong mga kasanayan sa pag-googling — maghanap ng mga nauugnay na artikulo at tutorial sa YouTube. Kakailanganin mong linangin ang iyong kakayahang gumawa ng wastong mga query sa paghahanap para sa mga tanong na kailangan mong masagot. Pagkatapos ng lahat, ang programmer ay isang taong may black belt sa googling.

7. Maven/Gradle

Kailangan mong matutunan ang alinman sa Gradle o Maven framework. Ang mga ito ay para sa pagbuo ng mga proyekto, at para sa iyo, ang Java ay hindi lamang para sa mga gawaing kinasasangkutan ng ilang klase, ngunit isa ring wika para sa pagsulat ng mga ganap na aplikasyon. Kailangan mong maunawaan kung paano bumuo ng isang proyekto, kung ano ang mga yugto ng pagbuo, kung paano i-load ang mga kinakailangang panlabas na aklatan na may third-party na code, at marami pang iba. Sa kabila ng katotohanan na ang Gradle ay mas bago at mas maigsi, ang Maven ay ginagamit sa karamihan ng mga kaso. Kaya, bigyang-pansin ang lifecycle ng Maven build.

8. Git

Ang Git ay isang distributed version control system. Ang teknolohiyang ito ay nagbibigay-daan sa mga developer na mag-collaborate sa isang application nang hindi nakikialam sa isa't isa. Siyempre, may iba pang mga bersyon ng control system. Halimbawa, Subversion . Ngunit ang Git ay pinakamalawak na ginagamit, at kailangan mong magawa ito.Checklist ng isang developer ng Java.  Ano ang dapat malaman ng isang developer - 4Bilang karagdagan sa maraming artikulo tungkol sa Git na mahahanap mo online, ang YouTube ay may higit sa sapat na mga video upang matulungan kang makabisado ang teknolohiyang ito, hakbang-hakbang. Sa una, mas mainam na gumamit ng Git mula sa command line kaysa sa isang uri ng pagpapatupad ng GUI, dahil mapipilitan kang gawin ang lahat gamit ang mga command. Sa mga panayam, ang mga tao ay madalas na gustong magtanong tungkol sa ilang mga utos ng Git, kaya inirerekomenda ko na isulat mo ang mga ito at manatili sa isang lugar na malapit. Inirerekomenda ko rin na kumuha ka ng mga tala, na sinusubaybayan ang mga pinakamahalagang punto upang maisagawa ang mga ito bago ang panayam at i-refresh ang iyong memorya.

9. JDBC

Ikinokonekta ng teknolohiyang ito ang iyong Java application at isang relational database. Para sa mga pangunahing kaalaman, inirerekumenda kong basahin ang anumang tutorial sa JDBC. Napakaraming artikulo na nagpapaliwanag sa JDBC at nagbibigay ng mga pasimulang halimbawa, kahit na wala nang direktang gumagamit ng hubad na JDBC.

10. JPA. Hibernate

Ang JPA ay isang paraan upang magtatag ng koneksyon sa pagitan ng Java application at database, tulad ng JDBC. Ngunit sa parehong oras, ang JPA ay isang mas mataas na antas ng teknolohiya at samakatuwid ay mas madaling gamitin. Ngunit ang JPA ay isang detalye lamang, hindi isang pagpapatupad. Kailangan nito ng konkretong pagpapatupad. Marami sa kanila ang umiiral, ngunit ang pinakamalapit sa mga ideyal ng JPA, ang pinakasikat, at pinaka-develop ay ang Hibernate. Mahahanap mo ang teknolohiyang ito nang higit sa isang beses sa iyong karera sa pagbuo ng software. Kaya, bilang karagdagan sa pagiging pamilyar sa teknolohiyang ito sa pamamagitan ng pagbabasa ng mga artikulo, maaaring sulit na isipin ang tungkol sa pagbabasa ng isang libro, halimbawa, "Java Persistence API".

11. Spring

Kapag naging Java developer ka, hindi na isang salita lang ang Spring para sa iyo. Checklist ng isang developer ng Java.  Ano ang dapat malaman ng isang developer - 5Ang pag-alam sa balangkas na ito ay kasinghalaga na ngayon ng pag-alam sa Java Syntax. Masasabi mong may kapatid si Spring, ie Java EE. Ngunit ang Java EE ay luma na at hindi na ginagamit sa mga bagong proyekto. Ang napakaraming karamihan ng mga developer ng Java ay mga developer na ngayon ng Java-Spring, kaya't ang pag-alam sa ilang mga pangunahing teknolohiya ng Spring ay isang kinakailangan. Ang Spring ay hindi lamang isang balangkas, ngunit isang buong balangkas ng mga balangkas: Checklist ng isang developer ng Java.  Ano ang dapat malaman ng isang developer - 6At ito ay isang subset lamang ng mga balangkas na ibinibigay ng Spring. Para sa isang baguhan, ang pag-alam lamang ng ilan sa mga ito ay sapat na:

  • Spring Core

Dapat mong ilagay ito sa unang lugar, para maunawaan mo kung ano ang Spring — lahat ng tungkol sa Spring container, beans, DI, IoC, at iba pa. Upang maunawaan ang mismong pilosopiya ng paggamit ng Spring, wika nga. Ang iyong karagdagang pag-aaral ng Spring frameworks ay bubuo sa ibabaw ng base na ito. Marahil ay dapat kang lumikha ng iyong sariling maliit na aplikasyon kung saan maaari mong unti-unting isama ang lahat ng mga bagong natutunang teknolohiya.

  • Spring JDBC

Naunang binanggit namin ang JDBC bilang isang teknolohiya para sa paglikha ng koneksyon sa database. Sa pangkalahatan, ang "hubad" na paggamit ng teknolohiya ay hindi na makikita sa mga proyekto, kaya maaari mong ipagpalagay na ang pag-aaral ng JDBC ay hindi kinakailangan. Hindi ito ang tamang saloobin. Sa pamamagitan ng paggalugad ng hubad (direktang) paggamit ng JDBC, makikita mo ang teknolohiya sa mas mababang antas at mauunawaan ang mga problema at pagkukulang nito. Pagkatapos, kapag sinimulan mong pag-aralan ang Spring JDBC, malalaman mo kung ano ang eksaktong nagpapabuti, nag-o-optimize, at nagtatago ng framework na ito.

  • Spring Hibernate

Katulad ng sitwasyon sa hubad na JDBC, ang balangkas na ito ay gumagamit ng isang umiiral na teknolohiya, sa kasong ito, Hibernate. Kung isasaalang-alang mo ang paggamit ng Hibernate nang walang Spring, tiyak na matanto mo ang mga benepisyo na inaalok ng Spring Hibernate.

  • Spring JPA

Mas maaga ay napag-usapan natin ang tungkol sa JPA at binanggit na ito ay isang detalye lamang, kahit na mayroon itong iba't ibang mga pagpapatupad. Sa mga pagpapatupad na ito, ang Hibernate ay pinakamalapit sa ideal. Ang Spring ay may sariling perpektong pagpapatupad ng JPA na gumagamit ng Hibernate sa ilalim ng hood. Ito ay mas malapit hangga't maaari sa ideal ng detalye ng JPA. Ito ay tinatawag na Spring JPA. Sa madaling salita, lubos nitong pinapasimple ang pag-access sa database. Matututo ka lang ng JPA nang hindi natututunan ang JDBC, Hibernate, Spring JDBC, o Spring Hibernate. Ngunit kung gagawin mo ang diskarteng ito, ang iyong kaalaman sa kung paano kumonekta sa isang database ay magiging napakababaw.

  • Spring MVC

Ginagawang posible ng teknolohiyang ito na ipakita ang web interface ng aming application sa mga user at mapadali ang komunikasyon sa pagitan ng interface at ng iba pang bahagi ng application. Magagamit din ang teknolohiya nang walang display kapag mayroon kang application na responsable sa paghawak sa display at nakikipag-ugnayan ka sa application gamit ang RESTful na teknolohiya. Upang mas mahusay na makakuha ng impormasyon tungkol sa Spring, bilang karagdagan sa mga artikulo at mga lektura sa YouTube, maaari kang magbasa ng ilang mga libro. Talagang nagustuhan ko ang aklat na "Spring in Action" ni Craig Walls. Ipinapayo ko sa iyo na basahin ang ika-6 na bersyon, kung alam mo nang mahusay ang Ingles. Ang isa pang magandang libro sa Spring ay ang "Spring 5 for the Professionals". Mas siksik. Higit na katulad ng isang sanggunian na mas mahalaga na panatilihing malapit sa kamay kaysa sa pagbabasa ng pabalat sa pabalat.Checklist ng isang developer ng Java.  Ano ang dapat malaman ng isang developer - 7

  • Boot ng tagsibol

Ang teknolohiyang ito ay lubos na nagpapadali sa paggamit ng Spring. Hindi ko ito inilagay sa dulo ng listahan sa isang kapritso. Sa katunayan, marami itong itinatago sa ilalim ng talukbong, at para sa isang taong hindi pamilyar sa vanilla Spring, maraming puntos ang maaaring hindi malinaw o hindi maintindihan. Una, para sa mas mahusay na pag-unawa sa kung paano gumagana ang Spring frameworks, dapat mong gamitin ang regular na Spring, at pagkatapos ay kunin ang lahat ng mas mataas na benepisyo ng paggamit ng Spring Boot. Inirerekomenda ko rin na maging pamilyar ka sa Spring Security at Spring AOP. Ngunit hindi tulad ng mga teknolohiya sa itaas, ang malalim na kaalaman sa dalawang ito ay hindi pa kailangan. Ang teknolohiyang ito ay hindi para sa mga nagsisimula. Sa mga panayam, hindi tatanungin ang mga junior devs tungkol sa kanila (maliban sa isang mababaw na tanong, marahil). Basahin ang isang pangkalahatang-ideya ng kung ano ang mga teknolohiyang ito at ang mga prinsipyo sa likod ng kanilang trabaho. Sa artikulong ito, Paulit-ulit kong binanggit ang pagbabasa ng mga libro. Sa isang banda, hindi ito sapilitan. Maaari kang maging isang programmer nang hindi nagbabasa ng isang libro, nakakakuha ng lahat ng kinakailangang kaalaman mula sa mga online na artikulo at mga video ng pagsasanay. Sa kabilang banda, sa merkado ng trabaho, ang kumpetisyon sa mga baguhan na developer ay mataas sa kasalukuyan, na nagpapataas ng antas para sa kung ano ang kailangang malaman ng isang baguhan. Kaya, kung mas marami kang nalalaman, mas mabilis mong mahahanap ang iyong unang trabaho sa pamamagitan ng pagpapabilib sa tagapanayam sa iyong antas ng kaalaman. Salamat sa lahat, at nawa'y sumainyo ang Java. na nagpapataas ng antas para sa kung ano ang kailangang malaman ng isang baguhan. Kaya, kung mas marami kang nalalaman, mas mabilis mong mahahanap ang iyong unang trabaho sa pamamagitan ng pagpapabilib sa tagapanayam sa iyong antas ng kaalaman. Salamat sa lahat, at nawa'y sumainyo ang Java. na nagpapataas ng antas para sa kung ano ang kailangang malaman ng isang baguhan. Kaya, kung mas marami kang nalalaman, mas mabilis mong mahahanap ang iyong unang trabaho sa pamamagitan ng pagpapabilib sa tagapanayam sa iyong antas ng kaalaman. Salamat sa lahat, at nawa'y sumainyo ang Java.