CodeGym /Blog Java /Aleatoriu /Alegerea unui limbaj de programare
John Squirrels
Nivel
San Francisco

Alegerea unui limbaj de programare

Publicat în grup
Prima dată am dat peste programare la școală, la lecții despre informatică. Acestea au constat în câteva explicații plictisitoare despre modul în care funcționează sistemele numerice n-are. Și, desigur, a existat un test care a cerut să-ți scrii propriul site web. Pe atunci, mi se părea că nu poate exista o ocupație mai plictisitoare. Cat am gresit! Din păcate, un program de informatică de liceu nu oferă o imagine completă a activității IT și nu explică cum să alegeți un limbaj de programare. Înainte de a întreba „Ce limbaj de programare ar trebui să învăț?”, un începător ar trebui să se familiarizeze cu ce limbi există și cu ce diferă între ele. Alegerea unui limbaj de programare - 1

Prag de intrare: ridicat, scăzut, mediu

Programatorii vorbesc adesea despre „pragul de intrare” – un concept care reflectă cantitatea de efort necesar oricărui „dezvoltator junior” pentru a stăpâni suficient de bine un limbaj de programare pentru a-și scrie primul program serios și a-și găsi un loc de muncă. „Pragul de intrare” constă în cunoașterea:
  • particularitățile de sintaxă și nuanțe ale limbajului
  • biblioteci
  • algoritmi și structuri de date.
Lucrul în Excel ar putea chiar numi un fel de programare. Apropo, acest program de birou familiar nu este atât de simplu pe cât pare. Pentru un utilizator, pragul de intrare ar putea fi capacitatea de a crea un tabel. Pe de altă parte, ar putea fi cunoașterea formulelor și macrocomenzilor complexe. În ambele cazuri, acest prag este mic. Urmează cvasi-limbajele, cum ar fi programarea 1C . Apoi sunt cele mai simple limbaje de învățat, de exemplu PHP . Mai mult, avem limbi cu sintaxă nativă (derivată de obicei din engleză) care nu necesită gestionarea memoriei, de exemplu Java și JS . Apoi, există limbaje care necesită o manipulare extrem de atentă a memoriei, a structurilor de date și a algoritmilor, de exemplu, C șiC++ . Limbajele tinere cu mai multe paradigme, de exemplu, Scala , au probabil cel mai înalt prag de intrare, deoarece stăpânirea lor necesită să vă scufundați adânc în atât de multe paradigme de programare. Dar înainte de a alege o limbă, ar trebui să decideți ce doriți să faceți în continuare: dezvoltați pentru web, întreprindere, desktop sau dispozitive mobile .

Web sau nu web?

Web

Programatorii web pot fi împărțiți în dezvoltatori Frontend și Backend . Ar trebui să înțelegeți ce înseamnă acești termeni. Dezvoltatorii front-end sunt implicați în partea clientului, adică ceea ce vede utilizatorul. „Backend” se referă la manipularea și stocarea datelor – partea unui serviciu care rulează pe un server. Pentru un dezvoltator Frontend care decide ce limbaj de programare să învețe, cadrele JavaScript și JavaScript (Angular JS, React și altele) sunt esențiale. Dialectele JS, cum ar fi CoffeeScript și TypeScript, nu sunt la fel de populare ca părintele lor, dar pot fi și utile. Există, de asemenea, un Flash AS, și înainte existau JScript și VBScript, dar numai dinozaurii își amintesc asta =) Pe lângă toate acestea, trebuie să înțelegeți HTMLși CSS . Alegerea unui limbaj de programare - 2Mulți începători cred că JavaScript și Java sunt aproape același lucru. Nu confunda aceste limbi. JS a fost numit anterior „LiveScript” și și-a primit numele actual doar datorită popularității cuvântului „Java”. Pentru un dezvoltator web backend , PHP, Python, Ruby, Perl și Java sunt potrivite. Aici vreau să mă concentrez pe PHP (vom vorbi mai târziu despre celelalte limbi). PHP este una dintre cele mai ușor de învățat limbi, având un prag de intrare scăzut. Potrivit unui sondaj al dezvoltatorilor web binecunoscuți, Ruby câștigă popularitate încet, dar sigur - este iubit pentru concizia și frumusețea sa.

Nu web (întreprindere, desktop, mobil)

