Tutorial interactiv în Java. Programarea de la zero: de unde să începem? Cum să înveți programarea de la zero în Java? Java este o platformă sigură

În acest articol voi încerca să prezint elementele de bază ale programării în Delphi cât mai simplu și clar posibil.

Java pentru manechine. Lecția 1. Bună lume!

În primul rând, vă voi spune ce poate face Java. În primul rând, în această limbă puteți scrie applet-uri - programe care sunt încorporate în pagina web a site-ului web. De exemplu, ar putea fi un joc, un sistem grafic de afaceri și multe altele. În al doilea rând, puteți scrie aplicații cu drepturi depline în Java care nu sunt neapărat legate de Web. Sau puteți folosi servlet-uri - programe care, spre deosebire de applet-uri, sunt executate nu pe partea clientului, ci pe partea serverului.

Să începem cu elementele de bază. Să aducem un omagiu tradiției și să scriem cel mai simplu program, care afișează un salut Salut Lume. Dacă nu aveți Java, apoi poate fi descărcat de pe site-ul oficial http://www.java.com/ru. Apoi instalați-l.

Dacă Java pe care l-ați instalat, apoi introduceți următorul text într-un editor:

Clasa publică HelloWorld {

Public static void main ( Argumente șir ) {

Sistem . afară . imprimare ( "Salut Lume!" );

}

}

Și asigurați-vă că îl salvați sub nume Salut Lume. java- Numele clasei executabile trebuie să se potrivească cu numele fișierului. Pentru a compila, utilizați programul javac.exe incluse în pachetul standard Java. Așa ar putea arăta un fișier batch de compilare acest fisier java:

„c:\Program Files\Java\jdk1.7.0\bin\javac” HellowWorld.java

pauză

Dacă nu au apărut erori în timpul compilării:

apoi, cel mai probabil, compilația a avut succes în a ta în același director în care se afla HellowWorld. java A apărut și HellowWorld.clasă:

Acum să rulăm un alt fișier batch care va apela interpretul Java împreună cu fișierul nostru compilat:

„c:\Program Files\Java\jdk1.7.0\bin\java” HellowWorld

pauză

Dacă totul este făcut corect, ar trebui să obțineți acest rezultat:

Dacă l-ați primit, atunci vă pot felicita - ați scris primul program în Java. În viitor vom învăța cum să scriem applet-uri Java și multe altele. Și acum câteva cuvinte despre programul în sine. După cum ați observat, începe cu cuvântul public. Acesta este un modificator care înseamnă că declarăm ceva disponibil public: o clasă, o metodă de clasă sau o variabilă. Există și alți modificatori, de exemplu: privat, protejat, prietenos, final, abstract, static. Unele dintre ele pot fi combinate între ele. De exemplu, privat înseamnă că variabila pe care dorim să o declarăm este privată pentru alte clase. Dar vom ajunge la modificator mai târziu. Acum să luăm în considerare următoarele cuvânt cheie clasă. Înseamnă că declarăm o clasă. În java totul se bazează pe clase. Una dintre clase este neapărat cea de bază. Și clasa de bază trebuie să fie publică.

În acest exemplu, este clasa HelloWord. Deocamdată el este singurul pe care îl avem. Acum voi încerca să explicîn cuvinte simple , ce este Clasă si ce este.

obiect

Să ne amintim de cursul școlar de zoologie. Cum este clasificată lumea vie? În primul rând, este introdus conceptul de „împărăție”.

2. 1. Regatul organismelor unicelulare,

3. regnul vegetal

Regatul animal.

1. Să luăm animale. Ele pot fi împărțite după tip. De exemplu:

2. Tip celenterate.

3. Tipul de viermi plati.

4. Tipul de crustacee.

Phylum chordata.

Acestea din urmă sunt împărțite în mamifere, reptile, amfibieni, păsări etc. Puteți merge și mai departe în clasificare, dar nu vom face asta acum, ci vom trece direct la programare.

În limbajul Java, puteți, similar clasificării lumii vii, să clasificați obiecte (bucăți de program și date). Are cursuri pentru asta.

Oprește-te! - spui, - de ce să clasificăm aceste obiecte?

