O mare parte din oamenii curioși să învețe programare, s-au lovit sigur la un moment dat de dilema asta, dacă să meargă pe calea de “Web Developer” sau pe cea de “Software Developer”.
Poate cineva chiar le-a recomandat una sau cealaltă, pentru că fie suna mai interesant, era mai bine plătită, era mai ușor de găsit un job ca junior.
Oricare din motivele astea, sau altele, încercând să pună într-o lumină mai bună una sau cealaltă.
Hai să facem o comparație mai în detaliu.
Ce face un web developer
Denumirea asta generică de “Web Developer” a avut atât de multe forme și înțelesuri de-a lungul timpului, că fiecare persoană din exterior, sau chiar persoane de recrutare cu care stai de vorbă au propria înțelegere despre ce înseamnă “Web Developer” de fapt.
Un web developer e o persoană care dezvoltă aplicații web.
Simplu, dar încă nu e foarte clar, așa-i?
Până nu demult, existau anumite poziții prin companii sub denumirea de “Web Developer”, care mascau un rol al unei persoane cu cunoștințe în construirea de site-uri web folosind Wordpress, Wix, Squarespace, sau alte unelte de genul ăsta care presupun foarte, foarte puține cunoștințe tehnice spre deloc.
Acestea nu sunt de fapt roluri de “dezvoltator” propriu zis, dar presupun că asta le face mai atractive pentru oamenii ce aspiră la o poziție entry-level în IT.
Un web developer e o persoană care dezvoltă aplicații web prin scrierea de cod folosind tehnologii precum: HTML, CSS, JavaScript și alte variații din acestea 3, cum ar fi: React, Angular, Vue, sau chiar NodeJS.
Denumirea asta de “web” developer vine, de obicei, din 2 surse:
- Poziția presupune dezvoltare front-end (adică partea vizuală a unei aplicații web sau site web)
- Poziția presupune dezvoltare cu tehnologii ale web-ului (precum cele enumerate anterior)
Pe scurt, un web developer dezvoltă aplicații web, fie ele front-end sau back-end, folosind tehnologii specifice web-ului.
Dar oare HTML, CSS și JavaScript mai sunt tehnologii specifice web-ului?
Greu de spus, din moment ce poți dezvolta cu ele aplicații pentru toate platformele existente: Web (site-uri și aplicații), desktop, sau chiar mobile.
Toate aplicațiile dezvoltate cu genul ăsta de tehnologii, sunt de fapt site-uri web în spate, dar care pot funcționa sub forma unor aplicații desktop, instalate pe PC-ul personal, sau chiar aplicații mobile, pe platforme precum Android sau IOS.
În sine ele arată și se comportă ca fiind aplicații native desktop, sau mobile, dar de fapt sunt doar niște pagini web.
Ce face un software developer
Acum hai să vedem cu ce-i diferit un Software Developer în toată ecuația asta.
În descrierea rolurilor de Software Developer o să vezi de cele mai multe ori enumerate tehnologii ce nu țin neapărat de sfera web-ului.
Tehnologii precum: Java și Spring Boot, C# și ASP .NET, C++, Python, Go și altele.
Acestea nu sunt încadrate la categoria “web”, dar asta din cauză că nu au luat naștere neapărat în contextul site-urilor web.
Pentru că, în esență, cu toate aceste tehnologii enumerate poți de fapt să creezi aplicații similare cu cele enumerate la categoria de tehnologii web.
Doar că Java, C#, Python etc. nu își au originile în zona aplicațiilor web.
Pe când JavaScript, limbajul părinte al tuturor tehnologiilor web, a apărut ca limbaj de scriptare în primele pagini web, acum mai bine de 20 de ani.
În general, denumirea de Software Developer e asociată mai degrabă pozițiilor de back-end, adică aplicații ce nu au neapărat o interfață grafică, ci mai degrabă joacă rol de server.
Web Development vs. Software Development: care e diferența?
În esență, diferențe nu prea există, dar există o tendință ca rolurile de Web Developer să fie ceva mai axate pe front-end, adică partea vizuală a site-urilor sau aplicațiilor web, pe când cea de Software Developer să fie mai concentrată pe dezvoltarea de aplicații de back-end, sau server-side.
Dar nu e obligatoriu, acești termeni sunt destul de interschimbabili și denumirile pozițiilor dintr-o companie depind mult și de cultura companiei.
Există mai multe denumiri folosite de companiile de tehnologie pentru rolul generic de “programator”, despre care am scris mai în detaliu aici.
Concluzie
Mai pe scurt, e posibil ca un rol de Web Developer să fie de fapt unul de Front-end developer, iar cel de Software Developer să fie unul de back-end developer, dar nu e obligatoriu.
Web-ul e cea mai extinsă nișă din domeniul dezvoltării software și indiferent de denumirea rolului tău, tot o să interacționezi într-un fel sau altul cu aplicații web.
Nu există prea multe diferențe nici în privința salariilor, deci n-ar trebui să-ți faci griji nici aici.
Așa că dacă aveai dubii dacă să urmezi o cale sau cealaltă, vreau să pleci de aici cu concluzia că nu există 2 căi diferite neapărat.
Învață dezvoltare software cu tehnologia care te atrage mai tare. O dată ce înveți conceptele de bază, va fi foarte ușor să treci de la una la cealaltă.
Atât pentru azi, pe data viitoare.