Intrebare back-end

Salut, acum ceva timp m-am apucat de invatat React si a mers destul de bine si in principiu as vrea sa invat si ceva de back-end, ca apoi sa ma apuc sa lucrez la niste aplicatii pentru portofoliu, care in principal as vrea sa fie fullstack, nu doar front-end. Ideea e ca oscilez intre Python cu Django si Node cu Express. Ce s-ar potrivi mai bine cu React? Iar din punct de vedere al joburilor, cum se situeaza Django?

sa faci cam ce face si el

4 Likes

Pe back-end ai multe opțiuni, dacă te interesează strict angajabilitatea eu recomand Kotlin sau Java cu Spring Boot, poate Go, dar Go e trivial de învățat. Eventual .net core. Cu python/php/ruby ai problema ca te vei mula pe ceva back-end existent care n-a fost făcut pentru utilizare cu react.

Pe node/deno sunt opțiuni foarte elegante precum fastify, apollo graphql, prisma.io, hasuradb, graphql mesh, chiar Firebase și alternative la el dar foarte puține proiecte vor cere așa ceva. Eventual vezi node cu express fiindcă există multe întrebări de interviu din el, dar e oribil cand dai de cod existent cu express fără TS (aceeași situație ca și cu php/Python)

Ai multe pattern-uri de învățat (rest, gRPC, graphql, websockets cu stomp, orm-uri, dto-uri, TDD, mqtt, redis, sql, validatoare, reflection, generice la type-uri), ca si baza de date folosește strict postgres/mysql, fugi de proiectele cu mongodb, couchbase și alte baze de date miraculoase.

Ca și sumar, eu recomand foarte mult Java/Spring/Kotlin fiindcă la interviuri serioase se întreabă lucruri legate de ele. La fiecare corporație e la mare căutare.
IntelliJ e gratuit cu Java/Kotlin și VSCode nu e ce trebuie pentru back-end, nu încă. La fel și Visual Studio normal e gratuit pentru C#.

4 Likes

Multumesc de recomandare. Ideea e ca, eu pentru React am gasit un ghid cu exercitii (nu imi placce sa urmaresc doar tutoriale, pentru ca simt ca nu asimilez informatie). Mi-ai putea recomanda ceva pentru Spring in acest sens? Deci as vrea o resursa de genul fiecare capitol → exercitii finale.

@isti37 zice bine mai sus. Dar ca sa zic si eu parerea mea: da un search de joburi pe linkedin sa vezi ce tehnologii sunt cele mai cautate. Eu as merge pe backend cam asa: java cu springboot, go, node.

Daca ai gasit exercitii care folosesc react cu altceva gen Django sau Rails si deocamdata iti e greu sa intelegi cum ar merge inlocuit django cu spring, fa-le asa cum le gasesti si o sa te prinzi tu pe parcurs. Important e sa incepi de undeva.

1 Like

Am gasit doar simple de React, nu combinate, de aia voiam ceva “simplu” de Spring, ca sa ma prind putin cum sta treaba. Daca stie cineva vreun site cu exercitii sau o carte cu exercitii la fiecare final de capitol, ar fi grozav. Multumesc mult!

Daca stii JavaScript, cu siguranta node.js e cea mai buna alegere, iar Express e cel mai usor de invatat.

React devine foarte placut cand folosesti GraphQL, unde ai multe optiuni pe node.

Insa react e doar o librarie, e compatibil cu orice HTTP server :smiley:

2 Likes

Build an API. De exemplu poți lua baza asta de date și faci un API cu JWT auth pt adăugare editare pokemon…

2 Likes

Dacă vrei să înveți repede un backend, atunci Nodejs/express e mai ușor dacă ai deja experiență cu React.

3 Likes

Am uitat să precizez două framework-uri de react cu back-end inclus:

https://blitzjs.com și https://redwoodjs.com

Exista si https://www.jhipster.tech pentru spring + react dar e mai mult un bootstrapper.
Poate te ajută să vezi cum ar trebui structurat.

1 Like

M-am apucat de invatat Java. Ca ulterior sa trec pe invatat Spring. Sper sa mearga treaba. Momentan vad ca Java are niste chestii mai ciudate in comparatie cu C++, cu care am cea mai mare
familiaritate. De exemplu, ideea de pointer, desi “nu exista oficial”, e prezenta cu precadere in java, sub forma asa numitelor referinte, care spre deosebire de C++ au propriile adrese in memorie. Pe partea de OOP, pare similar, nu am ajuns inca acolo, dar sper sa ne intelegem.

Intrebare: Din ce am vazut in Java, cand aloci un String, se utilizeaza o zona de memorie numita “pool”. Din ce am inteles, aceasta nu face parte nici din heap nici din stack, ci mai degraba, e o zona speciala din JVM. As dori sa stiu daca am inteles corect. Merci.

1 Like

JVM-ul e un monstru în sine, dacă ții minte că poți să folosești doar memoria alocată VM-ului de Java cred că e destul.

La JVM cel mai important lucru de ținut minte e că vei avea warmup la aplicația ta, prima rulare (și nu numai) va cere mult mai multe resurse. (asta e foarte important ca să știi să faci debouncing la scalare automată când ai kubernetes sau să rulezi teste sintetice pentru warmup)

Se mai face asa numitul garbage collection la memorie când se umple memoria alocată vm-ului, când se face GC-ul se blochează tot vm-ul. Cu cât ai mai multă memorie alocată la VM cu atât vor fi mai multe pauze de GC.

1 Like

Lectura suplimentara
https://shipilev.net/jvm/anatomy-quarks/10-string-intern/

1 Like