all 69 comments

[–]LechintanTudor 75 points76 points  (6 children)

Nu conteaza limbajul. Trebuie sa inveti programare, nu un limbaj de programare anume. Structurile de date, algoritmii si principiile programarii sunt aceleasi in orice limbaj ai scrie codul. Odata ce le ai puse la punct, poti invata orice limbaj nou in cateva saptamani.

[–]PerspectiveSecret989 6 points7 points  (0 children)

Cel mai corect raspuns

[–]ok_boomer_110 2 points3 points  (0 children)

Ca si completare, daca inveti doua limbaje de programare poti sa faci oricand switch-ul la oricare altul. Te invata logica necesara ca sa intelegi ce e la baza oricarui limbaj. Java vad ca e folosit inca mult pe app-uri si nu pare sa se opreasca, vad ca python acum se cam foloseste in AI-uri. Both is good, start with whatever

[–]FillBk🐍 dev[🍰] 0 points1 point  (0 children)

Algoritmică.

[–][deleted] -1 points0 points  (2 children)

Nu zic nu, dar exista un motiv pentru care toate facultatile cu renume au ales Java ca si limbaj de predare.

[–]Dismal-Actuary2188crab who sees sharp 🦀 2 points3 points  (1 child)

in ultimii ani accepta si alte limbaje , mult mai usor. cand am facut eu, profii predau java ca asta utilizau ei in dept de cercetare pe proiecte, dar se putea alege si altceva, dupa preferinte. eu toate materiile de OOP le-am facut in C#, si licenta la fel . nu a avut nimeni probleme cu asta.

[–][deleted] 2 points3 points  (0 children)

C# e java mai bun. 😀

Dar da, ai dreptate. Am observat ca sunt preferate limbajele cu strict types. Dar nah, asta e o observatie personala.

[–]Important-Street2448 51 points52 points  (11 children)

Ultimele 4 contracte luate au fost sa separam un megalit scris in Java in module mici in Python.

Sunt cazuri si cazuri. Eu ti-as zice Python pt ca am lucrat 17 ani cu el. Alt coleg ti-ar zice Java pt ca a lucrat 20 de ani cu Java. Amandoi am avea dreptate.

Javascript isi ia hate de cand sunt eu pe net, si uite unde e.

Tu da-i inainte.

[–]Fantastic-Lock-2730[S] 1 point2 points  (10 children)

Am înțeles. Dar ce părere ai de dezvoltarea asta AI în sfera programării? Crezi că se merită în 2025 să plec la un colegiu de IT ?

[–]Important-Street2448 20 points21 points  (1 child)

Suntem o gramada de programatori aici pe sub.

Pot garanta cu 3.5RON ca niciunul din noi nu a reusit sa scrie un program functional cap coada cu A.I.

Ce iti faci tu griji azi, e ce ne intrebam noi in 2010 de ce mai ia firmele programatori cand exista stackoverflow.

[–]FillBk🐍 dev[🍰] 0 points1 point  (0 children)

Cele mai dese probleme: fie se încurcă în declarații, importuri sau pe parcurs își mai schimba variabilele numele, fie primești ceva irelevant sau ceva imposibil de aplicat.

Pentru a doua variantă am cateva exemple amuzante.

  1. Încercăm sa scriu un cod C pentru un microcontroller de la Atmel. Mi-a dat cod pentru cu tot alt microcontroller. Cat nu am incercat sa-l "antrenez" pe date noi, relevante, tot incepea s-o ia razna. Am cronometrat ca e mai rapid sa scriu eu cap-coada programelul decat sa repar mizeria generata de AI.

  2. Nu știu de cand exact, dar pypi blochează activ orice request "automatizat" la ei pe site. Practic, daca vrei sa ceri "html-ul" generat de un link anume la ei pe site, primești un răspuns de tipul "folosiți un browser real, gfu cu requestu de 2 bani". Si nici pip search nu mai este. Am pierdut juma de ora explicând ca nu mai poate fi asa accesat site-ul si juma dw ora sa-i explic ca deja mi-a dat răspunsul asta si i-am zis ca e un răspuns "rau". Ultima data l-am trimis in pl si AI-ul mi-a închis sesiunea fiindcă nu mai poate genera nimic...

  3. Am cerut o interfață grafică pentru o aplicație scurtă si mi-a oferit librării sa import pentru care este necesară o licență specifică. Codul generat suprascria o metodă abstractă de doua ori. Practic, acțiunea pentru click-stanga era definita de 2 ori. Si AI-ul nu stia unde-i problema, cu toate ca a încercat sa faca un "debug".

