În Cariere

Sondajul Stack Overflow: Insight-uri despre industria de software development

stack-overflow

Stack Overflow a realizat și pe anul 2016 sondajul la scală mondială în care sunt vizați dezvoltatorii software/programatorii, însumând în acest an un număr de 56,033 de respondenți. Informațiile rezultante oferă o perspectivă cuprinzătoare asupra domeniului de software development, incluzând aspecte precum profilul dezvoltatorilor, tehnologiile folosite și job-urile existente pe piața muncii.

Am analizat atent rezultatele sondajului, iar în continuare o să prezint cele mai interesante insight-uri legate de programatorii care activează în domeniu și starea industriei de dezvoltare software.

În preambul, trebuie menționat că rezultatele expuse sunt cele globale, existând anumite variații de la o țară la alta, respectiv de la o regiune geografică la alta.

Pe lângă acest lucru, nu trebuie omis nici faptul că informațiile sondajului nu pot reflecta cu exactitate starea industriei de dezvoltare de software, cu toate că eșantionul de developeri respondenți este cel mai mare înregistrat în domeniu, la nivel global.

Din 10 dezvoltatori, 9 sunt bărbați

raport-barbati-femei-dezvoltatori

Nu este o noutate faptul că balanța dintre bărbați și femei în acest domeniu este una foarte dezechilibrată, însă raportul de peste 90% bărbați este unul destul de surprinzător.

La o examinare din acest punct de vedere, se poate observa și unul dintre motive, și anume:

Există un decalaj de femei programator în intervalele de vârstă 30-39 și 40-49 de ani

femei-vs-barbati-dupa-grupe-de-varsta

Această discrepanță sugerează faptul că multe dintre femeile care lucrează ca programator într-o fază incipientă a carierei își pierd interesul de a progresa în domeniu pe termen lung, ajungând să migreze spre alte ocupații.

Astfel, segmentul de femei programator cel mai numeros este în intervalul de vârstă 20-30 de ani, urmat apoi de segmentul 50+.

Cel mai popular mod de a învață programare și de a avansa în carieră este studiul individual

educatie-dezvoltatori

Pregătirea într-un mediu academic eficientizează cu mult drumul către o carieră în domeniul de software development – 56% dintre dezvoltatori au studii de licență, master sau doctorat în domeniu – însă, datorită dinamici tehnologiilor, dezvoltatorii vor fi nevoiți să se adapteze constant la elementele noi care apar în domeniu.

Drept urmare, calitatea de a fi autodidact primează în rândul surselor tradiționale de educare, și anume: studii universitare, training-uri la locul de muncă, obținerea de calificări de diferite tipuri specifice domeniului, cursuri online ș.a.

Un nivel mai înalt de educație în domeniu nu are un impact chiar atât de semnificativ asupra salariului

salariu-dupa-educatie

Studiile de licență în domeniu durează 3 sau 4 ani, însă vor aduce un venit suplimentar cu doar 2% mai mare decât dacă s-ar învăța programare pe cont propriu la un nivel care să faciliteze angajarea pe un post de programator și căpătarea de experiență în domeniu de minim 5 ani.

Studiile de master durează încă 2 ani, iar salariul ar fi cu 9,1% mai mare comparativ cu programatorii care au doar studii de licență.

Surprinzător, studiile de doctorat nu aduc un venit suplimentar comparativ cu veniturile obținute de către cei care au doar studii de master, ci unul cu 2,6% mai mic.

Se poate concluziona deci că studiile universitare, respectiv certificările din domeniu vor avea drept rezultat un salariu mai mare, însă nu neapărat semnificativ.

În unele cazuri, poate fi mai avantajos să se înlocuiască studiile superioare de nivel mai înalt (master, doctorat, eventual licență) cu alte forme de acreditări și certificări în domeniu, eventual să se recurgă pur și simplu la învățarea programării pe cont propriu.

Developerii cei mai bine plătiți sunt cei specializați în tehnologii specifice cloud-ului, big data și finanțelor

top-tehnologii-dupa-salariu