Imaginează-ți că tu, ca un demiurg (creator, zeu), creezi viață pe Pământ. Mai întâi ai dezvoltat cei mai simpli compuși organici. Deci, de dragul experimentului, ce se va întâmpla. Apoi le-au combinat în molecule complexe, din care, asemenea cărămizilor, au asamblat cele mai simple microorganisme. Dar scopul tău final este să creezi o viață inteligentă. Prin urmare, nu te-ai oprit aici, ci ai creat organisme pluricelulare. Apoi au început să le îmbunătățească și să le dezvolte. Unele specii s-au dovedit a fi viabile, altele au dispărut (dinozauri). Și în sfârșit scopul a fost atins - Homo Sapiens - Homo sapiens - a apărut.

Acum haideți să venim la pământ și să ne imaginăm programarea ca pe o creație, în care vă forțați programul să evolueze într-o anumită stare când poate fi folosit și apoi, în continuare, creșteți și îmbunătățiți treptat funcționalitatea. Acum să ne imaginăm că un atom este cea mai simplă comandă

programe sau o unitate de informații (care, vedeți, nu sunt separabile unele de altele, deoarece programul funcționează cu ceva - așa este, cu informații).

Așa că am creat o grămadă de obiecte în programul nostru. Trebuie să le clasificăm cumva pentru a nu ne confunda. Pentru aceasta oferă Java clase. Folosindu-le descriem o clasă de obiecte ( concept general, de exemplu păsări), și apoi, având clasa descrisă, putem crea un obiect - o instanță a acestei clase. Adică, clasa este cuvântul Păsări în sine, iar obiectul este o pasăre specifică, dacă ne continuăm analogia.

Mai mult, păsările sunt diferite tipuri. Dar toți au câteva semne generale, moștenit din conceptul de „Păsări”. La fel și în Java, dintr-o clasă puteți crea o altă clasă care își moștenește proprietățile și metodele (caracteristicile). Se numește moştenire.

Diferite păsări au culori diferite de pene, forme de cioc și aripi diferite. La fel și pentru clase, atunci când se creează o clasă nouă, caracteristicile moștenite pot fi modificate. Se numește polimorfism.

Deci, ne-am dat seama de conceptele de bază ale Java. Acum să trecem prin program.

Iată cum declarăm o clasă:

