Development Factory

Tutoriale și cursuri de programare pentru începători, sfaturi de carieră, dar nu numai 👩‍💻.
Sfaturi practice, informații și păreri bazate pe experiență personală 🔥, nu fabulații .
Nu uita să te abonezi dacă vrei să-ți ridici capabilitățile tehnice și să-ți duci cariera la următorul nivel. 🚀


Development Factory

Te-ai întrebat vreodată cum se face “navigarea” pe internet?

În principiu, pentru tine, ca și utilizator, doar deschizi o aplicație de tip browser de internet, unde scrii o adresă și apeși enter, iar browser-ul te duce pe pagina ce reprezintă adresa respectivă.

Adresa asta, pe care tu o scrii în browser, se numește domeniu, sau nume de domeniu și este unicat pe tot internetul.

Numele de domeniu, e alcătuit din 2 părți, să luăm ca exemplu “developmentfactory.ro”.

Cele 2 părți ale acestei adrese sunt pe de o parte “developmentfactory” și pe de altă parte “ro”.

Prima parte, în acest caz “developmentfactory”, dar poate fi la fel de bine și “google” să spunem, se cheamă “second level domain”, sau domeniu de nivel secundar. Iar cea de-a doua parte, “ro”, se cheamă “top level domain” sau domeniu de nivel înalt.

Și e de cele mai multe ori reprezentată de codul țării de proveniență al domeniului, dar nu e obligatoriu.

Noi folosim aceste nume de domenii pentru a face browsing pe internet, dar de fapt, pentru a ajunge la serverul ce găzduiește fișierele sursă ale unui site, se folosește adresa IP a acestuia și nu numele de domeniu.

Domeniul e doar pentru noi, oamenii, pentru a putea reține mai ușor adresele site-urilor care ne interesează, pentru că dacă în loc de “google.com” ar fi nevoie să scrii în browser “142.251.208.110”, nu cred că ți-ar fi atât de ușor să o reții.

Mai mult decât atât, IP-urile care răspund la interogarea unei anumite adrese de domeniu se pot schimba din varii motive și atunci chiar ar deveni imposibil pentru noi ca oameni să “operăm” pe internet.

Vrei să înveți mai multe? → developmentfactory.ro/

1 hour ago | [YT] | 2

Development Factory

Ce este o funcție constructor în JavaScript?

Funcțiile constructor nu prezintă niciun fel de diferențe stintactice față de funcțiile normale, ci mai degrabă respectă niște convenții.

⁕ Trebuie declarate cu majusculă
⁕ Trebuie să denote tipul obiectului obținut în urma creării unei instanțe

Deci denumirea unei funcții constructor nu poate fi 𝐠𝐞𝐭𝐄𝐦𝐩𝐥𝐨𝐲𝐞𝐞 sau 𝐜𝐫𝐞𝐚𝐭𝐞𝐄𝐦𝐩𝐥𝐨𝐲𝐞𝐞, ci simplu 𝐄𝐦𝐩𝐥𝐨𝐲𝐞𝐞, pentru că ăsta ar fi tipul obiectului obținut în urma creării unei instanțe.

Unde instanță înseamnă formarea unui obiect de structura funcției respective, folosind cuvântul cheie 𝐧𝐞𝐰.

Prin “structură” ne referim la toți membri funcției respective, atât proprietăți cât și metode (sub-funcții).

Vrei să înveți mai multe? Înscrie-te pe lista de așteptare pentru JavaScript Masterclass aici → learn.developmentfactory.ro/javascript-masterclass

3 days ago | [YT] | 12

Development Factory

Salutare,

Bogdan aici, vreau să-ți urez un an nou cât mai bun și mult succes în tot ceea ce ți-ai propus.

Vacanța e aproape pe sfârșite, suntem cu toții pe cale să ne întoarcem la muncă, la facultate/școală, sau la activitățile de zi cu zi.

Cu ocazia asta, vreau să-ți reamintesc că o dată cu vacanța se încheie și promoția de final de an.

𝐍𝐮 𝐯𝐚 𝐦𝐚𝐢 𝐟𝐢 𝐚𝐥𝐭ă 𝐫𝐞𝐝𝐮𝐜𝐞𝐫𝐞 𝐩𝐞𝐧𝐭𝐫𝐮 𝐨 𝐩𝐞𝐫𝐢𝐨𝐚𝐝ă, așa că dacă ești hotărât să te pui pe treabă anul ăsta, acum e cea mai bună ocazie să începi.

