SoftUni România Blog: Învață Programare

Lecții gratuite de programare, antrenamente, cursuri, videoclipuri (Java, JavaScript, Python, C#, PHP, C++) de la SoftUni

FreeProgrammingSoftware EngineeringTrainingsWeb Development

Ce înseamnă a fi un bun programator?

Probabil mulți dintre voi și-au pus întrebarea „Ce îmi trebuie pentru a deveni un programator?”. Aproape imediat vine și răspunsul „E bineînțeles, îmi trebuie un limbaj de programare!”. Cu toate acestea, „un limbaj de programare“ este răspunsul suficient de bun la această întrebare?

Ce de fapt înseamnă să fiți un programator?

A fi un programator înseamnă să aveți abilitatea de a rezolva diferite probleme și sarcini construind diferite structuri  matematice și logice. Această abilitate însă este compusă de câteva componente cheie: abilitatea de a scrie cod, abilitatea de a dezvolta gândirea algoritmică, de a avea o cunoaștere fundamentală a domeniului profesional în care doriți să vă dezvoltați și abia atunci – limbajul de programare.


Ceea ce trebuie să știți mai întâi este că primele condiții nu sunt legate de limbajul de programare. Este invers – toate limbajele de programare au o bază logică comună pe care au fost construite. În procesul lung și lent de dezvoltare a diferitelor limbaje de programare, acestea s-au diferențiat treptat și au fost modelate ca fiind potrivite pentru rezolvarea diferitelor tipuri de probleme. Dar până când ajungeți la acel punct, există alte elemente de bază pe care trebuie să le construiți. Să analizăm   mai detaliat diferitele condiții:

Abilitatea de a coda

E posibil ca, la prima vedere, codarea vi s-ar părea ca rezultatul însușirii unui anumit limbaj de programare.  În realitate, pentru a putea scrie cod, aveți nevoie să dobândiți un set de abilități tehnice specifice, cum ar fi munca cu variabile, bucle, verificări condiționale; abilitatea de utiliza funcțiile, metodele și/sau obiectele; abilitatea de a lucra cu tablouri, liste, tablouri asociative și multe altele.

Tocmai în însușirea tuturor acestor cunoștințe constă abilitatea de a coda. Iar diferitele limbaje de programare sunt pur și simplu diferite modalități prin care să exprimați aceste cunoștințe și abilități și să le utilizați pentru crearea unui cod real.

Gândirea algoritmică

Gândirea algoritmică (denumită de asemenea gândire matematică, logică sau de inginerie) este o altă calitate importantă a bunului programator. Ce reprezintă aceasta? Aceasta este abilitatea de a identifica diferitele dependențe matematice într-o anumită problemă, de a extrage informațiile de care aveți nevoie pentru a rezolva problema. Această abilitate se datorează doar gândirii dvs. logice. O puteți dezvolta prin rezolvarea diferitor probleme de matematică, fizică și altele ( dar nu e obligatoriu). Ceea ce este obligatoriu este rezolvarea regulată și intensă a diferitor probleme de programare.  Pentru a fi mai concret cu privire la volum – ar trebui să rezolvați minim 1000 de probleme pentru un an. Astfel veți obține o bună experiență în rezolvarea problemelor printr-o metodă matematică – un lucru foarte important pentru programare.

În timpul dezvoltării acestei abilități limbajul de programare nu are importanță.

Cunoștințe de bază privind profesie

Aici putem spune că limbajul are o oarecare importanță. De ce? Diferitele tipuri de probleme pot fi rezolvate cu diferite tehnologii (sau diferite limbaje de programare). În dezvoltarea sa acestea urmăresc diferite modele matematice și logice denumite „paradigme”. Limbajele de programare sunt bazate pe diverse paradigme. Vă prezentăm aici câteva dintre acestea:
– Programarea orientată pe obiecte. Aici logica pe care o construiți se bazează pe formarea unor grupe denumite  „obiecte“ care interacționează între ele .

– Programarea funcțională – spre diferență de programarea orientată pe obiecte, aici sunt utilizate funcții lambda, precum și funcții de nivel mai înalt;
– Baze de date – aceasta este o colecție de date asociate în mod logic care se referă la anumit domeniu. Acestea de asemenea trebuie să fie structurate într-un anumit mod.
– Tehnologii web (aici sunt incluse limbajele de design și diferitele funcționalități precum HTML, CSS, JS, DOM, AJAX și altele);
– Programare de rețea, protocoale de rețea și comunicare de rețea;

Paradigmele sunt numeroase și destul de diferite, iar aici eu am enumerat doar cele mai populare. De ce însă am menționat că aici limbajul de programare are importanță? Fiindcă diferitele limbaje urmăresc diferite paradigme și au fost concepute pentru diferite scopuri. Nu puteți aștepta de la un limbaj conceput pentru design web să poată rezolva problemele care pot fi rezolvate prin programarea orientată pe obiecte sau prin programarea funcțională și invers. Trebuie să fiți siguri ce tip de probleme vă interesează pentru a putea alege limbajul de programare și de a  investi în acesta timpul și eforturile dvs. Mai întâi însă trebuie să construiți fundamentul menționat mai sus.

    Limbajul de programare

Am ajuns și la limbajul de programare. Deoarece am deja precizat ce reprezintă deferitele paradigme, acum vom analiza un alt aspect al lor – nivelul limbajului. „Nivelul“ este un termen prin care stabilim dacă codarea în respectivul limbaj necesită o setare mai directă și contact cu hardware-ul sau nu. Dacă limbajul este de un nivel mai scăzut, ar trebui să definiți detaliile precum ce părți din memorie să folosească programul, în ce mod să le folosească, adică în afară de program, va trebui să petreceți mai mult timp și să aveți abilitățile necesare pentru a optimiza programul dvs., și în plus, va trebuie să scrieți mai mult cod pentru a descrie o acțiune logică. Invers – la limbajele la nivel înalt accentul cade asupra programului însuși, nu vă ocupați de optimizare și de asemenea codul este mult mai puțin.

Cu ce limbaj de programare să încep?

Aceasta depinde de Dvs. Mai întâi trebuie să fiți conștienți de dorințele pe care le aveți. Dacă aveți niște interese specifice în domeniul IT, aflați care dintre limbajele de programare vă va ajuta. Dacă însă pur și simplu doriți să vă calificați și vreți să alegeți o tehnologie populară sau doriți doar să încercați programarea, aveți în vedere că în momentul de față sunt căutați mai ales dezvoltatori cu limbaje de nivel înalt, cum ar fi C#, Java, Python, iar dacă aveți interese în dezvoltarea web –HTML, CSS, JavaScript și  PHP (care este potrivit pentru actualizarea cunoștințelor dvs. în  HTML și CSS).

Limbajele care nu sunt potrivite pentru începători sunt limbajele limitate la o tehnologie specifică (precum Swift, Objective C și altele). De asemenea, limbajele de nivel scăzut, cum ar fi С++, С și Assembly Language – nu sunt potrivite pentru începători. Aceste limbaje sunt grele, necesită o concordanță strictă între limbajul și instrucțiunile la nivel cod mașină și în plus, au o cerere mică din partea companiilor. În același timp însă, acestea vă oferă un control mult mai mare asupra programului și a execuției acestuia din partea hardware-ului.

Aplicați acum pentru programul de inginerie software al Software University și începeți călătoria dvs. în lumea programării! Acest program vă va oferi tot ce aveți nevoie pentru a deveni programatori buni. Aveți nevoie doar de dorință și perseverență. Începem cu cursul gratuit Programming Basics. Aplicați acum de AICI!