clasă publică HelloWorld {

În acest caz, există o singură clasă în programul nostru și aceasta este clasa de bază, adică clasa responsabilă cu rularea programului. De aceea, numele său trebuie să se potrivească cu numele fișierului, astfel încât interpretul „știe” de unde să înceapă executarea programului.

Clasa de bază (HelloWorld) are metoda de baza:principal. L-am declarat public și static. Primul indică faptul că metoda este publică. Dacă nu ar fi așa, atunci programul nostru pur și simplu nu ar începe. Există și metode care nu sunt disponibile public, dar despre ele vom vorbi în lecțiile următoare. Deocamdată, amintiți-vă că metoda de bază (care este lansată când începem programul) trebuie să fie publică. Și numele său ar trebui să fie principal, astfel încât interpretul să știe de unde să înceapă executarea programului.

Acum ce este static. Acesta este un modificator care indică faptul că metoda este statică. Adică funcționează chiar și atunci când nu este creată o instanță a clasei (obiectului). În general, câmpurile și metodele cu modificatorul static sunt comune tuturor obiectelor clasei. Vom vorbi și despre asta mai târziu.

Fiecare metodă poate avea sau nu o valoare returnată. Dacă o face, atunci este o funcție. Tipul de valoare returnată este de asemenea inclus în declarația metodei. Dacă nu, atunci setați-l la void (ca în exemplul nostru).

Accesul la câmpurile și metodele unui obiect se face printr-un punct. Există, de asemenea, obiecte încorporate, de exemplu, System, pe care le folosim în exemplul nostru:

Sistem . afară . imprimare ( "Salut Lume!" );

în acest caz, accesăm câmpul de ieșire, care este, de asemenea, un obiect destinat ieșirii de date, și apelăm la metoda lui de imprimare, care afișează text pe ecran (cum ar fi comanda PRINT în vechiul BASIC).

(C) Shuravin Alexander

Buna ziua. Dacă citiți aceste rânduri, vă confirm că acestea sunt lecții Java. Cursul este pur și simplu plin de practică (1200+ probleme practice) și este destinat unui public adult. Urăsc prelegerile plictisitoare, așa că JavaRush este realizat sub forma unui joc online (quest).

A trebuit să joci și să-ți ridici nivelul personajelor? Uneori nici nu observi cum te implici, nu? Poți ghici unde mă duc cu asta? În JavaRush, va trebui, de asemenea, să vă ridicați nivelul caracterului. De la nivelul 1 la 40. Dacă finalizați întregul curs, veți deveni un programator Java tare.

Dacă finalizați 40 de niveluri, puteți obține un loc de muncă job java Junior. Deși există persoane care și-au găsit deja un loc de muncă la nivelul 20. Pentru că JavaRush are o mulțime de probleme practice. Atât de multe.

Evenimentele jocului au loc în viitorul îndepărtat, îndepărtat, în anul 3017, unde oamenii trăiesc pe Pământ împreună cu roboți și oricine poate călători prin spațiu.

Într-o zi, o navă spațială s-a prăbușit pe o planetă necunoscută...

Fundal

Echipa Galactic Rush s-a prăbușit pe o planetă necunoscută. Când nava a căzut, s-a prăbușit într-un munte și a fost aproape complet acoperită cu resturi de rocă. Au fost petrecute câteva zile în încercări zadarnice de a elibera nava. Echipajul și-a pierdut orice speranță de a se întoarce acasă și a început să se stabilească într-un loc nou...

O săptămână mai târziu, Ellie, navigatorul navei, a descoperit accidental că planeta era locuită... de mii de roboți sălbatici! Ar putea ajuta la demontarea pietrelor și la eliberarea navei. Dar sunt foarte primitivi și proști - nu au abilități. Nici măcar nu știu să ducă pietre. Ceea ce ar fi de mare ajutor.

Șeful științific al expediției, profesorul Noodles, și-a amintit mai târziu:
- Câteva zile mai târziu am găsit o cale de ieșire. Mi-a venit ideea să iau firmware-ul robotului Diego, un membru al echipajului nostru, să îl convertesc în firmware-ul unui zidar și să îl încarc pe roboți sălbatici.

Dar eșecul părea să ne urmărească. După puțină cercetare, s-a dovedit că roboții nu au un conector pentru încărcarea firmware-ului. Nu aveau deloc conector pentru intermitent!

Bilaabo, singurul extraterestru din echipaj, și-a amintit asta odată pe al lui planeta de origine Am văzut un robot care știa programare. Și nu numai că știa, dar a remediat erorile din propriul său firmware.

În acest moment mi-a venit o idee genială. La urma urmei, cândva am predat un robot capabil să programeze în Pascal.

Am comandat să fie capturat cel mai talentat tânăr robot și l-am învățat să programeze în Java. Știind să programeze, ar putea să scrie orice firmware pentru el și să ne ajute!

În general, am prins un exemplar inteligent. Diego a sugerat să-i spună Amigo, în onoarea fratelui pe care nu l-a avut niciodată.

Am oferit margele metalice Amigo pentru fiecare lună de antrenament și zece dolari pe an pentru lucrările ulterioare de îndepărtare a blocajului. Sălbaticii au și ei din belșug din asta, pentru că îi educăm gratuit.

Diego avea să scrie mai târziu în memoriile sale:

Am fost revoltat de un jaf atât de flagrant al fratelui meu, dar întreaga echipă a luat partea profesorului și a lui Rishi. Desigur, am fost de acord (pentru aparențe) și m-am oferit să ajut să-l predau pe Amigo. Hehe! În plus, nimeni nu poate antrena un robot mai bine decât un alt robot.

Toată lumea a fost atât de mulțumită de conformitatea mea, încât au decis să participe activ la antrenarea robotului Amigo în Java.

Începi de la primul nivel. Sarcina ta este să treci pe Amigo la nivelul 40. Dar să începem cu mici. Mai întâi, treci la al doilea nivel. Poate o să-ți placă atât de mult încât nici nu vei observa cum termini cursul și mergi la muncă;)

Acum să trecem la învățarea de la zero - apăsați butonul „Deschide următoarea prelegere...”.

  • 2 luni Antrenament Java EE (de 2 ori pe săptămână timp de 4 ore)
  • daca dai rezultate bune (ti aperi cu succes proiectul pe care il scrii de aceste doua luni), atunci ti se ofera un loc de munca.
Firma este foarte bună, străină, cunoscută, iar condițiile de muncă sunt excelente – pe scurt, mi-am dorit mult mai mult să merg acolo decât locul unde mi-au făcut deja o ofertă. Selecția pentru antrenament cu ea a implicat 3 etape:
  1. Efectuarea sarcinilor practice acasă.
  2. Dacă ai succes, ești invitat testarea calculatoruluiîn birou.
  3. Dacă testul are succes, veți fi intervievat în aceeași zi.
