Java ca al 2 lea limbaj de programare

Urmeaza sa trec in al 2 lea an de facultate. In primul am facut C++ dar nu imi pare atractiv deloc. Am inceput sa invat java pentru a aprofunda OOP. Este o alegere buna?

Inca nu m-am hotarat pe ce domeniu o iau android dev sau web(back/frond end) dar nu stiu ce urmeaza, as cauta sa ma angajez undeva in vara viitoare dupa ce fac 2 3 proiecte in java cu toate ca am impresia ca java/mysql/putin php nu vor fi de ajuns.

Stiu povestea “java e doar o unealta” dar nu vreau sa pierd timpul si daca as putea folosi mai multe limbaje simultan in mod practic mi s-ar parea un avantaj.

Eu zic sa dai un search pe linkedin sau orice alt site de joburi din Romania. O sa vezi ca e plin de java. Ok, de multe ori faci mentenanta si probabil va trebui sa lucrezi pe legacy code…dar sa iti zic un secret: cu totii facem asta la un moment dat :slight_smile:

Eu zic ca nu dai gres cu java. Dar nu te lua dupa mine :grin:

1 Like

Îți găsești de muncă ușor, dar nu e ceva pentru începători, e cel mai stufos limbaj.

OOP înveți la facultate oricum, cu Java.

Nu ma indoiesc de popularitate, am o teama ca niciodata nu stiu destul

Nu sunt la o facultate de renume, nu ma pot baza pe ea

Salut @Nicusor

Eu lucrez cu java, mai precis java 8. Intr-adevar, java este un limbaj verbose, adica scrii mult cod pentru o treaba simpla. Treaba asta am vazut-o cand am incercercat sa dezvolt o aplicatie pt Android.

In 2021 Java este un limbaj care a mai redus din vebosity(nu am idee care ar putea fi traducerea in romamana, dar hai sa ii zic ca scrii mai putin cod pt a face un lcuru simplu.).
Asa cum a zis si @tacheshun , este un limbaj bine platatit si in Roamania, dar si in afara. Proiectele sunt din toate ariile. Si legacy, ar si proiecte noi, cu noi versiuni de java si all the goodies.

Poti sa iti rupi cateva ore sa te uiti peste limbaj. Are un model obiect orientat standard pe care poti sa il vezi si la C#, PHP si probabil Python.

Prin cele 2 proiecte, 3 cu java/php o sa inveti cum sa te conectezi la o baza de date, cum sa tragi datd folosind JDBC sau PDO, cum le pui intr-o intrfata web, filtrare, cautare etc. Deci eu zic ca ar merita.

Pe langa Java, poti sa mai experimentezi si cu alte limbaje cum ar fi C#, Python, PHP, Golang. O sa observi diferite abordari ale aceleiasi probleme.
Ca si exemplu, reverse a string:

  • Python: "my_string[::-1]"
  • Java: new StringBuilder("my_string[").reverse().toString()

Ca si resurse:

https://www.baeldung.com/java-tutorial - nu-i char de incepatori, dar iti arata si nicte luycruri mai avansate
Java - DevForum.ro - categoria Java de pe forum.


Si e vara. I-ati o bere in mana si have fun!

2 Likes

Salut, mii de scuze ca nu am precizat dar in java deja am facut o mica aplicatie, un calculator care formeaza cu ajutorul tastelor un string “1+3/2” de exemplu si afiseaza rezultatul respectand ordinea operatiilor.
In python facusem snake game acum ceva timp de fun, inainte de facultate.
Mi-am facut o idee despre limbaj, multumesc frumos pentru surse si parere!

1 Like

Incearca si C# (.NET). Pe langa OOP mai dai si de niste FP cu LINQ. Daca te orientezi pe .NET Core ai toate sansele sa lucrezi chiar si in greenfield.

3 Likes

Da, eu am facut pozitiile de NET mai greu ocupate decat java

Greenfield? Ce presupunea asta?

Greenfield - proiecte noi, abia inceput sau pe care le incepi. Brownfield - proiecte vechi de ani de zile care au mixuri de technologii mai mult sau mai putin depasite.

1 Like

N-are nimic. Unii dintre noi nu au nici 4 clase. Nu vad unde e problema.

Diploma e buna. Anii de facultate se aduna la pensie. Mai nou se aduna si anii de master. Apoi incadrarea conform COR. Fara facultate poti fi incadrat maximum ca “ajutor programator”. Cu facultate, chiar daca e terminata la privat intr-un colt uitat al romaniei, incadrarea va fi diferita. Ai toata grupa 2512

Incercam doar sa spun ca nu ma pot baza pe facultate sa ajung unde imi doresc, o fac din alte motive

Java este un limbaj stufos cum s-a mai precizat aici si foarte util si popular. E o unealta populara pentru web in mod special cu spring boot (framework java). Daca vrei sa faci programare si iti place Java de munca vei gasi.

