# Miten koodaukseen liittyviä haasteita voidaan käsitellä
Tavoitteenamme on kehittää hauska ja selkeä vuorovaikutteinen oppimiskokemus.
Vuorovaikutteisten koodaushaasteiden suunnittelu on vaikeaa. Olisi paljon helpompi kirjoittaa pitkä selitys tai luoda video opetusohjelma, ja siellä on paikka niille Medium ja YouTube. Kuitenkin, meidän ydinopetussuunnitelma, olemme kiinni mikä toimii parhaiten useimmat ihmiset - täysin interaktiivinen, videopeli kaltainen kokemus.
Haluamme, että leiriläiset saavuttavat virtaustilan. Haluamme, että ne rakentavat vauhtia ja räjähtävät opetussuunnitelmamme läpi mahdollisimman harvalla välipalalla. Haluamme, että ne käsittelevät hankkeita luottavaisin mielin ja että ne altistuvat laajasti ohjelmasuunnittelukonsepteille.
Näiden haasteiden luominen edellyttää valtavaa luovuutta ja yksityiskohtien huomiointia. Saatavilla on paljon apua. Sinulla on tukea koko joukko osallistujia, joille voit pomppia ideoita pois ja demo haasteitasi. Pysy aktiivisena [osallistujien huoneessa](https://gitter.im/freecodecamp/contributors) ja kysy paljon kysymyksiä.
Autuksesi avulla voimme suunnitella interaktiivisen koodausopetussuunnitelman, joka auttaa miljoonia ihmisiä oppimaan koodaamaan tulevina vuosina.
Kunkin haasteen sisältö on tallennettu omaan markdown tiedostoon. Tämä markdown tiedosto on myöhemmin muunnettu HTML käyttäen työkaluja luoda interaktiivisia verkkosivuja.
Löydät kaikki freeCodeCamp.orgin opetussuunnitelman sisällön [`/opetussuunnitelma/haasteita`](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges) hakemistosta.
## Määritä opetussuunnitelman työkalun asetukset
Ennen kuin työskentelet opetussuunnitelman, sinun pitäisi perustaa joitakin työkaluja, joiden avulla voit testata muutoksia. Voit käyttää mitä tahansa alla olevaa vaihtoehtoa:
- Voit [määrittää freeCodeCamp paikallisesti](how-to-setup-freecodecamp-locally.md). Tämä on **erittäin suositeltavaa** säännöllisille/toistuville maksuille. Tämä asetus sallii sinun työskennellä ja testata muutoksiasi.
- Käytä Gitpodia, ilmainen online dev ympäristö. Alla olevan painikkeen napsauttaminen käynnistää käyttövalmiuden koodin dev ympäristön freeCodeCamp selaimessasi. Se kestää vain muutaman minuutin.
[![Avaa Gitpodissa](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/freeCodeCamp/freeCodeCamp)
- Muokkaa tiedostoja GitHubin käyttöliittymässä klikkaamalla kynä kuvaketta vastaavaa tiedostoa. Vaikka tämä on nopein tapa, sitä ei suositella ****, koska et pysty testaamaan muutoksia GitHubissa. Jos ylläpitäjämme päättelevät, että tekemäsi muutokset on testattava paikallisesti, sinun on noudatettava yllä olevia menetelmiä sen sijaan uudelleen.
## Haasteen Malli
Alla on malli siitä, miltä haasteen markdown tiedostot näyttävät tällä hetkellä. Jos haluat nähdä virtaviivaistetun mallin , hyväksymme sen [alla](#upcoming-challenge-template).
````md
---
id: Yksilöllinen tunniste (aakkosnumeerinen, MongoDB_id)
otsikko: Challenge Title
challengeType: 0
videoUrl: 'url of video explanation'
---
## Kuvaus
` -tageissa. Esimerkiksi HTML-tagien nimet tai CSS-ominaisuuksien nimet
- Hakusanan ensimmäinen ilmentymä kun se on määritelty, tai yleiset avainsanat (esim. "objekti" tai "muuttumattomat") menevät `` -tageissa
- Viittaukset koodin osiin (eli funktioon, menetelmään tai muuttujan nimiin) olisi käärittävä `
` -tageihin. Katso alla oleva esimerkki:
- Käytä
parseInt
muuntaaksesi muuttujan realNumber
kokonaislukuksi.
- Monirivisiä koodilohkoja **edeltää tyhjä rivi**. Seuraava rivi on aloitettava kolmella reitillä, joita seuraa välittömästi yksi [tuetuista kielistä](https://prismjs.com/#supported-languages). Täydentääksesi koodilohkon sinun on aloitettava uusi rivi, jossa on vain kolme backtickia ja **toinen tyhjä rivi**. **Huomautus:** Jos aiot käyttää esimerkkikoodia YAML, käytä `yaml` sen sijaan, että `yml` kieliä selausmerkkien oikealle puolelle.
Katso alla oleva esimerkki:
````md
Seuraava esimerkki koodista:
```{language}
[SINUN KOODI TÄSTÄ]
````
````
- Lisätietoja huomautuksen muodossa tulisi muotoilla `Huomautus: Loput huomautustekstiä...
- Jos tarvitaan useita muistiinpanoja luetella kaikki huomautukset erillisissä lauseissa käyttäen muotoa `Huomautuksia: Ensimmäisen huomautuksen tekstiä. Toinen huomautusteksti.`.
- Käytä kaksinkertaisia lainauksia soveltuvin osin
## Kirjoittaminen testit
Haasteita pitäisi olla mahdollisimman vähän testejä tarpeen tarkistaa, että camper ymmärtää konseptin.
Tavoitteenamme on kommunikoida se yksittäinen piste, että haaste yrittää opettaa, ja testata, että he ovat ymmärtäneet tämän pisteen.
Haastetestit voivat hyödyntää Node.js ja Chai.js väitöskirjakirjastoja. Tarvittaessa käyttäjän luomaa koodia voi myös käyttää muuttujassa.
## seed code Formatting
Tässä on erityiset muotoiluohjeet haasteen seed codeille:
- Käytä kahta välilyöntiä sisennykseen
- Javascript-lausunnot päättyvät puolipisteeseen
- Käytä kaksinkertaisia lainausmerkkejä tarvittaessa
- Kommenttimerkkien ja kommentin välillä tulisi olla välilyönti itse
`// Korjaa tämä rivi`
## Vinkkejä ja ratkaisuja
Jokaisella haasteella on `Hanki Hint`-painike, jotta käyttäjä voi käyttää mitä tahansa haastetta varten luotuja vihjejä/ratkaisuja. Opetussuunnitelman vihjeet/ratkaisut aiheet sijaitsevat [foorumissamme](https://forum.freecodecamp.org/c/guide) `Guide`-kategorian alla.
Jos löydät ongelman olemassa olevan haasteen vihjeiden/ratkaisujen aiheen kanssa, voit tehdä ehdotuksia foorumilla [osallistujien kategoriassa](https://forum.freecodecamp.org/c/contributors). Moderaattorit ja käyttäjät, joilla on luotettavuustaso 3, tarkastelevat kommentteja ja päättävät, sisällyttävätkö ne muutokset vastaavaan vihje-/ratkaisuaiheeseen vai eivät.
### Uusien Haastevihjeiden/ratkaisujen lisääminen Aiheet
Ota seuraavat vaiheet lisätessään uusi haasteen vihjeitä tai ratkaisuja koskeva aihe.
1. Aloita seuraamalla samoja vaiheita uuden aiheen luomiseksi, mutta tarkista seuraava jotta voit luoda otsikko.
2. Aiheen otsikon tulisi alkaa otsikolla `freeCodeCamp Challenge Guide: `, joka on mukana opetussuunnitelman haasteen otsikossa. Esimerkiksi, jos haaste on nimeltään "`Chunky Monkey`", aiheen otsikko olisi "`freeCodeCamp Challenge Guide: Chunky Monkey`".
3. `camperbot` pitäisi olla näiden aiheiden tai viestien omistaja, joten sinun täytyy pyytää admin muuttaa omistusoikeus tärkein viesti `camperbotin `.
4. Kun uusi aihe on luotu, foorumi aiheen tunnus on luotu. Se sijaitsee foorumin aiheen URL-osoitteen lopussa. Tämä tunnus on lisättävä opetussuunnitelman haasteen etuosaan, joka tapahtuu tavanomaisen `Get a Hint`-painikkeen vetämisprosessin kautta, jotta se voidaan linkittää aiheeseen.
### Ohjeet vihjeiden ja ratkaisujen sisällölle
Kun ehdotetaan ratkaisua opetussuunnitelman haasteeseen liittyvään oppaaseen liittyvään aiheeseen, koko koodi on lisättävä. Tämä sisältää kaikki alkuperäisen seed code plus kaikki muutokset, joita tarvitaan kaikkien haastetestien suorittamiseen. Seuraavaa mallia tulisi käyttää luotaessa uusia vihjejä/ratkaisuja aiheita:
````md
# Haasteen nimi Goes Here
---
## Ongelmanselitys
Tämä tiivistää mitä on tehtävä ilman, että vain toistetaan haasteen kuvausta ja/tai ohjeita. Tämä on valinnainen osio
#### Relevant Linkit
- [Link Text](link_url_goes_here)
- [Link Text](link_url_goes_here)
---
## Vinkkejä
### Vihje 1
Vihje menee tänne
### Vihje 2
Vihje menee tänne
---
## Ratkaisut
Ratkaisu 1 (Click to Show/Hide)
``js
funktio myFunc() {
konsoli. og('Hei maailma!');
}
````
#### Koodin Selitys
- Koodin selitys menee tähän
- Koodin selitys menee tähän
#### Asiaankuuluvat Linkit
- [Linkin Teksti](link_url_goes_here)
- [Linkin Teksti](link_url_goes_here)
Täsmälleen sama kuin siemenlohko
Sama uudelleen
Kysymys menisi tähän (käytetään vain videon haasteet)
Vastaa 1
Vastaa 2
Vastaa 2
\
````
Haasteiden luominen ja muokkaaminen:
Haastetyypit - mitä numeerinen haaste tarkoittaa (enum).
Osallistuminen FreeCodeCamp - Kirjoittaminen ES6 Challenge Testit - video jälkeen Ethan Arrowood hän osallistuu vanhan version opetussuunnitelman.