CU sarcini practice M-am descurcat fără probleme speciale- aici multe mulțumiri JavaRush și sarcinilor lor, după care aceste sarcini păreau destul de simple. Au fost 3 sarcini: pe RegExp (Google m-a ajutat, pentru că eu însumi nu le suportam și nu-mi aminteam), pe algoritmi (destul de simplu, mai mult un exercițiu mental) și pe scriere/citire dintr-un fișier (există un multe dintre acestea în cursul JavaRush). Am fost invitat la testarea calculatorului. M-am pregătit pentru testare folosind site-ul web chestionar. Aceste teste au ajutat foarte mult, unele întrebări chiar au ajuns să se intersecteze. Am trecut testul cu succes și au început să mă intervieveze. Probabil că nu voi uita niciodată acest interviu în viața mea. Tot ceea ce persoana care ma intervieva a vrut să audă de la mine a fost bazele teoriei Java, cum ar fi:
  • care este diferența dintre excepțiile verificate și cele neverificate;
  • ce metode are clasa Object și de ce sunt necesare;
  • ce tipuri de colecții există și de ce sunt acolo;
  • și puțin despre multithreading.
JavaRush este un curs excelent, vă va învăța cum să rezolvați probleme și să programați, dar teoria (pentru interviuri) trebuie învățată separat, așa cum m-am convins înotând în aceste probleme ca un pește într-un acvariu. Au vrut să mă învelească. Îl înțeleg - nu am putut răspunde clar la aproape nimic, am încercat să spun totul din punctul de vedere al scrierii codului, dar el era interesat de teorie. Dar știam sigur că îmi doresc foarte mult să intru în acest stagiu și știam că, dacă îmi acordă timp, voi ajunge din urmă la toate acestea și voi învăța nefericita teorie. I-am spus toate astea și m-a întâlnit la jumătate - s-a oferit să ne reîntâlnesc peste o săptămână, dar deocamdată mi-a dat o listă de subiecte (aproximativ așa cum am descris mai sus) și a spus unde pot fi învățate - doar un tutorial Oracle , conține tot: http://docs.oracle.com/javase/tutorial/ Pe parcursul unei săptămâni, am studiat cu atenție acest tutorial și am luat un al doilea interviu în ajunul zilei în care eram de așteptat să nou loc de muncă. Aparent, cel care m-a intervievat a fost cel mai impresionat de simțul meu de scop (știam că dacă acceptam acest stagiu, ceea ce s-a întâmplat în continuare depindea doar de mine - în două luni mi-aș fi dat seama tot ce aveam nevoie). Oricum ar fi, am acceptat acest stagiu și am refuzat să merg la muncă la locul unde mi s-a oferit anterior. Pe parcursul a 2 luni, ni s-au prezentat multe subiecte din Java EE, cum ar fi: Servlet-uri, JSP, Hibernate JSF, Spring și multe, multe altele - pe baza rezultatelor stagiului, ne-am fost familiarizați (aveam o discuție aproximativă). idee) despre stiva principală Tehnologii Java EE. De asemenea, pe parcursul stagiului, am scris propriul proiect, care la final a trebuit să fie prezentat cu succes la angajare. Îmi amintesc de primele mele sentimente când am fost la prima prelegere. M-am uitat la sarcina pentru acest proiect (a fost dată imediat la prima prelegere) și nici nu am înțeles de unde să încep și cum să o fac. Îmi amintesc, de asemenea, ce mi-a trebuit să o fac cu succes. Aceste două luni, aproape toate gândurile din capul meu au fost că angajarea de succes și împlinirea unui vis erau în mâinile mele și nimic mai mult. Nu depindea de altcineva dacă aș putea să o fac. Doar de la mine. Îmi părăsisem deja slujba, aproape că nu aveam bani și a fost foarte greu. Am stat dimineața, am stat ziua, am stat seara, dar nu m-am săturat să mă bucur - nu-mi amintesc când m-am dedicat ceva cu o asemenea obsesie. De data aceasta m-a ajutat încă o dată să realizez cât de mult îmi place programarea și cât de mult mi-ar plăcea să lucrez în acest domeniu. La absolvire mi-am prezentat proiectul. L-am apărat foarte bine, aparent mult mai bine decât mă așteptam și, prin excepție, am fost angajat nu pentru postul inițial, ci imediat pentru postul de Middle Java Developer. Era 9 decembrie 2014. Nu-mi venea să cred, dar oferta de muncă era în fața mea pe monitor. Inginer software. Sa întâmplat. M-am întors la muncă pe 15 decembrie. Niciodată nu am avut gândul „la naiba, nu vreau să merg la muncă”. În fiecare zi, plecând de acasă dimineața, știu de ce mă duc la muncă, ce voi face și cât de mult îmi doresc. Acest lucru mă face incredibil de fericit. Merită și a meritat prețul pe care a trebuit să-l plătiți pentru a vă îndeplini visul. Vă doresc tuturor celor care doriți să fiți programator să mergeți mai departe în atingerea obiectivului dvs. Este mai mult decât real, este foarte aproape, dar trebuie să plătești pentru asta. Plătește cu timpul pierdut și cu nervii tăi, pentru că să înveți ceva de la zero nu este chiar cel mai bine pas usor. JavaRush m-a ajutat să fac acești primi pași cu ușurință și nu eu am fost cel care s-a îndepărtat de la programare chiar la început din cauza complexității aparente și a abundenței teoriei. Astfel, am putut să-mi duc la bun sfârșit ideea destul de nebună de a schimba radical zona activitate profesională(chiar şi în lipsa învăţământului tehnic) până la capăt. Și cu siguranță poți.