Tehnologiile tipice dezvoltării de software pentru desktop, web sau mobile – cele în care există un număr mare de programatori – nu apar deloc în lista cu cele mai bine plătite tehnologii, ci doar acelea specifice cloud-ului, big data și finanțelor.

Salariile mult mai mari decât media pentru aceste tehnologii reflectă pe de-o parte raritatea developerilor specializați în astfel de tehnologii, iar pe de altă parte, necesitatea unei tranziții în unele arii ale domeniului de software development către tehnologii mai performante (adesea și mai nou apărute), capabile să furnizeze soluții optime pentru noile provocări din domeniu.

Aproape jumătate dintre dezvoltatori sunt dezvoltatori web

ocupatii-dezvoltatori

Ocupațiile specifice software-ului pentru web reprezintă o parte consistentă a întregului domeniu software, poziții precum Full-Stack Web Developer, Back-End Web Developer și Front-End Web Developer însumând un procent de 46% din întreaga piață de dezvoltare de software.

În schimb, dezvoltatorii desktop și mobile însumează doar 15,3%. O diferență, așadar, substanțială.

Drept o consecință, din top 10 cele mai folosite tehnologii de programare, în general, în 2016 – JavaScript, SQL (sau SQL Server), Java, C#, PHP, Python, C++, C, Node.js, AngularJS – majoritatea sunt tehnologii tipice dezvoltării de software pentru web sau au un grad mare de popularitate în dezvoltarea web (Front-End și Back-End).

Astfel, doar două tehnologii din topul celor 10, în speță C și C++, nu sunt folosite pentru dezvoltarea de software pentru web.

Pentru Front-End, cele mai folosite tehnologii sunt: JavaScript, Angular, PHP, Node.js, SQL, WordPress, Java, C# și React.

top-tehnologii-front-end

Pentru Back-End, tehnologiile cele mai populare sunt: JavaScript, SQL, Java, PHP, C#, Python, SQL Server, Angular, Node.js și MongoDB.

top-tehnologii-back-end

Un alt aspect care merită menționat este că bazele de date de tip NoSQL, în special MongoDB, sunt din ce în ce mai folosite, iar asta face ca limbajul standard utilizat pentru interogarea bazelor de date – SQL – să fie înlocuit cu JavaScript; crescând deci gradul de popularitate al limbajului JavaScript pentru Back-End, dar și modurile în care acesta poate fi întrebuințat.

Luând în calcul necesitatea crescândă de interconectare a variatelor sisteme informatice (fenomen conceptualizat cu numele de IoT – Internetul Tuturor Lucrurilor) și de accesare a numeroaselor servicii oferite online prin rețeaua de internet (prin intermediul API-urilor), se poate aștepta ca piața web să crească, având deci nevoie de un număr tot mai mare de programatori web, respectiv de designeri web.

Dezvoltatorii folosesc din ce în ce mai mult sistemele de operare Mac OS X și Linux (și dezvoltă software compatibil pentru acestea)

top-sisteme-de-operare

Mac OS X a înregistrat în anul 2015-2016 o creștere în popularitate de 4,7% față de anul precedent, clasându-se în topul sistemelor de operare folosite de către dezvoltatori – acest lucru este corelat însă și de apariția unei noi versiuni de Windows (Windows 10).

Linux-ul crește de asemenea în popularitate cu 1,2%, clasându-se pe locul al treilea în cadrul clasamentului, după Windows 7.

Per ansamblu, Windows-ul, cu toate versiunile sale, rămâne, ca și până acum, cel mai popular sistem de operare folosit de către dezvoltatorii software, având o rată de utilizare de 52,1%.

Chiar și cu o rată de creștere mai redusă a popularității sistemelor Mac OS X și Linux în următorii ani, Windows-ul se pare că își va pierde procentul de majoritar absolut în rândul celor mai populare sisteme de operare folosite de către dezvoltatorii software.

Acest lucru sugerează și interesul developerilor nu doar de a folosi aceste sisteme de operare, dar și de a dezvolta software compatibil pentru acestea. Drept urmare, se poate aștepta ca, pe viitor, un număr tot mai mare de programe disponibile doar pentru Windows să devină disponibile și pentru Mac OS X și Linux.

Cei mai mulți care lucrează în domeniu se autointitulează developeri (dezvoltatori software)

intitulari-dezvoltatori-software

Cea mai populară autointitulare a ocupației, dar și descriere pentru joburile din domeniu existente pe portalurile de recrutare online este dezvoltator sau developer, urmată apoi de binecunoscuta titulatură – „programator”.

Alți termeni folosiți frecvent sunt inginer software, dezvoltator senior (Sr. Developer) și Full Stack Developer; pe lângă aceștia mai există și alți termeni mai puțin folosiți (în special în România) precum hacker, expert, ninja, rockstar, guru, Full-Stack Overflow Developer ș.a.

Vârsta medie a dezvoltatorilor este de 29,6 ani (iar vârsta mediană este de 27 de ani)

varsta-dezvoltatori

Acest dezechilibru între grupele de vârstă este cauzat și de faptul că un segment destul de consistent de programatori migrează ulterior către partea de management.

Dacă se ia în considerare și că programatorii sunt în general foarte bine plătiți, o justificare pentru procentul scăzut de programatori în segmentul de vârstă 50-59 și 60+ ar putea fi și faptul că aceștia au posibilitatea de a se pensiona mult mai devreme.

În plus, abia recent o carieră în domeniu a devenit una viabilă pe termen lung – matură pe piața muncii – în țările în curs de dezvoltare, fapt pentru care doar în țările dezvoltate vârsta medie a dezvoltatorilor este aproximativ egală sau mai mare decât media.

Vârsta medie a programatorilor din România este, așa cum se poate deduce din diagrama de mai jos, sub 25,5 ani.

varsta-medie-programator-dupa-tara

Majoritatea dezvoltatorilor au o experiență în programare de mai puțin de 5 ani

experienta-dezvoltatori

Această caracteristică are legătură și cu vârsta medie a majorității dezvoltatorilor (care este sub 30 de ani), dar și cu dinamica tehnologiilor – lucru care face ca dezvoltatorii să fie nevoiți să se adapteze constant la nou, altfel riscă să nu țină pasul cu noile cerințe din domeniu.

În plus, dezvoltatorii cu experiență sunt mult prea puțini ca număr pentru a satisface necesitățile curente existente pe piața muncii, drept urmare, un număr foarte mare de programatori cu puțină experiență sau fără experiență sunt asimilați de asemenea în domeniu, criteriul de selecție fiind fie competențele dovedite de programare (portofoliul), fie dovedirea caracteristicilor necesare jobului de programator (gândire analitică, meticulozitate, capacitate de abstractizare ș.a.) și doar minimale cunoștințe de programare.

Cea mai comună metodă de a te angaja ca programator/dezvoltator software este prin obținerea unei recomandări din partea unui prieten

modalitati-de-gasire-job

Mai bine de un sfert dintre programatori s-au putut angaja datorită recomandării din partea unui prieten care lucrează deja într-o companie – această metodă fiind totodată și cea mai populară metodă prin care o persoană ajunge să se angajeze pe un post de programator/software developer.

Metodele tradiționale de găsire a unui job, precum folosirea unui site/serviciu de recrutare online sau prin contactarea directă a companiei în vederea angajării sunt încă metode frecvent folosite.

Un procent relativ redus de dezvoltatori nu au fost nevoiți să își caute job, creându-și ei înșiși un loc de muncă, iar un alt segment de developeri mult mai diminuat s-a putut angaja prin intermediul rețelei de colaborare pentru dezvoltatori, Stack Overflow, sau prin intermediul rețelelor sociale Twitter și Facebook.

Cea mai importantă caracteristică a jobului dorit este salariul

top-prioritati-job

Criteriul cel mai important pe care un angajator trebuie să-l furnizeze, din punct de vedere al dezvoltatorului, este un salariu cât mai mare, urmat apoi de caracteristici precum echilibrul dintre job și timp liber, cultura companiei, calitatea colegilor, flexibilitatea programului de lucru, posibilitatea de a construi ceva semnificativ sau inovator ș.a.

În privința salariului, importanța acestuia crește în țările în care salariul mediu este unul relativ mic comparativ cu țările dezvoltate, de exemplu, dezvoltatorii din Ucraina, Polonia și România sunt și cei care acordă o importanță mai mare salariului obținut, în timp ce dezvoltatorii din Suedia, Finlanda și Germania nu acordă o importanță atât de mare venitului obținut de pe urma jobului.

importanta-bani-dupa-tara

Cele mai multe joburi din industria de software development sunt axate pe crearea de produse software

industrie-dezvoltare-software

Industria software are numeroase diviziuni, cea mai dinamică fiind aceea de dezvoltare de produse software pentru utilizatorul final, fie de tip desktop, fie mobile.

Alte diviziuni în care activează un număr mare de dezvoltatori software sunt de altă natură decât cele propuse în cadrul sondajului, servicii web, finanțe și bănci, consultare, internet, media/publicitate, sănătate, educație ș.a.

Diviziunile industriei software cu cel mai redus număr de programatori sunt: gaming, automobilă, specifică industriei de apărare, pentru întreprinderi/non-profit și aerospațială.

Circa o treime dintre dezvoltatori lucrează remote full-time sau part-time

Aceștia au o experiență și un grad de satisfacție în cadrul jobului mai mare față de cei care se deplasează și își desfășoară activitatea la locul de muncă.

programatori-remote

Din totalul dezvoltatorilor, 12,1% lucrează la distanță în regim full-time, iar 17,6% în regim part-time. România se află pe penultimul loc în cadrul clasamentului cu top 22 de țări cu cei mai mulți programatori care lucrează remote, în fruntea acestuia fiind clasate țări precum Argentina, Mexic, Statele Unite, Rusia, Finlanda și Ucraina.

top-tari-remote

Se pare că acei dezvoltatori care lucrează la distanță, fie full-time sau part-time, fie doar arareori, sunt mai satisfăcuți de activitatea profesională pe care o desfășoară decât cei care nu au această posibilitate.

gradul-de-satisfactie-dezvoltatori-remote

Mai mult decât atât, cei mai mulți dezvoltatori care lucrează remote au și un nivel mai mare de experiență în domeniu.

experienta-dezvoltatori-remote

Dezvoltatorii cei mai mulțumiți de propriile joburi sunt cei din industria de gaming, iar cei mai nemulțumiți sunt cei din domeniul telecomunicațiilor

satisfactie-profesionala-dupa-industrie-software

Aproximativ 26% dintre cei care lucrează în domeniul telecomunicațiilor, în mediul guvernamental sau în domeniul financiar nu sunt mulțumiți de jobul pe care îl au.

În schimb, gradul de satisfacție în cadrul jobului este cel mai mare pentru dezvoltatorii care lucrează în industria de gaming, internet, educație și servicii web, procentul crescând până la nivelul intervalului de 37-43%.

Dezvoltatorii angajați câștigă mai bine decât freelancerii și angajații pe cont propriu (self-employed)

salariu-dupa-tip-job

 

Atât statutul de angajat, cât și cel de freelancer presupune un set de avantaje și dezavantaje specifice – poți afla mai multe despre acest subiect din infograficul Carieră în Ctrl: Angajat vs Freelancer.

În timp ce developerii freelanceri își pot gestiona programul de lucru și au o libertate mai mare în a-și presta și desfășura munca, aceștia au de regulă un venit variabil – aspect nu tocmai pozitiv.

În schimb, dezvoltatorii angajați nu au un grad prea mare de libertate precum au freelancerii, însă se bucură de un venit stabil și, așa cum reiese din diagrama de mai sus, și unul mai mare.

Concret, angajați câștigă cu 7,19% mai mult decât freelancerii, iar această diferență crește chiar mai mult în comparație cu angajații pe cont propriu, la 20,23%.

***

Informațiile prezentate în cadrul articolului reprezintă doar o fracțiune din rezultatele sondajului. Pentru mai multe insight-uri, vizitează pagina cu rezultatele întregului sondaj realizat de Stack Overflow. Pentru dezvoltatori sau pentru cei care se pregătesc sau intenționează să înceapă o carieră în acest domeniu, toate aceste detalii pot constitui și o sursă de ghidare asupra a ceea ce se cere actualmente în domeniu.