Fiecare programator Java trebuie să aibă o înțelegere de bază a dezvoltării software. Deci, să aruncăm o privire la ceea ce este considerat „de bază”.

1. Algoritmi de bază

Primul lucru de abordat atunci când începeți să învățați programarea (nu doar Java) este să înțelegeți elementele de bază. De exemplu, algoritmi.

Există un număr infinit de ei și nu ar trebui să-ți omori ani întregi din viață încercând să înveți cât mai mulți algoritmi: majoritatea nu îți vor fi de folos. Puteți obține minimumul necesar de cunoștințe din cartea „Algoritmi Grokking”. Acest lucru este suficient pentru a începe, dar dacă doriți, puteți învăța din cartea „Structuri și algoritmi” sau „Algoritmi în Java” de Robert Sedgewick și Kevin Wayne.

2. Sintaxa Java

După ce învățăm elementele de bază ale algoritmilor, trebuie să învățăm sintaxa Java. La urma urmei, înveți să devii programator Java, nu? Cursul CodeGym este perfect pentru asta.

Pe măsură ce efectuați nenumărate sarcini, veți pune mâna pe sintaxa Java și apoi, fără prea multă ezitare, veți scrie/citi cod Java ca și cum ar fi limba dumneavoastră maternă.

Dincolo de practică, trebuie să te uiți și la teorie pentru a înțelege ce faci. Pentru a face acest lucru, puteți citi cărți. De exemplu, una dintre următoarele:

  • „Capul întâi Java”,
  • „Java for Dummies” de Barry Bird;
  • „Java: un ghid pentru începători” de Herbert Schildt.

După ce ați citit aceste cărți, puteți trece la cărți mai dificile:

  • „Gândirea în Java”, Bruce Eckel;
  • „Java eficient” de Joshua Bloch;
  • „Java: Referința completă” de Herbert Schildt.

Ultimele trei cărți nu sunt ușor de citit pentru începători, dar oferă o bază solidă în teoria Java.

3. Modele de design

Modelele de design sunt anumite modele repetabile care rezolvă probleme în contexte întâlnite frecvent. Acestea includ modele de bază, simple pe care fiecare programator care se respectă ar trebui să le cunoască. Pentru a înțelege acest subiect, luați cartea „Head First Design Patterns”.

Acesta explică modelele de design de bază într-un mod accesibil. Dar cartea vorbește mult despre Java, așa că atunci când consumați această carte veți avea nevoie și de fluență în acest limbaj de programare.

Pentru o scufundare mai profundă în tipare, puteți citi și „Design Patterns: Elements of Reusable Object-Oriented Software” de la Gang of Four ( Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides ). Odată ce ați studiat acest subiect, veți începe să vedeți tipare practic peste tot în codul dvs.

Acordați atenție acestui lucru, în special modelelor folosite în primăvară, deoarece aceasta este o întrebare populară la interviu.

4. Paradigma de programare. Cod de curățenie

Pe lângă modelele standard de design, există diverse principii și paradigme de care trebuie să fii conștient (SOLID, GRASP).

De asemenea, trebuie să păstrați codul curat și lizibil. Pentru tot, trebuie să știți despre acest subiect, consultați Clean Code de Robert Martin sau consultați „Code Complete” de Steve McConnell.

5. SQL

Următorul nostru pas este să studiem un limbaj pentru baze de date relaționale - SQL.

Bazele de date sunt locul în care sunt stocate informațiile (datele) utilizate de o aplicație web. O bază de date constă din mai multe tabele (agenda de adrese de pe telefonul dvs. este un exemplu simplu).

Dezvoltatorii Java sunt responsabili nu numai pentru aplicația Java, ci și pentru baza de date cu care interacționează și unde își stochează datele.

În bazele de date relaționale (care sunt cel mai comun tip), toată interacțiunea are loc printr-un limbaj special numit Structured Query Language sau SQL.

Pentru a înțelege acest subiect, tot ce trebuie să faceți este să citiți una dintre aceste cărți:

  1. „Learning SQL” de Alan Beaulieu;
  2. „SQL” de Chris Fehily;
  3. „Head First SQL” de Lynn Beighley.