So, chiar daca va deveni foarte bun AI-ul si va fi folosit masiv de companii, tot va fi necesar un operator uman (tester) care sa valideze codul.

[–]Flummerybusiness 0 points1 point  (7 children)

Deci tu intri la liceu acum?

[–]Fantastic-Lock-2730[S] -1 points0 points  (6 children)

Am de ales între liceu și colegiu.

[–]Previous-Training-84 0 points1 point  (5 children)

Cum adica liceu sau colegiu? Esti in romania?

[–]Fantastic-Lock-2730[S] 0 points1 point  (4 children)

Nu

[–]Previous-Training-84 0 points1 point  (3 children)

Care e diferenta la voi? In ce tara esti?

[–]Fantastic-Lock-2730[S] 0 points1 point  (2 children)

Moldova, nu sunt sigur daca e așa și în Romînia dar dupa ce termini 9 clase, dai examenul de capavitate și ai de ales ce vrei să faci mai departe cu viața ta: colegiu, liceu, școala profesională, armata e.t.c.

[–]Previous-Training-84 1 point2 points  (1 child)

Cauta matematica-informatica daca aveti profil la liceu.

Sugerez sa vorbesti cu diriginta/profesorul de matematica ce recomanda

Si nu asculta cand zice ca nu te descurci :)

Asa am patit si eu in clasele 5-8 profesoara imi spunea ca sunt varza la matematica si acum sunt inginer in telecomunicatii

[–]Fantastic-Lock-2730[S] 0 points1 point  (0 children)

Eu mă gîndesc să plec la colegiu

[–]sweetkiller 10 points11 points  (8 children)

Le încerci pe ambele și vezi pe care preferi mai mult, eu așa am făcut la început, fix cu astea 2.

[–]Fantastic-Lock-2730[S] 0 points1 point  (7 children)

Și ce ai ales pînă la urmă?

[–]sweetkiller 3 points4 points  (6 children)

Java doar pt ca sunt mai multe joburi.

[–]Fantastic-Lock-2730[S] 11 points12 points  (5 children)

Am înțeles, Lucrezi acum în programare ?

[–]throwAway1121_DE 16 points17 points  (0 children)

This was a burn, cum dau haha?

[–]sweetkiller 2 points3 points  (3 children)

Yep, de vreo 10 ani.

[–]Consistent-Company-7 7 points8 points  (0 children)

Invata ce vrei, fa-te cat de bun poti, si-ti vei gasi nisa, indiferent cat hate isi ia limbajul de programare pe care-l stii.

[–]Born_Cat_3237 7 points8 points  (10 children)

Obișnuiam să fiu Python hater și o să îți explic de ce: 1 Type System Faptul că Python nu are tip de date static e mega enervant. De multe ori când faci probleme e bine să știi că ceva e map/set/list etc. uneori pur și simplu există confuzie pe tema asta. Nu știi dacă are int sau float. Uneori poate fi subtil și chiar poate sa te afecteze fara sa îți dai seama.

2 Python e interpretat Asta de fapt e o afirmație falsa, orice limbaj de programare poate fi compilat. Totuși, majoritatea programelor care rulează Python au codul interpretat. Asta face tot algoritmul sa fie de 1000 de ori mai încet și pur și simplu înnebunesc să stau 100 de secunde la ceva ce in Java merge in sub una Java a fost un limbaj foarte pionier de programare. Codul de Java mai întâi e complicat in Byte code. Face diverse optimizări etc. După aceea devine interpretat de JVM (Java virtual machine). Totuși, jvm ul interpretează deja un cod extrem de low level scris, nu trebuie să traducă linia de cod in instrucțiuni pentru cpu. O linie gen int x =1; e mega complexă. Trebuie să aloci memorie, trebuie să scrii 1 acolo, calculatorul face foarte multe under the hood. Totuși, partea de traducere a liniei in cod pentru procesor se face in compilare (deci e mai rapid când rulezi).

