# Cum se lucrează la provocările programării
Scopul nostru este să dezvoltăm o experienţă de învăţare interactivă şi amuzantă.
Este dificil de creat provocări de codificare interactivă. Ar fi mult mai ușor să scrii o explicație lungă sau să creezi un tutorial video, Și e un loc pentru cei de pe mediu și YouTube. Cu toate acestea, pentru programa noastră de bază, rămânem cu ceea ce funcționează cel mai bine pentru majoritatea oamenilor - o experiență complet interactivă, ca un joc video.
Vrem ca camerele de luat vederi să atingă o stare de flux. Vrem ca ei să dea un impuls și să exploreze programa noastră cu cât mai puține impedimente posibil. Dorim ca acestea să intre în proiecte cu încredere şi să obţină o expunere largă la conceptele de programare.
Crearea acestor provocări necesită o creativitate și o atenție uriașă pentru detalii. Există destul ajutor disponibil. Vei avea sprijin de la o întreagă echipă de colaboratori la care poți sări ideile și să demonstri provocările tale. Rămâi activ în [camera contributorilor](https://gitter.im/freecodecamp/contributors) și pune o mulțime de întrebări.
Cu ajutorul tău putem proiecta o programă de programare interactivă care va ajuta milioane de oameni să învețe programare ani de acum încolo.
Conținutul fiecărei provocări este stocat în propriul fișier markdown. Acest fișier markdown este transformat mai târziu în HTML folosind uneltele noastre pentru a crea pagini web interactive.
Puteţi găsi tot conţinutul curricular al freeCodeCamp.org-ului în directorul [`/curriculum/challenges`](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges).
## Configurați instrumentul pentru curriculum
Înainte de a lucra la curriculum, ar trebui să setați niște instrumente pentru a vă ajuta să vă testați modificările. Puteți utiliza orice opțiune din cele de mai jos:
- Poți [configura tabăra freeCodep locală](how-to-setup-freecodecamp-locally.md). Acesta este **recomandat** pentru contribuții regulate/repetate. Această configurare vă permite să lucrați și să testați modificările.
- Folosește Gitpod, un mediu de dezvoltatori online gratuit. Apăsând pe butonul de mai jos va porni un mediu dev gata de cod pentru tabăra freeCodep din browser-ul tău. Durează doar câteva minute.
[](https://gitpod.io/#https://github.com/freeCodeCamp/freeCodeCamp)
- Editează fișierele pe interfața GitHub, făcând clic pe pictograma creion pentru fișierul corespunzător. Deși aceasta este cea mai rapidă cale, **nu este recomandat**, deoarece nu puteți testa modificările pe GitHub. Dacă susținătorii noștri concluzionează că modificările pe care le-ați făcut trebuie să fie testate la nivel local, ar trebui să urmați metodele de mai sus din nou.
## Șablon provocare
Mai jos este un şablon pentru cum arată fişierele markdown provocări, în prezent. Pentru a vedea șablonul raționalizat pe care îl vom adopta, a se vedea [mai jos](#upcoming-challenge-template).
````md
---
id: Identificator unic (alfanumeric, MongoDB_id)
titlu: Challenge Title
challengeType: 0
videoUrl: 'url of video explanation'
---
## Descrierea
` etichete. De exemplu, nume de tag-uri HTML sau nume de proprietate CSS
- Prima instanță a unui cuvânt cheie atunci când este definit, sau cuvinte cheie generale (ex: "obiect" sau "immutabil") intră în etichetele ``
- Referinţele la părţile de cod (ex. funcţia, metoda sau numele variabilelor) ar trebui să fie înfăşurate în etichetele ``. Vezi exemplul de mai jos:
- Folosește parseInt pentru a converti variabila realNumber într-un număr întreg.
- Blocurile de cod multi-linie **trebuie precedate de o linie goală**. Următoarea linie trebuie să înceapă cu trei backticks urmate imediat de una dintre [limbile acceptate](https://prismjs.com/#supported-languages). Pentru a finaliza blocul de cod, trebuie să porniți o nouă linie care are doar trei backticks și **o altă linie goală**. **Notă:** Dacă vei folosi un exemplu de cod în YAML, folosește `yaml` în loc de `yml` pentru limba din dreapta backtick-urilor.
Vezi exemplul de mai jos:
````md
Următoarea este un exemplu de cod:
```{language}
[CODUL TĂU HERE]
````
````
- Informaţii suplimentare sub forma unei note ar trebui formatate "Notă: Rest of note text...
- Dacă sunt necesare mai multe note, apoi listaţi toate notele în propoziţii separate folosind formatul "Note: Textul primei note. A doua notă text."
- Folosește ghilimele duble unde este cazul
## Testele de scriere
Provocările ar trebui să aibă numărul minim de teste necesare pentru a verifica dacă o camperă înțelege un concept.
Scopul nostru este să comunicăm singurul punct pe care provocarea încearcă să îl predea și să testăm că au înțeles acel punct.
Testele de provocare pot folosi bibliotecile Node.js și Chai.js . De asemenea, dacă este necesar, codul generat de utilizator poate fi accesat în variabila `code`.
## Formatând codul seed
Aici sunt ghiduri specifice de formatare pentru codul seed provocare:
- Foloseşte două spaţii la liniuţa
- Declaraţii JavaScript se termină cu punct şi virgulă
- Foloseşte ghilimele duble unde este cazul
- Comentariile făcute ar trebui să aibă un spaţiu între caracterele de comentariu şi comentariul însuşi
`// Repară această linie`
## Sugestiile şi soluţiile
Fiecare provocare are un buton `Obţine o indicie`, astfel încât un utilizator să poată accesa orice indicii/soluţii care au fost create pentru provocare. Sugestiile curriculum/soluţiile subiectele sunt localizate pe [forumul nostru](https://forum.freecodecamp.org/c/guide) sub categoria `Guide`.
Dacă găsești o problemă cu subiectul unei provocări existente, poți face sugestii în [categoria contributorilor](https://forum.freecodecamp.org/c/contributors) pe forum. Moderatorii și utilizatorii cu nivel de încredere 3 vor revizui observațiile și vor decide dacă vor include sau nu modificările subiectului indicativ/soluții corespunzător.
### Adăugarea de noi sugestii de provocări/soluţii Subiecte
Efectuează următorii paşi la adăugarea de noi indicii de provocare/soluţii legate de subiecte.
1. Începeți prin a urma aceiași pași pentru a crea un subiect nou, dar examinați următorul pentru a crea titlul.
2. Titlul subiectului ar trebui să înceapă cu `Ghidul de provocare freeCodep: ` concatenat cu titlul real al provocării curriculumului. De exemplu, dacă provocarea se numește "Chunky Monkey`", titlul subiectului ar fi "Ghidul provocării taberei freeCodep: Chunky Monkey`".
3. `camperbot` ar trebui să fie proprietarul acestor subiecte/postări, astfel încât va trebui să ceri unui administrator să schimbe proprietatea postării principale în `camperbot`.
4. Odată ce a fost creat noul subiect, se creează un id subiect de forum Este localizată la sfârşitul URL-ului subiectului pe forum. Acest id trebuie adăugat în frontmatter al fișierului provocării curriculum prin procesul normal pull request pentru butonul `Obține un indiciu` pentru a conecta la subiect.
### Linii directoare pentru conținutul de sugestii și subiecte de soluție
Când propuneți o soluție pentru un subiect de discuţie legat de provocarea programei, codul complet trebuie adăugat. Aceasta include tot codul seed-ului original plus orice modificări necesare pentru a trece toate testele de provocare. Următorul șablon ar trebui să fie folosit când se creează noi sugestii / soluții:
```md
# Challenge Name Goes aici
---
## Explicație pentru probleme
Aceasta rezumă ce trebuie făcut fără a reproșa doar descrierea și/sau instrucțiunile provocării. Aceasta este o secțiune opțională
#### Link-uri relevante
- [Link Text](link_url_goes_here)
- [Link Text](link_url_goes_here)
---
## Hints
### Hint 1
Sint merge aici
### Hint 2
Indică merge aici
---
## Soluții
`````js
function myFunc() {
consolă. og('Salut lume!');
}
````
#### Explicație cod
- Explicația codului merge aici
- Explicația codului merge aici
#### Link-uri relevante
- [Text link](link_url_goes_here)
- [Text link](link_url_goes_here)
Soluție 1 (Click to Show/Hide)
Exact la fel ca secțiunea de semințe
La fel din nou
Întrebarea ar ajunge aici (utilizată doar pentru provocările video)
Răspuns 1
Răspuns 2
Răspuns 2
\
````
Crearea și editarea provocărilor:
Tipuri de provocări - ce înseamnă valorile numerice tip provocare (numere).
Contributing to FreeCodecampp - Scriind ES6 Challenge Tests - un videoclip urmând Ethan Arrowood în timp ce contribuie la vechea versiune a curriculumului.