Dar practica fără teorie nu o reduce, nu-i așa? Și la interviuri vă puteți aștepta la un test al cunoștințelor dvs. de SQL. Intervievatorii adesea (aproape întotdeauna) oferă una sau două sarcini care implică scrierea unei interogări SQL.

Ca rezultat, este foarte important să-ți perfecționezi abilitățile practice SQL pentru a te arăta într-o lumină bună.

6. MySQL/PostgreSQL

După ce învățați limbajul SQL, trebuie să vă familiarizați cu o anumită implementare a bazei de date. În funcție de baza de date, unele comenzi pot varia dramatic. Și există diferențe destul de vizibile în capabilitățile bazei de date.

Cele mai comune baze de date relaționale sunt MySQL și PostgreSQL. MySQL este mult mai simplu, dar PostgreSQL are capabilități mult mai largi. A fi familiarizat cu cel puțin unul dintre ele este suficient pentru a începe.

Puteți studia implementările bazelor de date dacă vă folosiți abilitățile de a căuta pe Google - găsiți articole și tutoriale relevante pe YouTube. Va trebui să vă cultivați capacitatea de a crea interogări de căutare adecvate pentru întrebările la care aveți nevoie de răspuns. La urma urmei, un programator este cineva cu centură neagră în google.

7. Maven/Gradle

Trebuie să înveți fie cadrul Gradle, fie Maven. Ele sunt pentru construirea de proiecte, iar pentru tine, Java este acum nu numai pentru sarcini care implică câteva clase, ci și un limbaj pentru scrierea de aplicații cu drepturi depline.

Trebuie să înțelegeți cum să construiți un proiect, care sunt etapele de construire, cum să încărcați bibliotecile externe necesare cu cod terță parte și multe altele.

În ciuda faptului că Gradle este mai nou și mai concis, Maven este folosit în majoritatea cazurilor. Așadar, acordați o atenție deosebită ciclului de viață al construcției Maven.

8. Git

Git este un sistem distribuit de control al versiunilor. Această tehnologie permite dezvoltatorilor să colaboreze la o singură aplicație fără a interfera între ei.

Desigur, există și alte sisteme de control al versiunilor. De exemplu, Subversion. Dar Git este folosit cel mai larg și trebuie să poți lucra cu el. Pe lângă numeroasele articole despre Git pe care le poți găsi online, YouTube are videoclipuri mai mult decât suficiente pentru a te ajuta să stăpânești această tehnologie, pas cu pas.

La început, este mai bine să utilizați Git din linia de comandă, mai degrabă decât un fel de implementare GUI, deoarece veți fi forțat să faceți totul folosind comenzi. În interviuri, oamenilor le place adesea să întrebe despre câteva comenzi Git, așa că vă recomand să le scrieți și să le păstrați undeva aproape.

9. JDBC

Această tehnologie conectează aplicația dvs. Java și o bază de date relațională. Pentru elementele de bază, citiți orice tutorial JDBC.

Există o mulțime de articole care explică JDBC și oferă exemple rudimentare, chiar dacă nimeni nu mai folosește direct JDBC gol.

10. JPA. Hibernează

JPA este o modalitate de a stabili o conexiune între o aplicație Java și o bază de date, la fel ca JDBC. Dar, în același timp, JPA este o tehnologie de nivel superior și, prin urmare, mai ușor de utilizat.

Dar JPA este doar o specificație, nu o implementare. Are nevoie de o implementare concretă. Multe dintre ele există, dar cel mai apropiat de idealurile JPA, cel mai popular și cel mai dezvoltat este Hibernate.

Veți întâlni această tehnologie de mai multe ori în cariera dumneavoastră de dezvoltare de software. Deci, pe lângă familiarizarea cu această tehnologie citind articole, poate merita să vă gândiți la citirea unei cărți, de exemplu, „Java Persistence API”.

11. Primăvara

Când devii un dezvoltator Java, Spring nu mai este doar un cuvânt pentru tine. Cunoașterea acestui cadru este acum la fel de importantă ca și cunoașterea sintaxei Java. Ai putea spune că Spring are un frate, adică Java EE. Dar Java EE este depășit și nu mai este folosit în proiecte noi.

Majoritatea covârșitoare a dezvoltatorilor Java sunt acum dezvoltatori Java-Spring, așa că cunoașterea unor tehnologii Spring de bază este o necesitate.

