Programare Java: Ghidul practic care te va ajuta sa incepi chiar daca nu stii nimic

tutorial-de-programare-cu-Java-pentru-incepatori-teachbit.jpg

0) Ce este Programarea in Java si de ce sa o inveti?

Marea majoritate a companiilor de IT cer ca programatorii sa cunoasca bine limbajul Java (sau un alt limbaj de programare) pentru ca acesta este un limbaj foarte raspandit si, bineinteles, extrem de utilizat. Cererea pentru programatori Java este tot mai mare deoarece acest limbaj este perfect pentru crearea de aplicatii. Comparandu-l cu C si C++, Java este mai usor de invatat si de scris. Acest limbaj a fost conceput sa fie mai usor de scris si sa genereze mai putine erori de programare (in comparatie cu C si C++).

Daca nu vrei sa-ti bati prea mult capul cu detaliile in care te poti pierde, te sfatuiesc sa inveti Java pentru ca programarea este mai rapida in acest limbaj, iar proiectele tale vor prinde viata mai usor. Este atat de simplu si de usor de folosit incat si un incepator poate ajunge sa-l stapaneasca intr-un timp destul de scurt. Bineinteles, nu este mai usor de inteles decat Python, dar ocupa cu siguranta locul 2 dupa acesta atunci cand vine vorba de principii de programare si de sintaxa.

1) Java pentru Android 

Cererea tot mai mare de Java este justificata prin faptul ca Android este construit in Java. Asta inseamna ca aplicatiile pentru acest sistem sunt facute in Java si ca si tu poti oricand crea o astfel de aplicatie, doar cunoscand limbajul de programare tocmai mentionat. Nu ai nevoie decat de Eclipse si de ceva cunostinte solide de Java pentru a dezvolta diverse aplicatii pentru Android. Apartinand de Google, Android este open-source, asa ca poti sa-ti aduci oricand contributia la el. Tot ce se gaseste in Google Play este creat in Java, iar daca iti vei face timp sa intelegi si sa inveti acest limbaj, o sa ti se para usor si o sa vezi cum multe aplicatii pentru Android functioneaza. Daca te intrebai ce poti face cu Java, crearea de aplicatii pentru Google Play este o idee buna.

2) Java pentru Programare Server Side

Un alt lucru pe care il poti face cu Java este sa creezi aplicatii de corporate pentru business-uri foarte mari. Mai exact, sa-l folosesti pe partea de Server Side. IBM si Oracle folosesc tot timpul Java pentru partea lor de aplicatii. Daca vrei sa fii unul din programatorii care lucreaza la acesti giganti din industria IT, este absolut obligatoriu sa cunosti Java, ba chiar sa fii expert in domeniu. Bineinteles ca este nevoie de mult exercitiu si sa faci chiar nenumarate incercari prin crearea de aplicatii. Doar cu rabdare si studiu intens poti deveni un programator Java bun, mai ales ca acest limbaj de programare este usor de inteles si nu te poti trezi cu erori la fiecare pas atunci cand programezi. 

De ce sa incepi cu programarea in Java?

Daca doar ce te-ai apucat de programare, te sfatuiesc sa incepi cu Java pentru ca este un bun punct de intrare in domeniu. Nu conteaza daca vrei sa te axezi pe algoritmica, programare GUI sau networking, in Java poti face toate aceste lucruri. In cazul in care nu te-ai hotarat inca, poti sa accesezi tutorialele de Java pe care le-am pregatit pentru tine si sa decizi cat de mult rezonezi cu acest limbaj. Pana la urma este OOP (Object Oriented Programming), deci inca de la inceput vei avea acces la ceea ce asta inseamna si iti vei da seama de cat de puternic este de fapt acest limbaj de programare. 

Cat de mare este concurenta cand vine vorba de programarea in Java?

Daca te intrebai cate lume cunoaste programarea in Java, afla ca domeniul IT duce lipsa de astfel de programatori si companiile sunt in mare cautare de specialisti in Java (si nu numai), pentru ca cererea de aplicatii in acest limbaj este tot mai mare. Cu alte cuvinte, nu vei intampina probleme in gasirea unui loc de munca daca ajungi sa cunosti Java si poti crea aplicatii cat mai interesante folosindu-te de acest limbaj. Exista desigur si varianta crearii unei aplicatii de succes si comercializarea ei, ceea ce iti poate aduce o considerabila sursa de venit si recunoastere ca programator de succes. Acum este sansa ta, profita de ea!