𝐀𝐭𝐞𝐧ț𝐢𝐞! 𝐌𝐚𝐢 𝐬𝐮𝐧𝐭 𝐝𝐨𝐚𝐫 6 𝐜𝐮𝐩𝐨𝐚𝐧𝐞 𝐝𝐞 𝐫𝐞𝐝𝐮𝐜𝐞𝐫𝐞 𝐝𝐢𝐬𝐩𝐨𝐧𝐢𝐛𝐢𝐥𝐞.

Înscrie-te cu 40% reducere aici → learn.developmentfactory.ro/products?coupon=christ…

Promoția se încheie în 24 de ore, sau o dată cu epuizarea cupoanelor.

De asemenea, sunt în lucru două cursuri noi care vor apărea în următoarele luni pe platformă:

- JavaScript Masterclass, îl găsești aici → learn.developmentfactory.ro/javascript-masterclass
- Git & GitHub Enterprise: Fluxuri de lucru ale dezvoltatorilor profesioniști, îl găsești aici → learn.developmentfactory.ro/git-si-github-enterpri…

Dacă ești interesat asigură-te că te înscrii pe lista de așteptare pentru vești despre progres și reduceri exclusive la lansare.

Toate cele bune!

3 days ago | [YT] | 2

Development Factory

Ce este un hash?

Mulți începători fac confuzie între termeni precum: encoding, encryption și hashing.

Poate toate sună ca niște procese prin care “ascundem” anumite valori pentru a nu fi văzute și înțelese de oameni, dar nu e chiar așa.

Hash-ul e o modalitate de a transforma valori de tip text astfel încât să nu poată fi înțeleasă de oameni.

O particularitate importantă totuși, e faptul că secvența de transformări executată pentru a obține un hash este ireversibilă.

Lucru care face ca hash-ul să fie un procedeu extrem de util atunci când vrem să securizăm anumite date, precum parolele, dacă vrei.

Cum verificăm atunci o parolă dacă procesul de hash este ireversibil?

Avantajul este că aplicând același algoritm de hash, cu aceeași parametri, pe aceeași bucățică de text va face să obținem același hash de fiecare dată.

Și atunci verificarea unei parole de utilizator în timpul procesului de login se face prin generarea hash-ului parolei introduse și compararea lui cu cel existent în baza de date.

Astfel validăm dacă parola introdusă este validă sau nu, fără să “știm” exact care anume e parola utilizatorului respectiv, securizând astfel și baza de date împotriva potențialelor scurgeri de date.

PS. Niciodată să nu salvezi parole sau credențiale de acces de orice fel în baza de date în format clar.

Vrei să înveți mai multe? → developmentfactory.ro/

6 days ago | [YT] | 10

Development Factory

Salutare,

Uite de ce cred eu că C# e unul din cele mai bune limbaje de programare cu care să-ți clădești o carieră de inginer software.

- E unul dintre cele mai performante din limbajele high level
- Dispune de o platformă completă de dezvoltare pentru toate tipurile de aplicații existente și integrare facilă în toate platformele mari de cloud
- E combinația perfectă de sintaxă cu capabilități moderne

C# nu mai e limbajul despre care se spune că e doar o copie de Java, acum e limbajul care inovează și care inspiră și alte platforme de dezvoltare prin capabilități precum async/await sau LINQ.

Discutăm despre aceste capabilități în detaliu în C# Masterclass cât și despre multe altele:

✓ Programare orientată pe obiect
✓ Programare funcțională (evenimente, delegați, expresii lambda etc.)
✓ Tipuri generice și problemele pe care le rezolvă
✓ Construim 3 proiecte de la zero, cu complexități graduale

Toate explicate pe înțelesul tuturor și însoțite de diagrame sau elemente vizuale care să te ajute să-ți fundamenteze cunoștințele, nu e nevoie să memorezi nimic.

Pe lângă asta, primești bonus:

⁕ Un minicurs de structuri de date (te va ajuta foarte mult la eventualele întrebări de interviu)
⁕ Un minicurs de baze de date relaționale + Entity Framework (ORM pentru comunicarea cu baza de date)
⁕ O colecție de câteva zeci de întrebări de interviu adunate din experiența personală + răspunsuri
⁕ Un mind-map care te va ajuta să ai o viziune completa a tot ceea ce trebuie să înveți de la zero la senior

Înscrie-te cu 40% reducere aici → learn.developmentfactory.ro/csharp-masterclass?cou…

1 week ago | [YT] | 6

Development Factory

Știai că în JavaScript există și posibilitatea de a lucra cu clase?

În încercarea de a împrumuta caracteristici de la limbajele orientate pe obiect, versiunile moderne de JavaScript suportă și folosirea claselor.

În momentul în care folosim sintaxa de tip clasă, parametri necesari construcției obiectului vor fi pasați printr-o metodă (funcțiile declarate în interiorul claselor poartă de asemenea numele de metode) dedicată denumită constructor și al cărui cuvânt cheie este de asemenea 𝐜𝐨𝐧𝐬𝐭𝐫𝐮𝐜𝐭𝐨𝐫.

Metodele din clasă nu pot fi apelate pe clasă în mod direct, ci doar prin obținerea unei instanțe de obiect, folosind cuvântul cheie 𝐧𝐞𝐰.

× 𝐄𝐦𝐩𝐥𝐨𝐲𝐞𝐞.𝐩𝐫𝐞𝐬𝐞𝐧𝐭()

✓ 𝐜𝐨𝐧𝐬𝐭 𝐞𝐦𝐩𝐥𝐨𝐲𝐞𝐞 = 𝐧𝐞𝐰 𝐄𝐦𝐩𝐥𝐨𝐲𝐞𝐞(”𝐏𝐫𝐨𝐠𝐫𝐚𝐦𝐚𝐭𝐨𝐫”); 𝐞𝐦𝐩𝐥𝐨𝐲𝐞𝐞.𝐩𝐫𝐞𝐬𝐞𝐧𝐭();

Vrei să înveți mai multe? Înscrie-te pe lista de așteptare pentru JavaScript Masterclass aici → learn.developmentfactory.ro/javascript-masterclass

1 week ago | [YT] | 11

Development Factory

Limbajul pseudocod e un mod de a transpune instrucțiunile logice în scris, pentru a le vizualiza mai bine.

Limbajul pseudocod e un “limbaj”, un fel de sintaxă, ce seamănă într-o oarecare măsură cu programarea, dar este ceva mai apropiată de limbajul uman, pentru că scopul nu e de a obține cod gata de executat, ci mai degrabă de a descifra algoritmul folosindu-ne de aceleași elemente de control al execuției ca și într-un limbaj de programare.

E o formă extrem de simplificată a unui limbaj de programare, dacă vrei.

Vrei să înveți mai multe? → developmentfactory.ro/

1 week ago | [YT] | 6

Development Factory

Dacă ți-ai propus să înveți Web Development în 2026 s-ar putea să fii interesat de ceea ce urmează să-ți propun.

Știu că HTML și CSS par banale în ochii multor începători, dar adevărul e că cei mai mulți subestimează importanța lor și sar direct la frameworks precum Tailwind sau Bootstrap și ajung apoi să se chinuie să centreze un `div` folosind AI, care s-ar putea să sugereze o metodă ce nu se mai folosește în CSS-ul modern.

Dar va merge totuși, pentru că CSS așa a fost gândit.

Nu mai zic HTML, pe care majoritatea nici nu îl mai iau în seamă și folosesc `div`-uri fără să mai țină cont de nimic, ignorând complet semantica și impactul ei asupra poziționării în motoarele de căutare.

În acest sens, uite ce o să înveți în cursul de HTML & CSS de la ZERO:

✓ Bazele infrastructurii și comunicării web
✓ Elemente fundamentale de HTML & CSS (e important să stăpânești foarte bine bazele)
✓ Elemente și tehnici avansate de HTML & CSS (grid, flexbox, convenții de denumire, animații și multe altele..)
✓ Testare și optimizare SEO
✓ Dezvoltarea și publicarea de la zero a unui site 100% profesional
✓ Monitorizarea activității de pe site
✓ Configurarea unei infrastructuri de livrare pentru a pune viitoarele actualizări ale site-ului pe pilot automat
✓ Pe tot parcursul dezvoltării lucrăm cu Git și GitHub - versionăm codul pentru un istoric clar
✓ Pe lângă toate astea: o colecție de resurse care te vor ajuta să dezvolți mult mai rapid

Înscrie-te cu 40% reducere aici → learn.developmentfactory.ro/html-si-css-de-la-zero…
𝐏𝐒. 𝐌𝐚𝐢 𝐬𝐮𝐧𝐭 𝐝𝐨𝐚𝐫 15 𝐜𝐮𝐩𝐨𝐚𝐧𝐞 𝐝𝐞 𝐫𝐞𝐝𝐮𝐜𝐞𝐫𝐞

2 weeks ago | [YT] | 3

Development Factory

Ca programator, indiferent ce program sau stil de viață ai, sigur te-ai confruntat cu timpi destul de lungi de stat la birou.

Statul pe scaun foarte multe ore în fiecare zi îți poate duce o serie de probleme de sănătate:

× Dureri de spate
× Probleme de vedere
× Tunel carpian
× Confuzie și dureri de cap

Probleme cu somnul, care pot apărea și din cauza consumului excesiv de cafea.

Nu ignora problemele astea și ia-ți din timp măsuri pentru a le preveni, chiar dacă acum nu-ți pare nimic grav, se acumulează.

Partea proastă e că foarte mulți oameni care lucrează în domeniu au o stare de sănătate mult mai proastă decât ar trebui.

Ce poți să faci ca să nu ajungi și tu acolo:

✓ Firmele oferă în pachetele de beneficii reduceri la sălile de sport de cele mai multe ori, folosește-le
✓ Dacă nu ai timp să te duci la sală, încearcă să faci ceva sport acasă sau să te ridici des de pe scaun
✓ Folosește YouTube ca sursă de inspirație pentru programele tale de antrenament
✓ Încearcă să folosești un scaun ergonomic
✓ Încearcă să menții o postură bună
✓ Dacă lucrezi de acasă, nu lucra din pat

Încearcă să nu abuzezi de cafea (sau energizante), boost-ul de productivitate e placut, dar s-ar putea să nu te mai poți odihni cum trebuie.

Dacă iei câteva măsuri de genul ăsta, vei încetini mult problemele de sănătate specifice programatorilor.

Vrei să înveți mai multe? → developmentfactory.ro/

2 weeks ago | [YT] | 12

Development Factory

Un 𝐇𝐚𝐬𝐡𝐓𝐚𝐛𝐥𝐞 e o structură de date ce stochează elemente de tip perechi, cheie și valoare, astfel încât să se asigure unicitatea elementelor stocate, întrucât nu pot exista 2 elemente cu aceeași cheie.

Aceeași structură de date poate fi întâlnită și sub denumirea de “Dicționar”.

Indexul nu este altceva decât un număr de ordine al elementelor stocate. Valoarea lui e întotdeauna de tip număr întreg.

Acest index de asemenea folosit pentru a accesa și identifica în mod direct elementele.

Într-o structură de date ceva mai simplistă, precum un `Array`, acest index este incrementat automat cu 1 la fiecare nouă adăugare, astfel că el reprezintă ordinea în care elementele au fost adăugate, de la primul până la ultimul.

Într-un 𝐇𝐚𝐬𝐡𝐓𝐚𝐛𝐥𝐞 obținerea indexului se face puțin diferit și nu este incrementat la fiecare adăugare. Indexul este generat prin trecerea valorii ce urmează a fi stocate printr-o funcție ce poartă numele de funcție 𝐡𝐚𝐬𝐡.

Există diferite implementări de funcții 𝐡𝐚𝐬𝐡, dar în principiu ele reprezintă secvențe de operații logice și/sau matematice ce transformă o valoare ce poate fi numerică sau text (𝐬𝐭𝐫𝐢𝐧𝐠) într-un număr ce poartă numele de cod hash ("hash code").

În cazul unui 𝐇𝐚𝐬𝐡𝐓𝐚𝐛𝐥𝐞, indexul este generat de o funcție 𝐡𝐚𝐬𝐡, de aici și numele structurii de date.

Vrei să înveți mai multe? → developmentfactory.ro/

2 weeks ago | [YT] | 6