# Hvordan jobbe med kodeutfordringer
Vårt mål er å utvikle en morsom og tydelig interaktiv læringserfaring.
Å utforme interaktive kodeutfordringer er vanskelig. Det ville vært mye enklere å skrive en langvarig forklaring eller å lage en videoveiledning, og det er et sted for dem på Medium og YouTube. For våre grunnleggende læreplaner følger vi imidlertid med det som fungerer best for de fleste - en fullt interaktiv, videospill-lignende opplevelse.
Vi vil ha kampere for å nå en strømningstat. Vi ønsker at de skal bygge momentum og blåse gjennom læreplanen så få snagler som mulig. Vi ønsker at de går inn i prosjektene som er preget av tillit og har stor eksponering i programmeringskonsepter.
řskape disse utfordringene krever enorme kreativitet og oppmerksomhet rundt detaljer. Det er mye hjelp tilgjengelig. Du vil få støtte fra et helt lag med bidragsytere som du kan sprette ideer til og demonstrere utfordringene dine. Hold deg aktiv i [bidragsytere rommet](https://gitter.im/freecodecamp/contributors) og spør mange spørsmål.
Med din hjelp kan vi utforme en interaktiv læreplan for koding som vil hjelpe millioner av mennesker med å lære å kode i årene som kommer.
Innholdet for hver utfordring lagres i sin egen markeringsfil. Denne markeringsfilen blir senere konvertert til HTML ved hjelp av verktøyene for å lage interaktive nettsider.
Du finner alt freeCodeCamp.orgs faglige innhold i [`/pensum / utfordringer`](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges) mappen.
## Sett opp verktøy for pensum
Før du arbeider med læreplanverket, må du lage et verktøy som kan hjelpe deg med å teste endringene. Du kan benytte hvilket som helst alternativ i det under:
- Du kan [sette opp freeCodeCamp lokalt](how-to-setup-freecodecamp-locally.md). Dette anbefales **høyt** for jevnlige/gjentatte bidrag. Dette oppsettet lar deg jobbe og teste endringene.
- Bruk Gitpod, et gratis online utviklermiljø. Å klikke på knappen under vil starte et utvikler-til-kode utviklermiljø for freeCodeCamp i nettleseren. Det tar bare noen minutter.
[](https://gitpod.io/#https://github.com/freeCodeCamp/freeCodeCamp)
- Rediger filene i GitHubs grensesnitt ved å klikke på blyant-ikonet for den tilsvarende filen. Selv om dette er den raskeste måten, er det **ikke anbefalt**, fordi du ikke kan teste dine endringer på GitHub. Hvis våre vedlikeholdere konkluderer med at de endringene du har gjennomført, må testes lokalt, må du følge metodene ovenfor i stedet igjen.
## Utfordring Mal
Nedenfor finner du en mal av hvordan nedtrekksfilene ser ut til nå. For å se den strømlinjeformede malen vil vi vedta å se [under](#upcoming-challenge-template).
````md
---
id: Unik identifikator (alfanumerisk, MongoDB_id)
title: Utfordringstittel
utfordringstype: 0
videoUrl: 'url of video explanation'
---
## Description
` tagger. For eksempel navn på HTML-tagg eller CSS egenskaper
- Den første forekomsten av et søkeord når det er definert, eller generelle nøkkelord (dvs. "objekt" eller "immutable") gå i `` tagger
- Referanser til kodedeler (dvs. funksjon, metode eller variabelnavn) bør pakkes i `` koder. Se eksempel nedenfor:
- Bruk parseInt for å konvertere variabelen virkelig tall til et heltall.
- Flerlinjekode blokker **må innledes med en tom linje**. Neste linje må starte med tre bakgrunner etterfulgt umiddelbart av et av et av de [støttede språkene](https://prismjs.com/#supported-languages). For å fullføre kodeblokken, må du starte en ny linje som bare har tre bakgrunner og **en annen tom linje**. **Merk:** Hvis du skal bruke en eksempelkode i YAML, bruk `yaml` i stedet for `yml` for språket til høyre for bakken.
Se eksempel nedenfor:
````md
Følgende er et eksempel på kode:
```{language}
[DIN KODE HER]
````
````
- Tilleggsinformasjon i form av en notat må formateres `Merk: Rest av notis tekst...
- Hvis flere notater trengs, før alle notatene i separate setninger via format `Notater: Første notattekst. Andre notattekst.`.
- Bruk doble sitater der relevant
## Skrive tester
Utfordringer bør ha det minste antallet tester som er nødvendig for å bekrefte at en camper forstår et konsept.
Vårt mål er å kommunisere det ene som er at utfordringen prøver å underlege, og teste at de har forstått det poenget.
Utfordringstester gjør bruk av Node.js og Chai.js hevder bibliotekene. Hvis nødvendig, kan også bruker-generert kode nås i variabelen `kode`.
## Formatering av hovedkoden
Her er spesifikke formateringsveiledninger for utfordringsnøkkeltallet:
- Bruk to mellomrom for å rykke inn
- Javascript-kommandoer mot slutten av en semikolon
- Bruk doble sitater der relevant
- Kommentarer som er laget burde ha et mellomrom mellom kommentaren og kommentaren
`// Fix denne linjen`
## Hinker og Solutions
Hver utfordring har en `Få en Hint` knapp, slik at en bruker kan få tilgang til alle hint/løsninger som er laget for utfordringen. Emner for pensum hint/løsninger finnes på [vårt forum](https://forum.freecodecamp.org/c/guide) under 'Guide' kategorien.
Hvis du finner et problem med en eksisterende utfordrings hint/løsninger tema, kan du gjøre forslag i [contributors category](https://forum.freecodecamp.org/c/contributors) på forumet. Moderatorer og brukere med tillit nivå 3 vil gjennomgå kommentarene og avgjøre om de skal inkludere endringene i tilhørende hint/løsning.
### Legg til nye utfordring hint/løsninger Emner
Ta de følgende stegene i forbindelse med å legge til et nytt utfordringshin/løsninger relatert emne.
1. Begynn med å følge de samme trinnene for å opprette et nytt emne, men gå gjennom det neste for å opprette tittelen.
2. Tittelen på emnet skal starte med `freeCodeCamp Challenge Guide: ` samsvarer med den faktiske tittelen på pensum utfordringen. For eksempel, hvis utfordringen er kalt `Chunky Monkey`", vil emnetittelen være "`freeCodeCamp Challenge Guide: Chunky Monkey`".
3. `camperbot` bør være eier av disse emnene/innleggene, Du må derfor be om en admin for å endre eierskap av hovedinnlegget til `camperbot`.
4. Når det nye emnet er opprettet, opprettes forum emne-ID. Det ligger ved slutten av forum emne-URL. Denne Iden må legges til fronten til læreplanens utfordringsfil via den normale trekksprosessen for å få en Hint-knappen for å koble til emnet.
### Retningslinjer for innhold i tips og løsninger temaene
Når du foreslår en løsning for en læreplanrelatert guide hele koden må legges til. Alle endringer som trengs for å gjennomføre en utfordringscache er inkludert i denne artikkelen. Følgende mal bør brukes når du oppretter nye hint/løsninger emner:
``md
# Utfordringsnavn går Her
---
## Problem Explanation
Dette oppsummerer hva som må gjøres uten bare å oppgi beskrivelse og/eller instruksjoner. This is an optional section
#### Relevant Links
- [Link Text](link_url_goes_here)
- [Link Text](link_url_goes_here)
---
## Hints
### Hint 1
Hint goes here
### Hint 2
Hint goes here
---
## Solutions
Solution 1 (Click to Show/Hide)
```js
function myFunc() {
console.log('Hello World!');
}
````
#### Forklaring på kode
- Det gis kodeforklaring her
- Det gis kodeforklaring her
#### Relevante lenker
- [Link Tekst](link_url_goes_here)
- [Link Tekst](link_url_goes_here)
Eksakt det samme som i avsnittet frøene
Samme på nytt
Spørsmålet vil gå her (bare brukes til videoutfordringer)
Svar 1
Svar 2
Flere svar
\
````
Skape og redigere utfordringer:
Utfordringstyper - hva den numeriske utfordringstypen betyr (nummer).
Bidrar til FreeCodeCamp - skrive ES6 Challenge Tests - en video etter Ethan Arrowood da han bidrar til den gamle versjonen av pensum eller pensum.