Suntem obișnuiți acces rapid la informaţie şi la absorbţia ei la fel de rapidă. Preferăm videoclipuri de cinci minute prelegeri profunde și articole scurte decât cărți. Nu voi spune asta carte buna pe programare va înlocui orice articol, nu este așa. Și cu siguranță nu va înlocui practica. Cu toate acestea, pentru mine personal, o înțelegere reală a elementelor de bază ale programării a venit după ce, după ce am rezolvat sute de probleme într-un curs de programare și am citit o mulțime de articole, am început să studiez simultan teoria din cărți și am adâncit bine în ele. Am căutat de ceva timp „cel mai bun tutorial Java pentru începători” al meu personal. Mai jos sunt câteva cărți care mi-au fost utile într-o măsură mai mare sau mai mică în diferite etape ale studiilor mele. „Pentru cei mici” Puteți începe să citiți următoarele două cărți la începutul studiilor, în paralel cu videoclipul, sau, dacă studiați cu JavaRush, împreună cu primele niveluri. Ele, în special prima, sunt potrivite pentru persoanele cu un background de programare zero.

Capul întâi Java

Am început cu această carte nu pentru că este preferata mea, ci pentru că este cea mai simplă. Această carte, potrivit multor programatori, este cel mai bun tutorial Java de la zero. În plus, este cu adevărat și complet „de la zero”, adică este potrivit pentru cei care abia încep și nu înțeleg încă prea bine ce fel de programare bestie este. A venit la mine prea târziu. Cred că de aceea nu am putut să apreciez. A fost foarte plăcut să-l „citesc”, dar a trebuit să caut ceva anume în ea mult timp. Materialul de acolo este prezentat viu, dar mai degrabă superficial (pentru că este de la zero!) și multe subiecte și explicații necesare pur și simplu nu sunt acolo. Dar prietenul meu, căruia i-a fost moștenit, a fost încântat de el și a strigat că acesta nu este doar cel mai bun manual Java pentru începători, ci o capodopera din lumea reală și așa ar trebui să fie prezentat materialul complex. Avantaje:
  • Cel mai bun Tutorial Java de la zero, pentru ibrice pline, scris în limba vie;
  • Ilustrații cool și umor;
  • Explicații cu exemple din viața reală.
Defecte:
  • Multă „apă” pentru cei care au intrat deja în subiect;
  • Nu întotdeauna puzzle-uri și exerciții reușite.

Herbert Shildt. Ghid pentru începători Java 8

După ce m-am uitat prin acest manual, m-am gândit că ar fi potrivit pentru cei cărora le place o prezentare mai tradițională a materialului decât în ​​Headfirst și, în același timp, caută un tutorial de la zero. În unele locuri, prezentarea din carte este foarte detaliată, amintește de documentația extinsă și tradusă cu bune exemple clare. Câteodată, în ceea ce mă privește, autorul trece peste linie și începe să mestece prea mult, lectura devine plictisitoare... și dintr-o dată - salt captivat - și un loc destul de complex este ratat aproape instantaneu, iar tu ești complet nedumerit încercând să înțelegi ce și unde ai ratat. Cu toate acestea, nu există prea multe astfel de pasaje în carte și cunosc oameni care cred că Ghidul pentru începători este cel mai bun tutorial Java pentru cei care încă nu știu nimic. Personal, nu mi s-a părut foarte fin. Să presupunem că încep să triez colecțiile și, în loc de o explicație umană, îmi dau o sarcină pe auto-crearea Setați pe baza matricelor. Mișto problemă, dar aș vrea să înțeleg mai bine care sunt colecțiile standard mai întâi! Deși această carte, ca și cea anterioară, este considerată un manual pentru începători, experiența mea de profesor sugerează că este bună numai în combinație cu alte materiale: nu totul va fi simplu și de înțeles pentru un student la științe umaniste. „Ghidul pentru începători” este cel mai potrivit pentru cineva care a învățat cel puțin programarea (de exemplu, la universitate), a renunțat la el cu mult timp în urmă și, în același timp, îi place stilul de prezentare al autorului. Avantaje:
  • Prezentarea tradițională atentă a elementelor de bază;
  • Exemple bune.
