Te-ai întrebat vreodată ce se întâmplă sub capota unei aplicații? De exemplu, cum se face că atunci când apeși pe butonul “Comandă” pe un magazin virtual, comanda este transmisă instantaneu și în câteva secunde ești deja în portalul de plată? Această viteză (sau lipsă de, în cazul aplicațiilor mai puțin inspirate) de reacție se datorează eforturilor pe care le fac dezvoltatorii backend în culise, departe de interfețele care îți afișează produsele și te conduc de pe o pagina pe alta. Eforturile care se fac în backend permit site-ului să țină pasul cu ritmul tău de utilizare, și să-ți cripteze parolele și alte date personale.
În acest articol, vom explora ce face un backend developer, ce presupune acest job și care sunt competențele absolut necesare pentru a deveni un dezvoltator backend.
Și dacă tot ești aici, o să-ți spunem pe scurt cine suntem. Noi suntem Software Development Academy, o școală de programare care a ajutat mii de studenți de-a lungul celor peste 10 ani de activitate să-și îndeplinească țelurile profesionale, fie că era vorba de accesarea unui post în industria IT, sau augmentarea carierei actuale prin cunoștințe de programare. Oferim o gamă variată de cursuri, predate de experți cu zeci de ani cumulați în industria IT. Relevant pentru acest articol sunt cursurile noastre de Python și Java, două limbaje absolut esențiale pentru dezvoltarea backend. Sună interesant? Poți programa și un call cu unul din consultanții noștri de carieră ca să vedem ce anume ți se potrivește.
În continuare, totul despre jobul de backend development.
Un backend developer este un expert care se ocupă de arhitectura și scriptarea unei aplicații. Pe scurt, un dezvoltator backend scrie cod care ajută baza de date a aplicației (sau site-ului) să comunice cu browser-ul (sau interfața) utilizatorului. Gândește-te la back end development ca fiind motorul aplicației, iar partea de frontend, manetele.
Desigur, acest rol poate varia în funcție de industrie, sau chiar companie. La o scurtă trecere în revistă, putem identifica câteva variații ale acestui rol:
Pentru mai multe detalii despre diferențele și legăturile dintre front și back end development, vă invităm să consultați ghidul dedicat.
Un backend developer poate avea multe sarcini și responsabități, care pot varia în funcție de complexitatea aplicației, natura proiectului și cerințele clientului.
În general, un dezvoltator backend trebuie să dețină următoarele competențe:
Pentru a crea un framework solid care asigură buna comunicare între servere și cu interfața frontend, un dezvoltator back end trebuie să cunoască trei limbaje esențiale:
Deși cunoșterea aprofundată a tehnologiilor frontend nu este necesară pentru a activa ca dezvoltator backend, este totuși recomandată datorită relației simbiotice între cele două roluri. Aici includem limbaje frontend precum HTML, CSS și JavaScript.
Dacă limbajul de programare reprezintă fundația, un framework este pilonul de rezistență a unei aplicații. În esență, este o colecție de componente reutilizabile de software care îi ajută pe dezvoltatorii backened să dezvolte aplicații noi, într-un mod eficient. Asta pentru că un programator nu face totul de la 0 – se folosește de instrumente existente asupra cărora iterează.
Cât despre framework-uri în sine, un programator backend tipic lucrează cu următoarele:
Un sistem de control al versiunilor captează și afișează toate modificările care au fost efectuate asupra codului în orice bază de date. Este un instrument crucial în arsenalul oricărui programator backend, în principiu pentru că acesta poate inversa orice greșeli fără ca acestea să se reverse în codul sursă și să provoace daune mai mari.
Cele mai populare sisteme de control al versiunilor sunt următoarele:
Ca dezvoltator backend, trebuie să înțelegi importanța stocării datelor în medii securizate. Apoi, este necesară cunoașterea detaliată a operațiilor CRUD (create, read, update, delete), dar și a tehnicilor de modelare, indexare, normalizare și optimizare. Cu alte cuvinte, pentru managementul bazelor de date, dezvoltatorii folosesc limbaje precum MySQL, SQL, PostgreSQL, și MongoDB, printre altele.
După cum an menționat anterior, un API este puntea de legătura care permite două sau mai multe aplicații să comunice între ele. După acest principiu funcționează integrările între diversele aplicații pe care le folosești zi de zi. De exemplu, dacă creezi un vizual în Canva și vrei să-l postezi pe Slack pentru feedback, asta înseamnă că există un API care permite acestor două aplicații să comunice. Un exemplu și mai simplu este atunci când comanzi mâncare printr-o aplicație de food delivery de pe telefon – în acest caz, telefonul tău stabilește o conexiune cu API-ul aplicației. Cele mai populare API-uri în dezvoltarea backend sunt JSON, REST, GSON și SOAP.
Cunoștințe medii de date și algoritmi sunt necesare pentru că acestea permit unui dezvoltator backend să scrie cod optimizat și eficient. Mai mult decât atât, sunt foarte folositoare pentru recuperarea de date în cazuri de forță majoră. Dacă ești interesat de date, statistică și algoritmi, aruncă un ochi la cursul SDA de Data Science.
Nu te așteptai să încheiem lista de competențe cu asta, nu? Un programator bun știe să codeze – un programator excelent nu numai că știe să scrie cod curat, dar și să-l împacheteze într-un format simplu, digerabil, colegilor de echipă non-tehnici. Ca programator, mai ales de backend, de care depinde funcționalitatea produsului, te vei găsi adeseori în situația de a-ți argumenta deciziile în fața unor colegi, superiori sau stakeholders care nu cunosc realitatea de pe teren, pentru că au alte specializări (marketing, sales, etc.)
Mai mult decât atât, soft skills te ajută să colaborezi eficient și cu colegii tehnici din alte departamente. În majoritatea companiilor, vei rula mai multe proiecte simultan, în cadrul cărora vei fi nevoit să lucrezi cu echipe diferite, cu skill-uri, așteptări și nevoi diferite.
Responsabilitățile unui backend developer pot fi sumarizate într-o singură propoziție: dacă ceva nu funcționează cum trebuie în backend, este foarte posibil ca întregul (sau mare parte din) produs să devină inutilizabil utilizatorului de rând, iar compania să piardă bani. Un scenariu tipic este acela în care utilizatorului nu se poate loga sau înregistra – acest eveniment se poate traduce în potențiale pierderi financiare, pentru că un utilizator care nu poate folosi aplicația este un user pe care afacerea nu-l poate menține sau converti.
Sună intimidant, dar nu trebuie să te simți descurajat. Aceste scenarii sunt foarte rare, tocmai datorită faptului că echipele (și produsele) sunt concepute cu multiple straturi de redundanță. Cu alte cuvinte, dacă un membru al echipei greșește, sau o parte a produsului nu mai funcționează în parametri optimi, intră în funcțiune sisteme de rezervă care mențin situația pe linia de plutire până când problema este remediată.
Cu preambulul încheiat, iată care sunt pricipalele responsabilități ale unui dezvoltator backend:
Conform datelor furnizate de Paylab, un dezvoltator backend câștigă între 5.000 și 16.000 RON net lunar, în funcție de experiență și companie.
Conform datelor furnizate de DevJob, salariile arată în felul următor:
Te interesează universul dezvoltării backend, sau vrei să-ți augmentezi cariera actuală învătând limbajele specifice acestei specializări? Poate ești un contabil care vrea să aprofundeze bazele de date, sau un jurnalist care vrea să învețe să manevreze date mai bine. Sau poate ești un specialist în marketing care vrea să treacă la nivelul următor învățând noțiuni aprofundate de statistică.
Oricare ar fi țelurile tale profesionale, Software Development Academy te poate ajuta să le atingi. Aruncă un ochi la cursurile noastre de Python, Java, Data Science și Machine Learning, sau programează un apel cu unul dintre consultanții noștri de carieră. Suntem aici să te ajutăm să-ți îndeplinești obiectivele profesionale.
Cele două școli și-au unit forțele! Împreună, oferim:
Înscrie-te acum în programul SDAcademy x Codecool și primește coaching personalizat pentru cariera ta în IT!