Ce oportunitati de angajare ai ca programator (in Romania)?

Piata IT-ului din Romania este in continua crestere din 2012. In momentul de fata vorbim de peste 125.000 de IT-isti care lucreaza in IMM-urile si in multi-nationalele din Romania. Indiferent ca vorbim de dezvoltare software sau de livrare de servicii, putem fi de acord ca domeniul IT in momentul de fata reprezinta o reala oportunitate de cariera pentru oricine isi doreste sa o urmeze. Daca doresti sa te angajezi in IT, iti pot spune ca acesta este cel mai bun moment si iti recomand sa te grabesti. Iti recomand sa te grabesti pentru ca marea majoritate a companiilor angajeaza (si nu au doar 1 – 2 posturi deschise, ci zeci poate chiar sute).

Ca sa-ti faci o idee de cat de mare este aceasta nevoie de personal, te las sa te convingi singur de aceste cifre: Facultatile de profil (IT/informatica) din Romania livreaza anual 6000 – 7000 de absolventi pe piata muncii, nevoia find cel putin dubla. Aici este oportunitatea, sansa ta de reusita. Si pot sa-ti spun ca daca faci tot ce iti sta in putinta sa inveti constant, sa dobandesti abilitati noi si sa exersezi incontinuu conceptele pe care le vei studia in aceasta carte (si dincolo de ea), eu sunt convins ca tu vei reusi.

Tot ce ai nevoie sa faci este sa te hotaresti pe ce ramura a IT-ului vrei sa mergi (daca citesti aceasta carte, cel mai probabil, ai ales deja), sa faci research ce se cere in piata, de catre angajatori (la nivel de abilitati si tehnologii), si sa te apuci de treaba sa dobandesti acele abilitati astfel incat sa te angajezi in IT. Sper ca ai observat ca am spus abilitati si nu diplome. E important sa intelegi ca oricine se poate angaja in IT, intrebarea e cine isi va face o cariera din asta? (aka. va rezista si va evolua), cine va avea un succes real dpvd profesional si financiar?, cine va fi pasionat si cu adevarat implinit de ceea ce face zi de zi la locul de munca? Eu sper ca acesta vei fi tu. De aceea iti doresc mult succes si spor la invatat si mai ales la aplicat de-a lungul acestei carti.

Ce limbaje de programare poti sa inveti pentru a deveni programator?

Primesc foarte des aceasta intrebare si consider ca acum e un moment bun pentru a raspunde la ea. Pe scurt, raspunsul e … depinde. Depinde ce anume iti doresti, depinde ce anume te pasioneaza cand vine vorba de IT si pe ce ramura vrei sa dezvolti mai departe programe si aplicatii. Important de retinut este ca experienta nu consta in numarul de limbaje cunoscute, ci mai degraba in cunostintele acumulate in cadrul fiecarui limbaj de programare cunoscut, in parte. O intrebare des intalnita inainte de inceperea parcurgerii unui limbaj este urmatoarea: “Am nevoie de matematica in programare?”, raspunsul la aceasta intrebare este unul impartit. O intrebare auxiliara care trebuie adresata este: “Ce vrei sa faci cu limbajul pe care urmeaza sa il utilizezi?”, daca vrei sa lucrezi ca Web Developer si vei folosi limbaje din aceasta speta, cel mai probabil nu, dar daca vei lucra pe post de Machine Learning Expert, atunci probabil te vei lovi ceva mai mult de matematica. In orice caz, important este sa nu te lasi descurajat de matematica, un limbaj de programare poate fi invatat si fara aceasta, iar rolul ei nu este esential la inceput. Pe langa toate acestea, nu exista un limbaj “nefolositor”, fiecare are rolul sau si este adaptat pentru un anumit set de nevoi si cerinte.