Defecte:
  • Există „sărituri” de la „prea mestecat” la „spus rapid”;
  • Un pic plictisitor pe alocuri.
Apropo, Herbert Schildt are o altă carte celebră despre programare - „Java 8. Ghid complet" Acesta este un manual complet diferit, mai fundamental. Să trecem la asta. Referințe și ghiduri avansate Cărțile din această secțiune vor fi utile celor care s-au implicat deja pe deplin și caută cărți pentru o mai bună înțelegere a teoriei și practicii.

Herbert Shildt „Java 8. Ghidul complet”

Am decis să descarc această carte de pe Internet pentru a o evalua și apoi să decid dacă o cumpăr sau nu. Fără glumă, 1300 de pagini de text! Ei bine, prețul nu este mai puțin impresionant decât volumul. Am făcut exact același lucru cu „Biblioteca Profesionistului” în două volume de Kay Horstmann (mai multe despre asta mai jos). Privind în viitor, voi spune că l-am ales pe al doilea. De ce? Pentru că în cartea „Java. Ghidul complet” Am văzut aceleași neajunsuri ca și în „Ghidul pentru începători”. Uneori este mestecat, alteori este mototolit, dar în același timp nu este doar mototolit, ci cumva mototolit. Acesta este probabil stilul autorului și cred că cuiva îi va plăcea, sau mai bine zis, modul lor de a gândi. În general, Java 8: The Definitive Guide este o carte de referință bună pentru Java. Dar personal, mi-a plăcut mai mult prezentarea acelorași subiecte într-o altă carte. Avantaje:
  • Ghid complet. Se pare că are toate subiectele pe care un începător, și nu doar un începător, trebuie să le cunoască.
  • Explicații detaliate.
Defecte:
  • Multă apă (dar unora le-ar putea plăcea asta!);
  • Traducerea în limba rusă nu este cea mai bună.

Java. Biblioteca Profesionistului, Kay S. Horstmann, Gary Cornell

Cărțile lui Schildt și Horstmann sunt adesea comparate între ele. Ambii au fani loiali. Pentru mine, cartea în două volume a lui Horstmann este cel mai bun manual despre Java. De asemenea, a devenit o carte de referință pentru mine la nivelurile începătoare și intermediare ale JavaRush. Când nu am înțeles un subiect, m-am adresat mai ales la Horstmann, care a clarificat o mulțime de lucruri. Cartea acoperă totul, de la sintaxă la programare multithreaded, localizarea aplicațiilor și lucrul cu XML. Și nu lăsați numele „Professional’s Library” să vă sperie (asta m-a speriat), elementele de bază sunt acoperite destul de bine. În plus, este util să-l recitiți periodic pentru a vă reîmprospăta și a vă organiza cunoștințele. Se spune că până și profesioniștii își găsesc ceva util în ea... nu știu. Dacă devin profesionist, vă spun! Avantaje:
  • Cu un număr impresionant de pagini, există puțină apă (spre deosebire de Schildt).
  • Conține tot ce au nevoie începătorii.
  • Dezvăluie Java 8.
  • O bună prezentare a subiectelor despre colecții și generice.
  • Se potrivește foarte bine cu JavaRush. Ajungeți la subiect, rezolvați problemele, la un moment dat nu înțelegeți ceva - urmăriți Horstmann, încercați din nou.
Defecte:
  • Unii ar putea găsi cartea puțin uscată;
  • Fără practică;
  • Traducere rusă cu greșeli.

"Java" Metode de programare”. Blinov, Romancik