Am combinat în mod intenționat următoarele limbaje de programare în această categorie cu un nume ciudat. Puteți folosi cele mai multe dintre ele pentru a scrie aplicații de întreprindere, desktop și chiar aplicații mobile. Python este un limbaj de programare orientat pe obiecte ușor de înțeles și a devenit incredibil de popular recent datorită creșterii învățării automate (ML): dezvoltatorii ML folosesc pe scară largă Python. MLeste un domeniu destul de nou în IT și, deși am văzut deja că a dat roade, nu m-aș grăbi în această industrie atunci când aleg un limbaj de programare. În primul rând, veți avea nevoie de o înțelegere EXCELENTĂ a matematicii. În al doilea rând, valul de popularitate poate trece în același mod ca și pentru „blockchain” sau „nanotehnologie”. Acestea fiind spuse, vă puteți aminti că Python este folosit în dezvoltarea web. C++: un limbaj clasic în care totul este construit pe operatorul „plus-plus”. Acest limbaj este strămoșul tuturor limbajelor de programare populare orientate pe obiecte, iar un începător ar trebui să-i acorde cu siguranță atenție. Multe aplicații populare au fost scrise folosindu-l. Dar șansa excelentă de a te „împușca în picior” și sintaxa greu de înțeles aduc la zero probabilitatea ca un începător să stăpânească acest mastodont al programării. Kotlin, care este ca Java pentru hipsteri, este o combinație nebună de OOP și programare funcțională. A fost popular recent datorită faptului că un dezvoltator cu experiență care trece de la Java la Kotlin își poate îmbunătăți serios productivitatea. Un dezvoltator cu experiență se va simți rapid confortabil în acest limbaj de programare. Apropo, același lucru se aplică Scala, dar Kotlin este popular în lumea Android. Java este ușor de învățat pentru începători. Mai ales cu ajutorul CodeGym =) Sintaxa Java este de înțeles și, deși există riscul de a te „împușca în picior”, nu este critică.

OOP sau POP?

Abordarea procedurală

Abordarea orientată spre procedură implică scrierea unui program constând din declarații secvențiale care pot fi asamblate într-un întreg unificat pentru a rezolva eficient un set specific de probleme. Astfel de limbaje includ C , PureBasic și Pascal . Cu alte cuvinte, limbile care aduc disperare liceenilor și studenților. Există și GO relativ tânărlimba. Acestea fiind spuse, a fi familiarizat cu limbajele procedurale este foarte util pentru un potențial dezvoltator. Imersiunea mea în limbaje procedurale a venit cu sistemul Wolfram Mathematica și cercetarea universitară. Algoritmii corespunzători și procedurile simple, deplasându-se liniar de la începutul programului până la sfârșit, mi-au permis să calculez valori relevante pentru fizica teoretică modernă. Acest limbaj de programare „secvențial” este exact ceea ce vă ajută să înțelegeți că uneori este mai ușor să scrieți cod care să efectueze calcule manual. Învățarea programării orientate pe proceduri (POP) oferă o bună pregătire algoritmică, pe care un angajator dorește aproape întotdeauna să o vadă la un candidat la un loc de muncă. Absolut totul în IT este construit pe baza limbajelor procedurale, așa că nu le subestimați. Apropo, Începătorii care decid ce limbaj de programare să învețe cred adesea că numai limbajele OOP acceptă multithreading. Nu este adevarat. Limbajele de programare procedurale permit, de asemenea, calcule paralele. Alegerea unui limbaj de programare - 3

Abordarea orientată pe obiecte

Cei care au început cu limbaje procedurale sunt de obicei bine versați în matematică, algoritmi și structuri de date (datorită accentului acordat de universitățile tehnice pe aceste domenii). Totuși, realitatea de astăzi este că programatorii de succes sunt de obicei cei care au stăpânit o abordare diferită a programarii: paradigma orientată pe obiecte. Ideologia OOP vă permite să construiți sisteme cu adevărat globale. O caracteristică a acestei abordări este asemănarea sa cu lumea reală:
  • Diferite obiecte interacționează între ele și există independent unele de altele.
  • Obiectele au o ierarhie și pot adopta sau modifica comportamentul strămoșilor lor.
  • Puteți folosi concepte abstracte, dar numai obiectele care există efectiv pot interacționa.

Exemplu

Limbile orientate pe procedură sunt instrumente pentru rezolvarea unor probleme specifice. Dacă sarcina dvs. se schimbă, chiar și ușor, probabil că va trebui să petreceți timp și efort rescriind toți algoritmii.

Imaginați-vă un program care descrie un dealer auto care vinde mașini și camioane, atât noi, cât și folosite. Într-un limbaj procedural, trebuie să definiți funcții care procesează intrarea sau ieșirea datelor pentru fiecare entitate: o mașină nouă, un camion nou, o mașină uzată și un camion uzat. Ce oferă OOP? Cu o abordare orientată pe obiecte, trebuie doar să definim o clasă de bază pentru vehicule care stochează caracteristicile comune tuturor tipurilor de vehicule:

  • Face
  • Deplasarea motorului
  • Cai putere
  • An
  • Nou sau folosit
  • Preț

Și metode de preluare și trimitere a informațiilor. Apoi creăm obiecte care moștenesc caracteristicile clasei Vehicule: Mașină și Camion. Acestea conțin informații care se referă în mod specific la aceste tipuri de vehicule, precum și metode de intrare/ieșire.

Brusc, conducerea dealerii decide să extindă gama oferind și motociclete. În cadrul abordării procedurale, ar trebui să recreăm toată logica pentru motocicletele noi și folosite, în timp ce un limbaj OOP ne permite pur și simplu să creăm o nouă clasă de motociclete care moștenește toate caracteristicile superclasei Vehicule și conține rafinamente specifice motocicletei.

Și ce s-ar întâmpla dacă adăugăm diverse vehicule? O implementare procedurală ar necesita mai multă muncă decât OOP. În plus, cu cât gama este mai mare, cu atât vor fi necesare mai puține operațiuni care implică obiecte.