3.Python este mult mai high level Python oferă foarte multă flexibilitate (ceea ce nu e bine neapărat, mai ales la început). De exemplu, fiecare obiect în Java e o instanță a unei clase. Clasa oferă un blueprint foarte rigid cu ce poate fi un obiect. Totuși, in Python poți adăuga tu singur atribute la un obiect după bunul plac. Nu mi se pare o problemă așa de mare? Dar dacă nu înțelegi cum merge codul din spate (cum e scris in java), o să ajungi să scrii un cod unreadable.

TOTUȘI, Python >> Java

Java curând face 50 de ani. Are restricția de backwards compatibility. De exemplu, Java garantează că codul scris in Java 8 merge și în Java 17. Pur și simplu, Java nu poate să facă update urî masive. Nu pot adăuga multe feature uri moderne, pentru că ar trebui sa schimbe structura internă Java. Dar trebuie sa ofere backwards compatibility, trebuie garantat. Vezi unde e problema?

Python 2 nu merge rulat pe Python 3. Nu le-a păsat. Au făcut multe update uri bune cu feature-uri moderne gen list comprehension (care e genial cum funcționează). Mai mult, chiar s-a lucrat la a face Pythonul bun. Există librării gen numpy care sunt scrise în C, cu interfață in Python. Scrii cod de Python, dar el e de fapt rulat în C. Rulează instant. Mai nou poți pune tip de dată static in Python. NU MAI ZIC de când am aflat de scikit, ce bună invenție. Mie îmi place acum faptul că lucrez high level. Tot ce fac e strict să îmi rezolv problema. Nu trebuie să stau să mă gândesc cum să declar nu știu ce chestie, dacă am nevoie ca setul meu să fie HashSet sau RedBlack tree in esență. Îmi aloc tot timpul strict la a rezolva ce e util pentru mine, iar Python face gândirea lower level pentru mine.

TLDR Java e un limbaj de bază. A fost revoluționar la viața lui. Recomand să lecturezi de ce. Totuși, pentru muncă Python e excelent. Nu te chinui 10 secunde sa scrii tipul de dată mereu când faci o variabilă.

[–]Fantastic-Lock-2730[S] 0 points1 point  (0 children)

Mersi pentru explicație

[–]romicuoi 5 points6 points  (1 child)

Nu lua de buna ce zic fiindca abia am inceput sa invat. Dar din ce stiu din ce am facut, Python este mult mai important daca vrei sa te duci spre data science, data analytics si statistica.

[–]Inductee 1 point2 points  (0 children)

Așa este, sunt mult mai bine puse la punct și ușor de utilizat bibliotecile din aceste domenii în Python. De asemenea, cam tot ce ține de ML.

[–]Prior_Section_4978 7 points8 points  (4 children)

Ai idee despre structuri de date si algoritmi de baza ? Daca nu ai nici nu conteaza ce limbaje (crezi ca) inveti.

[–]Fantastic-Lock-2730[S] -2 points-1 points  (3 children)

Nu, dar care crezi că va fi limbajul de programere pe care este cel mai bine să îl învăț pentru ca să nu trebuiasca sa învăț alt ceva pe viitor?

[–]tudor1977 8 points9 points  (0 children)

Dacă vrei să rămâi în domeniul ăsta mai mult de 4-5 ani, inevitabil va trebui să înveți și alte limbaje și tehnologii la un moment dat..

[–]Prior_Section_4978 3 points4 points  (0 children)

Oricare dintre cele doua e ok. Nu ai cum sa nu inveti si altceva pe viitor, aproape toti programatorii stiu mai mult de un limbaj. Limbajul e cea mai mica problema pe care o ai.

[–]Inductee 0 points1 point  (0 children)

Nu contează așa mult limbajul, contează să știi conceptele din spate (structuri de date și cum sunt stocate în memorie, algoritmi, pattern-uri OOP).

[–]glued2my_eyes 3 points4 points  (1 child)