Am citit odată pe un forum că există o carte numită „Programare industrială” și a avut câteva probleme bune. S-a dovedit că nu au mințit. Am găsit o copie a acesteia în PDF pe site-ul web EPAM din Belarus. Publicația de acolo nu este cea mai nouă (pe Java 6), dar cartea este scrisă ca un manual universitar solid, adică pe alocuri prezentarea este oarecum grea și academică. DAR! Chiar sunt multe buna colectie Sarcini de programare Java, precum și sarcini de testare. Ei spun că cursanții EPAM studiază din această carte și a fost, de asemenea, adoptată de multe cursuri Java offline.

Abordarea sarcinilor de acolo este puțin diferită de cea a JavaRush, adică, în medie, sarcinile de aici sunt puțin mai complicate și fiecare dintre ele este ceva de genul... nu un mini, ci un micro-proiect. Așa că recomand JavaRush chiar și studenților, deoarece cred că dezavantajul laturii practice a cursului este că toate sarcinile din acesta sunt deja complet concepute și sunt prea multe sfaturi. Să zicem că problemele OOP din această colecție m-au ajutat să înțeleg foarte bine acest OOP, alături de cărțile „clasicilor atemporale” despre care scriu mai jos. Cartea este scrisă ca pentru viitorii „vâslători”, prin urmare descrie tehnologiile Hibernate pentru dezvoltarea sistemelor distribuite, precum și Bazele HTML, XML, JavaScript. „Programare industrială” – dacă nu cel mai bun tutorial Java, atunci foarte bun manual de instruire. Dar trebuie să veniți la el deja pregătit. Să spunem, după o duzină sau două niveluri de JavaRush. Mai târziu am descoperit ediția sa mai nouă și revizuită, deja sub numele „Java. Metode de programare.”

Avantaje:
  • Selecție excelentă de probleme și elemente de testare;
  • Există un oficial versiune gratuită(Cred că este oficial, deoarece nu este pe vreun root tracker, ci pe site-ul EPAM);
  • Comparație cu C++.
  • Oportunitatea de a înțelege ce înseamnă un stagiu EPAM.
Defecte:
  • Prezentare prea fundamentală. Dar pentru repetarea cu practică va fi potrivit.
  • Fără Java 8.
Clasic atemporal Cărțile despre care scriu mai jos pot fi numite texte sacre pentru începători și avansați „javiste”.

Java eficient, Joshua Bloch

Este doar o comoară, nu o carte și îi este dedicată principii de bază limbaj de la unul dintre autorii săi Joshua Bloch. Cel mai probabil, ați folosit deja bibliotecile sale (în Colecția Java, de exemplu). Lasă-mă să fac o rezervare imediat: pentru incepatori completi, cu excepția unor minuni ale învățării rapide, cartea Effective Java nu este necesară. În primul rând, este mai bine să stăpânești sintaxa și să obții măcar puțină practică de programare, ca să spunem așa, „înțeleg-o” și apoi să preiei creația lui Joshua Bloch. Cartea va fi utilă pentru cei care doresc să înțeleagă cu adevărat Java, să dezvolte abordarea corectă Când programați în acest limbaj, înțelegeți nu numai cum să o faceți, ci și tot ce trebuie să faceți exact așa. Și, de asemenea, pentru cei care doresc să înțeleagă profund OOP (în principiu, acestea sunt lucruri interdependente). Această carte este cel mai bun manual despre Java în contextul abordării orientate pe obiecte a programării. Avantaje
  • O prezentare genială a materialului pe tema OOP.
  • Dat cele mai bune practici programare.
  • Autorul cunoaște Java foarte bine din interior.
Defecte
  • Nu există încă o traducere a celei mai noi ediții a cărții (a treia).

Filosofia Java, Bruce Eckel

Titlul acestei cărți vorbește de la sine. Acesta este un alt „alfa și omega” pentru toți cei care doresc să cunoască Java! În această carte veți găsi exemple bune și clare, iar din ele va fi clar cum funcționează Java. Îmi este greu să spun care dintre cele două cărți este „Filosofia Java” sau „ Programare eficientă"- mai bine. Aș spune că Eckel este ceva mai prietenos cu începătorii, în timp ce Bloch necesită ceva experiență. Am citit prima dată capitolul din „Filosofia Java” când tocmai începeam să învăț JavaRush (cred că a fost listat ca fiind recomandat la unul dintre nivelurile de început). Atunci ea nu mi s-a potrivit. Dar după nivelul 10 sau 12 - era un cântec! Și, voi spune, o melodie foarte utilă. M-am întors la el mai târziu, când am ajuns la Programare eficientă. Voi spune asta: lăsați-i pe Bloch și Eckel să vorbească despre același lucru, dar în moduri diferite și să dea exemple diferite. Avantaje
  • O prezentare aprofundată a principiilor Java de la un profesionist;
  • Va fi bine pentru cei care trec de la alte limbi - există multe comparații cu C++, de exemplu.
  • Mi se pare că poți începe să-l citești la nivelul 10, dar Eckel - puțin mai târziu.
