fbpx

Întrebări pe care să ți le pui dacă vrei să începi o carieră în programare

Programarea este un domeniu vast și sunt multe direcții în care poți merge. Dacă te afli la început de drum, sunt sigur că totul pare prea mult și îți amintește de întrebarea “Ce vrei să te faci când vei fi mare?”, pe care o primeai când erai mic. Am încercat, în continuare, să construim un mic ghid al unei cariere în programare, pe care îl poți consulta când vrei să decizi ce drum să urmezi.

 

Deși programarea este un domeniu vast, sunt câteva direcții destul de standardizate pe care le poți urma. Îți sugerăm să citești cu atenție în continuare și sperăm că informațiile prezentate îți vor fi utile și te vor ajuta să găsești ceea ce face click pentru tine.

 

1. Programare Web

Programarea Web este o arie a programării ce a luat foarte multă amploare în ultimii ani și a dat naștere multor companii gigantice (cum ar fi Facebook, Google, Amazon). Numărul de utilizatori de Internet este în continuă creștere și o dată cu ei va crește și numărul de site-uri web. În general, programarea web este împărțită în două componente: front-end și back-end.

Front-endul este partea dintr-un site ce este vizibilă utilizatorului: aspect, design, funcționalități disponibile, experiența utilizatorului, prezentare etc. Backend-ul include partea computațional intensivă ce este în general ascunsă utilizatorului: baze de date, optimizări de performanță. Tot în domeniul programării web a apărut și noțiunea de full-stack developer, ce definește o persoană ce poate scrie atât frontend cât și backend. Poți afla din articolul de pe blogul Telacad mai multe despre front-end developer versus back-end developer.

Limbaje de programare folosite:

 

2. Aplicații embedded

Aplicațiile embedded sunt aplicații construite pentru dispozitive specifice (gândește-te la computerul de bord al mașinii sau la cuptorul cu microunde). În general, programarea pe dispozitive embedded vine cu un set specific provocării: resursele sistemului sunt foarte limitate și, de aceea, programatorul trebuie să se asigure că programul folosește cât mai eficient resursele disponibile (vorbim de kilobytes de memorie în unele situații). De asemenea, actualizările sunt dificile așa că programele scrise pentru dispozitive embedded vor trebui să fie testate corespunzător. Cele mai comune sisteme pentru început sunt sistemele Arduino.

Limbaje de programare folosite: C/C++, Java

 

3. Machine Learning / Artificial Intelligence

Machine Learning reprezintă o aplicație a Inteligenței Artificiale ce oferă programelor abilitatea de a învață și a se îmbunătăți cu ajutorul experienței, fără a fi nevoie ca acestea să fie programate explicit pentru realizarea unui task. Pe scurt, Machine Learning reprezintă o modalitate de a dezvolta aplicații de Inteligență Artificială folosind date și algoritmi statistici. În viața cotidiană utilizăm destul de multe aplicații ce folosesc în spate tehnici de ML, cum ar fi: spam detector, sistemul de recomandare de la Netflix, detectarea fețelor, etc.

Limbaje de programare folosite: Python, C/C++

 

4. Native

Este un domeniu al programării ce se ocupă cu dezvoltarea de aplicații native (spre exemplu fișierele .exe pe care le folosim). Este printre cele mai vechi arii ale programării. Putem include și jocurile pe calculator ca o categorie specială de aplicații native. În general, aplicațiile native trebuie să funcționeze eficient și au acces la toate resursele sistemului (ce în general sunt destul de mari). Dezvoltarea de aplicații native necesită, pe lângă cunoștințe generale de programare și cunoștințe de sisteme de operare, baze de date, algoritmi și structuri de date. Dacă vorbim despre jocuri pe calculator adăugăm și noțiuni de grafică (OpenGL, DirectX).

 

Limbaje de programare folosite: C/C++, Java

 

5. Mobile

După cum spune și numele, presupune dezvoltarea de aplicații mobile. Sunt câteva provocări interesante ce vin cu construirea de aplicații mobile, (în principal în legătură cu resursele limitate ale sistemului, viteza redusă la internet a telefoanelor și conexiunile instabile). Dezvoltarea de aplicații mobile este o combinație interesantă între aplicații native și aplicații embedded și cu numărul în creștere de dispozitive mobile și faptul că se pune din ce în ce mai mult accentul pe mobilitate și portabilitate, ne așteptăm ca aplicațiile mobile să rămână cu noi multă vreme de acum înainte.

Limbaje de programare folosite: Java (Android), Swift (IOS), Kotlin

 

6. DevOps

Doar funcționalitatea nu este suficientă pentru o aplicație de succes. Aplicațiile trebuie testate (automat, manual sau, cel mai adesea, ambele). Serverele trebuie să ruleze în continuare și întreaga infrastructură a sistemului trebuie să ruleze și să fie actualizată constant și asta incorporează foarte multe tehnologii ce trebuie să se integreze fără probleme. De asemenea, DevOps se ocupă și cu automatizarea și eficientizarea sarcinilor dintr-o echipă, unde este cazul.

Skill-uri necesare, deoarece nu putem vorbi doar de limbaje de programare, sunt: Python, Docker (este o tehnologie, nu un limbaj), Kubernetes (din nou, o tehnologie, nu un limbaj), Jenkins (tot o tehnologie), Linux (un sistem de operare, nu un limbaj), Ansible, Windows Server și o multitudine de aplicații asociate (email, LDAP, FTP, Apache, NGINX etc.)

 

În concluzie, sper că te-am ajutat să înțelegi care sunt o parte din domeniile ce alcătuiesc meseria de “programator” și, în cazul în care unul din ele îți surâde, sper că ți-am oferit suficiente informații să începi.

Pe https://cursuri.telacad.ro poți urma o mare parte din aceste cursuri, baftă!

Articol scris de instructorul nostru, Raul Tabacu

    Sponsori și parteneri