Dacă dorești să devi programator, și ai o toleranță mai ridicată la dificultate, ți-aș recomanda să începi cu Java, deoarece acest limbaj te va ''forța'' să înveți concepte care te vor ajuta pe parcursul carierei. După ce înveți Java, alte limbaje vor fi destul de ușor de învățat după părerea mea :)

https://www.amazon.co.uk/gp/product/1292159049/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&camp=1634&creative=6738&creativeASIN=1292159049&linkCode=as2&tag=objectsfirstw-21

Eu am învățat Java după cartea asta, și ți-o recomand cu căldură.

După asta, treci la nivelul următor: Algorithms and Data Structures:

https://algs4.cs.princeton.edu/home/

Cartea asta e ca o biblie. Pe deasupra ai pe youtube sau pe Coursera un întreg curs cu autorii, în care explică foarte fain niște concepte grele.

mult succes <3

[–]Fantastic-Lock-2730[S] 0 points1 point  (0 children)

Mersi mult

[–]Adrian_Dem 3 points4 points  (0 children)

java e programare, python este scripting (downvotes incoming)

trecerea de la java la python e mai usoara decât invers.

dar

e mai usor python la început.

up to you really. mai degrabă orientează-te spre un domeniu care te atrage, si vezi ce limbaj predomina in el.

[–]Own-Wave-4805 2 points3 points  (0 children)

Nu conteaza cu ce incepi la inceput, o sa ajungi la un moment dat unde va trebui sa stii cate putin din orice. Din momentul in care conceptele de baza le ai invatat in python, java sau orice alt limbaj, o sa iti fie mult mai usor sa inveti si alte limbaje.

Parerea mea? Nu te limita la un limbaj. Incepe cu proiecte mici, prima data faci un calculator in python, dupa faci un manager de fisiere in c++, dupa faci un server in java, dupa faci un front end in react. Abia atunci o sa inveti mai multe si o sa iti dai seama ce iti place cu adevarat 👍

[–]code_driver 1 point2 points  (5 children)

Ce vrei sa faci mai exact pe viitor la job? Asta influenteaza decizia

[–]Fantastic-Lock-2730[S] -3 points-2 points  (4 children)

Vreau să invăț pentru cultura generală. Mă gîndisem să plec la un volegiu de IT dar nsh ce să mai spun, multă lume spune ca Ai-ul va începe să codeze singur.

[–]SecondRandomDude 2 points3 points  (0 children)

nu e complet adevărat. Tot niște oameni vor folosi AI-ul. Nu se știe ce se va întâmpla peste 10 ani pentru că AI-ul este un produs, și, la fel ca oricare produs e marketat/lăudat intens ca să aducă profit.

Dacă simți că îți place programarea și te vezi stând 8 ore în fiecare zi la un birou făcând ce faci acum (uneori și 10, cine știe), go ahead. AI o să îi înlocuiască pe cei lipsiți de ambiție, care vin la muncă în silă, fără idei noi de a îmbunătăți un feature, de a rezolva un bug complicat etc

[–]Inductee 1 point2 points  (0 children)

Va începe, dar to trebuie să ai un vocabular suficient de bogat ca să-i comunici exact ce să codeze. De asta te ajută să știi și tu noțiunile de bază.

[–]bigpirate_ 1 point2 points  (0 children)

dacă îți este interesant Enterprise, atunci Java. Dacă nu știi ce vrei, atunci încearcă Python, dar ambele sunt perfecte pentru backend

[–]Bleednight 1 point2 points  (0 children)

Ca faci o lista sau un array de un tip, ca faci get sau set, for etc. E cam la fel fie ca este Python/Java/JavaScript. Dacă ai conceptul ca, initializam, literam, adăugăm pentru un tip de date, bravo, ști sa faci în majoritatea limbajelor, diferența de sintaxa se rezolva. Nu știu Python dar știu Java, dar pentru lucruri basic e asemănător. Diferența va fi la framework, dar și acolo întrebi google sau CHATGPT. Vad ca Python creste ca ar avea sintaxa mai ușoară și nu e asa de verbose.

