Ce înseamnă Front-End și Back-End
Dacă vrei să faci site-uri și aplicații web, e posibil să te lovești de o dilemă: Să înveți Front-End sau Back-End? Ce înseamnă fiecare? Care este mai ușor?
Ce înseamnă Front-End și Back-End
Dacă vrei să faci site-uri și aplicații web, e posibil să te lovești de o dilemă: Să înveți Front-End sau Back-End? Ce înseamnă fiecare? Care este mai ușor?
Pentru proiectele mai mici, un singur programator poate face o aplicație web în întregime. Pentru asta, ar trebui să învețe minim 3 limbaje de programare (HTML, CSS și JavaScript), sau mai multe în unele cazuri. Apoi va trebui să aibă un ochi pentru design și să poată face testare bună pe propriul cod (ceea ce e foarte greu).
În echipele profesioniste, rolurile sunt împărțite. Am constatat că puțini reușesc să fie cu adevărat profesioniști și buni la toate. De obicei sunt foarte buni la ceva și știu lucrurile de bază din celelalte.
Din punctul meu de vedere, o echipă are nevoie de minim 3 roluri:
Design - Face o schiță a aplicației, care este prezentată clientului și ajustată în funcție de dorințele acestuia.
Front-End - Implementează schița de la Design, interacțiunile cu utilizatorul și logica de preluare a datelor de la Back-End.
Back-End - Implementează logica de pe server a aplicației.
În mod ideal, ar mai fi și alte roluri acoperite de persoane distincte:
QA/Tester - Testează aplicația din perspectiva unui utilizator înainte de a fi publicată (QA = Quality Assurance ≃ Asigurarea Calității). Dacă nu există cineva dedicat, acest rol ar trebui preluat de toată echipa.
DevOps - Configurează infrastructura pe care rulează partea de Back-End. Dacă nu există cineva dedicat, acest rol este în general preluat de Back-End, dar se poate să contribuie și Front-End-ul.
Database - Optimizează baza de date. Dacă nu există cineva dedicat, acest rol este preluat de Back-End.
Front-End vs. Back-End Web Developer
Pentru celelalte roluri, putem intra în detalii în alte articole, dar pentru Front-End și Back-End hai să o facem acum.
Front-End Web Developer
Un Web-Developer specializat pe Front-End va trebui să știe în primul rând 3 limbaje: HTML, CSS, și JavaScript. Orice altceva folosesc va ajunge să fie transformat în aceste limbaje.
Se mai poate învăța TypeScript, care este bazat pe JavaScript, dar adaugă și tipuri de date. Având tipuri de date, se pot găsi potențiale probleme în timpul dezvoltării.
În mod similar, se mai poate învăța Sass, care ajută la scrierea de cod CSS mai rapid și cu mai puține șanse de greșeală.
În plus, este foarte util să cunoști un framework precum React, Vue, sau Angular. Acestea ne ajută să construim interfețe mai rapid și să separăm codul HTML în mai multe componente.
Pe lângă cunoștințele tehnice, un Front-End trebuie să aibă foarte mare atenție la detalii. Atunci când implementezi o schiță de design, trebuie să încerci să îl faci identic cu ce ți-au dat colegii de la Design. Uneori va fi mai greu, pentru că aceștia poate nu cunosc limitările CSS, sau poate nu se gândesc la anumite scenarii la care tu trebuie să o faci. Când se întâmplă așa, trebuie să colaborați pentru a produce o interfață mereu frumoasă.
Back-End Web Developer
Pe partea de Back-End, sunt mult mai multe limbaje. Nu trebuie să le înveți pe toate, va trebui să alegi.
Pentru proiecte independente, vei găsi cele mai ieftine servicii de găzduire la aplicațiile care folosesc PHP. PHP în sine este tot mai puțin folosit, dar încă foarte popular. Beneficiază și de faptul că Wordpress, cel mai cunoscut CMS (Content Management System), este făcut în PHP. Dacă vrei să faci plugin-uri și teme pentru Wordpress, trebuie să le faci în PHP.
Proiecte mai serioase pot folosi limbajul C#, cu librăria .NET, sau pot folosi Java. Există, însă și suficiente proiecte care folosesc limbajele Python sau Ruby. Chiar și JavaScript poate fi folosit în Back-End.
Dacă trebuie să te ocupi și da baza de date, ceea ce se întâmplă foarte des, de multe ori trebuie să ai cunoștințe cel puțin de bază de SQL, pe care îl folosești fie cu MySQL, fie cu PostgreSql, fie cu Microsoft SQL Server.
Pe lângă cunoștințele tehnice, un Back-End trebuie să poată scrie cod cât mai optimizat. Aplicații neoptimizate vor folosi mai multe resurse, ceea ce va crește costurile de găzduire a aplicației. Costurile cresc și mai mult dacă aplicația folosește foarte multe date și baza de date nu este optimizată.
Cei care fac și Front-End, și Back-End, se numesc Full-Stack. La multe job-uri, asta înseamnă ca trebuie să faci de toate, inclusiv Baza de date și DevOps.
Din experiența mea, atât ca Full-Stack timp de 7 ani, dar și ca instructor de Front-End timp de un an și jumătate, HTML și CSS sunt relativ ușor de înțeles pentru cine își dorește cu adevărat. JavaScript și limbajele de Back-End cer un mod diferit de a gândi, care nu vine natural tuturor.
Dacă nu ai mai făcut deloc programare, poți vedea Cursul de Programare oferit de Școala Web. Cu această introducere, poți vedea dacă poți gândi ca un programator.