Defecte
  • Traduceri în limba rusă foarte nereușite;
  • Lipsa unei noi ediții a cărții în limba rusă.

Concluzii scurte

  1. Cel mai bun tutorial Java de la zero pentru cei care nu știu absolut nimic - Head First Java;
  2. Cel mai bun manual de referință Java și carte de referință este „Professional's Library”. Și, desigur, documentația Oracle.
  3. Cea mai bună colecție de sarcini de programare Java - JavaRush. Ei bine, printre cărți - „Java. Metode de programare”.
  4. Cele mai bune clasice atemporale sunt „Filosofia Java” și „Java eficient”. Aceasta este o lectura obligatorie pentru toți cei care au decis să înțeleagă totul pe bune, pentru o înțelegere profundă. Dar este mai bine să le citiți treptat și în ordine.
  5. Concluzie suplimentară: există o oportunitate - citiți în engleză. Traducerile în limba rusă sunt în general foarte slabe.

Programez în Java de 7 ani acum. Dar la locul de muncă trebuie adesea să pregătim o nouă generație. În acest sens, am decis să fac niște cheat sheet, care, sper, vor fi utile locuitorilor Khabr. Dacă cineva poate ajuta la completarea informațiilor din acest articol cu ​​ceva, atunci scrieți! Aşa:

Resurse esentiale pentru formarea initiala

  • www.javable.com - un site cu articole și tutoriale despre Java. Totul este în mare parte în rusă.
  • www.exampledepot.com - foarte resursă utilă, unde sunt colectate exemple scurte de utilizare a claselor pentru anumite pachete
  • java.sun.com - nu vă puteți lipsi de sursa originală. Pentru orice programator Java, JavaDoc ar trebui să fie adevărul suprem. De asemenea, puteți găsi o serie de tutoriale pe toate subiectele posibile aici.

Pachete Java de bază

Mai jos este o listă de pachete Java cu care un programator ar trebui să se simtă confortabil. Este recomandat să vă familiarizați cu ele atât prin JavaDocs, cât și folosind www.exampledepot.com. Toate pachetele sunt aranjate în ordinea recomandată pentru studiu.
  1. java.lang este elementele de bază. Fiecare clasă din acest pachet necesită o atenție individuală.
  2. java.io - niciun program nu poate face fără operațiuni I/O.
  3. java.util - pachetul conține practic tot ce este necesar pentru a lucra cu colecții: Colecție, Enumerare, Set, Listă, Hartă etc. etc.
  4. java.net - conține clasele principale pentru lucrul cu rețeaua.
  5. java.text - tot ce aveți nevoie pentru a formata text
  6. java.lang.reflect - Java nu ar fi Java dacă nu ar fi Reflection estompează linia dintre date și cod.
  7. javax.sql - tot ce aveți nevoie pentru a lucra cu baze de date
  8. javax.xml.* , org.w3c.dom.* , org.xml.sax.* - fără aceste pachete, lucrul cu XML este pur și simplu de neconceput

Resurse pentru a vă lărgi orizonturile

  • onjava.com - mai devreme sau mai târziu toate știrile din lumea Java ajung aici
  • www.javaspecialists.eu - resursa este utilă atât pentru începători, cât și pentru programatori avansați, deoarece conține multe articole despre complexitatea lucrului cu Java.
  • www.theserverside.com - este recomandat să vă abonați la RSS, deoarece adesea apar lucruri foarte interesante despre Java.

Biblioteci Java pe care toată lumea ar trebui să le știe

Java nu se termină doar cu a ști ce poate face JSDK. Pentru a vă simți confortabil, trebuie să știți despre încă o duzină de biblioteci terțe utilizate Programatori Java pretutindeni. Deci, să începem cu cele principale:
  • Commons Lang - ceea ce au „uitat” să includă în JDK
  • Matematică comună - mare plus pentru java.math
  • Commons Logging - înregistrarea trebuie să fie competentă. Pentru ca System.out.println să scoată jurnalele, programatorii începători ar trebui să-și taie mâinile după doar o săptămână de antrenament.