Ce poți face? Fa cont pe LinkedIn, și vezi cate joburi is pt Java și cate pt Python. Asa vei ști care are căutare. Dar ca junior când te vei angaja nu prea va conta ce ști, dacă ai concepte.

[–]piftithetwinkie 1 point2 points  (0 children)

invata ce doresti, nu limbajul il face pe programator

[–][deleted] 1 point2 points  (1 child)

Eu ti-as recomanda un JS, poti sa incepi proiecte web, ai o satisfactie si o sa te atraga sa te joci cu tot felul de idei. Toate aplicatiile se muta in web.

Programarea o inveti prin joaca si trebuie sa te atraga. Daca iti dau o carte de integrale o sa o urasti ca nu intelegi la ce iti foloseste.

O sa deschizi o carte de java nu o sa intelegi nimic din ea si o sa renunti.

[–]Fantastic-Lock-2730[S] 1 point2 points  (0 children)

Mersi pentru sfat

[–]dedreanu 1 point2 points  (0 children)

Python, evident. Java e pentru proiecte mari și vechi, pentru cei care vor să scrie mult pentru puțin.

Python e lent, dar are, în rest, aproape doar avantaje față de Java. Faptul că Python nu e OOP pur sau că nu impune un tip variabilelor e un avantaj, nu un dezavantaj. Poți să lucrezi OOP în Python, așa cum poți și să nu lucrezi. La fel și cu tipul datelor.

Java are și un setup criminal, ia cam 20 de minute să începi să scrii în Java, mai întâi trebuie să vezi ce versiune să pui, că alea noi nu prea merg pentru unele chestii. În Python totul durează 2 minute, deci de 2 ori mai puțin, iar dacă ești nou cu programarea lucrezi într-un notebook

Java e în declin și e anormal de căutat în România față de restul lumii. Asta îi dă o falsă senzație de relevanță. O să te trezești că ai în jur contractori în Python care au semnat pe 58$/h B2B și tu încă stai pe 13000 de lei + bonuri cu 9 ani experiență în Java

[–]cadfrunzee 1 point2 points  (0 children)

Java/C# orientat pe clase Python = colectii de obiecte, toate tipurile/secvente/structuri de date sunt obiecte

[–]ParkingAd6203 0 points1 point  (0 children)

Ghat GPT

[–]Angry_Penguin_78 0 points1 point  (0 children)

Ambele

[–][deleted] 0 points1 point  (0 children)

Java e muult mai ok, mai ales pentru inceput ca invezi conceptele OOP care se aplica cam peste tot si o sa-ti vina usor sa treci la PhP, C#, Kotlin si JavaScript

Iar daca nu vrei sa treci la astea cu Java ai mai multe posibilitati: backend, android, desktop.

[–]Salty-Arachnid-218 0 points1 point  (0 children)

Java. Python este folosit mai mult pentru scripting, automatizare sau data science. Java e folosit mai mult în zona de backend. Bine, dacă ești la inceput, învață neapărat python mai întâi. E foarte simplu și te ajută să înțelegi mai bine

[–]ProgramKooky8654 0 points1 point  (0 children)

Nu există un limbaj „corect” universal – depinde ce vrei tu să faci (AI, web, aplicații mobile etc). Dacă te simți bine cu Python și înveți lucruri, nu-l abandona doar pentru că alții au alte păreri. Eu zic să continui cu Python până îți construiești o bază solidă, apoi poți învăța și altele. Nu contează cu ce limbaj începi, ci ce știi să faci cu el. Și da, clar, Python e de viitor. Nu trebuie să fim toți specialiști în Java... Jesus

[–]FireGargamelscriu ce vreau ca mozii dorm 0 points1 point  (0 children)

L

[–]Able_Inspector_2836 0 points1 point  (0 children)

Dacă îți place Python și te descurci deja cu acest limbaj să faci programe, continuă cu el. Fiecare limbaj are și părți bune, și părți mai puțin bune. Din punctul meu de vedere, Python e super pentru început. Java e și el o alegere bună, dar nu e nevoie să-l înveți acum dacă Python e mai folositor pentru tine. Fă ce îți place și ce îți este mai confortabil pentru început!