# Wie man mit Coding-Herausforderungen umgeht
Unser Ziel ist es, ein unterhaltsames und klares interaktives Lernerlebnis zu entwickeln.
Das Entwerfen interaktiver Codierungsaufgaben ist schwierig. Es wäre viel einfacher, eine längere Erklärung zu schreiben oder ein Video-Tutorial zu erstellen, und es gibt einen Platz für diejenigen auf Medium und YouTube. Für unseren Grundkurs halten wir uns jedoch an dem fest, was für die meisten Menschen am besten funktioniert - eine voll interaktive Videospielerfahrung.
Wir wollen, dass Wohnmobile einen Strömungszustand erreichen. Wir wollen, dass sie Schwung bauen und durch unseren Lehrplan mit möglichst wenigen Schlägen schüren. Wir wollen, dass sie mit Zuversicht in die Projekte gehen und sich den Programmierkonzepten weitestgehend aussetzen.
Um diese Herausforderungen zu schaffen, bedarf es einer immensen Kreativität und Aufmerksamkeit für Details. Es gibt viele Hilfe zur Verfügung. Sie erhalten Unterstützung von einem ganzen Team von Mitwirkenden, an das Sie Ideen abstoßen und Ihre Herausforderungen Demo erstellen können. Bleiben Sie aktiv im [Beitragenden Raum](https://gitter.im/freecodecamp/contributors) und stellen Sie viele Fragen.
Mit Ihrer Hilfe können wir ein interaktives Coding Curriculum entwerfen, das Millionen von Menschen hilft, jahrelang zu programmieren.
Der Inhalt für jede Challenge wird in einer eigenen Markdown Datei gespeichert. Diese Markdown Datei wird später mit unseren Tools in HTML konvertiert, um interaktive Webseiten zu erstellen.
You can find all of freeCodeCamp.org's curricular content in the [`/curriculum/challenges`](https://github.com/freeCodeCamp/freeCodeCamp/tree/master/curriculum/challenges) directory.
## Werkzeuge für den Lehrplan einrichten
Bevor Sie am Lehrplan arbeiten, müssen Sie ein paar Werkzeuge einrichten, um Ihre Änderungen zu testen. Sie können jede Option von unten verwenden:
- Sie können [FreeCodeCamp lokal einrichten](how-to-setup-freecodecamp-locally.md). Dies ist **dringend empfohlen** für regelmäßige/wiederholte Beiträge. Dieses Setup erlaubt es Ihnen, Ihre Änderungen zu testen und zu testen.
- Verwenden Sie Gitpod, eine kostenlose Entwicklungsumgebung. Wenn Sie auf den Button unten klicken, wird eine Entwicklungsumgebung für FreeCodeCamp in Ihrem Browser gestartet. Es dauert nur wenige Minuten.
[![In Gitpod öffnen](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/freeCodeCamp/freeCodeCamp)
- Bearbeiten Sie die Dateien auf GitHubs Schnittstelle, indem Sie auf das Bleistift-Symbol für die entsprechende Datei klicken. Während dies der schnellste Weg ist, ist es **nicht empfohlen**, da Sie Ihre Änderungen auf GitHub nicht testen können. Wenn unsere Betreuer zu dem Schluss kommen, dass die von Ihnen vorgenommenen Änderungen lokal getestet werden müssen, müssen Sie stattdessen die oben genannten Methoden erneut befolgen.
## Herausforderungsvorlage
Unten ist eine Vorlage dafür, wie die Challenge-Markdown-Dateien derzeit aussehen. Um die gestraffte Vorlage zu sehen, die wir annehmen, siehe [unten](#upcoming-challenge-template).
````md
---
id: Eindeutige Kennung (alphanumerisch, MongoDB_id)
title: Challenge Title
challengeType: 0
videoUrl: 'url of video explanation'
--- ## Beschreibung
` Tags. Zum Beispiel HTML-Tag-Namen oder CSS-Eigenschaftsnamen
- Die erste Instanz eines Keywords, wenn es definiert wird, oder allgemeine Keywords (z.B. "object" oder "immutable") gehen in `` Tags
- Referenzen zu Codeteilen (z.B. Funktion, Methode oder Variablennamen) sollten in `
` Tags eingewickelt werden. Siehe Beispiel unten:
- Verwende
parseInt
um die Variable realNumber
in eine Ganzzahl umzuwandeln.
- Mehrzeilige Codeblöcke **müssen durch eine leere Zeile** vorausgegangen sein. Die nächste Zeile muss mit drei Backticks beginnen, gefolgt von einer der [unterstützten Sprachen](https://prismjs.com/#supported-languages). Um den Code-Block zu vervollständigen, müssen Sie ein Zeilenumbruch starten, das nur drei Backticks und **eine weitere leere Zeile** hat. **Hinweis:** Wenn Sie einen Beispielcode in YAML verwenden verwenden Sie `yaml` statt `yml` für die Sprache rechts neben den Backticks.
Siehe Beispiel unten:
````md
Das folgende Beispiel ist ein Beispiel für Code:
```{language}
[IHRE CODE HIER]
````
````
- Zusätzliche Informationen in Form einer Notiz sollten formatiert werden `Hinweis: Rest der Notiz Text... Wenn mehrere Notizen benötigt werden dann listet alle Notizen in separaten sentences mit dem Format `Notizen: First note text. Zweite Anmerkung Text.`.
Verwenden Sie doppelte Anführungszeichen, wo anwendbar
## Schreibtests
Herausforderungen sollten die minimale Anzahl an Tests haben, die erforderlich sind, um zu überprüfen, ob ein Camper ein Konzept versteht.
Unser Ziel ist es, den einzelnen Punkt zu kommunizieren, den die Herausforderung zu unterrichten versucht, und zu testen, dass sie diesen Punkt verstanden haben.
Challenge-Tests können die Zusicherungsbibliotheken von Node.js und Chai.js nutzen. Bei Bedarf kann auch auf den vom Benutzer generierten Code in der Variable `code` zugegriffen werden.
## Formatierung des Seed-Codes
Hier sind spezifische Formatierungsrichtlinien für den Challenge-Seed-Code:
- Benutze zwei Leerzeichen, um einzurücken
- JavaScript-Anweisungen enden mit einem Semikolon
- Verwende doppelte Anführungszeichen, sofern anwendbar
- Kommentare sollten einen Platz zwischen den Kommentarzeichen und dem Kommentar selbst haben
`// Diese Zeile reparieren`
## Hinweise und Lösungen
Jede Challenge hat einen `Hint-Knopf, so dass ein Benutzer auf alle Hinweise/Lösungen zugreifen kann, die für die Herausforderung erstellt wurden. Lehrplan-Hinweise/Lösungsthemen befinden sich in [unserem Forum](https://forum.freecodecamp.org/c/guide) unter der Kategorie `Guide`.
Wenn du ein Problem mit den Hinweisen/Lösungen einer bestehenden Herausforderung findest, kannst du Vorschläge in der [Beitragenden Kategorie](https://forum.freecodecamp.org/c/contributors) im Forum machen. Moderatoren und Benutzer mit Treuhandstufe 3 werden die Kommentare prüfen und entscheiden, ob sie die Änderungen in das entsprechende Tipp/Lösungsthema einbeziehen wollen oder nicht.
### Hinzufügen neuer Challenge-Hinweise/Lösungen Themen
Führen Sie die folgenden Schritte ein, wenn Sie ein neues Thema in Bezug auf Challenge-Hinweise/Lösungen hinzufügen.
1. Beginnen Sie mit den gleichen Schritten für die Erstellung eines neuen Themas, aber überprüfen Sie die nächsten Schritte für die Erstellung des Titels.
2. Der Titel des Themas sollte mit `freeCodeCamp Challenge Guide: ` beginnen, die mit dem aktuellen Titel der Lehrplan-Herausforderung verbunden ist. Wenn die Herausforderung zum Beispiel "Chunky Affe" genannt wird, lautet der Titel "FreeCodeCamp Challenge Guide: Chunky Affe`".
3. `camperbot` sollte der Besitzer dieser Themen/Beiträge sein, also musst du einen Administrator anfordern, um den Besitzer des Hauptbeitrags auf `camperbot` zu ändern.
4. Sobald das neue Thema erstellt wurde, wird eine Forenthemen-ID erstellt. Sie befindet sich am Ende des Forumthema URL. Diese ID muss dem Frontmatter der Lehrplan-Challenge-Datei über den normalen Pull-Request-Prozess für den `Get a Hint`-Button hinzugefügt werden, um auf das Thema zu verlinken.
### Richtlinien für den Inhalt von Hinweisen und Lösungsthemen
Wenn Sie eine Lösung für ein Thema der Lehrplan-Herausforderung vorschlagen, das mit dem Leitfaden zusammenhängt, der vollständige Code muss hinzugefügt werden. Dies beinhaltet den gesamten ursprünglichen Seed-Code sowie alle Änderungen, die notwendig sind, um alle Challenge-Tests zu bestehen. Die folgende Vorlage sollte verwendet werden, um neue Hinweise/Lösungsthemen zu erstellen:
````md
# Challenge Name geht hier
--- ## Problembeschreibung
Dies fasst zusammen, was getan werden muss, ohne die Challenge Beschreibung und/oder Anweisungen neu zu setzen. Dies ist ein optionaler Abschnitt
#### Relevante Links
- [Link Text](link_url_goes_here)
- [Link Text](link_url_goes_here)
--- ## Hinweise
### Hinweis 1
Tipp geht hierher
### Hinweis 2
Hinweis geht hierher
--- ## Lösungen
Lösung 1 (Klicken Sie auf Anzeigen/Verbergen)
```js
Funktion myFunc() {
Konsole. og('Hallo Welt!');
}
````
#### Code-Erklärung
- Code-Erklärung hierher
- Code-Erklärung hierher
#### Relevante Links
- [Linktext](link_url_goes_here)
- [Linktext](link_url_goes_here)
Genau dasselbe wie der Seeds Abschnitt
Wieder gleichen
Die Frage würde hierher gehen (nur für Video-Challenges verwendet)
Antwort 1
Weitere Antworten
Antwort 2
\
````
Erstellen und Bearbeiten von Herausforderungen:
Challenge-Typen - was die numerischen Challenge-Typ-Werte bedeuten (Enum).
Beitrag zum FreeCodeCamp - Schreiben von ES6 Challenge-Tests - ein Video mit folgenden Ethan Arrowood , da er zum alten Lehrplan beiträgt.