Primăvara nu este doar un cadru, ci un întreg cadru de cadre:

Și acesta este doar un subset al cadrelor oferite de Spring. Pentru un începător, să cunoască doar câteva dintre ele este suficient de bun:

Miez de primăvară

Ar trebui să puneți acest lucru în primul rând, astfel încât să puteți înțelege ce este Spring - totul despre containere Spring, fasole, DI, IoC și așa mai departe. Pentru a înțelege însăși filosofia folosirii primăverii, ca să spunem așa. Studiul dvs. ulterioar al cadrelor Spring se va construi pe baza acestei baze. Poate că ar trebui să creați propria dvs. aplicație mică în care să puteți încorpora treptat toate tehnologiile nou învățate.

JDBC de primăvară

Mai devreme am menționat JDBC ca tehnologie pentru crearea unei conexiuni la baza de date. În general, utilizarea „nudă” a tehnologiei nu mai poate fi găsită în proiecte, așa că puteți concluziona că învățarea JDBC nu este necesară. Aceasta nu este atitudinea corectă.

Explorând utilizarea liberă (directă) a JDBC, puteți vedea tehnologia la un nivel inferior și puteți înțelege problemele și deficiențele acesteia. Apoi, când începeți să învățați Spring JDBC, vă veți da seama ce anume îmbunătățește, optimizează și ascunde acest cadru.

Hibernare de primăvară

Analog cu situația cu JDBC gol, acest cadru folosește o tehnologie existentă, în acest caz, Hibernate. Dacă vă gândiți să utilizați Hibernate fără Spring, veți realiza cu siguranță beneficiile pe care le oferă Spring Hibernate.

JPA de primăvară

Mai devreme am vorbit despre JPA și am menționat că este doar o specificație, deși are diverse implementări. Dintre aceste implementări, Hibernate se apropie cel mai mult de ideal.

Spring are propria sa implementare JPA ideală care utilizează Hibernate sub capotă. Este cât se poate de aproape de idealul specificației JPA.

Se numește Spring JPA. Într-un cuvânt, simplifică foarte mult accesul la baza de date.

Puteți învăța doar JPA fără a învăța JDBC, Hibernate, Spring JDBC sau Spring Hibernate. Dar dacă adoptați această abordare, cunoștințele dvs. despre cum să vă conectați la o bază de date vor fi foarte superficiale.

Spring MVC

Această tehnologie face posibilă afișarea interfeței web a aplicației noastre pentru utilizatori și facilitarea comunicării între interfață și restul aplicației. Tehnologia poate fi folosită și fără afișare atunci când aveți o aplicație care este responsabilă pentru manipularea afișajului și interacționați cu aplicația folosind tehnologia RESTful.

Pentru a absorbi mai bine informații despre primăvară, pe lângă articole și prelegeri pe YouTube, puteți citi mai multe cărți. De exemplu, „Primăvara în acțiune” de Craig Walls. O altă carte grozavă despre primăvară este „Primăvara 5 pentru profesioniști”. E mai dens. Mai degrabă o referință care este mai valoroasă de ținut la îndemână decât de citit de la cap la cap.

Cizme de primăvară

Această tehnologie simplifică foarte mult utilizarea Spring. Nu l-am pus la sfârșitul listei dintr-un capriciu. Într-adevăr, se ascunde foarte mult sub capotă, iar pentru cineva care nu este familiarizat cu primăvara de vanilie, multe puncte pot fi neclare sau de neînțeles.

În primul rând, pentru o mai bună înțelegere a modului în care funcționează cadrele Spring, ar trebui să utilizați Spring obișnuit și apoi să beneficiați de toate beneficiile mai mari ale utilizării Spring Boot.

De asemenea, ar trebui să vă familiarizați cu Spring Security și Spring AOP. Dar, spre deosebire de tehnologiile de mai sus, cunoașterea profundă a acestor două nu este necesară încă.

Această tehnologie nu este pentru începători. La interviuri, dezvoltatorii juniori nu vor fi întrebați despre ei (cu excepția unei întrebări superficiale, poate). Citiți o prezentare generală a acestor tehnologii și a principiilor din spatele muncii lor.

Cu cât știi mai multe, cu atât mai repede îți vei găsi primul loc de muncă.