Acum hai sa vedem ce limbaj de programare poti sa inveti (in functie de ce iti doresti sa faci pe termen lung):

  • C / C++ – Limbaje perfecte pentru proiecte low-level, des intalnite in reprogramarea sistemului de operare si utilizate de placutele Arduino, pentru diferite proiecte de automatizare / robotica.
  • HTML + CSS + JavaScript – Un combo excelent pentru realizare de pagini web statice. Cel mai popular framework care include aceste limbaje de marcare este Bootstrap, un framework dezvoltat de catre creatorii aplicatiei Twitter.
  • PHP – Realizarea Backend-ului pentru o pagina web interactiva, limbaj intalnit si in inlocuirea Shell Script-ului pe Linux. Doua dintre framework-urile populare pentru acest limbaj sunt Laravel si Symfony, de asemenea PHP-ul este adesea folosit impreauna cu SQL-ul, folosit in programarea bazelor de date.
  • Java / C# / Swift – Limbaje destinate aplicatiilor mobile pentru Android, Microsoft sau Apple.
  • Python, Perl, Ruby – Aceste trei limbaje, sunt catalogate ca limbaje de scripting, deoarece sunt cel mai des intalnite in automatizari. Ultimul dintre acestea, Ruby, poate fi folosit ca inlocuitor al PHP-ului, prin framework-ul Ruby on Rails, destinat Web Developing-ului.

Cele de mai sus sunt cele mai populare din sutele de limbaje de programare existente. Unele din aceste limbaje sunt compilate (C/C++/C#), la acestea este nevoie de un compilator, iar altele sunt interpretate (Python, PHP, Perl), unde sistemul va citi linie cu linie pentru a pune in aplicare instructiunile. Cel mai important este sa iti alegi un limbaj care se potriveste nevoilor tale si sa incepi sa il practici si sa cunosti cat mai bine.

In cele ce urmeaza vom studia in detaliu limbajul Java si iti voi explica pas cu pas cum sa-l setezi la tine pe laptop si cum sa te apuci in doar cateva minute de programat. Hai sa mergem la urmatorul capitol 😉

2) Tutoriale de Programare in Java (Playlist)

Java este un limbaj de programare care a fost creat de James Gosling in anii ‘90. Dupa cum am mai spus, seamana foarte mult cu C++. Asta pentru ca C++ este si el limbaj orientat pe obiecte, insa Java e limbaj pur orientat pe obiecte. Pe langa asta, Java foloseste compilator si interpretor, intre timp ce C si C++ folosesc doar compilatorul. Avantajul folosirii limbajului Java fata de celelalte doua este ca, acesta este independent de platforma, deci poti rula codul executat pe un alt sistem de operare. Astfel, daca ai un program scris in Java si e gata compilat, il poti rula pe orice platforma care are JVM (Java Virtual Machine – Masina Virtuala Java – mediu in care programul Java e executat). Un alt super-avantaj (spune eu ca e super :D) consta in faptul ca in Java permite conectivitatea la bazele de date, fapt care ne ajuta sa cream si sa programam aplicatii mult mai eficient.

In figura 1.1 de mai jos poti vedea tot procesul de editare, compilare si executie a codului in Java. IDE-ul Eclipse (despre care vom vorbi imediat), vine la pachet cu toate acestea, deci nu-ti fa griji. Programul tau va functia in urma apasarii unui singur buton 🙂

Figura 1.1

Java este un limbaj foarte cunoscut si de viitor, extrem de folosit de catre foarte multe tehnologii. Poate ai auzit de Android, sistem de operare pentru dispozitive mobile (smartphones, tablete, smartwatches, smart TVs etc.), care este construit in Java. Foarte utilizat de oameni in intreaga lume, Android foloseste Java pentru a functiona.

Figura 1.2

Cunoscand limbajul de programare Java vei putea construi aplicatii in Android si pentru servere, mai ales pe partea de Enterprise, unde este foarte folosit. Hai sa incepem si sa vedem elementele de care ai nevoie pentru a incepe programarea in Java. In urmatoarele tutoriale o sa te invat sa scrii cod si sa iti exersezi modul in care programezi, pentru a te ajuta sa devii mai eficient.

De ce avem nevoie pentru a programa in Java?

Pentru a avea acces la Java, vei avea nevoie de Eclipse. Eclipse este un IDE, un mediu de dezvoltare in care tu poti sa scrii cod Java. Acest IDE va compila codul tau si ti-l va rula. Java functioneaza pe orice sistem de operare. Astfel ca, daca vei lua codul pe care l-ai scris intr-un fisier si vei incerca sa il rulezi pe MacOS, Windows sau Linux, acel cod va rula.

Cu o simpla cautare a cuvantului “eclipse” in Google, vei primi rezultate ce te vor trimite la pagina de download a programului. Descarca Eclipse Oxygen de AICI. Ai si alte alternative, dar eu iti recomand Oxygen.

Urmatorul pas este descarcarea altor programe care iti compileaza si iti fac programul in Java sa functioneze. Eclipse este doar un mediu grafic de dezvoltare. Ai nevoie Java Runtime Environment (JRE), care este practic locul in care va lucra programul tau, si Java Development Kit (JDK). Acestea doua iti recomand sa le descarci de pe site-ul Oracle, versiunea 1.8, folosind Java 1.8. Pe acest site vei avea tot ceea ce ai nevoie.

Este important sa treci prin acest proces de instalare pentru ca altfel nu vei putea rula programele. Odata ce esti pe site-ul de la Oracle, cauta, de exemplu, JDK. Vei primi rezultatele la tot ceea ce ai nevoie pentru a programa in Java. In cele mai multe cazuri, este vorba de varianta 64 de biti ce va trebui descarcata. Cauta JRE si fa acelasi lucru.

Sau, daca nu vrei sa cauti, poti descarca cele 2 programe dand un click pe link-urile mai jos:

3) Programare Orientata pe Obiecte in Java

POOProgramare Orientata pe Obiecte – (sau OOPObject Oriented Programming) este o paradigma de programare care foloseste concepte abstracte (sub forma de clase si obiecte) pentru a crea modele bazate pe elemente din lumea reala. O aplicatie construita pe POO foloseste mai multe obiecte care comunica prin mesaje specifice pentru a rezolva diverse servicii (ale aplicatiei) solicitate. Aceste obiecte sunt capabile sa trimita mesaje (date), sa primeasca mesaje (date) si sa proceseze date. Scopul programarii orientate pe obiecte este de a incerca sa creasca flexibilitatea si mentenabilitatea programelor. Deoarece programele create folosind un limbaj orientat pe obiecte (cum este Java) sunt modulare, ele pot fi mai usor de dezvoltat si mai usor de inteles dupa dezvoltare.

POO vs. Programare Procedurala

Programele sunt alcatuite din module. Aceste module pot fi programe de sine statatoare (independente) care  pot fi dezvoltate (codate) si testate separat fata de programul initial (ulterior acestea – mai multe module – putand fi asamblate pentru a forma un program complet). In limbajele de programare procedurale (cum ar fi C si Pascal) aceste module sunt de fapt proceduri, adica o secventa de instructiuni

In limbajul C, procedurile sunt functii care au un set clar de instructiuni (de tipul IF, FOR, WHILE etc.) cu scopul de a intoarce (sau nu) un rezultat (al acelei functii).

In programarea procedurala se ia problema (care se doreste a fi rezolvata) si se sparge in mai multe bucati (sub proceduri). Astfel sub-procedurile rezolva bucati mai mici din problema initiala. Lucrurile continua asa pana cand problemele secundare (bucatile mai mici) sunt suficient de simple pentru a fi rezolvate de sub-procedura corespunzatoare ei. 

Dificultatea cu acest tip de programare consta in faptul ca intretinerea software-ului poate fi dificila si consumatoare de timp. Atunci cand se efectueaza modificari ale procedurii principale, aceste modificari pot intra in cascada, iar schimbarea poate avea un impact major asupra tuturor procedurilor din programul initial.

O alternativa la programarea procedurala este programarea orientata pe obiecte. Scopul POO este cel de a rezolva dificultatile legate de programarea procedurala. In POO principalele module dintr-un program sunt clase, mai degraba decat proceduri. POO ne permite sa ne cream clase si obiecte care modeleaza elementele din lumea reala.

Clase si Obiecte

O clasa este o colectie de obiecte care au proprietati, operatii si comportamente comune. O clasa este o combinatie de stari (date) si comportament (metode). 

In POO o clasa este un tip de date, iar obiectele sunt instante ale acestui tip de date.

De exemplu, putem crea o clasa Om(), care este o colectie a tuturor oamenilor din lume. Oamenii au un statut, cum ar fi inaltimea, greutatea, sexul, culoarea parului etc.. Ei au, de asemenea, un anumit comportament, o anumita limba pe care o vorbesc, o mancare preferata. Toate aceste caracteristici despre oameni sunt incapsulate (continute) in clasa Om().

Un obiect este o instanta a unei clase. Obiectele sunt unitati de abstractizare. Un obiect poate comunica cu alte obiecte folosind mesaje. Un obiect transmite un mesaj unui alt obiect, ceea ce duce la invocarea unei metode. Obiectele efectueaza apoi actiunile necesare pentru a obtine un raspuns de la sistem.

Obiectele din lumea reala au 2 caracteristici in comun: toate au o stare si un comportament. O metoda de a gandi intr-un mod orientat pe obiecte este de a identifica starea si comportamentul obiectelor din lumea reala. Complexitatea acestor obiecte poate sa difere, unele obiecte au mai multe stari si comportamente considerabil mai complexe decat alte obiecte. Compara starea si comportamentul unui TV cu starile si comportamentele unei masini, sunt total diferite.

Obiectele unei clase, dpvd conceptual, sunt similare cu obiectele din lumea reala. Un obiect isi stocheaza starea in campuri (aka. Variabile ale clasei) si isi expune comportamentele prin metodele sale (aka. Functiile clasei). Vom vedea in cele ce urmeaza mai multe detalii (si exemple) despre acestea.

Un principiu fundamental al POO este incapsularea. Se ascund anumite stari interne a obiectelor, devenind necesar ca toate interactiunile sa fie efectuate utilizand metodele obiectelor. Cu alte cuvinte, campurile unei clase nu vor putea fi accesate (si modificate) in mod direct, ele nefiind vizibile (pentru ca sunt private), dar modificarile vor putea fi facute prin intermediul metodelor.

Beneficiile POO

Iata un sumar al beneficiilor cu care vine Programare Orientata pe Obiecte:

1. Modularitatea: Codul sursa pentru o clasa poate fi scris si mentinut independent de codul sursa pentru alte clase. Odata creat, un obiect poate fi usor transferat in interiorul sistemului.

2. Securitatea ridicata la nivel de cod: Interactionand doar cu metodele obiectului, detaliile implementarii interne raman ascunse de lumea exterioara.

3. Reutilizarea codului: Daca o clasa exista deja, puteti utiliza in programul dvs. obiecte din acea clasa. Acest lucru permite programatorilor sa implementeze / testeze / sa faca depanare pe obiecte complexe, specifice pentru sarcini, pe care apoi le puteti folosi in propriul cod.

4. Debugging mai usor: Daca un anumit obiect se dovedeste a fi o problema, il puteti elimina din program si puteti adauga/conecta, ca inlocuitor, un obiect diferit. Acest lucru este similar cu rezolvarea problemelor mecanice in lumea reala. Daca un surub se rupe, il inlocuiti pe el, nu intreaga masina.

Scurt rezumat a celor discutate mai sus

1. In POO totul este un obiect.

2. Calculul se realizeaza prin obiecte care comunica intre ele, solicitand ca alte obiecte sa efectueze actiuni. Obiectele comunica prin trimiterea si primirea de mesaje. Un mesaj este o cerere de actiune, insotita de oricate argumente care ar putea fi necesare pentru a finaliza sarcinile.

3. Fiecare obiect are propria sa memorie alocata de catre OS.

4. Fiecare obiect este o instanta a unei clase. O clasa reprezinta pur si simplu o grupare de obiecte similare, cum ar fi Integer, String sau liste.

5. Clasa este depozitul pentru comportamentul asociat unui obiect. Asta inseamna ca toate obiectele care sunt instante din aceeasi clasa pot efectua aceleasi actiuni.

4) Cum sa continui sa inveti sa Programezi in Java?

Doresti sa inveti in continuare programarea cu Java pentru a ajunge sa lucrezi in domeniu si sa te bucuri de beneficiile jobului de programator?

  • Programul flexibil
  • Munca de la distanta (de acasa sau de la birou)
  • Salariu de 2x mai mare fata de media din Romania
  • Domeniu sigur si de viitor intr-o continua crestere

Te invitam sa apesi pe butonul de mai jos si sa programezi o discutie de ghidare in Programarea cu Java, iar colegii nostri te vor indruma si informa cu toate materialele necesare pentru a incepe.

Spor la invatat iti dorim,

Echipa TeachBit.ro

💻 Cursuri IT Gratuite pentru Elevi si Studenti. Intra pe teachbit.ro si aplica acum!

Articole similare

Răspunsuri

Average
5 Based On 1

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *