Toată documentația
Toate ghidurile

Învață programare

Ce este programarea?

Înțelegi de la zero ce înseamnă să programezi: instrucțiuni, variabile, condiții, bucle și funcții, explicate cu exemple de zi cu zi.

Dacă ai ajuns aici, probabil te-ai întrebat cum se face un bot de Discord, un plugin pentru un server de joc sau un site. Răspunsul scurt: cu programare. Răspunsul lung începe cu pagina asta, scrisă pentru cineva care nu a scris niciodată o linie de cod.

Programarea, pe scurt

Un calculator este foarte rapid, dar nu știe să gândească singur. Face exact ce i se spune, pas cu pas, fără să se plictisească și fără să obosească. A programa înseamnă a scrie aceste instrucțiuni într-o formă pe care calculatorul o înțelege.

Gândește-te la o rețetă de clătite: iei un bol, torni făina, adaugi laptele, amesteci, încingi tigaia. Dacă ordinea e greșită sau lipsește un pas, rezultatul nu iese. Un program este o rețetă pentru calculator, iar tu ești cel care o scrie.

Limbaje de programare

Calculatorul înțelege la bază doar numere. Ca să nu scriem cifre toată ziua, oamenii au inventat limbaje de programare: o scriere apropiată de limbajul uman, care apoi este tradusă pentru calculator. Există multe limbaje, la fel cum există multe limbi vorbite.

  • JavaScript: rulează în browser și, cu Node.js, și pe calculator. Se folosește pentru site-uri și boți de Discord.
  • TypeScript: JavaScript cu „etichete” care te ajută să nu greșești. Îl vei învăța după JavaScript.
  • Python: foarte citibil, popular pentru scripturi, automatizări și inteligență artificială.
  • C++ și Rust: limbaje mai apropiate de mașină, folosite când contează viteza.
  • Lua, Java, Pawn: limbaje întâlnite în plugin-uri și moduri pentru servere de joc.

Ideea bună: odată ce înțelegi conceptele de bază, trecerea de la un limbaj la altul e mult mai ușoară. Variabilele, condițiile, buclele și funcțiile există peste tot, doar scrierea diferă puțin.

Variabilele: cutii cu etichetă

O variabilă este o cutie cu o etichetă pe ea. În cutie ții o valoare (un număr, un text), iar eticheta e numele cu care o găsești mai târziu. Poți schimba oricând ce e în cutie.

variabile.jsjavascript
let nume = 'Alex';
let nivel = 3;
console.log('Salut, ' + nume + '! Ești la nivelul ' + nivel);
nivel = nivel + 1;
console.log('Acum ești la nivelul ' + nivel);

Rezultat

Salut, Alex! Ești la nivelul 3
Acum ești la nivelul 4

Nu te speria de cuvintele noi. let creează o variabilă, iar console.log afișează ceva pe ecran. Observă că nivel = nivel + 1 nu e o greșeală de matematică: înseamnă „ia valoarea de acum, adaugă 1 și pune rezultatul înapoi în cutie”.

În viața de zi cu zi spui „dacă plouă, iau umbrela; altfel, nu”. Programele iau decizii la fel, cu if și else. Calculatorul verifică o condiție, iar rezultatul e fie adevărat, fie fals.

conditie.jsjavascript
const xp = 120;

if (xp >= 100) {
  console.log('Ai trecut la nivelul următor!');
} else {
  console.log('Mai ai de strâns XP.');
}

Rezultat

Ai trecut la nivelul următor!

Buclele: repetiții

Dacă ți-ar cere cineva să scrii „Bună” de o sută de ori, ai copia textul de o sută de ori? Un program nu face asta. Folosește o buclă, adică spune calculatorului „repetă asta de atâtea ori”.

bucla.jsjavascript
for (let i = 1; i <= 3; i++) {
  console.log('Runda ' + i);
}

Rezultat

Runda 1
Runda 2
Runda 3

Citește bucla așa: începe cu i egal cu 1, cât timp i este cel mult 3 execută corpul, iar după fiecare rundă crește i cu 1.

Funcțiile: rețete reutilizabile

O funcție este un set de instrucțiuni căruia îi dai un nume, ca să-l poți folosi de câte ori vrei. Funcția primește ceva (de exemplu un nume), face o treabă și poate întoarce un rezultat. Ca un aparat de făcut cafea: apeși un buton, iese cafea, iar tu nu trebuie să știi ce se întâmplă înăuntru.

functie.jsjavascript
function salut(nume) {
  return 'Salut, ' + nume + '!';
}

console.log(salut('Maria'));
console.log(salut('Andrei'));

Rezultat

Salut, Maria!
Salut, Andrei!

Aceleași idei arată puțin diferit în Python. Compară: aici o buclă trece printr-o listă de nume, iar spațiile de la începutul rândului (indentarea) arată ce face parte din buclă.

bucla.pypython
jucatori = ['Ana', 'Bogdan', 'Carmen']

for jucator in jucatori:
    print('Bun venit,', jucator)

Rezultat

Bun venit, Ana
Bun venit, Bogdan
Bun venit, Carmen

Nu trebuie să memorezi nimic acum. Scopul paginii e să vezi că aceste patru idei (variabile, condiții, bucle, funcții) apar în aproape orice program. Detaliile le exersezi în tutorialele următoare.

Cum înveți eficient

  • Scrie codul cu mâna, nu doar îl citi. Copiază exemplele, rulează-le, apoi schimbă câte ceva și vezi ce se întâmplă.
  • Citește mesajele de eroare. Nu sunt o pedeapsă: îți spun de obicei în ce fișier și pe ce rând s-a stricat ceva.
  • Fă proiecte mici. Un program care calculează nivelul din XP te învață mai mult decât zece ore de teorie.
  • Greșeala e normală. Orice programator, oricât de experimentat, își petrece mult timp reparând greșeli.
  • Exersează puțin, dar des. Treizeci de minute pe zi bat cinci ore o singură dată pe lună.
  • Nu sări peste pași. Dacă ceva nu e clar, întoarce-te un tutorial în urmă.

Ce poți construi

Programarea te ajută să faci lucruri concrete, în funcție de ce te atrage. Nu promitem că vei construi un joc întreg în prima lună, dar cu răbdare poți ajunge să faci:

  • un bot de Discord care răspunde la comenzi, în JavaScript;
  • un plugin pentru un server de Minecraft;
  • o resursă pentru un server FiveM, în Lua;
  • un gamemode pentru un server SA-MP sau open.mp, în Pawn;
  • un site sau o mică aplicație web, în JavaScript sau TypeScript;
  • scripturi care îți automatizează treburile plictisitoare, în Python.

Traseul de aici înainte

Pasul următor nu este încă un limbaj, ci pregătirea calculatorului. În tutorialul despre mediul de lucru instalezi un editor de cod și uneltele de care ai nevoie pe Windows. După aceea alegi un limbaj: JavaScript este o alegere bună de start, apoi TypeScript, Python, C++ sau Rust. Traseul complet îl găsești în pagina dedicată.