Teama ca nu stii destul e normala la inceput. Nimeni nu stie destul niciodata. Ca sa te poti lovi de situatii reale trebuie sa lucrezi. Dai cu capul si le inveti. Incepi incet. Iti dai o Sansa. Mai intrebi colegi.

Un singur limbaj nu e bun cand te plafonezi in el. Trebuie sa intelegi ca de lucrat se lucreaza cu frameworkuri care au mult background classes de invatat in timp. Java nu e de inlocuit pe web si cel mai probabil nici nu va fi vreodata. Cat despre Android ti-as recomanda kotlin. E mai dominant in sfera mobile din ce am observat.

Pwntru front end javascript cat incape plus un framework la alegere (react sau angular sau chiar vue, aici lista este uriasa dar astea le-am gasit in mediu enterprise). La fel ca la Java si aici pana prinzi ce face unul in spate e de munca.

Mergi la cateva interviuri vezi ce te intreaba si cauta sa inveti pentru urmatorul. Cand ajungi la job efectiv vei avea ocazia sa faci treaba. Tine minte ca acum totusi scopul este sa inveti lucrand.

1 Like

Sigur sunt si alte limbaje mai usoare pentru incepatori, dar nu as exclude Java ca un limbaj potrivit pentru un incepator.

@Nicusor

E un sentiment intalnit si (oarecum firesc, daca vrei sa faci treaba buna) sa ai o mica teama la inceput ca nu stii destul. O sa treaca cu timpul, doar nu exegera cu teama asta (in masura in care o poti controla, evident).

1 Like

Problema cu Java nu e ca nu e ok limbajul, problema e ca pe langa OOP si limbaj trebuie sa inveti tot ce tine de JVM, graddle, maven, intellij, spring boot, beans, jackson, JUnit, spring, validatoare, colectii ciudate (stream-uri). Fata de alte limbaje in Java nu e recomandat sa folosesti nativ un array de exemplu ci folosesti colectii precum List, MutableList…

Majoritatea tutorialelor sunt facute de indieni de te doare capul. Am avut deaface cu colegi care invatau Java si trebuiau sa faca o copie de facebook si se chinuiau sa faca cumva interfete cu ceva template engine cu server-side rendering dupa ceva tutorial :eyes: Kotlin sta mult mai bine la tutoriale si resurse pe net, inclusiv documentatia de Kotlin de la JetBrains e mult mai buna ca cea de Java pe Oracle.

2 Likes

Da, pot fi de acord ca tot ecosistemul e foarte stufos, dar se invata in timp. Dar aici, vorbim de doar de Java. Asa, si alte limbaje au framework-urile lor si ecosistemul lor.

Pentru un tutorial vast, recomand: https://www.udemy.com/course/java-the-complete-java-developer-course/

Edit: Pe udemy, daca va logati, cursul e undeva la vreo 12 euro. Daca nu e pe acolo acum, in cateva zile sigur va fi o “reducere speciala care dureaza doar x zile” (care de fapt, e permanenta). Eu mi-am scos banii :smiley:

PS: nu sunt afiliat cu australianul care preda (mentionez lucru asta, ca am mai primit aceasta remarca in alta parte si vreau sa fiu sigur de la inceput :)) )

2 Likes

In zilele noastre, ca si programator, cu orice limbaj iti gasesti de lucru.
Incearca cat mai multe dintre ele, asta este cel mai important.
Si eu am facut in primul an de facultate C, in al doilea C++, in al treilea Java. Atunci, mi-a placut C foarte mult, C++ mai puting, Java deloc.
Astazi programez preponderent in Python si Java.
Favoritul si limbajul sufletului meu a fost si va ramane PHP.
Am mai programat in Perl si NodeJS si TypeScript si Bash/KornShell si altele.
Din pacate, in continuare majoritatea companiilor cauta “programatori de limbaje” nu programatori care le pot folosi pe oricare.
Daca esti pasionat si vrei sa progresezi, citeste 1-2 carti mai relevante de OOP (vezi cartile lui Robert C. Martin de Agile si Clean Code)
Fa exercitiile de acolo sau proiecte de ale tale in diferite limbaje. De exemplu, alegeti un mini proiect de web. Dupa aceea realizeaza-l in mai multe limbaje OOP:

  1. C++
  2. Java
  3. PHP
  4. Python
  5. NodeJS
  6. TypeScript
  7. … whatever else

Asta este cred ce te va ajuta cel mai mult. Dupa un astfel de exercitiu, vei putea sa iti dai seama ce te intereseaza mai mult.
Dupa aceea poti incepe sa introduci framework-uri de web pentru diverse limbaje.
Ah … si daca esti intr-adevar curios, nu te limita la OOP. Invata cateva limbaje functionale precum Scala.

4 Likes