Deci, OOP este un stil de programare care vă permite să combinați datele și metodele într-o singură entitate și să lucrați cu ele ca un obiect unificat. Entitățile pot fi aranjate într-o ierarhie și pot interacționa între ele fără a se adânci în detaliile interne de implementare ale celeilalte. Voi sublinia trei motive pentru care OOP este abordarea mai progresivă pentru mine:
  1. OOP implică dezvoltarea independentă a modulelor individuale, permițând unui programator sau unei echipe să aleagă metoda și limitele contactului și schimbului de informații.
  2. Codul împărțit în module mici este mult mai ușor de citit decât procedurile monolitice. Ca rezultat, un străin poate înțelege rapid codul dvs. și, de asemenea, vă puteți alătura unui nou proiect dacă este necesar.
  3. O clasă poate fi schimbată fără a afecta interacțiunea alteia, dar o astfel de modificare poate afecta ierarhia obiectelor copil. Odată ce ați stăpânit această abordare, extinderea și modificarea unui program devin banale.
Amintiți-vă că o abordare nu este în conflict cu cealaltă, dar OOP este încă mai sus în ierarhie. Deci, de ce recomand Java? Aș sublinia următoarele motive:
  1. Multiplatformă.

    Java funcționează peste tot datorită mașinii virtuale Java (JVM). Unul dintre principalele avantaje ale acestui limbaj este natura sa multiplatformă: nu este nevoie să vă gândiți la ce bibliotecă să adăugați sau la arhitectura unui anumit procesor. „Scrie o dată, fugi oriunde”.

  2. Documentație.

    Există o bază de documentare enormă: documentație oficială Oracle, portaluri de instruire și o comunitate în continuă evoluție. Răspunsurile la majoritatea întrebărilor care apar în timpul dezvoltării pot fi găsite în câteva minute. Principalul lucru este să înțelegeți ce să introduceți în motorul de căutare =)

  3. Popularitate.

    Java este cel mai popular limbaj de programare din lume: pe lângă dezvoltatorii Android și web menționați mai sus, aproape fiecare dezvoltator de întreprinderi scrie în Java. Întreprinderea se referă la dezvoltarea corporativă internă necesară pentru nevoile marilor corporații.

    În fiecare an, urătorii prezic „moartea Java”. Ei spun: „ Oracle va înceta să-l susțină. Îți pierzi total timpul. ” Acest lucru nu este adevărat! Ei promit să lanseze noi versiuni de Java la fiecare șase luni.

    Pentru mine, expresiile lambda din Java 8 au fost revoluționare și o revelație, ca să nu mai vorbim despre noile versiuni! În prezent lucrez la un proiect „moștenire”, așa că nu mă aprofundez în ultimele inovații, dar este un fapt că Java este în viață.

    Alegerea unui limbaj de programare - 4
  4. Android.

    În ultimii 4 ani, Android a deținut în mod constant peste 80% din piața telefoanelor mobile . Televizoarele, playerele media și chiar și sistemele de infotainment pentru mașini rulează pe acest sistem de operare. Și dezvoltarea de aplicații pentru acest sistem de operare are loc în principal în Java. Imaginează-ți doar perspectivele care se deschid. Când am primit un loc de muncă ca dezvoltator Android, m-am întrebat cât valorează produsul pe care îl dezvoltam? După cum sa dovedit, prețul era de aproximativ 5 USD pe an. Asta ridică întrebarea, „atunci de unde vin banii pentru acest birou, salarii, sala de gustare, masă de ping-pong, roboți și alte avantaje? Răspunsul se află în volum: aplicația noastră are 20 de milioane de utilizatori.

  5. Salariile.

    Și acum cireașa de pe tort: ​​salariul unui dezvoltator Java este printre cele mai mari din industrie. La urma urmei, intenționați să studiați programarea pentru un scop anume: pentru a obține un loc de muncă bun.

Popularitatea limbajului de programare

Există surse oficiale de informații, așa că să ne întoarcem la ele. Potrivit TIOBE , Java se află pe primul loc din octombrie 2019. În clasamentul PYPL , Java ocupă locul al doilea, cu mult înaintea JS și rivalizând cu Python-ul la modă.

Concluzie

Pe măsură ce un începător ia în considerare alegerea unui limbaj de programare, acesta este ceea ce ar trebui să acorde atenție:
  • Popularitate (Java ocupă în mod constant o poziție de lider)
  • Pragul de intrare (pentru Java, este mediu: angajatorii necesită o gamă destul de largă de competențe)
  • Materiale disponibile (bine ai venit la CodeGym =))
  • Domenii de aplicare: cu cât se utilizează mai multe domenii în care se folosește un limbaj de programare, cu atât sunt necesari mai mulți specialiști pe piață. Am menționat deja cum Java acceptă dezvoltarea multiplatformă, dar nu mă obosesc să o repet.
Desigur, există capcane peste tot, dar cel care face un pas înaintează: doar tu poți decide ce limbaj de programare să alegi. Mult succes in invatare!
Comentarii
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION