Ce limbaj de programare sa aleg pentru Back-End Development

backend
.net
java
python
ruby
(Horea Ginsca) #1

Salutare tuturor!

Am inceput sa invat Frontend Development acum un an jumate (am fost si la un curs sustinut de Scoala Informala de IT), insa dupa terminarea cursului am aplicat la foarte multe firme, fie pe pozitii de Junior sau Internshipuri, insa cred ca doar 6-7 firme (din 70-80 la care am aplicat) mi-au raspuns si mi-au trimis teste online sau m-au chemat la sediul lor pentru a sustine un interviu. Insa, cand am primit testul, am fost surprins sa vad ca majoritatea intrebarilor nu tineau doar de Frontend, ci si de Java, SQL, multe probleme de algoritmica etc. Am reusit sa trec si la etapa urmatoare, insa la urmatorul test (de la sediul firmei) nu am avut nici o sansa. Tin sa precizez ca posturile pentru care am aplicat erau: Junior Javascript Developer, Javascript Internship, React Internship, Web Developer, Front End Developer.

Mi-am dat seama ca e foarte greu sa gasesti un job daca stii doar Frontend (HTML,CSS, Javascript, putin React insa nu sunt foarte bun + un Github portfolio) si ma gandesc sa invat si un limbaj pentru Backend. Am observat ca majoritatea firmelor din Cluj cauta oameni care stiu Java, .NET si C. Desi sunt mai grele, ma gandesc sa incerc cu .NET, insa am vazut si firme care cauta Ruby, Python sau Nodejs developeri.

As dori sa stiu care ar fi parerea voastra? Sa incep cu un limbaj care e la mare cautare cum ar fi Java, .NET sau chiar PHP sau sa incep cu limbajele care sunt mai usoare (Python, Ruby). Am mai lucrat si cu Nodejs in trecut.

Va multumesc!

(Ionuț Staicu) #2

Ai prieteni programatori? Învață ce programează ei. Îți va fi mai ușor să găsești ajutor la întrebări de moment.


Este aceeași discuție care s-a mai ținut de zeci de ori, atât pe DevForum cât și pe restul internetului.

Gist-ul e ăsta: ce relevanță are că azi e la mare căutare și e pe val dacă tu nu ești la nivelul potrivit? În cât timp poți fi up to speed? O lună? Un an? Doi? Mai mult? Ești sigur că după această perioadă va fi tot pe val?

PS: ActionScript era căutat până prin 2010. ObjectiveC era căutat până în 2014.

1 Like
(Horea Ginsca) #3

Mersi!

Unii mi-au recomandat sa ma tin tot de Javascript si React, altii au spus sa ma axez pe Nodejs, insa am observat ca aproape toti agajatorii cauta Java, .NET sau C++ Developers. Am sa mai intreb pe cativa cunoscuti si voi decide in urmatoarele zile pe ce sa ma axez.

1 Like
(Ionuț Staicu) #4

Aproape toți angajatorii la care ai fost.

Eu, de exemplu, nu am văzut vreo firmă care folosește/caută c++ în ultimii 5ani+. Ce ar însemna asta? Că nu există astfel de firme? Sau că interesele noastre nu s-au intersectat? :slight_smile:

1 Like
(Horea Ginsca) #5

Spuneam doar ca la majoritatea firmelor care organizeaza programe de internship, observ in principiu Java sau .NET. Bineinteles, sunt multe firme care cauta si Python, Ruby sau Nodejs developers (junior, mid, senior), insa dupa ce am constatat ca nimeni nu mi-a raspuns la mailuri cand am aplicat la pozitii de Junior, am spus ca doar la Internship-uri mai are rost sa aplic. Sa inteleg ca e ok daca incep cu Python sau continui cu Nodejs (tutoriale online).

(Victor) #6

Daca stii javascript, invata bine node.js, mai ales daca zici ca ai mai lucrat cu el. Cauta cateva resurse bune - cursuri online, ebooks etc - si in cateva luni poti sa fii foarte productiv.

(Adrian) #7

Ca tot ai pomenit de .net si java, daca as avea de ales intre cele doua, as alege java. Sunt vreo cateva motive, mi-e lene sa detaliez :slight_smile:

(Floki) #8

Mitul ăsta cu sute de mii de job-uri în IT e doar un mit.

HTML, CSS… asta înseamnă că știi să citești și tabla înmulțirii. Știi un pic de javascript și vrei să treci la back-end (eventual altceva decât javascript) - o poți face, dar nu recomand.

Dacă abordezi simultan prea multe tehnologii care fac același lucru, vei ajunge să nu știi nici una. La nivel de hobby e ok, dar nu să trăiești din asta. Poți trece de la o tehnologie la alta abia după ce o vei fi aprofundat pe prima. Nu e simplu să basculezi, de exemplu, între Ruby și PHP, să nu mai zic de Java sau .NET. Chiar și cu două frameworkuri de PHP poți lucra binișor abia după ceva timp.

Înainte să te apuci de alte șapte mii de tehnologii de back-end, ia un framework javascript că tot știi ceva, React sau Vue, și lucrează cu el. Dacă ești bun la asta, mulți ani de acum înainte ai din ce trăi. În timp poți aborda back-end în aceeași familie (node.js).

(cosmos) #9

Salut !

Ti-as zice sa încerci sa devii un programator agil. Nu cred ca se mai cauta numai programator java sau C# sau php etc. Se cauta persoana care se adaptează într-un timp rezonabil. Eu am invatat, cel puțin la nivel de junior java, asta in condițiile in care înainte de acest job mai mult de un Hello World nu am scris in java. Dar pt ca aveam bazele oop-ului si am mai lucrat in c# si web nu a fost dificil sa îl învăț

Javascript este popular si in Romania si in stainatate. Poate rula pe cam orice platforma si te vei lovi de el in multe situatii.

O alta sugestie este sa faci code katas. Sunt tot felul de exercitii care iti intiparesc conceptele si limbajul în minte mai bine. Testele de la interviuri pot fi rezolvate cam în orice limbaj. Eu am un coleg care a programat in php de ceva timp si a venit la noi pe java dev.

La fel cum @iamntz a zis ca nu a mai văzut vreo firma care cauta c++, asa iți zic și eu ca nu prea am mai văzut job-uri unde se cere Ruby și Ruby on Rails :smiley: Dar nicio data nu știi !

Alaturi de limbaj, vezi si despre ecosistemul din jurtul lui precum:

  • Framework-uri de testare (Junit, Nunit, Xunit, PHPUnit)
  • Unele de build (maven, graddle, msbuild, npm)
  • Unelete pt gestiunea depedintelor (tot maven, nuget, npm etc)
  • Chiar si ide-urile fac parte din ecosistem
  • Comunitatea

Internship-urile sunt ok. In general sunt orientate pe învățare și task-uri mai ușoare din realitate. Ai timp sa experimentezi si nu va fi presiunea specifica realității pe tine. Daca te descurci decent la internship, exista posibilitatea sa devii angajat permanent.

Sper ca răspunsul meu sa te ajute și multa bafta !

2 Likes
(George Ilie) #10

Am invatat front-end când nu prea erau framework-uri pentru asta.

La început și eu am realizat că e nevoie și de back-end. Am început cu .NET și nu prea am fost încântat.
Am trecut apoi la PHP, care mi-a plăcut, dar care era incomplet, nu eram foarte mulțumit.
Apoi a apărut NodeJS, care mi s-a potrivit ca o mănușă.

Practic am invatat ce mi-a plăcut.
Depinde de obiectivele fiecăruia.
Pe termen lung mă refer.
Deși este posibil să scrii cod până la pensie, eu nu mă văd angajat la 60 de ani să fac aplicații web.
Decât dacă te lipești de o companie, faci carieră și te promovează/directioneaza ei.

Alternativa ar fi să te îndrepți spre antreprenoriat, iar cu înaintarea în vârstă fie te ocupi de consultanță, fie ai un produs din care să ai venituri.

(Horea Ginsca) #11

Am observat ca majoritatea angajatorilor vor pe o pozitie de Internship, pe cineva care stie un pic din toate, ca o salata. Iar la interviuri se vede clar diferenta intre un student la Universitate, care deja stie si SQL si Java si rezolva problemele de algoritmica cu usurinta si unul care in timpul liber, invata doar tehnologii de Frontend. Sunt de acord ca trebuie sa stapanesti cat mai bine un limbaj (Javascript) + React si doar dupa aceea sa incepi cu backend, insa nu sunt destule internshipuri strict pe Frontend. Am urmarit sfatul unui prieten si mi-am facut cont pe Upwork si Freelancer sa vad daca exista posibilitatea (oricat de mica) sa fac un proiect mai usor (modificat un template, add responsiveness to a website etc.), insa pe Upwork nici nu am fost acceptat din cauza lipsei de experienta iar pe Freelancer sunt foarte foarte multi cu experienta cu care nu puteam concura.

Sunt constient de faptul ca daca incepi cu un limbaj, de exemplu Java, trebuie sa ramai cu el si sa aprofundezi cat mai mult.

Long story short - Voi vedea in urmatoarele zile daca voi alege intre Java sau voi continua cu Nodejs pentru Backend si ma voi focusa tot pe Javascript si React pentru Frontend. Inclusiv la curs ni s-a spus sa ne axam pe Nodejs, deoarece va fi mult mai cautat, insa pana acum am observat doar Java si .NET.

Va multumesc tuturor pentru sfaturi!

(Adrian) #12

Nodejs e si foarte hyped. Ai grija la ‘va fi mult mai cautat’, pentru ca nimeni nu are glob de cristal care sa ghiceasca viitorul.

Am gasit rapid asta: https://www.similartech.com/technologies/nodejs (market share in ‘business’ 7.74%)
Se pot face si comparatii:
https://www.similartech.com/compare/nodejs-vs-php
https://www.similartech.com/compare/asp-net-vs-nodejs
https://www.similartech.com/compare/java-vs-nodejs
PS Avantajul java se pare ca nu vine de la ‘websites’: https://www.similartech.com/technologies/java

(Victor) #13

node.js e hyped pt ca este extrem de folosit, cererea e foarte mare, iar ritmul inovatiei e destul de mare (mult mai mare ca la php si ruby, de ex).

Insa cel mai bine vbeste stackoverflow despre asta - https://insights.stackoverflow.com/survey/2019

Node.js castiga (sau este printre primele) la toate categoriile unde este comparat cu alte limbaje / platforme cu care poti dezvolta server side APIs - uita-te la Most Loved, Dreaded, and Wanted Web Frameworks si Most Loved, Dreaded, and Wanted Other Frameworks, Libraries, and Tools.

(Ovidiu Grigoras) #14

Imi este foarte foarte greu sa cred ca te-ai descurcat la testele tehnice (html css javascript) si nu te-au acceptat ca nu stiai limbaj de backend. Si daca tot am ales sa privesc situatia in modul asta, nu-ti recomand sa te apuci de un alt limbaj de programare, o sa fie un amalgam de cunostinte in capul tau si n-ai sa reusesti sa le mai legi intre ele. La ce nivel te consideri tu ca stii JavaScript ? eu inca nu am intalnit firma care sa zica “ah stii JS dar nu stii react, dam pas” - asta la nivel de junior. Eu am luat interni la noi la firma care stiau cat de cat js si m-am angajat sa-i aduc pe un drum bun in 2 luni - ceea ce am si reusit. Acum unii lucreaza pe react altii pe angular si se descurca bine. Firmele care refuza sa ia un JUNIOR pe motiv ca nu stie react inseamna ca nu vor sa investeasca timp in trainuirea ta - de aici as trage o concluzie ca n-as vrea sa fac parte din echipa lor. Nu vrei sa lucrezi in programare(mai ales la inceput fiind) cu oameni care n-au rabdare.

(Adrian) #15

Din ce zic cei de mai sus, este extrem de nefolosit: vs php, 123,778 site-uri pentru nodejs, vs 7,648,207 pentru php. Sa nu uitam ca mai au si altele parte de ‘piata’.

Loved & wanted nu e tot una cu ‘used’. Si eu ‘iubesc’ clojure, de exemplu, dar asta nu inseamna ca folosesc la greu, sau macar ca intentionez pe proiecte serioase.

Rust e in categoria ‘most loved’, curios ca nu se reflecta deloc in ‘most used’.

(Victor) #16

Loved inseamna ca developerilor le place sa lucreze cu el, dar nu ii scriu neaparat biletele de dragoste.
Wanted = cererea de piata, atat de la developers cat si de la angajatori.

Cine vrea sa foloseasca node.js sta la loc caldut cativa ani de acum incolo.

#17

Nu invata alte limbaje. Recomandarea mea ar fi sa iti construiesti un portfoliu de proiecte (doar frontend) foarte solid.

Citeste articolul asta:

Proiectele sa fie cat mai complexe din punct de vedere al UI-ului, fara “To-Do apps” si cacaturi de genu. Puncte bonus daca le faci in React/Angular. Le hostezi, gen pe Heroku ca e gratis, pui codul frumos pe GitHub sa poata vedea angajatorul ce ai lucrat si in site-ul de portofoliu pui link spre proiectul in sine si repository-u de GitHub. Pro tip: faci un board public de Trello pentru fiecare proiect sa vada ca sti sa lucrezi cu cacaturi “Agile”.

Facand proiectele respective o sa aprofundezi JavaScript, HTML si CSS si o sa poti sa sari peste pozitiile de Junior si sa aplici direct pe pozitii de Mid.

Bafta.

1 Like
(Adrian) #18

Nope. Wanted: “number of developers who are not developing with the language or technology but have expressed interest in developing with it”. Citat de acolo. N-are treaba cu cererea de piata. Are treaba cu ‘ce mi-ar place mie sa lucrez cu asta’.

1 Like
(Victor) #19

Ai dreptate, my bad.

(Horea Ginsca) #20

Nu am spus ca stapanesc complet Javascriptul. Tot timpul recunosc ca trebuie sa exersezi si sa inveti, insa mirarea mea a fost cand am aplicat la internship de React, repet React Internship si la testul online am primit mai multe intrebari de Java decat de HTML, CSS, Javascript. Nu a fost nici o intrebare despre React de exemplu. La alta companie (tot pentru Web internship), la testul tehnic pe care l-am sustinut la sediul lor, am primit tot intrebari din Java, SQL, algoritmica, logica si putin HTML,CSS, JS. Din 15 oameni care dadeam testul, restul fiind studenti mai tineri, am observat ca toti majoritatea se descurcau mult mai bine.

Avand in vedere ca pana acum nu am primit nici macar un raspuns de la firmele care cautau Junior Frontend sau Web Developer, ma intreb daca mai are rost sa ma focusez in continuare tot pe Frontend (adica Javascript si React) sau o perioada sa invat Java mai mult sau alt limbaj pentru Backend si sa o iau mai usor cu Frontendul, deoarece observ ca foarte multi cauta o persoana care sa stie cat mai multe si studentii din cate am observat fac fata destul de bine + ca au avantajul cu facultatea.